@loxia/mst-viewer 9.0.0 → 9.0.1-202512220948

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.
@@ -1 +1 @@
1
- {"version":3,"file":"loxia-mst-viewer.mjs","sources":["../../../projects/mst-viewer/src/lib/atomic-components/message/message.ts","../../../projects/mst-viewer/src/lib/atomic-components/message/severity.enum.ts","../../../projects/mst-viewer/src/lib/atomic-components/message/message.component.ts","../../../projects/mst-viewer/src/lib/atomic-components/message/message.component.html","../../../projects/mst-viewer/src/lib/atomic-components/services/messages.service.ts","../../../projects/mst-viewer/src/lib/atomic-components/messages/messages.component.ts","../../../projects/mst-viewer/src/lib/atomic-components/messages/messages.component.html","../../../projects/mst-viewer/src/lib/atomic-components/overlay/overlay.component.ts","../../../projects/mst-viewer/src/lib/atomic-components/overlay/overlay.component.html","../../../projects/mst-viewer/src/lib/atomic-components/progress-indicator/progress-indicator.component.ts","../../../projects/mst-viewer/src/lib/atomic-components/progress-indicator/progress-indicator.component.html","../../../projects/mst-viewer/src/generated.version.ts","../../../projects/mst-viewer/src/lib/state/actions/actions.ts","../../../projects/mst-viewer/src/lib/state/actions/ritdelen.actions.ts","../../../projects/mst-viewer/src/lib/util/utils.ts","../../../projects/mst-viewer/src/lib/util/multi-map.ts","../../../projects/mst-viewer/src/lib/services/signalerings-beeld-manager.service.ts","../../../projects/mst-viewer/src/lib/services/editor.service.ts","../../../projects/mst-viewer/src/lib/services/beweging-utils.service.ts","../../../projects/mst-viewer/src/lib/services/viewer-control.service.ts","../../../projects/mst-viewer/src/lib/services/debug.service.ts","../../../projects/mst-viewer/src/lib/services/print-beweging.service.ts","../../../projects/mst-viewer/src/lib/components/rpe/rpe.component.ts","../../../projects/mst-viewer/src/lib/components/rpe/rpe.component.html","../../../projects/mst-viewer/src/lib/model/ongeplande-actie.ts","../../../projects/mst-viewer/src/lib/model/km-range.ts","../../../projects/mst-viewer/src/lib/model/wissel-kant-code.ts","../../../projects/mst-viewer/src/lib/model/melding-event.ts","../../../projects/mst-viewer/src/lib/util/melding-builder.ts","../../../projects/mst-viewer/src/lib/util/message-builder.ts","../../../projects/mst-viewer/src/generated/openapi/encoder.ts","../../../projects/mst-viewer/src/generated/openapi/variables.ts","../../../projects/mst-viewer/src/generated/openapi/configuration.ts","../../../projects/mst-viewer/src/generated/openapi/api/appConfigController.service.ts","../../../projects/mst-viewer/src/generated/openapi/api/bewegingController.service.ts","../../../projects/mst-viewer/src/generated/openapi/api/class0BuildProperties.service.ts","../../../projects/mst-viewer/src/generated/openapi/api/connectorController.service.ts","../../../projects/mst-viewer/src/generated/openapi/api/logController.service.ts","../../../projects/mst-viewer/src/generated/openapi/api/p21Controller.service.ts","../../../projects/mst-viewer/src/generated/openapi/api/sbController.service.ts","../../../projects/mst-viewer/src/generated/openapi/api/api.ts","../../../projects/mst-viewer/src/generated/openapi/model/actieDto.ts","../../../projects/mst-viewer/src/generated/openapi/model/algemeneRitDto.ts","../../../projects/mst-viewer/src/generated/openapi/model/frontendKeycloakConfig.ts","../../../projects/mst-viewer/src/generated/openapi/model/signaleringsbeeldDto.ts","../../../projects/mst-viewer/src/generated/openapi/model/signaleringsbeeldRequestDto.ts","../../../projects/mst-viewer/src/generated/openapi/api.module.ts","../../../projects/mst-viewer/src/lib/resources/mstlogging.resource.ts","../../../projects/mst-viewer/src/lib/util/logging-helper.ts","../../../projects/mst-viewer/src/lib/util/actie-helper.ts","../../../projects/mst-viewer/src/lib/components/ritdelen-lijst/ritdelen-lijst.component.ts","../../../projects/mst-viewer/src/lib/components/ritdelen-lijst/ritdelen-lijst.component.html","../../../projects/mst-viewer/src/lib/components/ritdelen-view/ritdelen-view.component.ts","../../../projects/mst-viewer/src/lib/components/ritdelen-view/ritdelen-view.component.html","../../../projects/mst-viewer/src/lib/components/carousel-controls/carousel-controls.component.ts","../../../projects/mst-viewer/src/lib/components/carousel-controls/carousel-controls.component.html","../../../projects/mst-viewer/src/lib/components/viewer-controls/viewer-controls.component.ts","../../../projects/mst-viewer/src/lib/components/viewer-controls/viewer-controls.component.html","../../../projects/mst-viewer/src/lib/model/alternatief-rit-deel.ts","../../../projects/mst-viewer/src/lib/model/sein-op-ritdeel.ts","../../../projects/mst-viewer/src/lib/util/actie-popover-bepaler.ts","../../../projects/mst-viewer/src/lib/components/svg-visualisatie/svg-visualisatie.component.ts","../../../projects/mst-viewer/src/lib/components/svg-visualisatie/svg-visualisatie.component.html","../../../projects/mst-viewer/src/lib/components/mstviewer/mstviewer.component.ts","../../../projects/mst-viewer/src/lib/components/mstviewer/mstviewer.component.html","../../../projects/mst-viewer/src/lib/resources/signaleringsbeeldinfo.resource.ts","../../../projects/mst-viewer/src/lib/services/base-rest.service.ts","../../../projects/mst-viewer/src/lib/services/beweging-verrijker.service.ts","../../../projects/mst-viewer/src/lib/model/rijwegplan-rijweg-dwang-combinatie.ts","../../../projects/mst-viewer/src/lib/model/ritdeel.ts","../../../projects/mst-viewer/src/lib/services/rit-lezer.service.ts","../../../projects/mst-viewer/src/lib/state/effect/bepaal-ongeplande-acties.effect.ts","../../../projects/mst-viewer/src/lib/util/date.service.ts","../../../projects/mst-viewer/src/lib/state/effect/bepaal-sb-infos.effect.ts","../../../projects/mst-viewer/src/lib/state/effect/beweging-invoegen.effect.ts","../../../projects/mst-viewer/src/lib/state/effect/delete-ongeplande-actie.effect.ts","../../../projects/mst-viewer/src/lib/state/effect/focus-effect.ts","../../../projects/mst-viewer/src/lib/state/effect/laad-route-files.effect.ts","../../../projects/mst-viewer/src/lib/services/connector.service.ts","../../../projects/mst-viewer/src/lib/state/effect/laad-signaleringsbeelden.effect.ts","../../../projects/mst-viewer/src/lib/state/effect/rit-goedkeuren.effect.ts","../../../projects/mst-viewer/src/lib/state/effect/ritdelen.effect.ts","../../../projects/mst-viewer/src/lib/state/effect/svg-view.effect.ts","../../../projects/mst-viewer/src/lib/model/nieuwe-route.ts","../../../projects/mst-viewer/src/lib/state/reducer/rit-delen.reducer.ts","../../../projects/mst-viewer/src/lib/state/mst-editor-state.ts","../../../projects/mst-viewer/src/lib/util/zone-util.ts","../../../projects/mst-viewer/src/lib/mst-viewer.module.ts","../../../projects/mst-viewer/src/lib/optimo.ts","../../../projects/mst-viewer/src/public-api.ts","../../../projects/mst-viewer/src/loxia-mst-viewer.ts"],"sourcesContent":["import { Severity } from './severity.enum';\n\nexport class Message {\n constructor(public readonly severity: Severity, public readonly text: string, public readonly timeout: number = 0) {\n }\n}\n","export enum Severity {\n ERROR = 'error',\n WARNING = 'warning',\n NOTIFICATION = 'notification',\n INFORMATION = 'information',\n SUCCESS = 'success'\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { Message } from './message';\n\n@Component({\n selector: 'loxia-message',\n templateUrl: './message.component.html',\n styleUrls: ['./message.component.scss'],\n standalone: false\n})\nexport class MessageComponent implements OnInit {\n @Input()\n message: Message;\n\n @Output()\n onClearMessage: EventEmitter<Message> = new EventEmitter();\n\n ngOnInit(): void {\n if (this.message.timeout > 0) {\n setTimeout(() => {\n this.closeMessage({ stopPropagation: () => null });\n }, this.message.timeout);\n }\n }\n\n closeMessage(event): void {\n event.stopPropagation();\n this.onClearMessage.emit(this.message);\n this.message = undefined;\n }\n\n get severity(): string {\n return this.message.severity;\n }\n\n}\n","<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","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { Message } from '../message';\n\n@Injectable({ providedIn: 'root' })\nexport class MessagesService {\n private messages: Message[] = [];\n private _messages$: BehaviorSubject<Message[]> = new BehaviorSubject<Message[]>([]);\n\n public showMessage(message: Message): void {\n this.messages.push(message);\n this._messages$.next(this.messages);\n }\n\n public clearMessage(message: Message): void {\n this.messages = this.messages.filter(m => m.text !== message.text);\n this._messages$.next(this.messages);\n }\n\n public get messages$(): Observable<Message[]> {\n return this._messages$;\n }\n}\n","import { Component } from '@angular/core';\nimport { MessagesService } from '../services/messages.service';\n\n@Component({\n selector: 'loxia-messages',\n templateUrl: './messages.component.html',\n styleUrls: ['./messages.component.scss'],\n standalone: false\n})\nexport class MessagesComponent {\n\n constructor(public messagesService: MessagesService) {\n }\n\n trackbyIndex(index: number): number {\n return index;\n }\n}\n","<div class=\"messages w-full\">\n <div *ngFor=\"let message of (messagesService.messages$ | async); let i = index; trackBy: trackbyIndex\">\n <loxia-message [message]=\"message\" (onClearMessage)=\"messagesService.clearMessage($event)\"></loxia-message>\n </div>\n</div>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'mst-overlay',\n templateUrl: './overlay.component.html',\n styleUrls: ['./overlay.component.scss'],\n standalone: false\n})\nexport class OverlayComponent {\n\n}\n","<div class=\"overlay\">\n <div class=\"centered-content\">\n <div class=\"content\">\n <ng-content></ng-content>\n </div>\n </div>\n</div>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n selector: 'mst-progress-indicator',\n templateUrl: './progress-indicator.component.html',\n styleUrls: ['./progress-indicator.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class ProgressIndicatorComponent {\n\n\n}\n","<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","export const version = '9.0.0';\n\n","import { SvgInfo } from '@loxia/imx-viewer';\nimport { createAction, union } from '@ngrx/store';\nimport { AlgemeneRitDto } from '../../../generated/openapi';\nimport { OngeplandeActie } from '../../model/ongeplande-actie';\nimport { RijwegplanRijwegDwangCombinatie } from '../../model/rijwegplan-rijweg-dwang-combinatie';\nimport { Ritdeel } from '../../model/ritdeel';\nimport { SeinOpRitdeel } from '../../model/sein-op-ritdeel';\nimport { Actie, Beweging, InfraModel, Rit } from '../../optimo';\nimport { ISignaleringsbeeldInfoDto } from '../../resources/signaleringsbeeldinfo.resource';\nimport { ArrayMultimap } from '../../util/multi-map';\n\nexport const SET_EDITABLE = '[mst] SetEditable';\nexport const SET_RIT_SELECTIE_IDS = '[mst] SetRitSelectieIds';\nexport const SET_GEPLANDE_ACTIES = '[mst] SetGeplandeActies';\nexport const DELETE_GEPLANDE_ACTIES = '[mst] DeleteGeplandeActies';\nexport const ADD_GEPLANDE_ACTIES = '[mst] AddGeplandeActies';\nexport const SET_ACTIEOPRIT_SELECTIE_IDS = '[mst] SetActieOpRitSelectieIds';\nexport const SET_ONGEPLANDEACTIE_SELECTIE_IDS = '[mst] SetOngeplandeActieSelectieIds';\nexport const DELETE_ONGEPLANDE_ACTIE_SELECTIE_ID = '[mst] DeleteOngeplandeActieSelectieId';\nexport const ADD_ONGEPLANDE_ACTIE = '[mst] AddOngeplandeActie';\nexport const DELETE_ONGEPLANDE_ACTIE = '[mst] DeleteOngeplandeActie';\nexport const BEPAAL_ONGEPLANDE_ACTIES = '[mst] BepaalOngeplandeActies';\nexport const SET_ONGEPLANDE_ACTIES = '[mst] SetOngeplandeActies';\nexport const SET_GEBROKENRIT_SELECTIE_IDS = '[mst] SetGebrokenRitSelectieIds';\nexport const SET_ALTERNATIEVEN_SELECTIE_IDS = '[mst] SetAlternatievenSelectieIds';\nexport const SET_BEGINSEIN_SELECTIE_IDS = '[mst] SetBeginSeinSelectieIds';\nexport const SET_EINDSEIN_SELECTIE_IDS = '[mst] SetEindSeinSelectieIds';\nexport const SET_ALTERNATIEVEN_CLICKABLE_IDS = '[mst] SetAlternatievenClickableIds';\nexport const SET_EINDSEINEN_CLICKABLE_IDS = '[mst] SetEindSeinenClickableIds';\nexport const SET_CONNECTOREN_CLICKABLE_IDS = '[mst] SetConnectorenlickableIds';\nexport const SET_BEGINSEIN_RIGHTCLICKABLE_IDS = '[mst] SetBeginSeinRightClickableIds';\nexport const SET_NIEUW_ROUTE_BEGINSEIN = '[mst] SetNieuwRouteBeginSein';\nexport const SET_NIEUW_ROUTE_EINDSEIN = '[mst] SetNieuwRouteEindSein';\nexport const RESET_NIEUWE_ROUTE = '[mst] ResetNieuweRoute';\nexport const SET_SIGNALERINGSBEELD_INFO_DTOS = '[mst] SetSignaleringsbeeldInfoDtos';\nexport const UPDATE_SIGNALERINGSBEELD_INFO_DTOS = '[mst] UpdateSignaleringsbeeldInfoDtos';\nexport const SET_VISIBLE_SIGNALERINGSBEELD_INFO_DTOS = '[mst] SetVisibleSignaleringsbeeldInfoDtos';\nexport const UPDATE_VISIBLE_SIGNALERINGSBEELD_INFO_DTOS = '[mst] UpdateVisibleSignaleringsbeeldInfoDtos';\nexport const SET_IA_VERSIE = '[mst] SetIaVersie';\nexport const SET_ALGEMENE_RIT_INFO = '[mst] SetAlgemeneRitInfo';\nexport const SET_SVG_INFOS = '[mst] SET_SVG_INFOS';\nexport const SET_DEBUG = '[mst] SET_DEBUG';\nexport const SET_ONGEPLANDE_ACTIES_BEPAALD = '[mst] SET_ONGEPLANDE_ACTIES_BEPAALD';\nexport const BEWEGING_INVOEGEN = '[mst] BewegingInvoegen';\nexport const SHOW_PROGRESS_INDICATOR = '[progress] Show the progress indicator';\nexport const CLEAR_PROGRESS_INDICATOR = '[progress] Clear the progress indicator';\nexport const KEUR_ALLE_ACTIES_GOED = '[progress] KeurAlleActiesGoed';\nexport const UPDATE_RIT = '[progress] UpdateRit';\nexport const SET_BASE_URL = '[progress] Set BaseUrl';\nexport const NAVIGEER_BUITEN_RIT = '[mst] NavigeerBuitenRit';\nexport const LAAD_EN_VERWERK_SIGNALERINGSBEELD_INFO = '[mst] laadEnVerwerkSignaleringsbeeldInfo';\n\nexport const FOCUS_OP_RITDEEL = '[mst] focusOpRitdeel';\nexport const FOCUS_OP_IDS = '[mst] focusOpIds';\nexport const BEPAAL_SB_INFOS = '[mst] bepaalSbInfos';\nexport const SET_SELECTED_RITDEEL = '[mst] SetSelectedRitdeel';\n\nexport const setEditable = createAction(SET_EDITABLE, (editable: boolean) => ({ editable }));\n\nexport const SetRitSelectieIds = createAction(SET_RIT_SELECTIE_IDS, (ids: string[]) => ({ ids }));\n\nexport const SetGeplandeActies = createAction(SET_GEPLANDE_ACTIES,\n (geplandeActiesMap: ArrayMultimap<Actie, string>) => ({ geplandeActiesMap }));\n\nexport const DeleteGeplandeActie = createAction(DELETE_GEPLANDE_ACTIES, (actie: Actie, puics: string[]) => ({ actie, puics }));\n\nexport const AddGeplandeActie = createAction(ADD_GEPLANDE_ACTIES, (actie: Actie, puics: string[]) => ({ actie, puics }));\n\nexport const SetActieOpRitSelectieIds = createAction(SET_ACTIEOPRIT_SELECTIE_IDS, (ids: string[]) => ({ ids }));\n\nexport const SetOngeplandeActieSelectieIds = createAction(SET_ONGEPLANDEACTIE_SELECTIE_IDS, (ids: string[]) => ({ ids }));\n\nexport const DeleteOngeplandeActieSelectieId = createAction(DELETE_ONGEPLANDE_ACTIE_SELECTIE_ID, (id: string) => ({ id }));\n\nexport const AddOngeplandeActie = createAction(ADD_ONGEPLANDE_ACTIE, (ongeplandeActie: OngeplandeActie) => ({ ongeplandeActie }));\n\nexport const DeleteOngeplandeActie = createAction(DELETE_ONGEPLANDE_ACTIE, (ongeplandeActie: OngeplandeActie) => ({ ongeplandeActie }));\n\nexport const BepaalOngeplandeActies = createAction(BEPAAL_ONGEPLANDE_ACTIES, (ongeplandeActies: any[]) => ({ ongeplandeActies }));\n\nexport const SetOngeplandeActies = createAction(SET_ONGEPLANDE_ACTIES,\n (ongeplandeActiesMap: ArrayMultimap<string, OngeplandeActie>) => ({ ongeplandeActiesMap }));\n\nexport const SetGebrokenRitSelectieIds = createAction(SET_GEBROKENRIT_SELECTIE_IDS, (ids: string[]) => ({ ids }));\n\nexport const SetAlternatievenSelectieIds = createAction(SET_ALTERNATIEVEN_SELECTIE_IDS, (ids: string[]) => ({ ids }));\n\nexport const SetBeginSeinSelectieIds = createAction(SET_BEGINSEIN_SELECTIE_IDS, (ids: string[]) => ({ ids }));\n\nexport const SetEindSeinSelectieIds = createAction(SET_EINDSEIN_SELECTIE_IDS, (ids: string[]) => ({ ids }));\n\nexport const SetAlternatievenClickableIds = createAction(SET_ALTERNATIEVEN_CLICKABLE_IDS, (ids: string[]) => ({ ids }));\n\nexport const SetEindSeinenClickableIds = createAction(SET_EINDSEINEN_CLICKABLE_IDS, (ids: string[]) => ({ ids }));\n\nexport const SetConnectorenClickableIds = createAction(SET_CONNECTOREN_CLICKABLE_IDS, (ids: string[]) => ({ ids }));\n\nexport const SetBeginSeinRightClickableIds = createAction(SET_BEGINSEIN_RIGHTCLICKABLE_IDS, (ids: string[]) => ({ ids }));\n\nexport const SetNieuwRouteBeginSein = createAction(SET_NIEUW_ROUTE_BEGINSEIN,\n (startSeinOpRitdeel: SeinOpRitdeel) => ({ startSeinOpRitdeel }));\n\nexport const SetNieuwRouteEindSein = createAction(SET_NIEUW_ROUTE_EINDSEIN,\n (combinatieVoorEindsein: RijwegplanRijwegDwangCombinatie) => ({ combinatieVoorEindsein }));\n\nexport const ResetNieuweRoute = createAction(RESET_NIEUWE_ROUTE);\n\nexport const SetSignaleringsbeeldInfoDtos = createAction(SET_SIGNALERINGSBEELD_INFO_DTOS,\n (dtos: ISignaleringsbeeldInfoDto[], iaversieinfo: any, treinpad: any, paginationSize: number, ritGewijzigdToegestaan: boolean) =>\n ({ dtos, iaversieinfo, treinpad, paginationSize, ritGewijzigdToegestaan }));\n\nexport const UpdateSignaleringsbeeldInfoDtos = createAction(UPDATE_SIGNALERINGSBEELD_INFO_DTOS,\n (dtos: ISignaleringsbeeldInfoDto[]) => ({ dtos }));\n\nexport const SetVisibleSignaleringsbeeldInfoDtos = createAction(SET_VISIBLE_SIGNALERINGSBEELD_INFO_DTOS,\n (dtos: ISignaleringsbeeldInfoDto[]) => ({ dtos }));\n\nexport const UpdateVisibleSignaleringsbeeldInfoDtos = createAction(UPDATE_VISIBLE_SIGNALERINGSBEELD_INFO_DTOS,\n (dtos: ISignaleringsbeeldInfoDto[]) => ({ dtos }));\n\nexport const SetIaVersie = createAction(SET_IA_VERSIE, (iaVersie: InfraModel) => ({ iaVersie }));\n\nexport const SetSvgInfos = createAction(SET_SVG_INFOS, (svgInfos: SvgInfo[]) => ({ svgInfos }));\n\nexport const SetDebug = createAction(SET_DEBUG, (debug: boolean) => ({ debug }));\n\nexport const SetAlgemeneRitInfo = createAction(SET_ALGEMENE_RIT_INFO, (algemeneRitInfoDto: AlgemeneRitDto) => ({ algemeneRitInfoDto }));\n\nexport const SetOngeplandeActiesBepaald = createAction(SET_ONGEPLANDE_ACTIES_BEPAALD, (bepaald: boolean) => ({ bepaald }));\n\nexport const ShowProgress = createAction(SHOW_PROGRESS_INDICATOR);\nexport const ClearProgress = createAction(CLEAR_PROGRESS_INDICATOR);\nexport const BewegingInvoegen = createAction(BEWEGING_INVOEGEN,\n (startSeinOpRitdeel: SeinOpRitdeel, puicNaarEindSeinCombinatie: Map<string, RijwegplanRijwegDwangCombinatie>) =>\n ({ startSeinOpRitdeel, puicNaarEindSeinCombinatie }));\n\nexport const KeurAlleActiesGoed = createAction(KEUR_ALLE_ACTIES_GOED, (bewegingen: Beweging[], ongeplandeActies: Actie[]) => ({ bewegingen, ongeplandeActies }));\nexport const UpdateRit = createAction(UPDATE_RIT, (bewegingen: Beweging[]) => ({ bewegingen }));\nexport const SetBaseUrl = createAction(SET_BASE_URL, (baseUrl: string) => ({ baseUrl }));\n\nexport const laadEnVerwerkSignaleringsbeeldInfo = createAction(LAAD_EN_VERWERK_SIGNALERINGSBEELD_INFO,\n (rit: Rit, paginationSize: number, pplgs: string[], ritGewijzigdToegestaan: boolean) => ({ rit, paginationSize, pplgs, ritGewijzigdToegestaan }));\nexport const navigeerBuitenRit = createAction(NAVIGEER_BUITEN_RIT, (randPuic: string) => ({ randPuic }));\n\nexport const focusOpRitdeel = createAction(FOCUS_OP_RITDEEL, (ritdeel: Ritdeel, paginationSize: number, iaVersieInfo: InfraModel) => ({ ritdeel, paginationSize, iaVersieInfo }) )\nexport const focusOpIds = createAction(FOCUS_OP_IDS, (puics: string[]) => ({ puics }));\nexport const bepaalSbInfos = createAction(BEPAAL_SB_INFOS, (rit: Rit, ongeplandeActies: Actie[], iaVersie: string, ritGewijzigdToegestaan: boolean, paginationSize: number) => ({ rit, ongeplandeActies, iaVersie, ritGewijzigdToegestaan, paginationSize }));\nexport const SetSelectedRitdeel = createAction(SET_SELECTED_RITDEEL, (id: number) => ({ id }));\n\n// do not export return value\nconst mstActions = union({\n setEditable,\n SetRitSelectieIds,\n SetGeplandeActies,\n DeleteGeplandeActie,\n AddGeplandeActie,\n SetActieOpRitSelectieIds,\n SetOngeplandeActieSelectieIds,\n DeleteOngeplandeActieSelectieId,\n AddOngeplandeActie,\n DeleteOngeplandeActie,\n BepaalOngeplandeActies,\n SetOngeplandeActies,\n SetGebrokenRitSelectieIds,\n SetAlternatievenSelectieIds,\n SetBeginSeinSelectieIds,\n SetEindSeinSelectieIds,\n SetAlternatievenClickableIds,\n SetEindSeinenClickableIds,\n SetBeginSeinRightClickableIds,\n SetNieuwRouteBeginSein,\n SetNieuwRouteEindSein,\n ResetNieuweRoute,\n SetSignaleringsbeeldInfoDtos,\n UpdateSignaleringsbeeldInfoDtos,\n SetVisibleSignaleringsbeeldInfoDtos,\n UpdateVisibleSignaleringsbeeldInfoDtos,\n SetIaVersie,\n SetSvgInfos,\n SetDebug,\n SetAlgemeneRitInfo,\n SetOngeplandeActiesBepaald,\n ShowProgress,\n ClearProgress,\n BewegingInvoegen,\n KeurAlleActiesGoed,\n UpdateRit,\n setSelectedRitdeel: SetSelectedRitdeel\n});\n\n// export only type\nexport type MstActionsUnion = typeof mstActions;\n\n\n\n","import {createAction, union} from '@ngrx/store';\nimport {AlternatiefRitDeel} from '../../model/alternatief-rit-deel';\nimport {NieuweRoute} from '../../model/nieuwe-route';\nimport {Ritdeel} from '../../model/ritdeel';\nimport {Actie} from '../../optimo';\n\nexport const SET_RIT_DELEN = '[mst] SetRitDelen';\nexport const SET_RIT_DELEN_AFTER_UPDATE = '[mst] SetRitDelenAfterUpdate';\nexport const UPDATE_RIT_DELEN = '[mst] UpdateRitDelen';\nexport const TOGGLE_RITDEEL_ZICHTBAAR = '[mst] ToggleRitdeelZichtbaar';\nexport const SET_RITDEEL_ZICHTBAAR = '[mst] ZetRitdeelZichtbaar';\nexport const SET_ZICHTBAARHEID_ALLE_RITDELEN = '[mst] SetZichtbaarheidAlleRitdelen';\nexport const TOGGLE_ZICHTBAARHEID_VOOR_BEWEGINGEN = '[mst] ToggleZichtbaarheidVoorBewegingen';\nexport const SET_ALTERNATIEVE_RIT_DELEN = '[mst] SetAlternatieveRitDelen';\nexport const RITDEEL_INVOEGEN = '[mst] RitdeelInvoegen';\nexport const DELETE_RITDEEL = '[mst] DeleteRitdeel';\nexport const DELETE_RITDEEL_ACTIE = '[mst] DeleteRitdeelActie';\nexport const ADD_RITDEEL_ACTIE = '[mst] AddRitdeelActie';\nexport const NAVIGEER = '[mst] Navigeer';\nexport const NAVIGEER_VANAF = '[mst] NavigeerVanaf';\n\nexport const setRitDelen = createAction(SET_RIT_DELEN,\n (ritDelen: Ritdeel[], paginationSize: number, iaversieinfo: any) => ({ ritDelen, paginationSize, iaversieinfo }));\nexport const setRitdelenAfterUpdate = createAction(SET_RIT_DELEN_AFTER_UPDATE,\n (ritDelen: Ritdeel[]) => ({ ritDelen }));\nexport const navigeer = createAction(NAVIGEER,\n (stapSize: number, paginationSize: number, iaversieinfo: any) => ({ stapSize, paginationSize, iaversieinfo }));\nexport const navigeerVanaf = createAction(NAVIGEER_VANAF,\n (paginationSize: number, iaversieinfo: any, ritdeel: Ritdeel) => ({ paginationSize, iaversieinfo, ritdeel }));\nexport const updateRitDelen = createAction(UPDATE_RIT_DELEN,\n (ritDelen: Ritdeel[]) => ({ ritDelen }));\nexport const toggleRitdeelZichtbaar = createAction(TOGGLE_RITDEEL_ZICHTBAAR, (ritDeel: Ritdeel) => ({ ritDeel }));\nexport const setRitdeelZichtbaar = createAction(SET_RITDEEL_ZICHTBAAR,\n (ritDeel: Ritdeel, zichtbaar: boolean) => ({ ritDeel, zichtbaar }));\nexport const deleteRitdeel = createAction(DELETE_RITDEEL, (ritDeel: Ritdeel) => ({ ritDeel }));\nexport const deleteRitdeelActie = createAction(DELETE_RITDEEL_ACTIE, (ritDeel: Ritdeel, actie: Actie) => ({ ritDeel, actie }));\nexport const addRitdeelActie = createAction(ADD_RITDEEL_ACTIE, (ritDeel: Ritdeel, actie: Actie) => ({ ritDeel, actie }));\nexport const setZichtbaarheidAlleRitdelen = createAction(SET_ZICHTBAARHEID_ALLE_RITDELEN,\n (zichtbaarheid: boolean) => ({ zichtbaarheid }));\nexport const toggleZichtbaarheidVoorBewegingen = createAction(TOGGLE_ZICHTBAARHEID_VOOR_BEWEGINGEN,\n (bewegingIds: number[]) => ({ bewegingIds }));\nexport const setAlternatieveRitDelen = createAction(SET_ALTERNATIEVE_RIT_DELEN,\n (alternatieveRitDeel: AlternatiefRitDeel) => ({ alternatieveRitDeel }));\nexport const ritdeelInvoegen = createAction(RITDEEL_INVOEGEN,\n (nieuweRoute: NieuweRoute) => ({ nieuweRoute }));\n\n// do not export return value\nconst ritdeelActions = union({\n setRitDelen,\n updateRitDelen,\n setRitdelenAfterUpdate,\n toggleRitdeelZichtbaar,\n setRitdeelZichtbaar,\n deleteRitdeel,\n deleteRitdeelActie,\n addRitdeelActie,\n setZichtbaarheidAlleRitdelen,\n toggleZichtbaarheidVoorBewegingen,\n setAlternatieveRitDelen,\n ritdeelInvoegen\n});\n\n// export only type\nexport type RitDeelActionsUnion = typeof ritdeelActions;\n","export default class Utils {\n\n public static flatMap(xs, f): any {\n return xs.reduce((acc, x) => acc.concat(f(x)), []);\n }\n\n public static getValidErorrMessage(err: any): string {\n let errorMsg = '';\n if (err.msg) {\n errorMsg += err.msg;\n }\n\n if (Array.isArray(err.body)) {\n err.body.forEach(x => errorMsg += x);\n } else if (err.body) {\n if (err.body instanceof ProgressEvent) {\n errorMsg = 'Kon geen verbinding maken met de server';\n } else if (err.body.text) {\n errorMsg += err.body.text;\n } else {\n errorMsg += err.body;\n }\n }\n if (err.message) {\n errorMsg += err.message;\n }\n if (typeof err === 'string' || err instanceof String) {\n errorMsg += err;\n }\n if (errorMsg !== '') {\n return errorMsg;\n }\n }\n}\n","import Utils from './utils';\n\n/**\n * https://gist.github.com/jordanluyke/609a4fffb69d1ebafdadd313ee2ee804\n *\n * @author Jordan Luyke <jordanluyke@gmail.com>\n */\n\nexport class MultimapEntry<K, V> {\n constructor(readonly key: K, readonly value: V) {\n }\n}\n\nexport interface Multimap<K, V> {\n entries: MultimapEntry<K, V>[];\n\n clear(): void;\n\n containsKey(key: K): boolean;\n\n containsValue(value: V): boolean;\n\n containsEntry(key: K, value: V): boolean;\n\n delete(key: K, value?: V): boolean;\n\n get(key: K): V[];\n\n keys(): K[];\n\n values(): V[];\n\n put(key: K, value: V): MultimapEntry<K, V>[];\n\n size(): number;\n}\n\nexport class ArrayMultimap<K, V> implements Multimap<K, V> {\n\n private _entries: MultimapEntry<K, V>[] = [];\n\n constructor(map?: Multimap<K, V>) {\n if (map) {\n this._entries = map.entries.slice();\n }\n }\n\n public size(): number {\n return this.keys().length;\n }\n\n public clear(): void {\n this._entries = [];\n }\n\n public containsKey(key: K): boolean {\n return this._entries\n .filter(entry => entry.key === key)\n .length > 0;\n }\n\n public containsValue(value: V): boolean {\n return this._entries\n .filter(entry => entry.value === value)\n .length > 0;\n }\n\n public containsEntry(key: K, value: V): boolean {\n return this._entries\n .filter(entry => entry.key === key && entry.value === value)\n .length > 0;\n }\n\n public delete(key: K, value?: V): boolean {\n const temp = this._entries;\n this._entries = this._entries\n .filter(entry => {\n if (value) {\n return entry.key !== key || entry.value !== value;\n }\n return entry.key !== key;\n });\n return temp.length !== this._entries.length;\n }\n\n public get entries(): MultimapEntry<K, V>[] {\n return this._entries;\n }\n\n public get(key: K): V[] {\n const valueMap = this._entries\n .filter(entry => entry.key === key)\n .map(entry => entry.value);\n return valueMap || [];\n }\n\n public keys(): K[] {\n return Array.from(new Set(this._entries.map(entry => entry.key)));\n }\n\n public values(): V[] {\n return Utils.flatMap(this._entries, x => x.value);\n }\n\n public put(key: K, value: V): MultimapEntry<K, V>[] {\n this._entries.push(new MultimapEntry(key, value));\n return this._entries;\n }\n\n public putAll(key: K, values: V[]): MultimapEntry<K, V>[] {\n values.forEach(value => this._entries.push(new MultimapEntry(key, value)));\n return this._entries;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { domein, JsJavaUtil, sbblad } from '@loxia/rijwegen';\n\n@Injectable()\nexport class SignaleringsBeeldManagerService {\n private signaleringsBeeldManager;\n\n /*\n * SignaleringsBeeldManager gezet vanuit GWT\n */\n set(signaleringsBeeldManager: any): void {\n this.signaleringsBeeldManager = signaleringsBeeldManager;\n }\n\n isReady(): boolean {\n return !!this.signaleringsBeeldManager;\n }\n\n bepaalRouteElementen(route: domein.Route): sbblad.TopologyElement[] {\n try {\n return JsJavaUtil.listToArray(this.signaleringsBeeldManager.bepaalRouteElementenStrict(route));\n } catch (e) {\n console.log(e.message);\n return [];\n }\n }\n\n getPuicsVoorSeinenInRoute(route: domein.Route): string[] {\n try {\n return JsJavaUtil.listToArray(this.signaleringsBeeldManager.getPuicsVoorSeinenInRoute(route));\n } catch (e) {\n console.log(e.message);\n return [];\n }\n }\n\n getSBSein(sein: domein.Sein): sbblad.Sein {\n return this.signaleringsBeeldManager.getSeinStrict(sein);\n }\n\n getSbSpoortak(takId: string): sbblad.Spoortak {\n return this.signaleringsBeeldManager ? this.signaleringsBeeldManager.getSpoortak(takId) : null;\n }\n\n getAlleSoortenWissels(): sbblad.Wissel[] {\n return this.signaleringsBeeldManager.getAlleSoortenWissels();\n }\n\n getSBWissel(wisselNaam: string, pplg: string): sbblad.Wissel {\n return this.signaleringsBeeldManager.getWissel(wisselNaam, pplg);\n }\n\n getSignaleringsElementen(): sbblad.SignaleringsElement[] {\n return this.signaleringsBeeldManager.getSignaleringsElementen();\n }\n\n bepaalAlternativeRoutes(rijweg: domein.Rijweg): sbblad.AlternativeRoute[] {\n return JsJavaUtil.listToArray(this.signaleringsBeeldManager.bepaalAlternativeRoutes(rijweg));\n }\n\n bepaalAlternativeRouteHighlights(alternatieveRoute: sbblad.AlternativeRoute,\n topoElementen: sbblad.HasIdentifier[]): sbblad.HasIdentifier[] {\n return JsJavaUtil.listToArray(this.signaleringsBeeldManager.bepaalAlternativeRouteHighlights(alternatieveRoute, topoElementen));\n }\n\n getPuicsVoorSeinen(): string[] {\n return this.signaleringsBeeldManager.getPuicsVoorSeinen();\n }\n\n getSeinen(): sbblad.Sein[] {\n return this.signaleringsBeeldManager.getSeinen();\n }\n\n getPuicsVoorWissels(): string[] {\n return this.signaleringsBeeldManager.getPuicsVoorWissels();\n }\n\n getPuicsVoorRanden(): string[] {\n return this.signaleringsBeeldManager.getPuicsVoorRanden();\n }\n\n getWisselMetStoringskaderPuic(storingskaderPuic: string): sbblad.Wissel {\n return this.signaleringsBeeldManager.getWisselMetStoringskaderPuic(storingskaderPuic);\n }\n\n getPuicsVoorWissel(wisselId: string, pplg: string): any {\n return this.signaleringsBeeldManager ? this.signaleringsBeeldManager.getPuicsVoorWissel(wisselId, pplg) : null;\n }\n\n getPuicsVoorSpoornummers(): string[] {\n return this.signaleringsBeeldManager.getPuicsVoorSpoornummers();\n }\n\n getPuicsVoorSplitEngelseWissels(): string[] {\n return this.signaleringsBeeldManager.getPuicsVoorSplitEngelseWissels();\n }\n\n getTechnischAlternatiefSBSein(sein: sbblad.Sein): sbblad.Sein {\n return this.signaleringsBeeldManager.getTechnischAlternatiefSBSein(sein);\n }\n\n getTopologyElementByPuic(puic: string): sbblad.TopologyElement {\n return this.signaleringsBeeldManager.getTopologyElementByPuic(puic);\n }\n\n getEersteVerbindingPuicVoorSplitEngelseWissel(engelsWisselNaam: string, kantcode: string): any {\n return this.signaleringsBeeldManager.getEersteVerbindingPuicVoorSplitEngelseWissel(engelsWisselNaam, kantcode);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { domein } from '@loxia/rijwegen';\nimport { from, Observable } from 'rxjs';\nimport { ISignaleringsbeeldInfoDto } from '../resources/signaleringsbeeldinfo.resource';\nimport { SignaleringsBeeldManagerService } from './signalerings-beeld-manager.service';\n\n@Injectable()\nexport class EditorService {\n private editor;\n private resolveReadyPromise;\n private promise;\n\n constructor(private signaleringsBeeldManagerService: SignaleringsBeeldManagerService) {\n this.initReadyPromise();\n }\n\n setEditor(editor): void {\n this.editor = editor;\n\n this.resolveReadyPromise();\n }\n\n isReady(): Promise<void> {\n return this.promise;\n }\n\n setSignaleringsBeeldManager(signaleringsBeeldManager): void {\n this.signaleringsBeeldManagerService.set(signaleringsBeeldManager);\n }\n\n laadSignaleringsbeelden(iaVersie: string, dtos: ISignaleringsbeeldInfoDto[]): Observable<any> {\n const laadSignaleringsbeelden = this.editor.laadSignaleringsbeelden(iaVersie, dtos);\n return from(laadSignaleringsbeelden);\n }\n\n laadRouteFiles(iaVersie: string, pplgs: string[]): any {\n return this.editor.laadRouteFiles(iaVersie, pplgs);\n }\n\n getRijwegplan(pplg: string): domein.Rijwegplan {\n return this.editor.getRijwegplan(pplg);\n }\n\n getVrijebaanRijwegplan(pplg: string, vanSpoor: string): domein.VrijebaanRijwegplan {\n return this.editor.getVrijebaanRijwegplan(pplg, vanSpoor);\n }\n\n getRijwegplannen(): domein.Rijwegplan[] {\n return this.editor.getRijwegplannen();\n }\n\n private initReadyPromise(): void {\n const that = this;\n this.promise = this.promise === undefined ? new Promise(function(resolve, _reject) {\n that.resolveReadyPromise = resolve;\n }) : this.promise;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Ritdeel } from '../model/ritdeel';\nimport { Actie, Beweging } from '../optimo';\nimport { ArrayMultimap } from '../util/multi-map';\nimport { EditorService } from './editor.service';\n\n@Injectable()\nexport class BewegingUtils {\n static readonly GEWIJZIGD = 'Gewijzigd';\n static readonly TOEGEVOEGD = 'Toegevoegd';\n static readonly NORMAAL = 'Normaal';\n private static readonly SEIN_TYPE_FICTIEF = 'FICTIEF';\n private static readonly SPOOR_NAAR_VRIJEBAAN_POSTFIX = '_e';\n\n constructor(private readonly editorService: EditorService) {\n }\n\n public extractBewegingenUitRitdelen(ritDelen: Ritdeel[], origineleBewegingen: Beweging[]): Beweging[] {\n const retval: Beweging[] = [];\n retval.length = ritDelen.length;\n\n const origineleBewegingMap = this.bepaalOrigineleBewegingMap(origineleBewegingen);\n\n let vorigeBeweging: Beweging = null;\n for (let i = 0; i < ritDelen.length; i++) {\n const ritdeel = ritDelen[i];\n if (ritdeel.beweging) {\n retval[i] = ritdeel.beweging;\n const nieuwDwangNummer = BewegingUtils.toRouteFileDwangNummer(ritdeel.getDwangNummer());\n if (BewegingUtils.isGewijzigd(ritdeel, nieuwDwangNummer, origineleBewegingMap)) {\n retval[i].wijzigStatus = BewegingUtils.GEWIJZIGD;\n retval[i].dwangNummer = nieuwDwangNummer;\n ritdeel.beweging.ritActies = ritdeel.acties;\n BewegingUtils.removeKerenExtensie(retval[i]);\n BewegingUtils.removeKerenExtensie(vorigeBeweging);\n } else if (i === ritDelen.length - 1 && BewegingUtils.bewegingenZijnGewijzigd(ritDelen, origineleBewegingen)) {\n BewegingUtils.removeKerenExtensie(retval[i]);\n } else if (retval[i].wijzigStatus === BewegingUtils.TOEGEVOEGD) {\n BewegingUtils.removeKerenExtensie(vorigeBeweging);\n }\n } else {\n retval[i] = this.maakBeweging(ritdeel);\n }\n retval[i].volgnummerBinnenRit = i + 1;\n vorigeBeweging = ritdeel.beweging;\n }\n return retval;\n }\n\n private static bewegingenZijnGewijzigd(ritDelen: Ritdeel[], origineleBewegingen: Beweging[]): boolean {\n const ritDelenArray = ritDelen\n .filter(r => r.beweging)\n .map(r => r.beweging.id)\n .sort((a, b) => a - b);\n\n const bewegingenIdArray = origineleBewegingen.map(b => b.id).sort((a, b) => a - b);\n return JSON.stringify(ritDelenArray) !== JSON.stringify(bewegingenIdArray);\n }\n\n private static removeKerenExtensie(beweging: Beweging): void {\n if (beweging && this.containsExtensie('_k', beweging.naarSpoor)) {\n beweging.naarSpoor = beweging.naarSpoor.split('_k')[0];\n beweging.wijzigStatus = this.GEWIJZIGD;\n }\n }\n\n static containsExtensie(match: string, stringToCheck: string): boolean {\n return stringToCheck.indexOf(match) !== -1;\n }\n\n private static isGewijzigd(ritdeel: Ritdeel, nieuwDwangNummer, origineleBewegingenMap: ArrayMultimap<number, number>): boolean {\n const dwangGewijzigd = ritdeel.beweging.dwangNummer !== nieuwDwangNummer;\n let gewijzigd = false;\n if (ritdeel.beweging.wijzigStatus === this.NORMAAL) {\n const origineleBewegingActies = origineleBewegingenMap.get(ritdeel.beweging.id);\n const huidigeActies = this.createSortedActieIdList(ritdeel.acties);\n gewijzigd = JSON.stringify(huidigeActies) !== JSON.stringify(origineleBewegingActies);\n }\n return dwangGewijzigd || gewijzigd;\n }\n\n private bepaalOrigineleBewegingMap(origineleBewegingen: Beweging[]): ArrayMultimap<number, number> {\n const bewegingMap = new ArrayMultimap<number, number>();\n origineleBewegingen.forEach(b => {\n const actieIds = BewegingUtils.createSortedActieIdList(b.ritActies);\n bewegingMap.putAll(b.id, actieIds);\n });\n return bewegingMap;\n }\n\n private static createSortedActieIdList(acties: Actie[]): number[] {\n return acties.map(actie => actie.id).sort((a, b) => a - b);\n }\n\n public maakBeweging(newRitdeel: Ritdeel): Beweging {\n const eindSein = newRitdeel.getRoute().getEindSein();\n\n let naarSeinNaam;\n let naarSeinPplg;\n let naarSpoor = newRitdeel.getNaarPrlSpoor();\n if (eindSein.getTypeAlsString() === BewegingUtils.SEIN_TYPE_FICTIEF) {\n if (newRitdeel.heeftVrijebaanInfo()) {\n const vbEindSein = newRitdeel.getVrijebaanRijweg().getEindSein();\n naarSeinNaam = vbEindSein.getName();\n naarSeinPplg = vbEindSein.getPPLG();\n naarSpoor += BewegingUtils.SPOOR_NAAR_VRIJEBAAN_POSTFIX;\n } else {\n const rijwegplan = this.editorService.getRijwegplan(newRitdeel.getPplg());\n const rijwegAndereRichting = rijwegplan.getRijweg(newRitdeel.getVisueelNaarPrlSpoor(), newRitdeel.getVanPrlSpoor());\n const startSeinInAndereRichting = rijwegAndereRichting.getBeginSein();\n naarSeinNaam = startSeinInAndereRichting.getName();\n naarSeinPplg = startSeinInAndereRichting.getPPLG();\n }\n } else {\n naarSeinNaam = eindSein.getName();\n naarSeinPplg = eindSein.getPPLG();\n }\n return BewegingUtils.vulBeweging(newRitdeel, naarSeinNaam, naarSeinPplg, naarSpoor);\n }\n\n private static vulBeweging(newRitdeel: Ritdeel, naarSeinNaam: string, naarSeinPplg: string, naarSpoor: string): Beweging {\n return {\n id: 0,\n ritId: 0,\n volgnummerBinnenRit: -1,\n vanSeinType: 'BED_SEIN',\n vanSeinNaam: newRitdeel.getRoute().getBeginSein().getName(),\n vanSeinPplg: newRitdeel.getRoute().getBeginSein().getPPLG(),\n naarSeinType: 'BED_SEIN',\n naarSeinNaam,\n naarSeinPplg,\n dwangNummer: BewegingUtils.toRouteFileDwangNummer(newRitdeel.getDwangNummer()),\n vanPplg: newRitdeel.getPplg(),\n vanSpoor: newRitdeel.getVanPrlSpoor(),\n naarPplg: newRitdeel.getPplg(),\n naarSpoor,\n ritActies: [],\n wijzigStatus: this.TOEGEVOEGD\n };\n }\n\n private static toRouteFileDwangNummer(dwangNummer: number): number {\n return (dwangNummer === 0) ? -1 : dwangNummer;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { SelectieInfo } from '@loxia/imx-viewer';\nimport { Store } from '@ngrx/store';\nimport { BehaviorSubject, combineLatest, Observable, Subscription } from 'rxjs';\nimport { AlgemeneRitDto } from '../../generated/openapi';\nimport { Ritdeel } from '../model/ritdeel';\nimport { Actie, Beweging, Rit } from '../optimo';\nimport { KeurAlleActiesGoed, SetAlgemeneRitInfo, ShowProgress } from '../state/actions/actions';\nimport { MstEditorState } from '../state/mst-editor-state';\nimport { BewegingUtils } from './beweging-utils.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ViewerControlService {\n private readonly subscriptions = new Subscription();\n\n private readonly valideRit$ = new BehaviorSubject(false);\n private readonly printing$ = new BehaviorSubject(false);\n\n private sideNavOpen = false;\n sideNavOpen$ = new BehaviorSubject(this.sideNavOpen);\n\n selectieInfos: SelectieInfo[];\n ritdelen: Ritdeel[];\n origineelTreinPad: Rit;\n\n constructor(private readonly store: Store<MstEditorState>,\n private readonly bewegingUtils: BewegingUtils) {\n this.subscriptions.add(combineLatest([\n store.select('ritSelectieIds'),\n store.select('actieOpRitSelectieIds'),\n store.select('ongeplandeActieSelectieIds'),\n store.select('gebrokenRitSelectieIds'),\n store.select('alternatievenSelectieIds'),\n store.select('beginSeinSelectieIds'),\n store.select('eindSeinSelectieIds')]\n ).subscribe(([rit, actieOpRitSelectieIds, ongeplandeActieSelectieIds, gebrokenrit, alternatieven, begin, eind]) => {\n const selectie = [];\n selectie.push(new SelectieInfo(rit, 'rit'));\n selectie.push(new SelectieInfo(actieOpRitSelectieIds, 'actieoprit'));\n selectie.push(new SelectieInfo(ongeplandeActieSelectieIds, 'ongeplandeActie'));\n selectie.push(new SelectieInfo(gebrokenrit, 'gebrokenrit'));\n selectie.push(new SelectieInfo(alternatieven, 'alternatieveRoute'));\n selectie.push(new SelectieInfo(begin, 'zigzagVan'));\n selectie.push(new SelectieInfo(eind, 'zigzagNaar'));\n this.selectieInfos = selectie;\n }\n ));\n\n this.subscriptions.add(store.select('ritDelen').subscribe(ritdelen => this.ritdelen = ritdelen));\n }\n\n toggleSideNavVisible(): void {\n this.sideNavOpen = !this.sideNavOpen;\n this.sideNavOpen$.next(this.sideNavOpen);\n }\n\n keurAlleActiesGoed(ongeplandeActies: Actie[]): void {\n if (this.ritdelen) {\n this.store.dispatch(ShowProgress());\n const bewegingen = this.bewegingUtils.extractBewegingenUitRitdelen(this.ritdelen, this.origineelTreinPad.bewegingen);\n const alleActies = this.verzamelAlleActies(this.ritdelen, ongeplandeActies);\n this.store.dispatch(KeurAlleActiesGoed(this.getBewegingenZonderActies(bewegingen), alleActies));\n }\n }\n\n setValideRit(valideRit: boolean): void {\n this.valideRit$.next(valideRit);\n }\n\n setPrinting(printing: boolean): void {\n this.printing$.next(printing);\n }\n\n private getBewegingenZonderActies(bewegingen: Beweging[]): Beweging[] {\n return bewegingen.map(beweging => {\n beweging.ritActies = [];\n return beweging;\n });\n }\n\n private verzamelAlleActies(ritDelen: Ritdeel[], ongeplandeActies: Actie[]): Actie[] {\n const retval = [];\n retval.push(...ongeplandeActies);\n retval.push(...ritDelen.filter(ritdeel => ritdeel.acties.length > 0).flatMap(ritdeel => ritdeel.acties));\n return retval;\n }\n\n setOrigineelTreinPad(treinpad: Rit): void {\n const rit = JSON.parse(JSON.stringify(treinpad));\n\n this.store.dispatch(SetAlgemeneRitInfo( {\n id: rit.id,\n jaarplanId: rit.jaarplanId,\n volgnummer: rit.volgnummer,\n machineTypeId: rit.machineTypeId,\n machineTypeOmschrijving: rit.machineTypeOmschrijving,\n ritDatum: rit.ritDatum,\n startDatum: rit.startDatum,\n eindDatum: rit.eindDatum,\n ritNaam: rit.ritNaam,\n startLocatie: rit.startLocatie,\n eindLocatie: rit.eindLocatie,\n ritStatus: rit.ritStatus,\n modified: rit.modified,\n modifiedBy: rit.modifiedBy,\n planJobId: rit.planJobId\n } as AlgemeneRitDto)\n );\n this.origineelTreinPad = rit;\n }\n\n isValideRit$(): Observable<boolean> {\n return this.valideRit$;\n }\n\n isPrinting$(): Observable<boolean> {\n return this.printing$;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { JsJavaUtil, sbblad } from '@loxia/rijwegen';\nimport { Store } from '@ngrx/store';\nimport { SetDebug } from '../state/actions/actions';\nimport { MstEditorState } from '../state/mst-editor-state';\nimport { SignaleringsBeeldManagerService } from './signalerings-beeld-manager.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DebugService {\n private readonly listener = this.debugEventListener();\n\n constructor(private store: Store<MstEditorState>,\n private sbmService: SignaleringsBeeldManagerService) {\n }\n\n setDebugFlag(debug: boolean): void {\n this.store.dispatch(SetDebug(debug));\n\n if (debug) {\n document.getElementById('svgContainer').addEventListener('mouseover', this.listener);\n } else {\n document.getElementById('svgContainer').removeEventListener('mouseover', this.listener);\n }\n }\n\n private debugEventListener(): (e: any) => void {\n return (event): void => {\n let elem = event.target;\n let id: string;\n let found = false;\n do {\n id = elem.id;\n if (id.startsWith('p')) {\n const tp = this.sbmService.getTopologyElementByPuic(id.substring(1));\n if (tp) {\n this.printKmInfo(tp);\n found = true;\n }\n }\n elem = elem.parentElement;\n } while (!found && elem);\n };\n }\n\n private printKmInfo(tp: sbblad.TopologyElement): void {\n const kms: sbblad.Kilometrering[] = JsJavaUtil.listToArray(tp.getKilometreringen());\n if (kms.length > 0) {\n let logline = 'Kminfo: ' + tp.getComponentName() + ', ';\n for (const km of kms) {\n logline += km.getKmLint() + ' ' + km.getKmWaarde() + ' ';\n }\n console.log(logline);\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { sbblad } from '@loxia/rijwegen';\nimport { Store } from '@ngrx/store';\nimport { Ritdeel } from '../model/ritdeel';\nimport { InfraModel } from '../optimo';\nimport * as MstActions from '../state/actions/actions';\nimport { ClearProgress, ShowProgress } from '../state/actions/actions';\nimport { navigeerVanaf, setZichtbaarheidAlleRitdelen, toggleZichtbaarheidVoorBewegingen } from '../state/actions/ritdelen.actions';\nimport { MstEditorState } from '../state/mst-editor-state';\nimport { SignaleringsBeeldManagerService } from './signalerings-beeld-manager.service';\nimport { ViewerControlService } from './viewer-control.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PrintBewegingService {\n private ritdelen: Ritdeel[];\n\n constructor(private store: Store<MstEditorState>,\n private viewerControlService: ViewerControlService,\n private sbmService: SignaleringsBeeldManagerService) {\n this.store.select(s => s.ritDelen).subscribe(ritdelen => this.ritdelen = ritdelen);\n }\n\n printBeweging(bewegingId: number, paginationSize: number, iaVersieInfo: InfraModel): Promise<boolean> {\n const gevondenRitdeel: Ritdeel[] = this.ritdelen.filter(r => parseInt(r.getBewegingId(), 10) === bewegingId);\n\n // hide/show de knoppen\n const printing = !!bewegingId && gevondenRitdeel.length === 1;\n this.viewerControlService.setPrinting(printing);\n\n if (!printing) {\n return Promise.reject(new Error('Geen beweging gevonden voor ' + bewegingId));\n }\n\n return new Promise<boolean>((resolve) => {\n const ritdeel = gevondenRitdeel[0];\n if (ritdeel.isNietBeschikbaar()) {\n this.store.dispatch(navigeerVanaf(paginationSize, iaVersieInfo, ritdeel));\n this.store.dispatch(ShowProgress());\n setTimeout(() => this.focusOpBeweging(ritdeel, resolve), 1000);\n } else {\n this.focusOpBeweging(ritdeel, resolve);\n }\n });\n }\n\n private focusOpBeweging(ritdeel: Ritdeel, resolve: Function): void {\n // deselecteer alles\n this.store.dispatch(setZichtbaarheidAlleRitdelen(false));\n // enable ritacties (checkbox) voor alle ritdelen met beweging die matched met bewegingId(s)\n this.store.dispatch(toggleZichtbaarheidVoorBewegingen([parseInt(ritdeel.getBewegingId(), 10)]));\n setTimeout(() => {\n\n // dit neemt niet de vrijebaan elementen mee\n const topoElementen = this.sbmService.bepaalRouteElementen(ritdeel.getRoute());\n const dwangPuics = this.getPuics(topoElementen);\n this.store.dispatch(MstActions.focusOpIds(dwangPuics));\n\n setTimeout(() => {\n // resolve de promise, om aan te geven dat focus klaar is\n resolve(true);\n this.viewerControlService.setPrinting(false);\n this.store.dispatch(ClearProgress());\n }, 1000);\n });\n }\n\n private getPuics(topoElementen: sbblad.HasIdentifier[]): string[] {\n return topoElementen.map(e => e.getPuic());\n }\n\n}\n","import { AfterViewInit, Component, ElementRef, Input, ViewChild } from '@angular/core';\n\n@Component({\n selector: 'rpe-component',\n templateUrl: './rpe.component.html',\n standalone: false\n})\nexport class RpeComponent implements AfterViewInit {\n @Input() baseurl: string;\n @Input() path: string;\n\n @ViewChild('rpescript') script: ElementRef;\n\n convertToScript(): void {\n const element = this.script.nativeElement;\n const script = document.createElement('script');\n script.type = 'text/javascript';\n if (this.baseurl && this.path) {\n script.src = this.baseurl + this.path;\n // eslint-disable-next-line no-console\n console.log('Code geladen van: ' + script.src); //useful for debugging in GWT environment\n }\n const parent = element.parentElement;\n parent.parentElement.replaceChild(script, parent);\n }\n\n ngAfterViewInit(): void {\n this.convertToScript();\n }\n}\n","<div #rpescript style.display=\"none\">\n <ng-content></ng-content>\n</div>\n","import { Actie } from '../optimo';\n\nexport class OngeplandeActie {\n constructor(public actie: Actie,\n public puics: string[]) {\n }\n\n}\n","import { JsJavaUtil, sbblad } from '@loxia/rijwegen';\nimport Kilometrering = sbblad.Kilometrering;\nimport TopologyElement = sbblad.TopologyElement;\n\nexport class KmRange {\n private constructor(public topologyElement: TopologyElement,\n public vanKilometreringen: Kilometrering[],\n public totKilometreringen: Kilometrering[]) {\n }\n\n public static rangeVoorPuntObject(topologyElement: TopologyElement): KmRange {\n return new KmRange(topologyElement,\n JsJavaUtil.listToArray(topologyElement.getKilometreringen()),\n JsJavaUtil.listToArray(topologyElement.getKilometreringen()));\n }\n\n public static rangeVoorStrekObject(topologyElement: TopologyElement,\n vanKilometreringen: Kilometrering[],\n totKilometreringen: Kilometrering[]): KmRange {\n return new KmRange(topologyElement, vanKilometreringen, totKilometreringen);\n }\n\n public static getKilometrering(lintNaam: string, kilometreringen: Kilometrering[]): Kilometrering {\n const result: Kilometrering[] = kilometreringen.filter(kilometrering => kilometrering.getKmLint() === lintNaam);\n if (result.length >= 1) {\n return result[0];\n }\n return null;\n }\n\n heeftOverlap(kilometrering1: Kilometrering, kilometrering2: Kilometrering): boolean {\n const vanKilometrering = KmRange.getKilometrering(kilometrering1.getKmLint(), this.vanKilometreringen);\n const totKilometrering = KmRange.getKilometrering(kilometrering2.getKmLint(), this.totKilometreringen);\n if (!vanKilometrering || !totKilometrering) {\n return false;\n }\n\n let startKmWaarde = vanKilometrering.getKmWaarde();\n let endKmWaarde = totKilometrering.getKmWaarde();\n if (startKmWaarde > endKmWaarde) {\n const temp = { end: endKmWaarde, start: startKmWaarde };\n startKmWaarde = temp.end;\n endKmWaarde = temp.start;\n }\n\n const actieStartKmWaarde = kilometrering1.getKmWaarde();\n const actieEndKmWaarde = kilometrering2.getKmWaarde();\n return endKmWaarde >= actieStartKmWaarde && actieEndKmWaarde >= startKmWaarde;\n }\n}\n","export class WisselKantCode {\n constructor(public naam: string, public kantCode: string) {\n }\n}\n","export class MeldingEvent {\n constructor(public meldingMessage: string, public meldingLevel: string) {\n }\n}\n","import { MeldingEvent } from '../model/melding-event';\n\nexport const MELDING_LEVEL_ERROR = 'error';\nexport const MELDING_LEVEL_WARNING = 'warn';\nexport const MELDING_LEVEL_INFO = 'info';\n\nexport class MeldingBuilder {\n\n public static nietGevondenTakkenOngeplandeActies(nietGevondenTakken: string[]): MeldingEvent {\n return new MeldingEvent('Niet gevonden takken uit \\'OngeplandeActies\\': ' + nietGevondenTakken, MELDING_LEVEL_INFO);\n }\n\n public static actieHighlightError(actieZonderElementen: number[]): MeldingEvent {\n return new MeldingEvent('Highlight error. Geen elementen kunnen vinden voor actie(s) met id: ' + actieZonderElementen,\n MELDING_LEVEL_ERROR);\n }\n}\n","import { Message, Severity } from '../atomic-components/message/';\nimport { Beweging } from '../optimo';\nimport Utils from './utils';\n\nexport class MessageBuilder {\n public static rwpDataNietGevonden(err: string): Message {\n return new Message(Severity.ERROR, 'Error bij ophalen van rijwegplan data: ' + err);\n }\n\n public static rijwegNietGevonden(beweging: Beweging): Message {\n return new Message(Severity.ERROR, `Rijweg van ${ beweging.vanSpoor } in PPLG ${ beweging.vanPplg } naar ${ beweging.naarSpoor } niet gevonden`);\n }\n\n public static rijwegplanNietGevonden(beweging: Beweging): Message {\n return new Message(Severity.ERROR, `Rijwegplan van PPLG ${ beweging.vanPplg } niet gevonden`);\n }\n\n public static dwangNietGevonden(beweging: Beweging): Message {\n return new Message(Severity.ERROR, `Dwang ${ beweging.dwangNummer } voor rijweg van ${ beweging.vanSpoor } in PPLG ${ beweging.vanPplg } naar ${ beweging.naarSpoor } niet gevonden`);\n }\n\n public static nietGevondenSBI(err: string): Message {\n return new Message(Severity.ERROR, 'Error bij het ophalen van signaleringsbeeldinfo: ' + Utils.getValidErorrMessage(err));\n }\n\n public static actieHighlightError(actieZonderElementen: number[]): Message {\n return new Message(Severity.ERROR, 'Highlight error. Geen elementen kunnen vinden voor actie(s) met id: ' + actieZonderElementen);\n }\n\n public static ritFileAlGewijzigdError(beweging: Beweging): Message {\n return new Message(Severity.ERROR, 'Rit bevat een beweging met status \\'Gewijzigd\\': Beweging met ID:' + beweging.id);\n }\n\n public static meerDan12BladenGevonden(bladAmount: number): Message {\n return new Message(Severity.WARNING, 'Warning, Rit bevat ' + bladAmount + ' bladen. Er worden maximaal 12 bladen ondersteund.');\n }\n\n public static nietGevondenTakkenOngeplandeActies(nietGevondenTakken: string[]): Message {\n return new Message(Severity.INFORMATION, 'Info, Niet gevonden takken uit \\'OngeplandeActies\\': ' + nietGevondenTakken);\n }\n}\n\n","import { HttpParameterCodec } from '@angular/common/http';\n\n/**\n * Custom HttpParameterCodec\n * Workaround for https://github.com/angular/angular/issues/18261\n */\nexport class CustomHttpParameterCodec implements HttpParameterCodec {\n encodeKey(k: string): string {\n return encodeURIComponent(k);\n }\n encodeValue(v: string): string {\n return encodeURIComponent(v);\n }\n decodeKey(k: string): string {\n return decodeURIComponent(k);\n }\n decodeValue(v: string): string {\n return decodeURIComponent(v);\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport const BASE_PATH = new InjectionToken<string>('basePath');\nexport const COLLECTION_FORMATS = {\n 'csv': ',',\n 'tsv': ' ',\n 'ssv': ' ',\n 'pipes': '|'\n}\n","import { HttpParameterCodec } from '@angular/common/http';\nimport { Param } from './param';\n\nexport interface ConfigurationParameters {\n /**\n * @deprecated Since 5.0. Use credentials instead\n */\n apiKeys?: {[ key: string ]: string};\n username?: string;\n password?: string;\n /**\n * @deprecated Since 5.0. Use credentials instead\n */\n accessToken?: string | (() => string);\n basePath?: string;\n withCredentials?: boolean;\n /**\n * Takes care of encoding query- and form-parameters.\n */\n encoder?: HttpParameterCodec;\n /**\n * Override the default method for encoding path parameters in various\n * <a href=\"https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#style-values\">styles</a>.\n * <p>\n * See {@link README.md} for more details\n * </p>\n */\n encodeParam?: (param: Param) => string;\n /**\n * The keys are the names in the securitySchemes section of the OpenAPI\n * document. They should map to the value used for authentication\n * minus any standard prefixes such as 'Basic' or 'Bearer'.\n */\n credentials?: {[ key: string ]: string | (() => string | undefined)};\n}\n\nexport class Configuration {\n /**\n * @deprecated Since 5.0. Use credentials instead\n */\n apiKeys?: {[ key: string ]: string};\n username?: string;\n password?: string;\n /**\n * @deprecated Since 5.0. Use credentials instead\n */\n accessToken?: string | (() => string);\n basePath?: string;\n withCredentials?: boolean;\n /**\n * Takes care of encoding query- and form-parameters.\n */\n encoder?: HttpParameterCodec;\n /**\n * Encoding of various path parameter\n * <a href=\"https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#style-values\">styles</a>.\n * <p>\n * See {@link README.md} for more details\n * </p>\n */\n encodeParam: (param: Param) => string;\n /**\n * The keys are the names in the securitySchemes section of the OpenAPI\n * document. They should map to the value used for authentication\n * minus any standard prefixes such as 'Basic' or 'Bearer'.\n */\n credentials: {[ key: string ]: string | (() => string | undefined)};\n\n constructor(configurationParameters: ConfigurationParameters = {}) {\n this.apiKeys = configurationParameters.apiKeys;\n this.username = configurationParameters.username;\n this.password = configurationParameters.password;\n this.accessToken = configurationParameters.accessToken;\n this.basePath = configurationParameters.basePath;\n this.withCredentials = configurationParameters.withCredentials;\n this.encoder = configurationParameters.encoder;\n if (configurationParameters.encodeParam) {\n this.encodeParam = configurationParameters.encodeParam;\n }\n else {\n this.encodeParam = param => this.defaultEncodeParam(param);\n }\n if (configurationParameters.credentials) {\n this.credentials = configurationParameters.credentials;\n }\n else {\n this.credentials = {};\n }\n\n // init default keycloak_auth credential\n if (!this.credentials['keycloak_auth']) {\n this.credentials['keycloak_auth'] = () => {\n return typeof this.accessToken === 'function'\n ? this.accessToken()\n : this.accessToken;\n };\n }\n }\n\n /**\n * Select the correct content-type to use for a request.\n * Uses {@link Configuration#isJsonMime} to determine the correct content-type.\n * If no content type is found return the first found type if the contentTypes is not empty\n * @param contentTypes - the array of content types that are available for selection\n * @returns the selected content-type or <code>undefined</code> if no selection could be made.\n */\n public selectHeaderContentType (contentTypes: string[]): string | undefined {\n if (contentTypes.length === 0) {\n return undefined;\n }\n\n const type = contentTypes.find((x: string) => this.isJsonMime(x));\n if (type === undefined) {\n return contentTypes[0];\n }\n return type;\n }\n\n /**\n * Select the correct accept content-type to use for a request.\n * Uses {@link Configuration#isJsonMime} to determine the correct accept content-type.\n * If no content type is found return the first found type if the contentTypes is not empty\n * @param accepts - the array of content types that are available for selection.\n * @returns the selected content-type or <code>undefined</code> if no selection could be made.\n */\n public selectHeaderAccept(accepts: string[]): string | undefined {\n if (accepts.length === 0) {\n return undefined;\n }\n\n const type = accepts.find((x: string) => this.isJsonMime(x));\n if (type === undefined) {\n return accepts[0];\n }\n return type;\n }\n\n /**\n * Check if the given MIME is a JSON MIME.\n * JSON MIME examples:\n * application/json\n * application/json; charset=UTF8\n * APPLICATION/JSON\n * application/vnd.company+json\n * @param mime - MIME (Multipurpose Internet Mail Extensions)\n * @return True if the given MIME is JSON, false otherwise.\n */\n public isJsonMime(mime: string): boolean {\n const jsonMime: RegExp = new RegExp('^(application\\/json|[^;/ \\t]+\\/[^;/ \\t]+[+]json)[ \\t]*(;.*)?$', 'i');\n return mime !== null && (jsonMime.test(mime) || mime.toLowerCase() === 'application/json-patch+json');\n }\n\n public lookupCredential(key: string): string | undefined {\n const value = this.credentials[key];\n return typeof value === 'function'\n ? value()\n : value;\n }\n\n private defaultEncodeParam(param: Param): string {\n // This implementation exists as fallback for missing configuration\n // and for backwards compatibility to older typescript-angular generator versions.\n // It only works for the 'simple' parameter style.\n // Date-handling only works for the 'date-time' format.\n // All other styles and Date-formats are probably handled incorrectly.\n //\n // But: if that's all you need (i.e.: the most common use-case): no need for customization!\n\n const value = param.dataFormat === 'date-time' && param.value instanceof Date\n ? (param.value as Date).toISOString()\n : param.value;\n\n return encodeURIComponent(String(value));\n }\n}\n","/**\n * MST\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec, HttpContext \n } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\n// @ts-ignore\nimport { FrontendProperties } from '../model/frontendProperties';\n\n// @ts-ignore\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\nimport {\n AppConfigControllerServiceInterface\n} from './appConfigController.serviceInterface';\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AppConfigControllerService implements AppConfigControllerServiceInterface {\n\n protected basePath = 'http://localhost:8080/mst';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string|string[], @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (Array.isArray(basePath) && basePath.length > 0) {\n basePath = basePath[0];\n }\n\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n // @ts-ignore\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key, (value as Date).toISOString().substring(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Geeft configuratie voor frontend\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getAppConfig(observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext, transferCache?: boolean}): Observable<FrontendProperties>;\n public getAppConfig(observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<FrontendProperties>>;\n public getAppConfig(observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<FrontendProperties>>;\n public getAppConfig(observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n\n let localVarHeaders = this.defaultHeaders;\n\n let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (localVarHttpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (localVarHttpHeaderAcceptSelected !== undefined) {\n localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n }\n\n let localVarHttpContext: HttpContext | undefined = options && options.context;\n if (localVarHttpContext === undefined) {\n localVarHttpContext = new HttpContext();\n }\n\n let localVarTransferCache: boolean | undefined = options && options.transferCache;\n if (localVarTransferCache === undefined) {\n localVarTransferCache = true;\n }\n\n\n let responseType_: 'text' | 'json' | 'blob' = 'json';\n if (localVarHttpHeaderAcceptSelected) {\n if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n responseType_ = 'text';\n } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n responseType_ = 'json';\n } else {\n responseType_ = 'blob';\n }\n }\n\n let localVarPath = `/rest/appconfig`;\n return this.httpClient.request<FrontendProperties>('get', `${this.configuration.basePath}${localVarPath}`,\n {\n context: localVarHttpContext,\n responseType: <any>responseType_,\n withCredentials: this.configuration.withCredentials,\n headers: localVarHeaders,\n observe: observe,\n transferCache: localVarTransferCache,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * MST\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec, HttpContext \n } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\n// @ts-ignore\nimport { BewegingDto } from '../model/bewegingDto';\n// @ts-ignore\nimport { RitRequestDto } from '../model/ritRequestDto';\n\n// @ts-ignore\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\nimport {\n BewegingControllerServiceInterface\n} from './bewegingController.serviceInterface';\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BewegingControllerService implements BewegingControllerServiceInterface {\n\n protected basePath = 'http://localhost:8080/mst';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string|string[], @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (Array.isArray(basePath) && basePath.length > 0) {\n basePath = basePath[0];\n }\n\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n // @ts-ignore\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key, (value as Date).toISOString().substring(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param iaVersie \n * @param ritRequestDto \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public verrijkBewegingenMetOngeplandeActies(iaVersie: string, ritRequestDto: RitRequestDto, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext, transferCache?: boolean}): Observable<Array<BewegingDto>>;\n public verrijkBewegingenMetOngeplandeActies(iaVersie: string, ritRequestDto: RitRequestDto, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<Array<BewegingDto>>>;\n public verrijkBewegingenMetOngeplandeActies(iaVersie: string, ritRequestDto: RitRequestDto, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<Array<BewegingDto>>>;\n public verrijkBewegingenMetOngeplandeActies(iaVersie: string, ritRequestDto: RitRequestDto, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n if (iaVersie === null || iaVersie === undefined) {\n throw new Error('Required parameter iaVersie was null or undefined when calling verrijkBewegingenMetOngeplandeActies.');\n }\n if (ritRequestDto === null || ritRequestDto === undefined) {\n throw new Error('Required parameter ritRequestDto was null or undefined when calling verrijkBewegingenMetOngeplandeActies.');\n }\n\n let localVarHeaders = this.defaultHeaders;\n\n let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (localVarHttpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (localVarHttpHeaderAcceptSelected !== undefined) {\n localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n }\n\n let localVarHttpContext: HttpContext | undefined = options && options.context;\n if (localVarHttpContext === undefined) {\n localVarHttpContext = new HttpContext();\n }\n\n let localVarTransferCache: boolean | undefined = options && options.transferCache;\n if (localVarTransferCache === undefined) {\n localVarTransferCache = true;\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType_: 'text' | 'json' | 'blob' = 'json';\n if (localVarHttpHeaderAcceptSelected) {\n if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n responseType_ = 'text';\n } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n responseType_ = 'json';\n } else {\n responseType_ = 'blob';\n }\n }\n\n let localVarPath = `/rest/beweging/${this.configuration.encodeParam({name: \"iaVersie\", value: iaVersie, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}`;\n return this.httpClient.request<Array<BewegingDto>>('put', `${this.configuration.basePath}${localVarPath}`,\n {\n context: localVarHttpContext,\n body: ritRequestDto,\n responseType: <any>responseType_,\n withCredentials: this.configuration.withCredentials,\n headers: localVarHeaders,\n observe: observe,\n transferCache: localVarTransferCache,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * MST\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec, HttpContext \n } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\n\n// @ts-ignore\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\nimport {\n Class0BuildPropertiesServiceInterface\n} from './class0BuildProperties.serviceInterface';\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class Class0BuildPropertiesService implements Class0BuildPropertiesServiceInterface {\n\n protected basePath = 'http://localhost:8080/mst';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string|string[], @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (Array.isArray(basePath) && basePath.length > 0) {\n basePath = basePath[0];\n }\n\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n // @ts-ignore\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key, (value as Date).toISOString().substring(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getBuildProperties(observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<string>;\n public getBuildProperties(observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<string>>;\n public getBuildProperties(observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<string>>;\n public getBuildProperties(observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n\n let localVarHeaders = this.defaultHeaders;\n\n let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (localVarHttpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (localVarHttpHeaderAcceptSelected !== undefined) {\n localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n }\n\n let localVarHttpContext: HttpContext | undefined = options && options.context;\n if (localVarHttpContext === undefined) {\n localVarHttpContext = new HttpContext();\n }\n\n let localVarTransferCache: boolean | undefined = options && options.transferCache;\n if (localVarTransferCache === undefined) {\n localVarTransferCache = true;\n }\n\n\n let responseType_: 'text' | 'json' | 'blob' = 'json';\n if (localVarHttpHeaderAcceptSelected) {\n if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n responseType_ = 'text';\n } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n responseType_ = 'json';\n } else {\n responseType_ = 'blob';\n }\n }\n\n let localVarPath = `/build.properties`;\n return this.httpClient.request<string>('get', `${this.configuration.basePath}${localVarPath}`,\n {\n context: localVarHttpContext,\n responseType: <any>responseType_,\n withCredentials: this.configuration.withCredentials,\n headers: localVarHeaders,\n observe: observe,\n transferCache: localVarTransferCache,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * MST\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec, HttpContext \n } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\n\n// @ts-ignore\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\nimport {\n ConnectorControllerServiceInterface\n} from './connectorController.serviceInterface';\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ConnectorControllerService implements ConnectorControllerServiceInterface {\n\n protected basePath = 'http://localhost:8080/mst';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string|string[], @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (Array.isArray(basePath) && basePath.length > 0) {\n basePath = basePath[0];\n }\n\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n // @ts-ignore\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key, (value as Date).toISOString().substring(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param iaVersie \n * @param connectorPuic \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getOtherConnector(iaVersie: string, connectorPuic: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext, transferCache?: boolean}): Observable<string>;\n public getOtherConnector(iaVersie: string, connectorPuic: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<string>>;\n public getOtherConnector(iaVersie: string, connectorPuic: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<string>>;\n public getOtherConnector(iaVersie: string, connectorPuic: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n if (iaVersie === null || iaVersie === undefined) {\n throw new Error('Required parameter iaVersie was null or undefined when calling getOtherConnector.');\n }\n if (connectorPuic === null || connectorPuic === undefined) {\n throw new Error('Required parameter connectorPuic was null or undefined when calling getOtherConnector.');\n }\n\n let localVarHeaders = this.defaultHeaders;\n\n let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (localVarHttpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (localVarHttpHeaderAcceptSelected !== undefined) {\n localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n }\n\n let localVarHttpContext: HttpContext | undefined = options && options.context;\n if (localVarHttpContext === undefined) {\n localVarHttpContext = new HttpContext();\n }\n\n let localVarTransferCache: boolean | undefined = options && options.transferCache;\n if (localVarTransferCache === undefined) {\n localVarTransferCache = true;\n }\n\n\n let responseType_: 'text' | 'json' | 'blob' = 'json';\n if (localVarHttpHeaderAcceptSelected) {\n if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n responseType_ = 'text';\n } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n responseType_ = 'json';\n } else {\n responseType_ = 'blob';\n }\n }\n\n 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})}`;\n return this.httpClient.request<string>('get', `${this.configuration.basePath}${localVarPath}`,\n {\n context: localVarHttpContext,\n responseType: <any>responseType_,\n withCredentials: this.configuration.withCredentials,\n headers: localVarHeaders,\n observe: observe,\n transferCache: localVarTransferCache,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * MST\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec, HttpContext \n } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\n// @ts-ignore\nimport { LogDto } from '../model/logDto';\n\n// @ts-ignore\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\nimport {\n LogControllerServiceInterface\n} from './logController.serviceInterface';\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LogControllerService implements LogControllerServiceInterface {\n\n protected basePath = 'http://localhost:8080/mst';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string|string[], @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (Array.isArray(basePath) && basePath.length > 0) {\n basePath = basePath[0];\n }\n\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n // @ts-ignore\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key, (value as Date).toISOString().substring(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param logDto \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public log(logDto: Array<LogDto>, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined, context?: HttpContext, transferCache?: boolean}): Observable<any>;\n public log(logDto: Array<LogDto>, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined, context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<any>>;\n public log(logDto: Array<LogDto>, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined, context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<any>>;\n public log(logDto: Array<LogDto>, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: undefined, context?: HttpContext, transferCache?: boolean}): Observable<any> {\n if (logDto === null || logDto === undefined) {\n throw new Error('Required parameter logDto was null or undefined when calling log.');\n }\n\n let localVarHeaders = this.defaultHeaders;\n\n let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (localVarHttpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n ];\n localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (localVarHttpHeaderAcceptSelected !== undefined) {\n localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n }\n\n let localVarHttpContext: HttpContext | undefined = options && options.context;\n if (localVarHttpContext === undefined) {\n localVarHttpContext = new HttpContext();\n }\n\n let localVarTransferCache: boolean | undefined = options && options.transferCache;\n if (localVarTransferCache === undefined) {\n localVarTransferCache = true;\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType_: 'text' | 'json' | 'blob' = 'json';\n if (localVarHttpHeaderAcceptSelected) {\n if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n responseType_ = 'text';\n } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n responseType_ = 'json';\n } else {\n responseType_ = 'blob';\n }\n }\n\n let localVarPath = `/rest/logging/`;\n return this.httpClient.request<any>('post', `${this.configuration.basePath}${localVarPath}`,\n {\n context: localVarHttpContext,\n body: logDto,\n responseType: <any>responseType_,\n withCredentials: this.configuration.withCredentials,\n headers: localVarHeaders,\n observe: observe,\n transferCache: localVarTransferCache,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * MST\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec, HttpContext \n } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\n\n// @ts-ignore\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\nimport {\n P21ControllerServiceInterface\n} from './p21Controller.serviceInterface';\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class P21ControllerService implements P21ControllerServiceInterface {\n\n protected basePath = 'http://localhost:8080/mst';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string|string[], @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (Array.isArray(basePath) && basePath.length > 0) {\n basePath = basePath[0];\n }\n\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n /**\n * @param consumes string[] mime-types\n * @return true: consumes contains 'multipart/form-data', false: otherwise\n */\n private canConsumeForm(consumes: string[]): boolean {\n const form = 'multipart/form-data';\n for (const consume of consumes) {\n if (form === consume) {\n return true;\n }\n }\n return false;\n }\n\n // @ts-ignore\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key, (value as Date).toISOString().substring(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param p21Levering \n * @param update \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public createP21Levering(p21Levering: Blob, update?: boolean, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext, transferCache?: boolean}): Observable<string>;\n public createP21Levering(p21Levering: Blob, update?: boolean, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<string>>;\n public createP21Levering(p21Levering: Blob, update?: boolean, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<string>>;\n public createP21Levering(p21Levering: Blob, update?: boolean, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n if (p21Levering === null || p21Levering === undefined) {\n throw new Error('Required parameter p21Levering was null or undefined when calling createP21Levering.');\n }\n\n let localVarHeaders = this.defaultHeaders;\n\n let localVarCredential: string | undefined;\n // authentication (keycloak_auth) required\n localVarCredential = this.configuration.lookupCredential('keycloak_auth');\n if (localVarCredential) {\n localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n }\n\n let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (localVarHttpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (localVarHttpHeaderAcceptSelected !== undefined) {\n localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n }\n\n let localVarHttpContext: HttpContext | undefined = options && options.context;\n if (localVarHttpContext === undefined) {\n localVarHttpContext = new HttpContext();\n }\n\n let localVarTransferCache: boolean | undefined = options && options.transferCache;\n if (localVarTransferCache === undefined) {\n localVarTransferCache = true;\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'multipart/form-data'\n ];\n\n const canConsumeForm = this.canConsumeForm(consumes);\n\n let localVarFormParams: { append(param: string, value: any): any; };\n let localVarUseForm = false;\n let localVarConvertFormParamsToString = false;\n // use FormData to transmit files using content-type \"multipart/form-data\"\n // see https://stackoverflow.com/questions/4007969/application-x-www-form-urlencoded-or-multipart-form-data\n localVarUseForm = canConsumeForm;\n if (localVarUseForm) {\n localVarFormParams = new FormData();\n } else {\n localVarFormParams = new HttpParams({encoder: this.encoder});\n }\n\n if (update !== undefined) {\n localVarFormParams = localVarFormParams.append('update', <any>update) as any || localVarFormParams;\n }\n if (p21Levering !== undefined) {\n localVarFormParams = localVarFormParams.append('p21Levering', <any>p21Levering) as any || localVarFormParams;\n }\n\n let responseType_: 'text' | 'json' | 'blob' = 'json';\n if (localVarHttpHeaderAcceptSelected) {\n if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n responseType_ = 'text';\n } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n responseType_ = 'json';\n } else {\n responseType_ = 'blob';\n }\n }\n\n let localVarPath = `/services/secure/rest/backend/uploadversie`;\n return this.httpClient.request<string>('post', `${this.configuration.basePath}${localVarPath}`,\n {\n context: localVarHttpContext,\n body: localVarConvertFormParamsToString ? localVarFormParams.toString() : localVarFormParams,\n responseType: <any>responseType_,\n withCredentials: this.configuration.withCredentials,\n headers: localVarHeaders,\n observe: observe,\n transferCache: localVarTransferCache,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getVersies(observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<Array<string>>;\n public getVersies(observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<Array<string>>>;\n public getVersies(observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<Array<string>>>;\n public getVersies(observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n\n let localVarHeaders = this.defaultHeaders;\n\n let localVarCredential: string | undefined;\n // authentication (keycloak_auth) required\n localVarCredential = this.configuration.lookupCredential('keycloak_auth');\n if (localVarCredential) {\n localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n }\n\n let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (localVarHttpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (localVarHttpHeaderAcceptSelected !== undefined) {\n localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n }\n\n let localVarHttpContext: HttpContext | undefined = options && options.context;\n if (localVarHttpContext === undefined) {\n localVarHttpContext = new HttpContext();\n }\n\n let localVarTransferCache: boolean | undefined = options && options.transferCache;\n if (localVarTransferCache === undefined) {\n localVarTransferCache = true;\n }\n\n\n let responseType_: 'text' | 'json' | 'blob' = 'json';\n if (localVarHttpHeaderAcceptSelected) {\n if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n responseType_ = 'text';\n } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n responseType_ = 'json';\n } else {\n responseType_ = 'blob';\n }\n }\n\n let localVarPath = `/services/secure/rest/backend/versies`;\n return this.httpClient.request<Array<string>>('get', `${this.configuration.basePath}${localVarPath}`,\n {\n context: localVarHttpContext,\n responseType: <any>responseType_,\n withCredentials: this.configuration.withCredentials,\n headers: localVarHeaders,\n observe: observe,\n transferCache: localVarTransferCache,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * MST\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec, HttpContext \n } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\n// @ts-ignore\nimport { SignaleringsbeeldDto } from '../model/signaleringsbeeldDto';\n// @ts-ignore\nimport { SignaleringsbeeldRequestDto } from '../model/signaleringsbeeldRequestDto';\n\n// @ts-ignore\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\nimport {\n SbControllerServiceInterface\n} from './sbController.serviceInterface';\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SbControllerService implements SbControllerServiceInterface {\n\n protected basePath = 'http://localhost:8080/mst';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string|string[], @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (Array.isArray(basePath) && basePath.length > 0) {\n basePath = basePath[0];\n }\n\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n // @ts-ignore\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key, (value as Date).toISOString().substring(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param signaleringsbeeldRequestDto \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getSignaleringsbeelden(signaleringsbeeldRequestDto: SignaleringsbeeldRequestDto, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext, transferCache?: boolean}): Observable<Array<SignaleringsbeeldDto>>;\n public getSignaleringsbeelden(signaleringsbeeldRequestDto: SignaleringsbeeldRequestDto, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<Array<SignaleringsbeeldDto>>>;\n public getSignaleringsbeelden(signaleringsbeeldRequestDto: SignaleringsbeeldRequestDto, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<Array<SignaleringsbeeldDto>>>;\n public getSignaleringsbeelden(signaleringsbeeldRequestDto: SignaleringsbeeldRequestDto, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n if (signaleringsbeeldRequestDto === null || signaleringsbeeldRequestDto === undefined) {\n throw new Error('Required parameter signaleringsbeeldRequestDto was null or undefined when calling getSignaleringsbeelden.');\n }\n\n let localVarHeaders = this.defaultHeaders;\n\n let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (localVarHttpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (localVarHttpHeaderAcceptSelected !== undefined) {\n localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n }\n\n let localVarHttpContext: HttpContext | undefined = options && options.context;\n if (localVarHttpContext === undefined) {\n localVarHttpContext = new HttpContext();\n }\n\n let localVarTransferCache: boolean | undefined = options && options.transferCache;\n if (localVarTransferCache === undefined) {\n localVarTransferCache = true;\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType_: 'text' | 'json' | 'blob' = 'json';\n if (localVarHttpHeaderAcceptSelected) {\n if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n responseType_ = 'text';\n } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n responseType_ = 'json';\n } else {\n responseType_ = 'blob';\n }\n }\n\n let localVarPath = `/rest/signaleringsbeeldeninfo`;\n return this.httpClient.request<Array<SignaleringsbeeldDto>>('post', `${this.configuration.basePath}${localVarPath}`,\n {\n context: localVarHttpContext,\n body: signaleringsbeeldRequestDto,\n responseType: <any>responseType_,\n withCredentials: this.configuration.withCredentials,\n headers: localVarHeaders,\n observe: observe,\n transferCache: localVarTransferCache,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Check of IA versie bestaat\n * @param versie \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public valideerIaVersie(versie: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined, context?: HttpContext, transferCache?: boolean}): Observable<any>;\n public valideerIaVersie(versie: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined, context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<any>>;\n public valideerIaVersie(versie: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined, context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<any>>;\n public valideerIaVersie(versie: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: undefined, context?: HttpContext, transferCache?: boolean}): Observable<any> {\n if (versie === null || versie === undefined) {\n throw new Error('Required parameter versie was null or undefined when calling valideerIaVersie.');\n }\n\n let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n if (versie !== undefined && versie !== null) {\n localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n <any>versie, 'versie');\n }\n\n let localVarHeaders = this.defaultHeaders;\n\n let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (localVarHttpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n ];\n localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (localVarHttpHeaderAcceptSelected !== undefined) {\n localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n }\n\n let localVarHttpContext: HttpContext | undefined = options && options.context;\n if (localVarHttpContext === undefined) {\n localVarHttpContext = new HttpContext();\n }\n\n let localVarTransferCache: boolean | undefined = options && options.transferCache;\n if (localVarTransferCache === undefined) {\n localVarTransferCache = true;\n }\n\n\n let responseType_: 'text' | 'json' | 'blob' = 'json';\n if (localVarHttpHeaderAcceptSelected) {\n if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n responseType_ = 'text';\n } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n responseType_ = 'json';\n } else {\n responseType_ = 'blob';\n }\n }\n\n let localVarPath = `/rest/signaleringsbeeldeninfo/valideeriaversie`;\n return this.httpClient.request<any>('get', `${this.configuration.basePath}${localVarPath}`,\n {\n context: localVarHttpContext,\n params: localVarQueryParameters,\n responseType: <any>responseType_,\n withCredentials: this.configuration.withCredentials,\n headers: localVarHeaders,\n observe: observe,\n transferCache: localVarTransferCache,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","export * from './appConfigController.service';\nimport { AppConfigControllerService } from './appConfigController.service';\nexport * from './appConfigController.serviceInterface';\nexport * from './bewegingController.service';\nimport { BewegingControllerService } from './bewegingController.service';\nexport * from './bewegingController.serviceInterface';\nexport * from './class0BuildProperties.service';\nimport { Class0BuildPropertiesService } from './class0BuildProperties.service';\nexport * from './class0BuildProperties.serviceInterface';\nexport * from './connectorController.service';\nimport { ConnectorControllerService } from './connectorController.service';\nexport * from './connectorController.serviceInterface';\nexport * from './logController.service';\nimport { LogControllerService } from './logController.service';\nexport * from './logController.serviceInterface';\nexport * from './p21Controller.service';\nimport { P21ControllerService } from './p21Controller.service';\nexport * from './p21Controller.serviceInterface';\nexport * from './sbController.service';\nimport { SbControllerService } from './sbController.service';\nexport * from './sbController.serviceInterface';\nexport const APIS = [AppConfigControllerService, BewegingControllerService, Class0BuildPropertiesService, ConnectorControllerService, LogControllerService, P21ControllerService, SbControllerService];\n","/**\n * MST\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface ActieDto { \n id?: number;\n bewegingId?: number;\n volgnummerBinnenBeweging?: number;\n volgnummerBinnenPlanningsRegel?: number;\n ritActieTypeId?: number;\n ritActieTypeOmschrijving?: string;\n planningsRegelId?: number;\n infraObjectType?: string;\n iaGebiedType?: string;\n iaGebiedNaam?: string;\n pplgNaam?: string;\n wisselType?: string;\n wisselNaam?: string;\n wisselKantCode?: string;\n vanKilometerlint?: string;\n vanKilometrering?: number;\n totKilometerlint?: string;\n totKilometrering?: number;\n werkorderId?: string;\n infraBron?: string;\n opmerking?: string;\n ritActieStatus?: string;\n}\n\n","/**\n * MST\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface AlgemeneRitDto { \n id?: string;\n jaarplanId?: string;\n volgnummer?: string;\n machineTypeId?: string;\n machineTypeOmschrijving?: string;\n ritDatum?: string;\n startDatum?: string;\n eindDatum?: string;\n ritNaam?: string;\n startLocatie?: string;\n eindLocatie?: string;\n ritStatus?: string;\n modified?: string;\n modifiedBy?: string;\n planJobId?: string;\n}\n\n","/**\n * MST\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface FrontendKeycloakConfig { \n clientId?: string;\n realm?: string;\n url?: string;\n}\n\n","/**\n * MST\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface SignaleringsbeeldDto { \n bladNaam?: string;\n pplgs?: Array<string>;\n metVisualisatie?: boolean;\n}\n\n","/**\n * MST\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface SignaleringsbeeldRequestDto { \n pplgs?: Array<string>;\n versie?: string;\n ingangsDatum?: string;\n}\n\n","import { NgModule, ModuleWithProviders, SkipSelf, Optional } from '@angular/core';\nimport { Configuration } from './configuration';\nimport { HttpClient } from '@angular/common/http';\n\n\n@NgModule({\n imports: [],\n declarations: [],\n exports: [],\n providers: []\n})\nexport class ApiModule {\n public static forRoot(configurationFactory: () => Configuration): ModuleWithProviders<ApiModule> {\n return {\n ngModule: ApiModule,\n providers: [ { provide: Configuration, useFactory: configurationFactory } ]\n };\n }\n\n constructor( @Optional() @SkipSelf() parentModule: ApiModule,\n @Optional() http: HttpClient) {\n if (parentModule) {\n throw new Error('ApiModule is already loaded. Import in your base AppModule only.');\n }\n if (!http) {\n throw new Error('You need to import the HttpClientModule in your AppModule! \\n' +\n 'See also https://github.com/angular/angular/issues/20575');\n }\n }\n}\n","import { Injectable, OnDestroy } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { Subscription } from 'rxjs';\nimport { LogControllerService, LogDto } from '../../generated/openapi';\nimport { MstEditorState } from '../state/mst-editor-state';\n\n@Injectable()\nexport class MstLoggingResource implements OnDestroy {\n\n private subscriptions: Subscription = new Subscription();\n\n constructor(private readonly controller: LogControllerService, private readonly store: Store<MstEditorState>) {\n this.subscriptions.add(this.store.select('baseUrl').subscribe(baseUrl => controller.configuration.basePath = baseUrl + '/mst'));\n }\n\n ngOnDestroy(): void {\n this.subscriptions.unsubscribe();\n }\n\n public logMessages(logDto: LogDto[]): void {\n this.controller.log(logDto).subscribe();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { take } from 'rxjs/operators';\nimport { ActieDto, AlgemeneRitDto, LogDto } from '../../generated/openapi';\nimport { MeldingEvent } from '../model/melding-event';\nimport { Actie } from '../optimo';\nimport { SignaleringsbeeldInfoDto } from '../resources/signaleringsbeeldinfo.resource';\nimport { MstEditorState } from '../state/mst-editor-state';\n\n@Injectable()\nexport class LoggingHelper {\n\n constructor(private readonly store: Store<MstEditorState>) {\n }\n\n public maakLogDTO(melding: MeldingEvent, actie: Actie): LogDto {\n let iaVersie = '';\n let algemeneRitInfoDto: AlgemeneRitDto = null;\n let actieDto: ActieDto = null;\n\n this.store.select('algemeneRitInfoDto').pipe(take(1)).subscribe(dto => {\n algemeneRitInfoDto = dto;\n });\n this.store.select('iaVersie').pipe(take(1)).subscribe(ia => {\n iaVersie = ia.versie;\n });\n\n if (actie) {\n actieDto = {\n pplgNaam: actie.pplgNaam,\n ritActieTypeOmschrijving: actie.ritActieTypeOmschrijving,\n ritActieStatus: actie.ritActieStatus,\n bewegingId: actie.bewegingId,\n wisselType: actie.wisselType,\n wisselNaam: actie.wisselNaam,\n wisselKantCode: actie.wisselKantCode,\n vanKilometerlint: actie.vanKilometerlint,\n vanKilometrering: actie.vanKilometrering,\n totKilometerlint: actie.totKilometerlint,\n totKilometrering: actie.totKilometrering\n } as ActieDto;\n }\n return {\n iaVersie,\n meldingLevel: melding.meldingLevel,\n meldingMessage: melding.meldingMessage,\n actieDto,\n algemeneRitInfoDto,\n sbinfoDtos: this.getSbInfoDtos()\n } as LogDto;\n }\n\n public getSbInfoDtos(): SignaleringsbeeldInfoDto[] {\n const sbInfoDtos: SignaleringsbeeldInfoDto[] = [];\n this.store.select('visibleSbInfoDtos').pipe(take(1)).subscribe(dtos => {\n dtos.forEach(d => {\n sbInfoDtos.push(d as SignaleringsbeeldInfoDto);\n });\n });\n return sbInfoDtos;\n }\n}\n\n\n","import { Injectable } from '@angular/core';\nimport { JsJavaUtil, sbblad } from '@loxia/rijwegen';\nimport { Store } from '@ngrx/store';\nimport { LogDto } from '../../generated/openapi';\nimport { MessagesService } from '../atomic-components/services/messages.service';\nimport { KmRange } from '../model/km-range';\nimport { MeldingEvent } from '../model/melding-event';\nimport { Ritdeel } from '../model/ritdeel';\nimport { WisselKantCode } from '../model/wissel-kant-code';\nimport { Actie } from '../optimo';\nimport { MstLoggingResource } from '../resources/mstlogging.resource';\nimport { SignaleringsBeeldManagerService } from '../services/signalerings-beeld-manager.service';\nimport { MstEditorState } from '../state/mst-editor-state';\nimport { LoggingHelper } from './logging-helper';\nimport { MeldingBuilder } from './melding-builder';\nimport { MessageBuilder } from './message-builder';\nimport { ArrayMultimap } from './multi-map';\nimport Kilometrering = sbblad.Kilometrering;\nimport TopologyElement = sbblad.TopologyElement;\n\n/**\n * export const RIT_ACTIE_1 = 1;\n * export const RIT_ACTIE_SLIJPEN_VIADUCT_KLEIN = 2;\n * export const RIT_ACTIE_SLIJPEN_BOOG = 3;\n */\nexport const RIT_ACTIE_SLIJPEN_WISSEL_KLEIN = 4;\nexport const RIT_ACTIE_SLIJPEN_WISSEL_GROOT = 5;\n/**\n * export const RIT_ACTIE_SLIJPEN_OVERWEG = 6;\n * export const RIT_ACTIE_SLIJPEN_BRUG_GROOT = 7;\n * export const RIT_ACTIE_SLIJPEN_BRUG_KLEIN = 8;\n * export const RIT_ACTIE_SLIJPEN_SPOORTAK = 9;\n */\nexport const RIT_ACTIE_VST = 10;\n/**\n * export const RIT_ACTIE_BVLBLD_T = 11;\n * export const RIT_ACTIE_SLIJPEN_VIADUCT_GROOT = 12;\n * export const RIT_ACTIE_PANTCONT_T = 13;\n * export const RIT_ACTIE_RIJDRLIG_T = 14;\n * export const RIT_ACTIE_SPSTLAPR_T = 15;\n * export const RIT_ACTIE_SPSTOPPDEF_T = 16;\n * export const RIT_ACTIE_SPSTOPPBLD_T = 17;\n * export const RIT_ACTIE_SPSTDEF_T = 18;\n * export const RIT_ACTIE_SPSTDWPR_T = 19;\n * export const RIT_ACTIE_BAANBLD_T = 20;\n * export const RIT_ACTIE_SPGEOM_T = 21;\n * export const RIT_ACTIE_22 = 22;\n * export const RIT_ACTIE_23 = 23;\n * export const RIT_ACTIE_RIJDRDIK_T = 24;\n * export const RIT_ACTIE_SLIJPEN_TUNNEL = 25;\n */\nexport const RIT_ACTIE_SLIJPEN_WISSEL_1_OP_2_KOMMA_5 = 26;\nexport const RIT_ACTIE_SLIJPEN_WISSEL_1_OP_29 = 27;\nexport const RIT_ACTIE_SLIJPEN_WISSEL_1_OP_20 = 28;\nexport const RIT_ACTIE_SLIJPEN_WISSEL_1_OP_18_KOMMA_5 = 29;\nexport const RIT_ACTIE_SLIJPEN_WISSEL_1_OP_18 = 30;\nexport const RIT_ACTIE_SLIJPEN_WISSEL_1_OP_15 = 31;\nexport const RIT_ACTIE_SLIJPEN_WISSEL_1_OP_12 = 32;\nexport const RIT_ACTIE_SLIJPEN_WISSEL_1_OP_10 = 33;\nexport const RIT_ACTIE_SLIJPEN_WISSEL_1_OP_34_KOMMA_7 = 34;\nexport const RIT_ACTIE_SLIJPEN_WISSEL_1_OP_9 = 35;\nexport const RIT_ACTIE_SLIJPEN_WISSEL_1_OP_7_KOMMA_5 = 36;\nexport const RIT_ACTIE_SLIJPEN_WISSEL_1_OP_7 = 37;\nexport const RIT_ACTIE_SLIJPEN_WISSEL_1_OP_6 = 38;\nexport const RIT_ACTIE_SLIJPEN_WISSEL_1_OP_5 = 39;\nexport const RIT_ACTIE_SLIJPEN_WISSEL_1_OP_4_KOMMA_5 = 40;\nexport const RIT_ACTIE_SLIJPEN_WISSEL_1_OP_4 = 41;\nexport const RIT_ACTIE_SLIJPEN_WISSEL_1_OP_3_KOMMA_5 = 42;\nexport const RIT_ACTIE_SLIJPEN_WISSEL_1_OP_8 = 43;\nexport const RIT_ACTIE_SLIJPEN_WISSEL_1_OP_39_KOMMA_1 = 44;\n\nexport class MstKilometrering implements sbblad.Kilometrering {\n constructor(private readonly kmLint: string, private readonly kmWaarde: number) {\n }\n\n getKmLint(): string {\n return this.kmLint;\n }\n\n getKmWaarde(): number {\n return this.kmWaarde;\n }\n}\n\n@Injectable()\nexport class ActieHelper {\n static readonly HALF_ENGELS_WISSEL = 'HalveEngelseWissel';\n static readonly ENGELS_WISSEL = 'EngelseWissel';\n static readonly SLIJPEN_WISSEL_ACTIES = [\n RIT_ACTIE_SLIJPEN_WISSEL_KLEIN,\n RIT_ACTIE_SLIJPEN_WISSEL_GROOT,\n RIT_ACTIE_SLIJPEN_WISSEL_1_OP_2_KOMMA_5,\n RIT_ACTIE_SLIJPEN_WISSEL_1_OP_29,\n RIT_ACTIE_SLIJPEN_WISSEL_1_OP_20,\n RIT_ACTIE_SLIJPEN_WISSEL_1_OP_18_KOMMA_5,\n RIT_ACTIE_SLIJPEN_WISSEL_1_OP_18,\n RIT_ACTIE_SLIJPEN_WISSEL_1_OP_15,\n RIT_ACTIE_SLIJPEN_WISSEL_1_OP_12,\n RIT_ACTIE_SLIJPEN_WISSEL_1_OP_10,\n RIT_ACTIE_SLIJPEN_WISSEL_1_OP_34_KOMMA_7,\n RIT_ACTIE_SLIJPEN_WISSEL_1_OP_9,\n RIT_ACTIE_SLIJPEN_WISSEL_1_OP_7_KOMMA_5,\n RIT_ACTIE_SLIJPEN_WISSEL_1_OP_7,\n RIT_ACTIE_SLIJPEN_WISSEL_1_OP_6,\n RIT_ACTIE_SLIJPEN_WISSEL_1_OP_5,\n RIT_ACTIE_SLIJPEN_WISSEL_1_OP_4_KOMMA_5,\n RIT_ACTIE_SLIJPEN_WISSEL_1_OP_4,\n RIT_ACTIE_SLIJPEN_WISSEL_1_OP_3_KOMMA_5,\n RIT_ACTIE_SLIJPEN_WISSEL_1_OP_8,\n RIT_ACTIE_SLIJPEN_WISSEL_1_OP_39_KOMMA_1];\n\n private debug: boolean;\n\n constructor(private readonly sbmService: SignaleringsBeeldManagerService,\n private readonly mstLogResource: MstLoggingResource,\n private readonly messagesService: MessagesService,\n private readonly store: Store<MstEditorState>,\n private readonly loggingHelper: LoggingHelper) {\n this.store.select('debug').subscribe(debug => this.debug = debug);\n }\n\n public static getActieTopoElements(ritDeel: Ritdeel, sbmService: SignaleringsBeeldManagerService): TopologyElement[] {\n const actieTopoElements = ritDeel.getTopologieElementen().slice();\n const extraTopoElement = ActieHelper.getVoorSectieVanBeginSein(ritDeel, sbmService);\n if (extraTopoElement) {\n actieTopoElements.splice(0, 0, extraTopoElement);\n }\n return actieTopoElements;\n }\n\n static isVSTActie(actie): boolean {\n return actie.ritActieTypeId === RIT_ACTIE_VST;\n }\n\n static isWisselSlijpenActie(actie): boolean {\n return this.SLIJPEN_WISSEL_ACTIES.indexOf(actie.ritActieTypeId) >= 0;\n }\n\n static bepaalTakId(actie): string {\n return actie.pplgNaam + '-' + actie.wisselNaam + '-' + actie.wisselKantCode;\n }\n\n static isHeelOfHalfEngelsWisselActie(actie: Actie): boolean {\n return actie.infraObjectType === this.HALF_ENGELS_WISSEL || actie.infraObjectType === this.ENGELS_WISSEL;\n }\n\n static getVSTActieOmschrijving(actie: Actie): string {\n if (this.isEngelseWissel(actie)) {\n const wisselNamen = this.getWisselDelen(actie.wisselNaam);\n const kantCodes = this.getKantCodes(actie.wisselKantCode);\n return `VST ${ wisselNamen[0] } ${ kantCodes[0] } - ${ wisselNamen[1] } ${ kantCodes[1] }`;\n } else {\n return `VST ${ actie.wisselNaam } ${ ActieHelper.getKantcodeTekst(actie.wisselKantCode) }`;\n }\n }\n\n public static actieComparator(actie1: Actie, actie2: Actie): number {\n if (actie1.vanKilometrering !== actie2.vanKilometrering) {\n return actie1.vanKilometrering > actie2.vanKilometrering ? 1 : -1;\n }\n if (actie1.ritActieTypeOmschrijving !== actie2.ritActieTypeOmschrijving) {\n return actie1.ritActieTypeOmschrijving > actie2.ritActieTypeOmschrijving ? 1 : -1;\n }\n if (actie1.wisselNaam !== actie2.wisselNaam) {\n return actie1.wisselNaam > actie2.wisselNaam ? 1 : -1;\n }\n if (actie1.wisselKantCode !== actie2.wisselKantCode) {\n return actie1.wisselKantCode > actie2.wisselKantCode ? 1 : -1;\n }\n return 0;\n }\n\n static getWisselKantCodes(actie: Actie): WisselKantCode[] {\n const wisselKantCodes: WisselKantCode[] = [];\n\n const namen = this.getWisselDelen(actie.wisselNaam);\n const kantCodes = this.getKantCodes(actie.wisselKantCode);\n for (let i = 0; i < namen.length; i++) {\n wisselKantCodes.push(new WisselKantCode(namen[i], kantCodes[i]));\n }\n\n return wisselKantCodes;\n }\n\n static getWisselDelen(wisselNaam: string): string[] {\n return wisselNaam.split('|');\n }\n\n static getKantCodes(kantCodes: string): string[] {\n if (kantCodes.length === 2) {\n return [kantCodes.charAt(0), kantCodes.charAt(1)];\n }\n return [kantCodes];\n }\n\n private static getVoorSectieVanBeginSein(ritDeel: Ritdeel, sbmService: SignaleringsBeeldManagerService): TopologyElement {\n // RPE toont een rijweg vanaf de sectiescheiding behorend bij het beginsein. MST levert bewegingen waarbij acties gedaan moeten\n // worden tussen het beginsein en de genoemde sectiescheiding. Om deze te kunnen tonen voegen we de voorsectie van het beginsein\n // toe aan de lijst met route elementen.\n const beginRouteSein = ritDeel.getRoute().getBeginSein();\n const sbSein = sbmService.getSBSein(beginRouteSein);\n return sbSein ? sbSein.getVoorSectie() : null;\n }\n\n// make sure the elems are sorted in ascending order\n private static sorteerTopoElementen(topoElems: sbblad.TopologyElement[]): sbblad.TopologyElement[] {\n const topoElementen = topoElems.slice();\n let lint = null;\n let first = null;\n let second = null;\n\n for (const topoElement of topoElementen) {\n let kilometreringen = null;\n\n const kms = JsJavaUtil.listToArray(topoElement.getKilometreringen());\n if (kms !== null && kms.length > 0) {\n kilometreringen = kms;\n }\n\n if (kilometreringen && !first) {\n first = kilometreringen[0].getKmWaarde();\n lint = kilometreringen[0].getKmLint();\n } else if (kilometreringen && first && !second) {\n const km = KmRange.getKilometrering(lint, kilometreringen);\n if (km) {\n second = km.getKmWaarde();\n }\n }\n if (first && second && first > second) {\n topoElementen.reverse();\n break;\n }\n }\n return topoElementen;\n }\n\n private static corrigeerTopoElementenZonderKms(topoElementenZonderKms, vanKilometreringen: sbblad.Kilometrering[],\n totKilometreringen: sbblad.Kilometrering[], kmRanges: KmRange[]): void {\n topoElementenZonderKms.forEach(e => {\n if (!vanKilometreringen && totKilometreringen) {\n vanKilometreringen = [new MstKilometrering(totKilometreringen[0].getKmLint(), -100000)];\n }\n if (!totKilometreringen && vanKilometreringen) {\n totKilometreringen = [new MstKilometrering(vanKilometreringen[0].getKmLint(), 100000)];\n }\n\n if (vanKilometreringen[0] > totKilometreringen[0]) {\n kmRanges.push(KmRange.rangeVoorStrekObject(e, this.addKm(vanKilometreringen, -1), this.addKm(totKilometreringen, 1)));\n } else {\n kmRanges.push(KmRange.rangeVoorStrekObject(e, this.addKm(vanKilometreringen, 1), this.addKm(totKilometreringen, -1)));\n }\n });\n }\n\n private static addKm(kms: Kilometrering[], aantal: number): Kilometrering[] {\n const retval = [];\n for (const km of kms) {\n retval.push(new MstKilometrering(km.getKmLint(), km.getKmWaarde() + aantal));\n }\n return retval;\n }\n\n private static kanActiesBepalen(ritdeel: Ritdeel): Actie[] {\n return ritdeel.isZichtbaar() && ritdeel.acties;\n }\n\n private static isKilometreringAanwezig(fragmenten: sbblad.TopologyElement[]): boolean {\n let aanwezig = false;\n for (const fragment of fragmenten) {\n const kms = JsJavaUtil.listToArray(fragment.getKilometreringen());\n if (kms !== null && kms.length > 0) {\n aanwezig = true;\n break;\n }\n }\n return aanwezig;\n }\n\n private static bepaalSpoortakFragmenten(spoortak: sbblad.Spoortak): sbblad.TopologyElement[] {\n return JsJavaUtil.listToArray(spoortak.getTakElementen());\n }\n\n private static bepaalSpoortakFragmentenPuics(fragmenten: sbblad.TopologyElement[]): string[] {\n const puics = [];\n fragmenten.forEach(deel => puics.push(deel.getPuic()));\n return puics;\n }\n\n private static isEngelseWissel(actie: Actie): boolean {\n return actie.wisselNaam.includes('|') && actie.wisselKantCode.length === 2;\n }\n\n private static getKantcodeTekst(kantcode: string): string {\n let tekst = 'Voor';\n if (this.isKantCodeLinks(kantcode)) {\n tekst = 'Links';\n } else if (this.isKantCodeRechts(kantcode)) {\n tekst = 'Rechts';\n }\n return tekst;\n }\n\n private static isKantCodeRechts(kantcode: string): boolean {\n return kantcode === 'R';\n }\n\n private static isKantCodeLinks(kantcode: string): boolean {\n return kantcode === 'L';\n }\n\n bepaalPuicsVoorActie(actie: Actie): string[] {\n let puics;\n if (ActieHelper.isVSTActie(actie)) {\n puics = this.bepaalPuicsVoorVSTActie(actie);\n } else if (ActieHelper.isWisselSlijpenActie(actie)) {\n puics = this.bepaalPuicVoorWisselSlijpenActie(actie);\n } else {\n puics = this.bepaalActiePuicsVoorSpoortak(actie);\n }\n return puics;\n }\n\n bepaalActiePuicsUitRitdeel(ritDeel): ArrayMultimap<Actie, string> {// voor highlights\n const map = new ArrayMultimap<Actie, string>();\n if (ActieHelper.kanActiesBepalen(ritDeel)) {\n ritDeel.acties.forEach(a => {\n map.putAll(a, this.bepaalPuicsVoorActie(a));\n });\n }\n return map;\n }\n\n bepaalActiesPuics(acties: Actie[], topoElem: TopologyElement[]): ArrayMultimap<Actie, string> {\n const topoElementen = ActieHelper.sorteerTopoElementen(topoElem);\n\n const kmRanges = this.verwerkTopoElementen(topoElementen);\n return this.verwerkActies(acties, kmRanges);\n }\n\n private verwerkActies(acties: Actie[], kmRanges: KmRange[]): ArrayMultimap<Actie, string> {\n const actieZonderElementen: number[] = [];\n const logMeldingDTOs: LogDto[] = [];\n\n const retval = new ArrayMultimap<Actie, string>();\n acties.forEach(actie => {\n if (ActieHelper.isWisselSlijpenActie(actie)) {\n const puicArray = this.bepaalPuicVoorWisselSlijpenActie(actie);\n retval.putAll(actie, puicArray);\n } else {\n const puics = [];\n kmRanges.forEach(kmRange => {\n let vanKilometrering = new MstKilometrering(actie.vanKilometerlint, actie.vanKilometrering);\n let totKilometrering = new MstKilometrering(actie.totKilometerlint, actie.totKilometrering);\n if (actie.vanKilometrering > actie.totKilometrering) {\n const temp = { van: vanKilometrering, tot: totKilometrering };\n vanKilometrering = temp.tot;\n totKilometrering = temp.van;\n }\n if (kmRange.heeftOverlap(vanKilometrering, totKilometrering)) {\n puics.push(kmRange.topologyElement.getPuic());\n }\n });\n if (puics.length === 0) {\n actieZonderElementen.push(actie.id);\n const melding: MeldingEvent = MeldingBuilder.actieHighlightError(actieZonderElementen);\n logMeldingDTOs.push(this.loggingHelper.maakLogDTO(melding, actie));\n }\n retval.putAll(actie, puics);\n }\n });\n this.logLegeMeldingDto(logMeldingDTOs);\n return retval;\n }\n\n private logLegeMeldingDto(logDto: LogDto[]): void {\n if (logDto.length > 0) {\n return this.mstLogResource.logMessages(logDto);\n }\n }\n\n private verwerkTopoElementen(topoElementen: sbblad.TopologyElement[]): KmRange[] {\n const kmRanges: KmRange[] = [];\n\n let topoElementenZonderKms = [];\n let laatstePuntKms: Kilometrering[] = null;\n topoElementen.forEach(elem => {\n const kms: Kilometrering[] = JsJavaUtil.listToArray(elem.getKilometreringen());\n if (kms.length > 0) {\n ActieHelper.corrigeerTopoElementenZonderKms(topoElementenZonderKms, laatstePuntKms, kms, kmRanges);\n topoElementenZonderKms = [];\n kmRanges.push(KmRange.rangeVoorPuntObject(elem));\n laatstePuntKms = kms;\n } else {\n topoElementenZonderKms.push(elem);\n }\n });\n if (topoElementenZonderKms.length > 0 && laatstePuntKms) {\n ActieHelper.corrigeerTopoElementenZonderKms(topoElementenZonderKms, laatstePuntKms, null, kmRanges);\n }\n return kmRanges;\n }\n\n private bepaalActiePuicsVoorSpoortak(actie: Actie): string[] {\n const spoortak = this.sbmService.getSbSpoortak(ActieHelper.bepaalTakId(actie));\n\n let puics = [];\n if (!spoortak) {\n return puics;\n }\n const fragmenten = ActieHelper.bepaalSpoortakFragmenten(spoortak);\n if (ActieHelper.isKilometreringAanwezig(fragmenten)) {\n const map = this.bepaalActiesPuics([actie], fragmenten);\n for (const key of Array.from(map.keys())) {\n map.get(key).forEach(x => puics.push(x));\n }\n } else {\n puics = ActieHelper.bepaalSpoortakFragmentenPuics(fragmenten);\n }\n return puics;\n }\n\n private bepaalPuicsVoorVSTActie(actie: Actie): string[] {\n if (ActieHelper.isHeelOfHalfEngelsWisselActie(actie)) {\n const retval = [];\n const wisselDelen = ActieHelper.getWisselDelen(actie.wisselNaam);\n const puicsEersteWissel = this.bepaalWisselPuics(wisselDelen[0], actie.pplgNaam, actie.wisselKantCode[0]);\n const puicsTweedeWissel = this.bepaalWisselPuics(wisselDelen[1], actie.pplgNaam, actie.wisselKantCode[1]);\n\n const puic1 = this.sbmService.getEersteVerbindingPuicVoorSplitEngelseWissel(wisselDelen[0], actie.wisselKantCode[0]);\n if (puic1 !== '') {\n retval.push(puic1);\n }\n const puic2 = this.sbmService.getEersteVerbindingPuicVoorSplitEngelseWissel(wisselDelen[1], actie.wisselKantCode[1]);\n if (puic2 !== '') {\n retval.push(puic2);\n }\n retval.push(...puicsEersteWissel);\n retval.push(...puicsTweedeWissel);\n return retval;\n } else {\n return this.bepaalWisselPuics(actie.wisselNaam, actie.pplgNaam, actie.wisselKantCode);\n }\n }\n\n private bepaalWisselPuics(wisselNaam: string, pplgNaam: string, kantcode: string): string[] {\n const wissel = this.sbmService.getSBWissel(wisselNaam, pplgNaam);\n if (!wissel) {\n return [];\n }\n const kantElement = this.bepaalKantElement(kantcode, wissel);\n if (!kantElement) {\n return [];\n }\n const storingSymboolPuic = wissel.getStoringSymboolPuic();\n\n return [storingSymboolPuic, kantElement.getPuic()];\n }\n\n private bepaalKantElement(kantcode: string, wissel: sbblad.Wissel): sbblad.SpoortakFragment {\n if (ActieHelper.isKantCodeRechts(kantcode)) {\n return wissel.getRight();\n }\n if (ActieHelper.isKantCodeLinks(kantcode)) {\n return wissel.getLeft();\n }\n return null;\n }\n\n private bepaalPuicVoorWisselSlijpenActie(actie: Actie): string[] {\n const storingsSymboolPuic = this.sbmService.getSBWissel(actie.wisselNaam, actie.pplgNaam)?.getStoringSymboolPuic();\n if (!storingsSymboolPuic && this.debug) {\n const melding: MeldingEvent = MeldingBuilder.actieHighlightError([actie.id]);\n this.messagesService.showMessage(MessageBuilder.actieHighlightError([actie.id]));\n this.mstLogResource.logMessages([this.loggingHelper.maakLogDTO(melding, actie)]);\n }\n return storingsSymboolPuic ? [storingsSymboolPuic] : [];\n }\n}\n\n\n","import {ChangeDetectionStrategy, Component, EventEmitter, Input, OnDestroy, Output} from '@angular/core';\nimport {domein, JsJavaUtil} from '@loxia/rijwegen';\nimport {Store} from '@ngrx/store';\nimport {combineLatest, Subscription} from 'rxjs';\nimport {filter} from 'rxjs/operators';\nimport {OngeplandeActie} from '../../model/ongeplande-actie';\nimport {Ritdeel} from '../../model/ritdeel';\nimport {Actie} from '../../optimo';\nimport {SignaleringsBeeldManagerService} from '../../services/signalerings-beeld-manager.service';\nimport * as MstActions from '../../state/actions/actions';\nimport * as RitdelenActions from '../../state/actions/ritdelen.actions';\nimport {MstEditorState} from '../../state/mst-editor-state';\nimport {ActieHelper} from '../../util/actie-helper';\nimport {ArrayMultimap} from '../../util/multi-map';\n\n@Component({\n selector: 'ritdelen-lijst',\n templateUrl: './ritdelen-lijst.component.html',\n styleUrls: ['./ritdelen-lijst.component.scss'],\n changeDetection: ChangeDetectionStrategy.Default,\n standalone: false\n})\nexport class RitdelenLijstComponent implements OnDestroy {\n @Input() nietGeplandeActies: Actie[];\n\n @Output() focusEmitter = new EventEmitter<Ritdeel>();\n @Output() keurAlleActiesGoed = new EventEmitter();\n\n ritdeelViewModels: RitdeelViewModel[];\n selectedRitdeel: Ritdeel;\n selectedRitdeelActies: Actie[] = [];\n selectedRitdeelOngeplandeActies: OngeplandeActie[] = [];\n disableActieKnoppenVanRitdeel: boolean;\n editable: boolean;\n\n private ongeplandeActiesMap: ArrayMultimap<string, OngeplandeActie>;\n private geplandeActies: ArrayMultimap<Actie, string>;\n private readonly NG_ACTIE_PREFIX = '* ';\n private readonly subscriptions: Subscription[] = [];\n\n constructor(private readonly store: Store<MstEditorState>, private readonly sbmService: SignaleringsBeeldManagerService) {\n this.subscriptions.push(store.select('ritDelen').subscribe((ritdelen) => {\n this.ritdeelViewModels = ritdelen?.map(ritdeel => {\n return new RitdeelViewModel(\n ritdeel,\n this.selectedRitdeelClass(ritdeel),\n this.isRitdeelZichtbaar(ritdeel),\n this.getTitle(ritdeel),\n ritdeel.isNietBeschikbaar(),\n this.isRitdeelNieuw(ritdeel),\n ritdeel.getVanPrlSpoor(),\n ritdeel.getNaarPrlSpoorText(),\n ritdeel.getDwangNummer(),\n ritdeel.getPplgString(),\n this.getTreinNummer(ritdeel));\n })\n }));\n this.subscriptions.push(store.select('ongeplandeActies').subscribe(acties => this.ongeplandeActiesMap = acties));\n this.subscriptions.push(store.select('geplandeActies').subscribe(acties => this.geplandeActies = acties));\n this.subscriptions.push(store.select('editable').subscribe(editable => this.editable = editable));\n\n // listen to changes from svg-viewer-component, saving ritdeel in store isn't cool because of all the gwt in it. This is\n // just to make changes within the angular lifecycle.\n this.subscriptions.push(store.select('selectedRitdeelId').pipe(\n filter(id => !id)).subscribe(this.deselectRitdeel\n ));\n\n this.subscriptions.push(\n combineLatest([\n this.store.select('ritDelen'),\n this.store.select('ongeplandeActies')]\n ).subscribe(() => this.updateOngeplandeActiesList()));\n }\n\n ngOnDestroy(): void {\n this.subscriptions.forEach(s => s.unsubscribe());\n }\n\n isRitdeelZichtbaar(ritdeel: Ritdeel): boolean {\n return ritdeel.isZichtbaar();\n }\n\n toggleRitdeelZichtbaarheid(ritdeel: Ritdeel): void {\n this.deselectRitdeel();\n this.store.dispatch(RitdelenActions.toggleRitdeelZichtbaar(ritdeel));\n }\n\n toggleZichtbaarheidAlleRitdelen(checked: boolean): void {\n this.deselectRitdeel();\n this.store.dispatch(RitdelenActions.setZichtbaarheidAlleRitdelen(checked));\n }\n\n isRitdeelNieuw(ritdeel: Ritdeel): string {\n return ritdeel.isNieuw() ? '+' : '';\n }\n\n getTitle(ritdeel: Ritdeel): string {\n return ritdeel.getBewegingId();\n }\n\n getTreinNummer(ritdeel: Ritdeel): string {\n return ritdeel.getTreinNummer();\n }\n\n deleteRitdeel(ritdeel: Ritdeel): void {\n ritdeel.acties.forEach(actie => {\n this.verhuisActieNaarOngepland(actie);\n });\n this.deselectRitdeel();\n this.store.dispatch(RitdelenActions.deleteRitdeel(ritdeel));\n }\n\n deleteActiesUitRit(): void {\n this.selectedRitdeel.acties.slice().forEach(actie => {\n this.deleteActieUitRit(actie);\n });\n }\n\n deleteActieUitRit(actie): void {\n const acties = this.selectedRitdeel.acties;\n const idx = acties.indexOf(actie);\n if (idx >= 0) {\n this.verhuisActieNaarOngepland(actie);\n this.store.dispatch(RitdelenActions.deleteRitdeelActie(this.selectedRitdeel, acties[idx]));\n }\n const index = this.nietGeplandeActies.indexOf(actie);\n if (index < 0) {\n this.nietGeplandeActies.push(actie);\n }\n }\n\n private verhuisActieNaarOngepland(actie): void {\n const puics = this.geplandeActies.get(actie);\n\n if (puics && puics.length > 0) {\n this.store.dispatch(MstActions.AddOngeplandeActie(new OngeplandeActie(actie, puics)));\n this.store.dispatch(MstActions.DeleteGeplandeActie(actie, puics));\n }\n }\n\n voegActiesToeAanRit(): void {\n const acties = this.selectedRitdeelOngeplandeActies;\n acties.slice().forEach(actie => {\n this.voegActieToeAanRit(actie);\n });\n }\n\n voegActieToeAanRit(ongeplandeActie: OngeplandeActie): void {\n const idx = this.selectedRitdeelOngeplandeActies.indexOf(ongeplandeActie);\n if (idx >= 0) {\n this.store.dispatch(RitdelenActions.addRitdeelActie(this.selectedRitdeel, this.selectedRitdeelOngeplandeActies[idx].actie));\n this.store.dispatch(MstActions.AddGeplandeActie(ongeplandeActie.actie, ongeplandeActie.puics));\n this.store.dispatch(MstActions.DeleteOngeplandeActie(ongeplandeActie));\n }\n }\n\n updateOngeplandeActiesList(): void {\n if (this.selectedRitdeel) {\n this.selectedRitdeelOngeplandeActies = [];\n const ritPuics: string[] = [];\n const ritdeelTopoElements = ActieHelper.getActieTopoElements(this.selectedRitdeel, this.sbmService);\n const wisselObjecten: domein.Wissel[] = JsJavaUtil.listToArray(this.selectedRitdeel.getRoute().getWisselObjectenInDeRoute());\n\n ritdeelTopoElements.forEach(elem => ritPuics.push(elem.getPuic()));\n const ongeplandeActiesArray = this.ongeplandeActiesMap.values();\n ongeplandeActiesArray.forEach(oa => {\n const acties = this.ritdeelViewModels.flatMap(rd => rd.ritdeel.acties);\n const alreadyAdded = acties.filter(a => a.id === oa.actie.id).length > 0;\n if (!alreadyAdded) {\n let oaMatch;\n if (ActieHelper.isVSTActie(oa.actie)) {\n oaMatch = this.matchedWisselMetKantCodeInVSTActie(oa, wisselObjecten) ? oa : undefined;\n } else if (oa.puics.filter(p => ritPuics.includes(p) || this.bevatWisselPuic(ritPuics, p)).length > 0) {\n oaMatch = oa;\n }\n\n const alreadyAddedAsOngepland = this.selectedRitdeelOngeplandeActies.filter(a => a.actie.id === oa.actie.id).length > 0;\n if (oaMatch && !alreadyAddedAsOngepland) {\n this.selectedRitdeelOngeplandeActies.push(oaMatch);\n }\n }\n });\n }\n }\n\n matchedWisselMetKantCodeInVSTActie(ongeplandeActie: OngeplandeActie, wissels: domein.Wissel[]): boolean {\n const pplg = ongeplandeActie.actie.pplgNaam;\n const wisselKantCodes = ActieHelper.getWisselKantCodes(ongeplandeActie.actie);\n\n let gevondenWissels = 0;\n let gevondenWisselKantCodes = 0;\n\n wisselKantCodes.forEach((wisselKantCode) => {\n const gevondenWissel = this.findWisselOpNaamEnPplg(wissels, wisselKantCode.naam, pplg);\n\n if (gevondenWissel) {\n gevondenWissels++;\n if (this.getKantCode(gevondenWissel.getStand()) === wisselKantCode.kantCode) {\n gevondenWisselKantCodes++;\n }\n }\n });\n\n return gevondenWissels > 0 && gevondenWissels === gevondenWisselKantCodes;\n }\n\n private findWisselOpNaamEnPplg(wissels: domein.Wissel[], wisselNaam: string, pplgNaam: string): domein.Wissel {\n return wissels.find(wo => wo.getName() === wisselNaam && wo.getPPLG() === pplgNaam);\n }\n\n private bevatWisselPuic(ritPuics: string[], p): boolean {\n return ritPuics.includes(this.sbmService.getWisselMetStoringskaderPuic(p)?.getPuic());\n }\n\n selectedRitdeelClass(ritdeel: Ritdeel): string {\n if (ritdeel.getZichtbaarheidBuitenPaginatie()) {\n if (ritdeel.equals(this.selectedRitdeel)) {\n return 'selected';\n }\n return 'visible-outside-window';\n }\n if (ritdeel.isNietBeschikbaar()) {\n return 'disabled';\n }\n if (ritdeel.equals(this.selectedRitdeel)) {\n return 'selected';\n }\n return '';\n }\n\n selectRitdeel(event: MouseEvent, ritdeel: Ritdeel): void {\n if (event?.ctrlKey) {\n this.focusEmitter.emit(ritdeel);\n } else {\n if (ritdeel?.equals(this.selectedRitdeel)) {\n this.deselectRitdeel();\n return;\n }\n\n this.selectedRitdeel = ritdeel;\n this.disableActieKnoppenVanRitdeel = !this.selectedRitdeel.isZichtbaar();\n\n if (ritdeel.acties) {\n this.selectedRitdeelActies = ritdeel.acties;\n this.updateOngeplandeActiesList();\n } else {\n this.selectedRitdeelActies = [];\n this.selectedRitdeelOngeplandeActies = [];\n }\n }\n }\n\n actieOmschrijvingTekst(actie: Actie): string {\n const prefix = this.bepaalPrefixVoorActieOmschrijving(actie);\n if (ActieHelper.isVSTActie(actie)) {\n return this.maakVstActieOmschrijving(actie, prefix);\n }\n return prefix + actie.ritActieTypeOmschrijving;\n }\n\n private maakVstActieOmschrijving(actie: Actie, prefix: string): string {\n return `${ prefix }${ ActieHelper.getVSTActieOmschrijving(actie) }`;\n }\n\n bepaalPrefixVoorActieOmschrijving(actie: Actie): string {\n const prefix = '';\n if (this.selectedRitdeel.acties.includes(actie)) {\n // Afwijkende naam bij niet gevisualiseerde actie in rit\n const puics = this.geplandeActies.get(actie);\n return puics.length > 0 ? prefix : this.NG_ACTIE_PREFIX;\n }\n return prefix;\n }\n\n actieVanKmTekst(actie: Actie): string {\n if (ActieHelper.isWisselSlijpenActie(actie)) {\n return actie.wisselNaam;\n }\n return actie.vanKilometerlint ? actie.vanKilometerlint + ' ' + actie.vanKilometrering : '-';\n }\n\n actieTotKmTekst(actie: Actie): string {\n return actie.totKilometerlint ? actie.totKilometerlint + ' ' + actie.totKilometrering : '-';\n }\n\n deselectRitdeel(): void {\n this.disableActieKnoppenVanRitdeel = false;\n this.selectedRitdeel = undefined;\n this.selectedRitdeelActies = [];\n this.selectedRitdeelOngeplandeActies = [];\n }\n\n getPplgString(ritdeel: Ritdeel): string {\n return ritdeel.getPplgString();\n }\n\n private getKantCode(stand: domein.Stand): string {\n if (stand === window['domein'].Stand.LINKS) {\n return 'L';\n }\n return 'R';\n }\n\n planAlleRitActies(): void {\n this.keurAlleActiesGoed.emit();\n this.deselectRitdeel();\n }\n}\n\nclass RitdeelViewModel {\n constructor(\n readonly ritdeel: Ritdeel,\n readonly selectedRitdeelClass: string,\n readonly isZichtbaar: boolean,\n readonly title: string,\n readonly isNietBeschikbaar: boolean,\n readonly isNieuw: string,\n readonly vanPrlSpoor: string,\n readonly naarPrlSpoor: string,\n readonly dwangNummer: number,\n readonly pplgString: string,\n readonly treinNummer: string\n ) {\n }\n}\n","<div id=\"ritdelen-lijst\">\n <div class=\"sidebar-header\">\n <h3 [attr.data-test-id]=\"'title-rit-details'\">Ritdetails</h3>\n </div>\n <div class=\"panes-container\">\n <div class=\"top-pane tableFixHead\" id=\"top-pane\">\n <table class=\"table\" aria-hidden=\"true\" [attr.data-test-id]=\"'table-rit-details'\">\n <thead>\n <tr>\n <th scope=\"col\">\n <input #input\n type=\"checkbox\"\n checked\n class=\"checkbox col-visibility\"\n (change)=\"toggleZichtbaarheidAlleRitdelen(input.checked)\"\n id=\"ritdetails-selecteerAlles\"\n title=\"Selecteer alles\"\n [attr.data-test-id]=\"'checkbox-alle-bewegingen'\">\n </th>\n <th scope=\"col\"></th>\n <th scope=\"col\">Van</th>\n <th scope=\"col\">Naar</th>\n <th scope=\"col\">DW</th>\n <th scope=\"col\">PPLG(s)</th>\n <th scope=\"col\">Treinnr.</th>\n <th scope=\"col\"></th>\n </tr>\n </thead>\n\n <tr *ngFor=\"let ritdeelViewModel of ritdeelViewModels; let i = index\"\n class=\"{{ selectedRitdeelClass(ritdeelViewModel.ritdeel) }}\" id=\"ritdetails-r{{i}}\">\n <td>\n <input id=\"ritdetails-r{{i}}-zichtbaar\"\n [attr.data-test-id]=\"'checkbox-r'+i\"\n type=\"checkbox\"\n class=\"checkbox col-visibility\"\n [checked]=\"ritdeelViewModel.isZichtbaar\"\n [title]=\"ritdeelViewModel.title\"\n (change)=\"toggleRitdeelZichtbaarheid(ritdeelViewModel.ritdeel)\"\n [hidden]=\"ritdeelViewModel.isNietBeschikbaar\"/>\n </td>\n <td id=\"ritdetails-r{{i}}-gewijzigd\" (click)=\"selectRitdeel($event, ritdeelViewModel.ritdeel)\">{{ritdeelViewModel.isNieuw}}</td>\n <td id=\"ritdetails-r{{i}}-vanSpoor\" (click)=\"selectRitdeel($event, ritdeelViewModel.ritdeel)\">{{ritdeelViewModel.vanPrlSpoor}}</td>\n <td id=\"ritdetails-r{{i}}-naarSpoor\" (click)=\"selectRitdeel($event, ritdeelViewModel.ritdeel)\">{{ritdeelViewModel.naarPrlSpoor}}</td>\n <td id=\"ritdetails-r{{i}}-dwangNummer\" (click)=\"selectRitdeel($event, ritdeelViewModel.ritdeel)\">{{ritdeelViewModel.dwangNummer}}</td>\n <td id=\"ritdetails-r{{i}}-pplgs\" (click)=\"selectRitdeel($event, ritdeelViewModel.ritdeel)\">{{ritdeelViewModel.pplgString}}</td>\n <td id=\"ritdetails-r{{i}}-treinNummer\" (click)=\"selectRitdeel($event, ritdeelViewModel.ritdeel)\">{{ritdeelViewModel.treinNummer}}</td>\n <td style=\"text-align:right\">\n <button *ngIf=\"editable\"\n id=\"ritdetails-r{{i}}-del\"\n type=\"button\"\n class=\"loxia-btn loxia-btn-danger btn-sm\"\n (click)=\"deleteRitdeel(ritdeelViewModel.ritdeel)\">X\n </button>\n </td>\n </tr>\n\n </table>\n </div>\n <div class=\"actie-pane\">\n <div *ngIf=\"selectedRitdeel && (selectedRitdeelActies.length > 0 || selectedRitdeelOngeplandeActies.length > 0) \"\n id=\"actie-pane\">\n <h4>Geplande acties</h4>\n <table aria-hidden=\"true\">\n <tr>\n <th scope=\"col\">Actie</th>\n <th scope=\"col\">Van</th>\n <th scope=\"col\">Tot</th>\n <th scope=\"col\">\n <button *ngIf=\"editable\"\n [hidden]=\"selectedRitdeelActies.length===0\"\n id=\"bulkSetOngeplandButton\"\n [attr.data-test-id]=\"'unplan-all-actions'\"\n type=\"button\"\n class=\"loxia-btn loxia-btn-danger btn-sm\"\n (click)=\"deleteActiesUitRit()\"\n [disabled]=\"disableActieKnoppenVanRitdeel\">X\n </button>\n </th>\n </tr>\n\n <tr *ngFor=\"let actie of selectedRitdeelActies; let i = index\" id=\"ritdetails-a{{i}}\">\n <td id=\"ritdetails-a{{i}}-omschrijving\" class=\"nowrap\">{{ actieOmschrijvingTekst(actie) }}</td>\n <td id=\"ritdetails-a{{i}}-vanKmLint\">{{ actieVanKmTekst(actie)}}</td>\n <td id=\"ritdetails-a{{i}}-totKmLint\">{{ actieTotKmTekst(actie)}}</td>\n <td style=\"text-align:right\">\n <button *ngIf=\"editable\"\n id=\"ritdetails-a{{i}}-del\"\n type=\"button\"\n class=\"loxia-btn loxia-btn-danger btn-sm\"\n (click)=\"deleteActieUitRit(actie)\"\n [disabled]=\"disableActieKnoppenVanRitdeel\">X\n </button>\n </td>\n </tr>\n </table>\n <h4>Ongeplande acties</h4>\n <table aria-hidden=\"true\">\n <tr>\n <th scope=\"col\">Actie</th>\n <th scope=\"col\">Van</th>\n <th scope=\"col\">Tot</th>\n <th scope=\"col\">\n <button *ngIf=\"editable\"\n [hidden]=\"selectedRitdeelOngeplandeActies.length===0\"\n id=\"bulkSetGeplandButton\"\n [attr.data-test-id]=\"'plan-all-actions'\"\n type=\"button\"\n class=\"loxia-btn loxia-btn-success loxia-btn-sm\"\n (click)=\"voegActiesToeAanRit()\"\n [disabled]=\"disableActieKnoppenVanRitdeel\">^\n </button>\n </th>\n </tr>\n\n <tr *ngFor=\"let ongeplandeActie of selectedRitdeelOngeplandeActies; let i = index\"\n id=\"ritdetails-oa{{i}}\">\n <td id=\"ritdetails-oa{{i}}-omschrijving\" class=\"nowrap\">{{actieOmschrijvingTekst(ongeplandeActie.actie) }}</td>\n <td id=\"ritdetails-oa{{i}}-vanKmLint\">{{ actieVanKmTekst(ongeplandeActie.actie)}}</td>\n <td id=\"ritdetails-oa{{i}}-totKmLint\">{{ actieTotKmTekst(ongeplandeActie.actie)}}</td>\n <td style=\"text-align:right\">\n <button *ngIf=\"editable\"\n id=\"ritdetails-oa{{i}}-del\"\n type=\"button\"\n class=\"loxia-btn loxia-btn-success loxia-btn-sm\"\n (click)=\"voegActieToeAanRit(ongeplandeActie)\"\n [disabled]=\"disableActieKnoppenVanRitdeel\">^\n </button>\n </td>\n </tr>\n </table>\n </div>\n </div>\n <div class=\"knop-pane\">\n <button type=\"button\"\n class=\"loxia-btn loxia-btn-primary loxia-btn-sm\"\n [attr.data-test-id]=\"'plan-all-actions-for-file'\"\n [innerText]=\"'Plan acties hele rit'\"\n (click)=\"planAlleRitActies()\">\n </button>\n </div>\n </div>\n</div>\n","import {Component, EventEmitter, HostListener, OnDestroy, Output} from '@angular/core';\nimport {Store} from '@ngrx/store';\nimport {Subscription} from 'rxjs';\nimport {Ritdeel} from '../../model/ritdeel';\nimport {setRitdeelZichtbaar, setZichtbaarheidAlleRitdelen} from '../../state/actions/ritdelen.actions';\nimport {MstEditorState} from '../../state/mst-editor-state';\n\n@Component({\n selector: 'ritdelen-view',\n templateUrl: './ritdelen-view.component.html',\n styleUrls: ['./ritdelen-view.component.scss'],\n standalone: false\n})\nexport class RitdelenViewComponent implements OnDestroy {\n @Output() focusEmitter = new EventEmitter<Ritdeel>();\n\n @HostListener('window:keyup', ['$event'])\n keyEvent(event: KeyboardEvent): void {\n if (event.key === 'ArrowLeft' && this.selectedRitdeelIndex > 0) {\n this.selectRitdeel(this.selectedRitdeelIndex - 1);\n } else if (event.key === 'ArrowRight' && this.selectedRitdeelIndex < this.ritdeelViewModels.length) {\n this.selectRitdeel(this.selectedRitdeelIndex + 1);\n }\n }\n\n ritdeelViewModels: RitdeelViewModel[] = [];\n selectedRitdeelIndex = -1;\n\n\n private readonly subscriptions: Subscription[] = [];\n\n constructor(private readonly store: Store<MstEditorState>) {\n this.subscriptions.push(store.select('ritDelen').subscribe(ritdelen => this.handleRitDelenUpdate(ritdelen)));\n }\n\n ngOnDestroy(): void {\n this.subscriptions.forEach(s => s.unsubscribe());\n }\n\n selectedRitdeelClass(ritdeel: Ritdeel): string {\n const ritdeelIndex = this.ritdeelViewModels.findIndex(r => r.ritdeel === ritdeel);\n if (this.selectedRitdeelIndex !== -1 && this.selectedRitdeelIndex === ritdeelIndex) {\n return 'selected';\n }\n if (ritdeel.getZichtbaarheidBuitenPaginatie()) {\n return 'visible-outside-window';\n }\n if (ritdeel.isNietBeschikbaar()) {\n return 'disabled';\n }\n return '';\n }\n\n selectRitdeel(index: number): void {\n if (this.selectedRitdeelIndex >= 0) {\n this.store.dispatch(setRitdeelZichtbaar(this.ritdeelViewModels[this.selectedRitdeelIndex].ritdeel, false));\n }\n this.selectedRitdeelIndex = index;\n const ritdeel = this.ritdeelViewModels[index].ritdeel;\n this.focusEmitter.emit(ritdeel);\n this.store.dispatch(setRitdeelZichtbaar(ritdeel, true));\n }\n\n private handleRitDelenUpdate(ritdelen: Ritdeel[]): void {\n this.ritdeelViewModels = ritdelen.map(ritdeel => new RitdeelViewModel(\n ritdeel,\n ritdeel.getVanPrlSpoor(),\n ritdeel.getNaarPrlSpoor(),\n ritdeel.getDwangNummer(),\n ritdeel.getVanSeinName(),\n ritdeel.getNaarSeinName(),\n ritdeel.getTreinNummer()\n ));\n\n setTimeout(() => {\n if (this.meerdereRitDelenZichtbaar()) {\n this.store.dispatch(setZichtbaarheidAlleRitdelen(false));\n if (this.ritdelenBeschikbaarMaarZonderSelectie()) {\n this.selectRitdeel(0);\n } else if (this.ritdeelViewModels.length > 0) {\n this.selectRitdeel(this.selectedRitdeelIndex);\n }\n }\n });\n }\n\n private ritdelenBeschikbaarMaarZonderSelectie(): boolean {\n return this.ritdeelViewModels.length > 0 && this.selectedRitdeelIndex < 0;\n }\n\n private meerdereRitDelenZichtbaar(): boolean {\n let count = 0;\n for (const ritdeelViewModel of this.ritdeelViewModels) {\n if (ritdeelViewModel.ritdeel.isNietBeschikbaar()) {\n continue;\n }\n if (ritdeelViewModel.ritdeel.isZichtbaar()) {\n count++;\n if (count > 1) {\n return true;\n }\n }\n }\n return false;\n }\n}\n\nclass RitdeelViewModel {\n constructor(\n readonly ritdeel: Ritdeel,\n readonly vanPrlSpoor: string,\n readonly naarPrlSpoor: string,\n readonly dwangNummer: number,\n readonly vanSeinName: string,\n readonly naarSeinName: string,\n readonly treinNummer: string) {\n }\n}\n","<div id=\"ritdelen-lijst\">\n <div class=\"sidebar-header\">\n <h3>Ritdetails view</h3>\n </div>\n <div class=\"panes-container\">\n <div class=\"top-pane tableFixHead\" id=\"top-pane\">\n <table class=\"table\" aria-hidden=\"true\">\n <thead>\n <tr>\n <th scope=\"col\"></th>\n <th scope=\"col\" colspan=\"2\" style=\"text-align:center;\">Spoor</th>\n <th scope=\"col\"></th>\n <th scope=\"col\" colspan=\"2\" style=\"text-align:center;\">Sein</th>\n <th scope=\"col\"></th>\n <th scope=\"col\"></th>\n </tr>\n <tr>\n <th scope=\"col\"></th>\n <th scope=\"col\">Van</th>\n <th scope=\"col\">Naar</th>\n <th scope=\"col\">DW</th>\n <th scope=\"col\">Van</th>\n <th scope=\"col\">Naar</th>\n <th scope=\"col\">Treinnummer</th>\n <th scope=\"col\"></th>\n </tr>\n </thead>\n\n <tr *ngFor=\"let ritdeelViewModel of ritdeelViewModels; let i = index\"\n class=\"{{ selectedRitdeelClass(ritdeelViewModel.ritdeel) }}\" id=\"ritdetails-r{{i}}\">\n <td id=\"ritdetails-r{{i}}-gewijzigd\" (click)=\"selectRitdeel(i)\"></td>\n <td id=\"ritdetails-r{{i}}-vanSpoor\" (click)=\"selectRitdeel(i)\">{{ritdeelViewModel.vanPrlSpoor}}</td>\n <td id=\"ritdetails-r{{i}}-naarSpoor\" (click)=\"selectRitdeel(i)\">{{ritdeelViewModel.naarPrlSpoor}}</td>\n <td id=\"ritdetails-r{{i}}-dwangNummer\" (click)=\"selectRitdeel(i)\">{{ritdeelViewModel.dwangNummer}}</td>\n <td id=\"ritdetails-r{{i}}-vanSeinName\" (click)=\"selectRitdeel(i)\">{{ritdeelViewModel.vanSeinName}}</td>\n <td id=\"ritdetails-r{{i}}-naarSeinName\" (click)=\"selectRitdeel(i)\">{{ritdeelViewModel.naarSeinName}}</td>\n <td id=\"ritdetails-r{{i}}-treinNummer\" (click)=\"selectRitdeel(i)\">{{ritdeelViewModel.treinNummer}}</td>\n <td style=\"text-align:right\">\n </td>\n </tr>\n </table>\n </div>\n </div>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { filter, map } from 'rxjs/operators';\nimport { Ritdeel } from '../../model/ritdeel';\nimport { InfraModel } from '../../optimo';\nimport { navigeer } from '../../state/actions/ritdelen.actions';\nimport { MstEditorState } from '../../state/mst-editor-state';\n\n@Component({\n selector: 'carousel-controls',\n templateUrl: './carousel-controls.component.html',\n styleUrls: ['./carousel-controls.component.scss'],\n standalone: false\n})\nexport class CarouselControlsComponent {\n @Input() paginationSize = 4;\n @Input() iaversieinfo: InfraModel;\n @Input() sideNavOpen: boolean;\n\n ritdelen$ = this.store.select('ritDelen').pipe(filter(r => r?.length > 0));\n kanLinks$ = this.ritdelen$.pipe(map(r => this.kanLinksNavigeren(r)));\n kanRechts$ = this.ritdelen$.pipe(map(r => this.kanRechtsNavigeren(r)));\n\n constructor(private store: Store<MstEditorState>) {\n }\n\n private kanLinksNavigeren(ritDelen: Ritdeel[]): boolean {\n return ritDelen.length > this.paginationSize && !ritDelen[0].isBinnenWindow();\n }\n\n private kanRechtsNavigeren(ritDelen: Ritdeel[]): boolean {\n return ritDelen.length > this.paginationSize && !ritDelen[ritDelen.length - 1].isBinnenWindow();\n }\n\n navigeerNaarLinks(event: MouseEvent): void {\n this.store.dispatch(navigeer(event?.ctrlKey ? -1 : -(this.paginationSize - 1), this.paginationSize, this.iaversieinfo));\n }\n\n navigeerNaarRechts(event: MouseEvent): void {\n this.store.dispatch(navigeer(event?.ctrlKey ? 1 : this.paginationSize - 1, this.paginationSize, this.iaversieinfo));\n }\n}\n","<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","import { Component, EventEmitter, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { Subscription } from 'rxjs';\nimport { InfraModel, Rit } from '../../optimo';\nimport { BewegingUtils } from '../../services/beweging-utils.service';\nimport { ViewerControlService } from '../../services/viewer-control.service';\nimport { MstEditorState } from '../../state/mst-editor-state';\n\n@Component({\n selector: 'viewer-controls',\n templateUrl: './viewer-controls.component.html',\n styleUrls: ['./viewer-controls.component.scss'],\n standalone: false\n})\nexport class ViewerControlsComponent implements OnChanges {\n @Input() paginationSize = 4;\n @Input() iaversieinfo: InfraModel;\n @Input() treinpad: Rit;\n @Input() goedgekeurd: EventEmitter<Rit>;\n\n printing$ = this.viewerControlsService.isPrinting$();\n valideRit$ = this.viewerControlsService.isValideRit$();\n\n subscriptions = new Subscription();\n editable: boolean;\n\n constructor(private store: Store<MstEditorState>,\n public viewerControlsService: ViewerControlService,\n private bewegingUtils: BewegingUtils) {\n this.subscriptions.add(this.store.select('editable').subscribe(editable => this.editable = editable));\n }\n\n ngOnChanges({ treinpad }: SimpleChanges): void {\n if (treinpad && this.treinpad) {\n this.viewerControlsService.setOrigineelTreinPad(this.treinpad);\n }\n }\n\n showGoedkeuren(): boolean {\n return this.editable && this.viewerControlsService.selectieInfos.length !== 0;\n }\n\n goedkeurenClick(): void {\n const ritDelen = this.viewerControlsService.ritdelen;\n if (ritDelen) {\n delete this.treinpad.aantalRitActies;\n this.treinpad.bewegingen = this.bewegingUtils.extractBewegingenUitRitdelen(ritDelen, this.viewerControlsService.origineelTreinPad.bewegingen);\n this.goedgekeurd.emit(this.treinpad);\n this.viewerControlsService.setOrigineelTreinPad(this.treinpad);\n }\n }\n\n}\n","<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","import { sbblad } from '@loxia/rijwegen';\nimport { Ritdeel } from './ritdeel';\n\nexport class AlternatiefRitDeel {\n\n constructor(public ritDeel: Ritdeel, public alternatieveRoute: sbblad.AlternativeRoute) {\n\n }\n\n}\n","import { domein } from '@loxia/rijwegen';\nimport { Ritdeel } from './ritdeel';\n\nexport class SeinOpRitdeel {\n constructor(public sein: domein.Sein, public ritdeel: Ritdeel) {\n }\n}\n","import { PopoverInfo } from '@loxia/imx-viewer';\nimport { OngeplandeActie } from '../model/ongeplande-actie';\nimport { Ritdeel } from '../model/ritdeel';\nimport { Actie } from '../optimo';\nimport { ActieHelper } from './actie-helper';\nimport { ArrayMultimap } from './multi-map';\n\ninterface TreinNummerActieInfo {\n treinNummer: number;\n actie: Actie;\n}\n\nexport class ActiePopoverBepaler {\n static bepaalPopoverInfos(ritDelen: Ritdeel[], ritActieTopoPuics: ArrayMultimap<Actie, string>,\n ongeplandeActies: ArrayMultimap<string, OngeplandeActie>): PopoverInfo[] {\n const puicNaarActieMap = this.bepaalPuicNaarActieMap(ritDelen, ritActieTopoPuics);\n const puicNaarOngeplandeActieMap = this.bepaalPuicNaarOngeplandeActieMap(ongeplandeActies);\n\n const puics = puicNaarActieMap.keys();\n puics.push(...puicNaarOngeplandeActieMap.keys().filter(p => !puics.includes(p)));\n\n const infos = [];\n puics.forEach(puic => {\n let content = '';\n const treinNummerActieInfosGepland = puicNaarActieMap.get(puic).sort(this.sortTreinNummerActieInfo());\n const treinNummerActieInfosOngepland = puicNaarOngeplandeActieMap.get(puic).sort(this.sortTreinNummerActieInfo());\n const showTreinNummer = treinNummerActieInfosGepland.some(i => !!i.treinNummer)\n || treinNummerActieInfosOngepland.some(i => !!i.treinNummer);\n treinNummerActieInfosGepland.forEach(a => content = this.vulPopoverContent(content, a, 'popovertekst-gepland', showTreinNummer));\n treinNummerActieInfosOngepland.forEach(a => content = this.vulPopoverContent(content, a, 'popovertekst-ongepland', showTreinNummer));\n\n const info = this.createPopoverInfo(content, puic, showTreinNummer);\n infos.push(info);\n });\n return infos;\n }\n\n private static createPopoverInfo(content: string, puic: string, showTreinNummer: boolean): PopoverInfo {\n const info = new PopoverInfo([puic], content);\n info.popoverTitleContent = showTreinNummer ? '<span class=\"treinnummer\">Trein #</span><span>Acties</span>' : 'Acties';\n return info;\n }\n\n private static sortTreinNummerActieInfo(): (a: TreinNummerActieInfo, b: TreinNummerActieInfo) => number {\n return (a1, a2): number => ActieHelper.actieComparator(a1.actie, a2.actie);\n }\n\n private static bepaalPuicNaarOngeplandeActieMap(ongeplandeActies: ArrayMultimap<string, OngeplandeActie>): ArrayMultimap<string, TreinNummerActieInfo> {\n const puicNaarOngeplandeActieMap = new ArrayMultimap<string, TreinNummerActieInfo>();\n if (ongeplandeActies.size() > 0) {\n ongeplandeActies.entries.forEach(entry => {\n const treinNummerActieInfos = puicNaarOngeplandeActieMap.get(entry.key);\n if (!treinNummerActieInfos?.map(({ actie }) => actie).includes(entry.value.actie)) {\n puicNaarOngeplandeActieMap.put(entry.key, { treinNummer: undefined, actie: entry.value.actie });\n }\n });\n }\n return puicNaarOngeplandeActieMap;\n }\n\n private static bepaalPuicNaarActieMap(ritDelen: Ritdeel[], ritActieTopoPuics: ArrayMultimap<Actie, string>): ArrayMultimap<string, TreinNummerActieInfo> {\n const puicNaarActieMap = new ArrayMultimap<string, TreinNummerActieInfo>();\n ritDelen.forEach(ritDeel => {\n if (ritDeel.isZichtbaar() && ritDeel.acties.length !== 0) {\n ritDeel.acties.forEach(ritActie => {\n const puics = ritActieTopoPuics.get(ritActie);\n puics.forEach(puic => {\n this.addToPuicNaarActieMapIfNotExists(puicNaarActieMap, puic, ritActie, ritDeel.beweging?.treinNummer);\n });\n });\n }\n });\n return puicNaarActieMap;\n }\n\n private static addToPuicNaarActieMapIfNotExists(puicNaarActieMap: ArrayMultimap<string, TreinNummerActieInfo>, puic: string, ritActie: Actie, treinNummer: number): void {\n const treinNummerActieInfos = puicNaarActieMap.get(puic);\n if (!(treinNummerActieInfos?.find(({ actie }) => actie === ritActie))) {\n const actieInfo: TreinNummerActieInfo = { treinNummer, actie: ritActie };\n puicNaarActieMap.put(puic, actieInfo);\n }\n }\n\n private static vulPopoverContent(content: string, { treinNummer, actie }: TreinNummerActieInfo, clazz: string, showTreinNummer: boolean): string {\n let retval = content;\n const treinnummerClass = showTreinNummer ? 'class=\"treinnummer\"' : 'class=\"no-treinnummer\"';\n\n retval += '<div class=\"nowrap ' + clazz + '\">';\n retval += `<span ${ treinnummerClass }>${ treinNummer || '-' }</span>`;\n\n let actieOmschrijving = '';\n if (ActieHelper.isVSTActie(actie)) {\n actieOmschrijving += ActieHelper.getVSTActieOmschrijving(actie);\n } else if (ActieHelper.isWisselSlijpenActie(actie)) {\n actieOmschrijving += `${ actie.ritActieTypeOmschrijving } ${ actie.wisselNaam }`;\n } else {\n actieOmschrijving += `${ actie.ritActieTypeOmschrijving } ${ actie.vanKilometerlint } ${ actie.vanKilometrering }`;\n actieOmschrijving += '-';\n if (actie.totKilometerlint !== actie.vanKilometerlint) {\n actieOmschrijving += actie.totKilometerlint;\n actieOmschrijving += ' ';\n }\n actieOmschrijving += actie.totKilometrering;\n }\n retval += `<span>${ actieOmschrijving }</span></div>`;\n return retval;\n }\n}\n","import { Component, Input, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { ImxViewerComponent, PopoverInfo, SelectieEvent, SvgInfo } from '@loxia/imx-viewer';\nimport { domein, sbblad } from '@loxia/rijwegen';\nimport { Store } from '@ngrx/store';\nimport { combineLatest, Observable, Subscription } from 'rxjs';\nimport { AlternatiefRitDeel } from '../../model/alternatief-rit-deel';\nimport { OngeplandeActie } from '../../model/ongeplande-actie';\nimport { RijwegplanRijwegDwangCombinatie } from '../../model/rijwegplan-rijweg-dwang-combinatie';\nimport { Ritdeel } from '../../model/ritdeel';\nimport { SeinOpRitdeel } from '../../model/sein-op-ritdeel';\nimport { Actie } from '../../optimo';\nimport { EditorService } from '../../services/editor.service';\nimport { SignaleringsBeeldManagerService } from '../../services/signalerings-beeld-manager.service';\nimport { ViewerControlService } from '../../services/viewer-control.service';\nimport {\n AddOngeplandeActie,\n BepaalOngeplandeActies,\n BewegingInvoegen,\n ClearProgress, SetSelectedRitdeel,\n navigeerBuitenRit,\n ResetNieuweRoute,\n SetActieOpRitSelectieIds,\n SetAlternatievenClickableIds,\n SetAlternatievenSelectieIds,\n SetBeginSeinRightClickableIds,\n SetBeginSeinSelectieIds,\n SetEindSeinenClickableIds,\n SetEindSeinSelectieIds,\n SetGebrokenRitSelectieIds,\n SetGeplandeActies,\n SetNieuwRouteEindSein,\n SetRitSelectieIds\n} from '../../state/actions/actions';\nimport { ritdeelInvoegen, setAlternatieveRitDelen } from '../../state/actions/ritdelen.actions';\nimport { MstEditorState } from '../../state/mst-editor-state';\nimport { ActieHelper } from '../../util/actie-helper';\nimport { ActiePopoverBepaler } from '../../util/actie-popover-bepaler';\nimport { ArrayMultimap } from '../../util/multi-map';\nimport Utils from '../../util/utils';\n\n@Component({\n selector: 'svg-visualisatie',\n templateUrl: './svg-visualisatie.component.html',\n styleUrls: ['./svg-visualisatie.component.scss'],\n standalone: false\n})\nexport class SvgVisualisatieComponent implements OnInit, OnDestroy {\n\n @Input() nietGeplandeActies: Actie[];\n @Input() useClickArea: boolean;\n\n @ViewChild('imxviewercontainer') imxviewer: ImxViewerComponent;\n\n svgInfos$: Observable<SvgInfo[]> = this.store.select('svgInfos');\n popoverInfos: PopoverInfo[] = [];\n clickableIds: string[] = [];\n\n rightClickableIds: string[] = [];\n contextMenuActions: any = [];\n contextMenuStyle: any = { display: 'none' };\n editable: boolean;\n\n private puicNaarBeginSeinRitdeel = new Map<string, SeinOpRitdeel>();\n private puicNaarEindSeinCombinatie = new Map<string, RijwegplanRijwegDwangCombinatie>();\n private puicNaarAlternatieveRoute = new Map<string, AlternatiefRitDeel>();\n\n private ongeplandeActiesBepaald = false;\n private subscriptions: Subscription[] = [];\n\n constructor(private store: Store<MstEditorState>,\n public viewerControlsService: ViewerControlService,\n private actieHelper: ActieHelper,\n private sbmService: SignaleringsBeeldManagerService,\n private editorService: EditorService) {\n this.onRitdelenUpdate();\n this.triggerClickableIdBepaling();\n this.triggerRightClickableIdBepaling();\n this.handleNieuweRouteToegevoegd();\n this.setupTriggerPopoverBepaling();\n\n this.subscriptions.push(this.store.select('editable').subscribe(editable => {\n this.editable = editable;\n }));\n this.subscriptions.push(this.store.select('ongeplandeActiesBepaald')\n .subscribe(ongeplandeActiesBepaald => this.ongeplandeActiesBepaald = ongeplandeActiesBepaald));\n this.subscriptions.push(this.store.select('focusIds')\n .subscribe(focusIds => {\n if (focusIds && this.imxviewer) {\n this.imxviewer.focusOnIds(focusIds);\n }\n }));\n }\n\n ngOnInit(): void {\n document.getElementById('contextMenu').addEventListener('mouseleave', () => this.hideContextMenu());\n }\n\n ngOnDestroy(): void {\n this.subscriptions.forEach(s => s.unsubscribe());\n }\n\n handleImxviewClick(evt: SelectieEvent): void {\n const puic = evt.id as string;\n const alternatieveRitDeel = this.puicNaarAlternatieveRoute.get(puic);\n const combinatie = this.puicNaarEindSeinCombinatie.get(puic);\n if (alternatieveRitDeel) {\n alternatieveRitDeel.ritDeel.acties.forEach(actie => {\n const puics = this.actieHelper.bepaalPuicsVoorActie(actie);\n if (puics.length > 0) {\n this.store.dispatch(AddOngeplandeActie(new OngeplandeActie(actie, puics)));\n }\n });\n this.store.dispatch(setAlternatieveRitDelen(alternatieveRitDeel));\n } else if (combinatie) {\n this.store.dispatch(SetNieuwRouteEindSein(combinatie));\n } else {\n const rand = this.sbmService.getTopologyElementByPuic(puic);\n if (rand) {\n this.store.dispatch(navigeerBuitenRit(puic));\n }\n }\n\n this.store.dispatch(SetSelectedRitdeel(undefined));\n }\n\n handleImxviewRightClick(evt: SelectieEvent): void {\n const fn = (): void => {\n const startSeinOpRitdeel = this.puicNaarBeginSeinRitdeel.get(evt.id as string);\n if (startSeinOpRitdeel) {\n this.bewegingInvoegen(startSeinOpRitdeel);\n }\n };\n this.contextMenuActions = [];\n this.contextMenuActions.push({ label: 'beweging invoegen', click: fn });\n this.contextMenuStyle = {\n left: (evt.event.offsetX - 5) + 'px',\n top: (evt.event.offsetY - 5) + 'px',\n display: 'inline',\n position: 'absolute'\n };\n }\n\n bewegingInvoegen(startSeinOpRitdeel: SeinOpRitdeel): void {\n this.hideContextMenu();\n this.store.dispatch(BewegingInvoegen(startSeinOpRitdeel, this.puicNaarEindSeinCombinatie));\n }\n\n hideContextMenu(): void {\n this.contextMenuStyle = {\n display: 'none',\n position: 'absolute'\n };\n }\n\n private handleNieuweRouteToegevoegd(): void {\n this.store.select('nieuweRoute')\n .subscribe((nieuweRoute) => {\n if (nieuweRoute.isValid()) {\n this.store.dispatch(ResetNieuweRoute());\n this.store.dispatch(ritdeelInvoegen(nieuweRoute));\n }\n }\n );\n }\n\n private onRitdelenUpdate(): void {\n this.subscriptions.push(this.store.select('ritDelen').subscribe(ritDelen => {\n if (ritDelen && ritDelen.length > 0) {\n this.bepaalRouteHighlights(ritDelen);\n if (this.editable) {\n this.bepaalContextMenuVoorBeginSeinen(ritDelen);\n }\n if (!this.ongeplandeActiesBepaald) {\n this.bepaalOngeplandeActies();\n }\n }\n }));\n }\n\n private triggerClickableIdBepaling(): void {\n this.subscriptions.push(combineLatest([\n this.store.select('alternatievenClickableIds'),\n this.store.select('eindSeinenClickableIds'),\n this.store.select('connectorClickableIds')]\n ).subscribe(([alternatievenClickableIds, eindSeinenClickableIds, connectorClickableIds]) =>\n this.clickableIds = [...alternatievenClickableIds, ...eindSeinenClickableIds, ...connectorClickableIds]));\n }\n\n private triggerRightClickableIdBepaling(): void {\n this.subscriptions.push(combineLatest([this.store.select('beginSeinRightClickableIds')]\n ).subscribe(([beginSeinRightClickableIds]) => {\n const ids = [];\n ids.push(...beginSeinRightClickableIds);\n this.rightClickableIds = ids;\n }\n ));\n }\n\n private setupTriggerPopoverBepaling(): void {\n this.subscriptions.push(combineLatest([\n this.store.select('ritDelen'),\n this.store.select('ongeplandeActies'),\n this.store.select('geplandeActies')]\n ).subscribe(([ritdelen, ongeplandeActies, geplandeActies]) => {\n if (ritdelen && ritdelen.length > 0 && geplandeActies && ongeplandeActies) {\n this.popoverInfos = ActiePopoverBepaler.bepaalPopoverInfos(ritdelen, geplandeActies, ongeplandeActies);\n }\n }\n ));\n }\n\n bepaalOngeplandeActies(): void {\n if (this.nietGeplandeActies) {\n this.store.dispatch(BepaalOngeplandeActies(this.nietGeplandeActies));\n }\n }\n\n private bepaalContextMenuVoorBeginSeinen(ritDelen: Ritdeel[]): void {\n if (!this.sbmService.isReady()) {\n return;\n }\n\n let ids = [];\n ritDelen.filter(ritDeel => ritDeel.isZichtbaar()).forEach(ritDeel => {\n const puics = ritDeel.getSeinen().flatMap(sein => this.verzamelBeginSeinInformatie(sein, ritDeel));\n ids = ids.concat(puics);\n });\n\n this.store.dispatch(SetBeginSeinRightClickableIds(ids));\n this.store.dispatch(SetBeginSeinSelectieIds([]));\n this.store.dispatch(SetEindSeinSelectieIds([]));\n this.store.dispatch(SetEindSeinenClickableIds([]));\n }\n\n private verzamelBeginSeinInformatie(sein: domein.Sein, ritDeel: Ritdeel): string[] {\n const puics: string[] = [];\n const sbSein = this.sbmService.getSBSein(sein);\n if (sbSein) {\n const puic = sbSein.getPuic();\n puics.push(puic);\n this.puicNaarBeginSeinRitdeel.set(puic, new SeinOpRitdeel(sein, ritDeel));\n }\n const altSbSein = this.sbmService.getTechnischAlternatiefSBSein(sbSein);\n if (altSbSein) {\n const puic = altSbSein.getPuic();\n puics.push(puic);\n const rwp = this.editorService.getRijwegplan(altSbSein.getPPLG());\n const domeinSein = rwp.getBeginSein(altSbSein.getName());\n // sein kan niet altijd gevonden worden omdat er niet altijd een rijweg vanaf dit sein is, bijv bij veerwissel.\n if (domeinSein) {\n this.puicNaarBeginSeinRitdeel.set(puic, new SeinOpRitdeel(domeinSein, ritDeel));\n }\n }\n return puics;\n }\n\n private bepaalRouteHighlights(ritDelen: Ritdeel[]): void {\n let ritSelectiePuics = [];\n const actieOpRitSelectiePuics = new ArrayMultimap<Actie, string>();\n let gebrokenRitSelectiePuics = [];\n const alternatieveRoutePuics = [];\n const clickableIds = [];\n let laatsteNaarSpoor: string;\n const bestaatUit1Ritdeel = ritDelen.length === 1;\n let gebrokenRit = false;\n ritDelen.forEach(ritDeel => {\n if (ritDeel.isZichtbaar()) {\n const map: ArrayMultimap<Actie, string> = this.actieHelper.bepaalActiePuicsUitRitdeel(ritDeel);\n map.keys().forEach(key => actieOpRitSelectiePuics.putAll(key, map.get(key)));\n\n const isGebrokenRitdeel = !bestaatUit1Ritdeel && this.isGebrokenRitdeel(ritDeel, laatsteNaarSpoor);\n const puics = [...this.getPuics(ritDeel.getTopologieElementen()),\n ...this.sbmService.getPuicsVoorSeinenInRoute(ritDeel.getRoute())];\n\n if (puics && isGebrokenRitdeel) {\n gebrokenRitSelectiePuics = gebrokenRitSelectiePuics.concat(puics);\n } else if (puics) {\n ritSelectiePuics = ritSelectiePuics.concat(puics);\n }\n\n this.bepaalAlternatieven(ritDeel, clickableIds, alternatieveRoutePuics);\n\n gebrokenRit = gebrokenRit || isGebrokenRitdeel;\n }\n laatsteNaarSpoor = ritDeel.getVisueelNaarPrlSpoor();\n });\n\n this.viewerControlsService.setValideRit(!gebrokenRit);\n\n this.store.dispatch(SetGeplandeActies(actieOpRitSelectiePuics));\n const actieOpRitSelectiePuicsArray = Utils.flatMap(Array.from(actieOpRitSelectiePuics.values()), x => x);\n this.store.dispatch(SetActieOpRitSelectieIds(actieOpRitSelectiePuicsArray));\n ritSelectiePuics = ritSelectiePuics.filter(item => actieOpRitSelectiePuicsArray.indexOf(item) < 0); // make mutually exclusive\n this.store.dispatch(SetRitSelectieIds(ritSelectiePuics));\n this.store.dispatch(SetGebrokenRitSelectieIds(gebrokenRitSelectiePuics));\n this.store.dispatch(SetAlternatievenClickableIds(this.editable ? clickableIds : []));\n this.store.dispatch(SetAlternatievenSelectieIds(this.editable ? alternatieveRoutePuics : []));\n this.store.dispatch(ClearProgress());\n }\n\n private bepaalAlternatieven(ritDeel: Ritdeel, clickableIds: string[], alternatieveRoutePuics: string[]): void {\n ritDeel.getAlternatieveRoutes()?.forEach(alternatieveRoute => {\n const alternatieveTopoElementen =\n this.sbmService.bepaalAlternativeRouteHighlights(alternatieveRoute, ritDeel.getTopologieElementen());\n\n const altPuics = this.getPuics(alternatieveTopoElementen);\n if (altPuics) {\n clickableIds.push(...altPuics);\n altPuics.forEach(puic => {\n this.puicNaarAlternatieveRoute.set(puic, new AlternatiefRitDeel(ritDeel, alternatieveRoute));\n alternatieveRoutePuics.push(puic);\n });\n }\n });\n }\n\n private isGebrokenRitdeel(ritDeel, laatsteNaarSpoor): boolean {\n const isGebrokenRitdeel = !(!laatsteNaarSpoor || ritDeel.getVanPrlSpoor() === laatsteNaarSpoor);\n if (isGebrokenRitdeel) {\n console.log('Rit van ' + ritDeel.getVanPrlSpoor() + ' naar ' + ritDeel.getNaarPrlSpoor()\n + ' in pplg ' + ritDeel.getPplg() + ' sluit niet aan op vorige beweging.');\n }\n return isGebrokenRitdeel;\n }\n\n private getPuics(topoElementen: sbblad.HasIdentifier[]): string[] {\n return topoElementen.map(e => e.getPuic());\n }\n}\n","<imx-viewer #imxviewercontainer\n [svgInfo]=\"svgInfos$ | async\"\n [selectieInfos]=\"viewerControlsService.selectieInfos\"\n [clickableIds]=\"clickableIds\"\n [rightClickableIds]=\"rightClickableIds\"\n [popoverInfos]=\"popoverInfos\"\n [inlineDgnCssImport]=\"false\"\n [useClickArea]=\"useClickArea\"\n [zoomScaleSensitivity]=\"0.25\"\n (clickHandler)=\"handleImxviewClick($event)\"\n (rightClickHandler)=\"handleImxviewRightClick($event)\"\n ></imx-viewer>\n\n<ul id=\"contextMenu\" class=\"dropdown-menu\" role=\"menu\" [ngStyle]=\"contextMenuStyle\">\n <li *ngFor=\"let action of contextMenuActions\"><a class=\"dropdown-item\" tabindex=\"-1\"\n (click)=\"action.click()\">{{action.label}}</a></li>\n</ul>\n","import { Component, EventEmitter, Input, OnChanges, OnDestroy, OnInit, Output, SimpleChanges } from '@angular/core';\nimport { select, Store } from '@ngrx/store';\nimport { Observable, Subscription } from 'rxjs';\nimport { version } from '../../../generated.version';\nimport { ProgressIndicator } from '../../atomic-components/progress-indicator/progress-indicator.entity';\nimport { Ritdeel } from '../../model/ritdeel';\nimport { Actie, InfraModel, Rit } from '../../optimo';\nimport { DebugService } from '../../services/debug.service';\nimport { PrintBewegingService } from '../../services/print-beweging.service';\nimport { ViewerControlService } from '../../services/viewer-control.service';\nimport * as MstActions from '../../state/actions/actions';\nimport { SetBaseUrl, SetIaVersie, SetOngeplandeActiesBepaald } from '../../state/actions/actions';\nimport { setRitdelenAfterUpdate } from '../../state/actions/ritdelen.actions';\nimport { MstEditorState } from '../../state/mst-editor-state';\n\n@Component({\n selector: 'mst-viewer',\n templateUrl: './mstviewer.component.html',\n styleUrls: ['./mstviewer.component.scss'],\n standalone: false\n})\nexport class MstviewerComponent implements OnChanges, OnInit, OnDestroy {\n @Input() iaversieinfo: InfraModel;\n @Input() treinpad: Rit;\n @Input() ongeplandeActies: Actie[];\n @Input() paginationSize = 4;\n @Input() baseurl = 'https://acceptatie.raildesign.nl';\n @Input() debug: boolean;\n @Input() viewer: boolean;\n @Input() useClickArea: boolean;\n\n @Output() goedgekeurd: EventEmitter<Rit> = new EventEmitter();\n\n progressIndicator$: Observable<ProgressIndicator>;\n\n private subscriptions: Subscription = new Subscription();\n\n constructor(private store: Store<MstEditorState>,\n public viewerControlsService: ViewerControlService,\n private debugService: DebugService,\n private printBewegingService: PrintBewegingService) {\n\n this.subscriptions.add(this.store.select('nieuweBewegingen').subscribe(nieuweRit => {\n if (this.treinpad) {\n this.treinpad.bewegingen = nieuweRit;\n store.dispatch(setRitdelenAfterUpdate([]));\n store.dispatch(SetOngeplandeActiesBepaald(false));\n this.bepaalSbInfos(true);\n }\n }));\n this.progressIndicator$ = this.store.pipe(select(s => s.progressState?.progressIndicator));\n }\n\n ngOnInit(): void {\n // eslint-disable-next-line no-console\n console.log('MST viewer versie: ' + version);\n }\n\n ngOnChanges({ debug, baseurl, treinpad, ongeplandeActies, iaversieinfo }: SimpleChanges): void {\n if (debug) {\n this.debugService.setDebugFlag(debug.currentValue);\n }\n if (baseurl) {\n this.store.dispatch(SetBaseUrl(baseurl.currentValue));\n }\n if (treinpad || ongeplandeActies) {\n this.bepaalSbInfos();\n }\n if (iaversieinfo) {\n this.store.dispatch(SetIaVersie(iaversieinfo.currentValue));\n this.bepaalSbInfos();\n }\n if (ongeplandeActies) {\n this.store.dispatch(SetOngeplandeActiesBepaald(false));\n }\n }\n\n ngOnDestroy(): void {\n this.debugService.setDebugFlag(false);\n this.subscriptions.unsubscribe();\n }\n\n focusRitdeel(ritdeel: Ritdeel): void {\n this.store.dispatch(MstActions.focusOpRitdeel(ritdeel, this.paginationSize, this.iaversieinfo));\n }\n\n focusPuic(puics: string[]): void {\n this.store.dispatch(MstActions.focusOpIds(puics));\n }\n\n bepaalSbInfos(ritGewijzigdToegestaan = false): void {\n if (this.treinpad && this.ongeplandeActies && this.iaversieinfo?.versie) {\n this.store.dispatch(MstActions.bepaalSbInfos(this.treinpad, this.ongeplandeActies, this.iaversieinfo?.versie, ritGewijzigdToegestaan, this.paginationSize));\n }\n }\n\n printFocusBeweging(bewegingId: number): Promise<boolean> {\n return this.printBewegingService.printBeweging(bewegingId, this.paginationSize, this.iaversieinfo);\n }\n\n keurAlleActiesGoed(): void {\n this.viewerControlsService.keurAlleActiesGoed(this.ongeplandeActies);\n }\n}\n","<loxia-messages></loxia-messages>\n<mst-overlay *ngIf=\"(progressIndicator$ | async)\" >\n <mst-progress-indicator id=\"progress-indicator\">\n </mst-progress-indicator>\n</mst-overlay>\n\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","import { Injectable, OnDestroy } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport {\n IResourceMethodObservable,\n Resource,\n ResourceAction,\n ResourceHandler,\n ResourceModel,\n ResourceParams,\n ResourceRequestMethod\n} from '@ngx-resource/core';\nimport { Subscription } from 'rxjs';\nimport { MstEditorState } from '../state/mst-editor-state';\n\n@Injectable()\n@ResourceParams({\n pathPrefix: '/mst/rest/signaleringsbeeldeninfo'\n})\n\nexport class SignaleringsbeeldInfoResource extends Resource implements OnDestroy{\n private subscriptions = new Subscription();\n\n constructor(restHandler: ResourceHandler, private store: Store<MstEditorState>) {\n super(restHandler);\n this.subscriptions.add(this.store.select('baseUrl').subscribe(baseUrl => this.$setUrl(baseUrl)));\n }\n\n ngOnDestroy(): void {\n this.subscriptions.unsubscribe();\n }\n\n @ResourceAction({\n path: '/',\n method: ResourceRequestMethod.Post\n })\n laadSignaleringsbeeldInfo: IResourceMethodObservable<{\n pplgs: string[];\n versie: string;\n ingangsDatum: string;\n }, ISignaleringsbeeldInfoDto[]>;\n\n @ResourceAction({\n path: '/valideeriaversie'\n })\n getBestaatIALevering: IResourceMethodObservable<{ versie: string }, Response>;\n\n}\n\nexport interface ISignaleringsbeeldInfoDto {\n bladNaam: string;\n pplgs: string[];\n metVisualisatie: boolean;\n}\n\nexport class SignaleringsbeeldInfoDto extends ResourceModel implements ISignaleringsbeeldInfoDto {\n $resource = SignaleringsbeeldInfoResource;\n bladNaam: string;\n pplgs: string[];\n metVisualisatie: boolean;\n\n constructor(data?: ISignaleringsbeeldInfoDto) {\n super();\n this.$setData(data);\n }\n\n toJSON(): any {\n return { bladnaam: this.bladNaam, pplgs: this.pplgs, metVisualisatie: this.metVisualisatie };\n }\n\n toString(): string {\n return `${ this.bladNaam }, ${ this.pplgs }, ${ this.metVisualisatie }`;\n }\n\n $setData(data: ISignaleringsbeeldInfoDto): this {\n if (data) {\n this.bladNaam = data.bladNaam;\n this.pplgs = data.pplgs;\n this.metVisualisatie = data.metVisualisatie;\n }\n return this;\n }\n\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable, OnDestroy } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { Subscription } from 'rxjs';\nimport { MstEditorState } from '../state/mst-editor-state';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BaseRestService implements OnDestroy {\n\n private subscriptions: Subscription = new Subscription();\n protected baseUrl: string;\n protected iaVersie: string;\n\n constructor(protected httpClient: HttpClient, protected store: Store<MstEditorState>) {\n this.subscriptions.add(this.store.select('baseUrl').subscribe(baseUrl => this.baseUrl = baseUrl));\n this.subscriptions.add(this.store.select('iaVersie').subscribe(iaVersie => this.iaVersie = iaVersie.versie));\n }\n\n ngOnDestroy(): void {\n this.subscriptions.unsubscribe();\n }\n}\n","import { HttpHeaders } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\nimport { Actie, Beweging } from '../optimo';\nimport { ClearProgress } from '../state/actions/actions';\nimport { BaseRestService } from './base-rest.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BewegingVerrijkerService extends BaseRestService {\n\n public getBewegingen(bewegingen: Beweging[], ongeplandeActies: Actie[]): Observable<Beweging[]> {\n return this.httpClient.put<Beweging[]>(\n this.getUrl(this.iaVersie),\n { bewegingen, ongeplandeActies },\n { headers: new HttpHeaders().set('Accept', 'application/json').append('Content-Type', 'application/json') })\n .pipe(catchError((err, _caught) => this.errorHandler(err)));\n }\n\n private getUrl(iaVersie: string): string {\n return `${ this.baseUrl }/mst/rest/beweging/${ iaVersie }`;\n }\n\n errorHandler(error: any): [] {\n // eslint-disable-next-line no-console\n console.log('error bij verrijken', error);\n this.store.dispatch(ClearProgress());\n return [];\n }\n}\n","import { domein } from '@loxia/rijwegen';\nimport VrijebaanRijwegplan = domein.VrijebaanRijwegplan;\n\nexport class RijwegplanRijwegDwangCombinatie {\n constructor(public readonly rijwegplan: domein.Rijwegplan,\n public readonly rijweg: domein.Rijweg,\n public readonly dwang: domein.Dwang) {\n }\n\n getDwangNummer(): number {\n return this.dwang.getDwangNummer() === 0 ? -1 : this.dwang.getDwangNummer();\n }\n\n getVanPrlSpoor(): string {\n return this.dwang.getVanPrlSpoor();\n }\n\n getNaarPrlSpoor(): string {\n return this.dwang.getNaarPrlSpoor();\n }\n\n getRoute(): domein.Route {\n return this.dwang.getRoute();\n }\n\n isVrijeBaanRijweg(): boolean {\n const vbrwp = <VrijebaanRijwegplan>this.rijwegplan;\n return !!vbrwp.getVervolgSpoor;\n }\n}\n","import { domein, JsJavaUtil, sbblad } from '@loxia/rijwegen';\nimport { Actie, Beweging } from '../optimo';\nimport { BewegingUtils } from '../services/beweging-utils.service';\nimport { RijwegplanRijwegDwangCombinatie } from './rijwegplan-rijweg-dwang-combinatie';\n\nexport enum RitdeelZichtbaarheid {\n ZICHTBAAR = 1,\n ONZICHTBAAR_DOOR_GEBRUIKER = 2,\n ONZICHTBAAR_DOOR_SYSTEEM = 3\n}\n\nexport class Ritdeel {\n private alternatieveRoutes: sbblad.AlternativeRoute[] = [];\n private zichtbaarheid = RitdeelZichtbaarheid.ZICHTBAAR;\n private zichtbaarBuitenPaginatie = false;\n\n constructor(private readonly rijwegplanRijwegDwangCombi: RijwegplanRijwegDwangCombinatie,\n public acties: Actie[],\n public readonly beweging: Beweging,\n public vrijebaanRijwegplanRijwegDwangCombi: RijwegplanRijwegDwangCombinatie,\n public vervolgSpoor: string,\n private topoElementen: sbblad.TopologyElement[]) {\n }\n\n getAlternatieveRoutes(): sbblad.AlternativeRoute[] {\n return this.alternatieveRoutes;\n }\n\n copyMetDwang(nieuweDwang: domein.Dwang): Ritdeel {\n const nieuweRijwegplanRijwegDwangCombi =\n new RijwegplanRijwegDwangCombinatie(\n this.rijwegplanRijwegDwangCombi.rijwegplan, this.rijwegplanRijwegDwangCombi.rijweg, nieuweDwang);\n const copy = new Ritdeel(nieuweRijwegplanRijwegDwangCombi, [], this.beweging,\n this.vrijebaanRijwegplanRijwegDwangCombi, this.vervolgSpoor, this.topoElementen);\n copy.alternatieveRoutes = this.alternatieveRoutes;\n copy.zichtbaarheid = this.zichtbaarheid;\n copy.zichtbaarBuitenPaginatie = this.zichtbaarBuitenPaginatie;\n return copy;\n }\n\n copyMetAlternatieveRoutes(alternatieveRoutes: sbblad.AlternativeRoute[]): Ritdeel {\n const copy = new Ritdeel(this.rijwegplanRijwegDwangCombi, this.acties, this.beweging,\n this.vrijebaanRijwegplanRijwegDwangCombi, this.vervolgSpoor, this.topoElementen);\n copy.alternatieveRoutes = alternatieveRoutes;\n copy.zichtbaarheid = this.zichtbaarheid;\n copy.zichtbaarBuitenPaginatie = this.zichtbaarBuitenPaginatie;\n\n return copy;\n }\n\n copyMetAlternatieveRoutesZonderActies(alternatieveRoutes: sbblad.AlternativeRoute[]): Ritdeel {\n const copy = this.copyMetAlternatieveRoutes(alternatieveRoutes);\n if (copy.beweging) {\n copy.acties = [];\n }\n return copy;\n }\n\n copyMetZichtbaarheid(zichtbaarheid: RitdeelZichtbaarheid): Ritdeel {\n const copy = new Ritdeel(this.rijwegplanRijwegDwangCombi, this.acties, this.beweging,\n this.vrijebaanRijwegplanRijwegDwangCombi, this.vervolgSpoor, this.topoElementen);\n copy.alternatieveRoutes = this.alternatieveRoutes;\n copy.zichtbaarheid = zichtbaarheid;\n copy.zichtbaarBuitenPaginatie = this.zichtbaarBuitenPaginatie;\n\n return copy;\n }\n\n copyMetZichtbaarheidEnPaginatie(zichtbaarheid: RitdeelZichtbaarheid, zichtbaarBuitenPaginatie: boolean): Ritdeel {\n const copy = this.copyMetZichtbaarheid(zichtbaarheid);\n copy.zichtbaarBuitenPaginatie = zichtbaarBuitenPaginatie;\n\n return copy;\n }\n\n copyMetZichtbaarheidBuitenPaginatie(zichtbaarBuitenPaginatie: boolean): Ritdeel {\n const copy = new Ritdeel(this.rijwegplanRijwegDwangCombi, this.acties, this.beweging,\n this.vrijebaanRijwegplanRijwegDwangCombi, this.vervolgSpoor, this.topoElementen);\n copy.alternatieveRoutes = this.alternatieveRoutes;\n copy.zichtbaarheid = this.zichtbaarheid;\n copy.zichtbaarBuitenPaginatie = zichtbaarBuitenPaginatie;\n\n return copy;\n }\n\n equals(other: Ritdeel): boolean {\n if (!other) {\n return false;\n }\n return other.rijwegplanRijwegDwangCombi === this.rijwegplanRijwegDwangCombi;\n }\n\n getRijwegplan(): domein.Rijwegplan {\n return this.rijwegplanRijwegDwangCombi.rijwegplan;\n }\n\n getRijweg(): domein.Rijweg {\n return this.rijwegplanRijwegDwangCombi.rijweg;\n }\n\n getDwang(): domein.Dwang {\n return this.rijwegplanRijwegDwangCombi.dwang;\n }\n\n getRoute(): domein.Route {\n return this.rijwegplanRijwegDwangCombi.getRoute();\n }\n\n getSeinen(): domein.Sein[] {\n const seinen: domein.Sein[] = JsJavaUtil.listToArray(this.rijwegplanRijwegDwangCombi.getRoute().getSeinen());\n if (this.vrijebaanRijwegplanRijwegDwangCombi) {\n const sein: domein.Sein[] = JsJavaUtil.listToArray(this.vrijebaanRijwegplanRijwegDwangCombi.getRoute().getSeinen());\n seinen.push(...sein);\n }\n return seinen;\n }\n\n getVanPrlSpoor(): string {\n return this.rijwegplanRijwegDwangCombi.getVanPrlSpoor();\n }\n\n getVisueelNaarPrlSpoor(): string {\n if (this.vervolgSpoor) {\n return this.vervolgSpoor;\n }\n\n return this.rijwegplanRijwegDwangCombi.getNaarPrlSpoor();\n }\n\n getNaarPrlSpoor(): string {\n return this.rijwegplanRijwegDwangCombi.getNaarPrlSpoor();\n }\n\n getNaarPrlSpoorText(): string {\n let retval = this.rijwegplanRijwegDwangCombi.getNaarPrlSpoor();\n if (this.vrijebaanRijwegplanRijwegDwangCombi) {\n retval += '_e';\n }\n if (this.vervolgSpoor) {\n retval += '(' + this.vervolgSpoor + ')';\n }\n return retval;\n }\n\n getVrijebaanRijwegplan(): domein.Rijwegplan {\n return this.vrijebaanRijwegplanRijwegDwangCombi.rijwegplan;\n }\n\n getVrijebaanRijweg(): domein.Rijweg {\n return this.vrijebaanRijwegplanRijwegDwangCombi.rijweg;\n }\n\n getVrijebaanDwang(): domein.Dwang {\n return this.vrijebaanRijwegplanRijwegDwangCombi.dwang;\n }\n\n getDwangNummer(): number {\n return this.rijwegplanRijwegDwangCombi.getDwangNummer();\n }\n\n getZichtbaarheid(): RitdeelZichtbaarheid {\n return this.zichtbaarheid;\n }\n\n isZichtbaar(): boolean {\n return this.zichtbaarheid === RitdeelZichtbaarheid.ZICHTBAAR;\n }\n\n isZichtbaarBinnenWindow(): boolean {\n return this.isZichtbaar() && !this.zichtbaarBuitenPaginatie;\n }\n\n isBinnenWindow(): boolean {\n return (this.zichtbaarheid === RitdeelZichtbaarheid.ZICHTBAAR ||\n this.zichtbaarheid === RitdeelZichtbaarheid.ONZICHTBAAR_DOOR_GEBRUIKER)\n && this.zichtbaarBuitenPaginatie === false;\n }\n\n isNietBeschikbaar(): boolean {\n return this.zichtbaarheid === RitdeelZichtbaarheid.ONZICHTBAAR_DOOR_SYSTEEM;\n }\n\n isOnzichtbaarDoorGebruiker(): boolean {\n return this.zichtbaarheid === RitdeelZichtbaarheid.ONZICHTBAAR_DOOR_GEBRUIKER;\n }\n\n isNieuw(): boolean {\n return !this.beweging || this.beweging.wijzigStatus === BewegingUtils.TOEGEVOEGD;\n }\n\n getPplg(): string {\n return this.rijwegplanRijwegDwangCombi.rijwegplan.getPPLG();\n }\n\n getPplgString(): string {\n if (this.getVanSeinPplg() === this.getNaarSeinPplg()) {\n return this.getVanSeinPplg();\n } else {\n return this.getVanSeinPplg() + ' / ' + this.getNaarSeinPplg();\n }\n }\n\n heeftVrijebaanInfo(): boolean {\n return this.vrijebaanRijwegplanRijwegDwangCombi && !!this.vrijebaanRijwegplanRijwegDwangCombi.dwang;\n }\n\n getVrijebaanPrlRoute(): domein.Route {\n return this.vrijebaanRijwegplanRijwegDwangCombi.getRoute();\n }\n\n getTopologieElementen(): sbblad.TopologyElement[] {\n return this.topoElementen;\n }\n\n getBewegingId(): string {\n if (this.beweging) {\n return '' + this.beweging.id;\n }\n return '';\n }\n\n getTreinNummer(): string {\n if (this.beweging?.treinNummer) {\n return '' + this.beweging.treinNummer;\n }\n return '';\n }\n\n getVanSeinPplg(): string {\n return this.beweging ? this.beweging.vanSeinPplg : this.getRoute().getBeginSein().getPPLG();\n }\n\n getNaarSeinPplg(): string {\n return this.beweging ? this.beweging.naarSeinPplg : this.getRoute().getEindSein().getPPLG();\n }\n\n getVanSeinName(): string {\n return this.getRoute().getBeginSein().getName();\n }\n\n getNaarSeinName(): string {\n return this.getRoute().getEindSein().getName();\n }\n\n getZichtbaarheidBuitenPaginatie(): boolean {\n return this.zichtbaarBuitenPaginatie;\n }\n\n bepaalTopologieElementen(signaleringsBeeldManagerService): void {\n const topoElementen = signaleringsBeeldManagerService.bepaalRouteElementen(this.getRoute());\n\n if (this.heeftVrijebaanInfo()) {\n const vrijebaanTopoElementen = signaleringsBeeldManagerService.bepaalRouteElementen(this.getVrijebaanPrlRoute());\n topoElementen.push(...vrijebaanTopoElementen);\n }\n this.topoElementen = topoElementen;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { domein, JsJavaUtil } from '@loxia/rijwegen';\nimport { MessagesService } from '../atomic-components/services/messages.service';\nimport { RijwegplanRijwegDwangCombinatie } from '../model/rijwegplan-rijweg-dwang-combinatie';\nimport { Ritdeel } from '../model/ritdeel';\nimport { Beweging, Rit } from '../optimo';\nimport { MessageBuilder } from '../util/message-builder';\nimport { EditorService } from './editor.service';\n\nconst SPOOR_NAAR_VRIJEBAAN_POSTFIX = '_e';\nconst SPOOR_NAAR_VEERWISSEL_VRIJEBAAN_POSTFIX = '_v';\n\n@Injectable()\nexport class RitLezerService {\n constructor(private rijwegPlanEditorService: EditorService,\n private readonly messagesService: MessagesService) {\n }\n\n public parseRit(rit: Rit, ritGewijzigdToegestaan: boolean): Ritdeel[] {\n const ritDelen = [];\n const missingPplgs = [];\n if (!this.ritBestandIsGewijzigd(rit, ritGewijzigdToegestaan)) {\n rit.bewegingen.forEach(beweging => this.parseBeweging(beweging, ritDelen, missingPplgs));\n }\n return ritDelen;\n }\n\n private parseBeweging(beweging: Beweging, ritDelen: any[], missingPplgs: string[]): void {\n const rijwegPlan = this.getRijwegPlan(beweging.vanPplg);\n if (!rijwegPlan) {\n if (!missingPplgs.includes(beweging.vanPplg)) {\n this.messagesService.showMessage(MessageBuilder.rijwegplanNietGevonden(beweging));\n missingPplgs.push(beweging.vanPplg);\n }\n return;\n }\n const rijweg = this.getRijweg(rijwegPlan, beweging.vanSpoor, beweging.naarSpoor);\n if (!rijweg) {\n this.messagesService.showMessage(MessageBuilder.rijwegNietGevonden(beweging));\n return;\n }\n\n const dwang = this.getDwang(rijweg, beweging.dwangNummer);\n if (!dwang) {\n this.messagesService.showMessage(MessageBuilder.dwangNietGevonden(beweging));\n return;\n }\n const { vrijebaanDwangInfo, vervolgSpoor } = this.extractVrijebaanDwangInfo(beweging, rijwegPlan, rijweg);\n const dwangInfo = new RijwegplanRijwegDwangCombinatie(rijwegPlan, rijweg, dwang);\n ritDelen.push(new Ritdeel(dwangInfo, beweging.ritActies, beweging, vrijebaanDwangInfo, vervolgSpoor, []));\n }\n\n private extractVrijebaanDwangInfo(beweging: Beweging, rijwegPlan: domein.Rijwegplan, rijweg: domein.Rijweg) {\n let vrijebaanDwangInfo = null;\n let vervolgSpoor;\n if (beweging.naarSpoor.endsWith(SPOOR_NAAR_VRIJEBAAN_POSTFIX) ||\n beweging.naarSpoor.endsWith(SPOOR_NAAR_VEERWISSEL_VRIJEBAAN_POSTFIX)) {\n let vrijebaanRijweg: domein.Rijweg;\n let vrijebaanDwang;\n const vrijebaanRijwegplan =\n this.rijwegPlanEditorService.getVrijebaanRijwegplan(rijwegPlan.getPPLG(),\n rijweg.getEindSein().getName());\n if (vrijebaanRijwegplan) {\n const rijwegenArray: domein.Rijweg[] = JsJavaUtil.listToArray(vrijebaanRijwegplan.getRijwegen());\n\n const vrijebaanRijwegen =\n rijwegenArray.filter(\n vbRijweg => vbRijweg.getBeginSein().getName() === rijweg.getEindSein().getName());\n if (vrijebaanRijwegen.length > 0) {\n vrijebaanRijweg = vrijebaanRijwegen[0];\n vrijebaanDwang = vrijebaanRijweg.getDwangVoorDwangNummer(0);\n vervolgSpoor = vrijebaanRijwegplan.getVervolgSpoor(vrijebaanRijweg);\n }\n vrijebaanDwangInfo =\n new RijwegplanRijwegDwangCombinatie(vrijebaanRijwegplan, vrijebaanRijweg, vrijebaanDwang);\n }\n }\n return { vrijebaanDwangInfo, vervolgSpoor };\n }\n\n private getRijwegPlan(pplg: string): domein.Rijwegplan {\n return this.rijwegPlanEditorService.getRijwegplan(pplg);\n }\n\n private getDwang(rijweg: domein.Rijweg, dwangNummer: number): domein.Dwang {\n return rijweg.getDwangVoorDwangNummer(this.converteerDwangNummer(dwangNummer));\n }\n\n private getRijweg(rijwegPlan: domein.Rijwegplan, vanSpoor: string, naarSpoor: string): domein.Rijweg {\n const vanPrlSpoor = this.verwijderExtendedInformatie(vanSpoor);\n const naarPrlSpoor = this.verwijderExtendedInformatie(naarSpoor);\n return rijwegPlan.getRijweg(vanPrlSpoor, naarPrlSpoor);\n }\n\n private ritBestandIsGewijzigd(rit: Rit, ritGewijzigdToegestaan: boolean): boolean {\n for (const beweging of rit.bewegingen) {\n if (this.isGewijzigd(beweging) && !ritGewijzigdToegestaan) {\n this.messagesService.showMessage(MessageBuilder.ritFileAlGewijzigdError(beweging));\n return true;\n }\n }\n return false;\n }\n\n private verwijderExtendedInformatie(spoor: string): string {\n return spoor.split('_')[0];\n }\n\n private converteerDwangNummer(dwangNummer: number): number {\n return (dwangNummer === -1) ? 0 : dwangNummer;\n }\n\n private isGewijzigd(beweging: Beweging): boolean {\n return beweging.wijzigStatus === 'Gewijzigd';\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { Store } from '@ngrx/store';\nimport { map, withLatestFrom } from 'rxjs/operators';\nimport { LogDto } from '../../../generated/openapi';\nimport { MessagesService } from '../../atomic-components/services/messages.service';\nimport { MeldingEvent } from '../../model/melding-event';\nimport { OngeplandeActie } from '../../model/ongeplande-actie';\nimport { MstLoggingResource } from '../../resources/mstlogging.resource';\nimport { SignaleringsBeeldManagerService } from '../../services/signalerings-beeld-manager.service';\nimport { ActieHelper } from '../../util/actie-helper';\nimport { LoggingHelper } from '../../util/logging-helper';\nimport { MeldingBuilder } from '../../util/melding-builder';\nimport { MessageBuilder } from '../../util/message-builder';\nimport { ArrayMultimap } from '../../util/multi-map';\nimport {\n BepaalOngeplandeActies,\n SetOngeplandeActies,\n SetOngeplandeActiesBepaald,\n SetOngeplandeActieSelectieIds\n} from '../actions/actions';\nimport { MstEditorState } from '../mst-editor-state';\n\n@Injectable()\nexport class BepaalOngeplandeActiesEffect {\n bepaalOngeplandeActies$ = createEffect(() => this.actions$.pipe(\n ofType(BepaalOngeplandeActies),\n withLatestFrom(this.store),\n map(([action, store]) => {\n\n const puicActieMap = new ArrayMultimap<string, OngeplandeActie>();\n const nietGevondenTakken = [];\n const logMeldingDTOs: LogDto[] = [];\n\n const acties = store.ritDelen.flatMap(rd => rd.acties);\n\n action.ongeplandeActies.forEach(actie => {\n const alreadyAdded = acties.filter(a => a.id === actie.id).length > 0;\n if (!alreadyAdded) {\n const puics = this.actieHelper.bepaalPuicsVoorActie(actie);\n\n if (puics.length > 0) {\n const ongeplandeActie = new OngeplandeActie(actie, puics);\n this.updatePuicActieMap(puics, ongeplandeActie, puicActieMap);\n } else {\n const takId = ActieHelper.bepaalTakId(actie);\n const spoortak = this.sbmService.getSbSpoortak(takId);\n if (!spoortak && nietGevondenTakken.indexOf(takId) < 0) {\n nietGevondenTakken.push(takId);\n const melding: MeldingEvent = MeldingBuilder.nietGevondenTakkenOngeplandeActies(nietGevondenTakken);\n logMeldingDTOs.push(this.loggingHelper.maakLogDTO(melding, actie));\n } else if (spoortak) {\n const melding: MeldingEvent = MeldingBuilder.actieHighlightError([actie.id]);\n logMeldingDTOs.push(this.loggingHelper.maakLogDTO(melding, actie));\n this.messagesService.showMessage(MessageBuilder.actieHighlightError([actie.id]));\n }\n }\n }\n });\n if (nietGevondenTakken.length > 0) {\n this.messagesService.showMessage(MessageBuilder.nietGevondenTakkenOngeplandeActies(nietGevondenTakken));\n }\n if (logMeldingDTOs.length > 0) {\n this.mstLogResource.logMessages(logMeldingDTOs);\n }\n\n this.store.dispatch(SetOngeplandeActies(puicActieMap));\n this.store.dispatch(SetOngeplandeActieSelectieIds(Array.from(puicActieMap.keys())));\n this.store.dispatch(SetOngeplandeActiesBepaald(true));\n })\n ), { dispatch: false });\n\n constructor(private actions$: Actions,\n private store: Store<MstEditorState>,\n private sbmService: SignaleringsBeeldManagerService,\n private mstLogResource: MstLoggingResource,\n private messagesService: MessagesService,\n private actieHelper: ActieHelper,\n private loggingHelper: LoggingHelper\n ) {\n }\n\n private updatePuicActieMap(puics: string[], ongeplandeActie: OngeplandeActie, puicMap: ArrayMultimap<string, OngeplandeActie>): void {\n puics.forEach(puic => {\n puicMap.put(puic, ongeplandeActie);\n });\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DateService {\n\n // simple method, in separate method/service to be able to make tests stable\n getCurrentDate(): Date {\n return new Date();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { MessagesService, } from '../../atomic-components/services/messages.service';\nimport { Message, Severity } from '../../atomic-components/message/';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { Store } from '@ngrx/store';\nimport { map, take } from 'rxjs/operators';\nimport { Actie, Rit } from '../../optimo';\nimport { SignaleringsbeeldInfoResource } from '../../resources/signaleringsbeeldinfo.resource';\nimport { DateService } from '../../util/date.service';\nimport Utils from '../../util/utils';\nimport * as MstActions from '../actions/actions';\nimport { SetIaVersie, ShowProgress } from '../actions/actions';\nimport { MstEditorState } from '../mst-editor-state';\n\n@Injectable()\nexport class BepaalSbInfosEffect {\n\n bepaalSbInfos$ = createEffect(() => this.actions$.pipe(\n ofType(MstActions.bepaalSbInfos),\n map((actie) => {\n let pplgs = this.bepaalPplgs(actie.rit);\n pplgs = this.bepaalPplgsUitActies(actie.ongeplandeActies, pplgs);\n if (pplgs.length > 0) {\n this.laadSignaleringsbeeldInfo(pplgs, actie.ritGewijzigdToegestaan, actie.iaVersie, actie.rit, actie.paginationSize);\n }\n\n })), { dispatch: false }\n );\n\n constructor(private readonly actions$: Actions,\n private readonly store: Store<MstEditorState>,\n private readonly sbiResource: SignaleringsbeeldInfoResource,\n private readonly messagesService: MessagesService,\n private readonly dateService: DateService) {\n }\n\n bepaalPplgs(rit: Rit): Array<string> {\n const pplgs = [];\n rit?.bewegingen?.forEach(beweging => {\n this.voegNieuwePplgToe(pplgs, beweging.vanPplg);\n this.voegNieuwePplgToe(pplgs, beweging.naarPplg);\n this.voegNieuwePplgToe(pplgs, beweging.vanSeinPplg);\n this.voegNieuwePplgToe(pplgs, beweging.naarSeinPplg);\n });\n return pplgs;\n }\n\n bepaalPplgsUitActies(acties: Actie[], pplgs: string[]): string[] {\n acties.forEach(actie => this.voegNieuwePplgToe(pplgs, actie.pplgNaam));\n return pplgs;\n }\n\n private laadSignaleringsbeeldInfo(pplgs: string[], ritGewijzigdToegestaan: boolean, iaVersie: string, treinpad: Rit, paginationSize: number): void {\n const obs = this.sbiResource.getBestaatIALevering({ versie: iaVersie });\n this.store.dispatch(ShowProgress());\n obs.pipe(take(1)).subscribe({\n next: _res => this.store.dispatch(MstActions.laadEnVerwerkSignaleringsbeeldInfo(treinpad, paginationSize, pplgs, ritGewijzigdToegestaan)),\n error: err => {\n this.messagesService.showMessage(new Message(Severity.INFORMATION, Utils.getValidErorrMessage(err)));\n const iaVersieInfo = { versie: 'DONNA_97207_VER_1', ingangsDatum: this.dateService.getCurrentDate() };\n this.store.dispatch(SetIaVersie(iaVersieInfo));\n this.store.dispatch(MstActions.laadEnVerwerkSignaleringsbeeldInfo(treinpad, paginationSize, pplgs, ritGewijzigdToegestaan));\n }\n });\n }\n\n private voegNieuwePplgToe(pplgs: Array<string>, pplg: string): void {\n if (pplg && pplgs.indexOf(pplg) < 0) {\n pplgs.push(pplg);\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { domein, JsJavaUtil } from '@loxia/rijwegen';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { Store } from '@ngrx/store';\nimport { map } from 'rxjs/operators';\nimport { RijwegplanRijwegDwangCombinatie } from '../../model/rijwegplan-rijweg-dwang-combinatie';\nimport { EditorService } from '../../services/editor.service';\nimport { SignaleringsBeeldManagerService } from '../../services/signalerings-beeld-manager.service';\nimport {\n BewegingInvoegen,\n SetBeginSeinSelectieIds,\n SetEindSeinenClickableIds,\n SetEindSeinSelectieIds,\n SetNieuwRouteBeginSein\n} from '../actions/actions';\nimport { MstEditorState } from '../mst-editor-state';\nimport VrijebaanRijwegplan = domein.VrijebaanRijwegplan;\n\n@Injectable()\nexport class BewegingInvoegenEffect {\n constructor(private actions$: Actions,\n private store: Store<MstEditorState>,\n private sbmService: SignaleringsBeeldManagerService,\n private editorService: EditorService) {\n }\n\n bewegingInvoegen$ = createEffect(() => this.actions$.pipe(\n ofType(BewegingInvoegen),\n map(action => {\n const startSeinOpRitdeel = action.startSeinOpRitdeel;\n const sein = startSeinOpRitdeel.sein;\n const sbSein = this.sbmService.getSBSein(sein);\n const pplg = sbSein.getPPLG();\n\n const combinaties = [];\n const rijwegplan = this.editorService.getRijwegplan(pplg);\n const eindSeinen: domein.Sein[] = JsJavaUtil.listToArray(rijwegplan.getEindSeinen(sein.getName()));\n combinaties.push(...this.maakCombinaties(rijwegplan, startSeinOpRitdeel.sein, eindSeinen));\n\n if (startSeinOpRitdeel.ritdeel.heeftVrijebaanInfo()) {\n // vrije baan af\n const vbrwp = <VrijebaanRijwegplan>startSeinOpRitdeel.ritdeel.getVrijebaanRijwegplan();\n const otherPplg = vbrwp.getTegenOvergesteldePplg(rijwegplan.getPPLG());\n\n const rwp = this.editorService.getRijwegplan(otherPplg);\n const eSeinen: domein.Sein[] = JsJavaUtil.listToArray(rwp.getEindSeinen(startSeinOpRitdeel.sein.getName()));\n combinaties.push(...this.maakCombinaties(rwp, startSeinOpRitdeel.sein, eSeinen));\n } else {\n // vrije baan op\n const vrijebaanRijwegplan =\n this.editorService.getVrijebaanRijwegplan(pplg, startSeinOpRitdeel.sein.getName());\n if (vrijebaanRijwegplan) {\n const vrijebaanEindSeinen: domein.Sein[] = JsJavaUtil.listToArray(vrijebaanRijwegplan.getEindSeinen(startSeinOpRitdeel.sein.getName()));\n combinaties.push(...this.maakCombinaties(vrijebaanRijwegplan, startSeinOpRitdeel.sein, vrijebaanEindSeinen));\n }\n }\n\n const eindSeinenPuics = [];\n combinaties.forEach(c => {\n const sbEindSein = this.sbmService.getSBSein(c.rijweg.getEindSein());\n if (sbEindSein) {\n const eindSeinPuic = sbEindSein.getPuic();\n action.puicNaarEindSeinCombinatie.set(eindSeinPuic, c);\n eindSeinenPuics.push(eindSeinPuic);\n }\n });\n\n this.store.dispatch(SetNieuwRouteBeginSein(startSeinOpRitdeel));\n this.store.dispatch(SetBeginSeinSelectieIds([sbSein.getPuic()]));\n this.store.dispatch(SetEindSeinSelectieIds(eindSeinenPuics));\n this.store.dispatch(SetEindSeinenClickableIds(eindSeinenPuics));\n\n })\n ), { dispatch: false });\n\n private maakCombinaties(rijwegplan: domein.Rijwegplan, startSein: domein.Sein, eindSeinen: domein.Sein[]): any[] {\n const combinaties = [];\n eindSeinen.forEach(eindSein => {\n const rijweg = rijwegplan.getRijwegVoorSeinen(startSein, eindSein); // zoek rijweg van sein naar sein\n const dwang = rijweg.getVoorkeurDwang(); // pak voorkeursdwang van de rijweg\n combinaties.push(new RijwegplanRijwegDwangCombinatie(rijwegplan, rijweg, dwang));\n });\n return combinaties;\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { Store } from '@ngrx/store';\nimport { map, withLatestFrom } from 'rxjs/operators';\nimport { OngeplandeActie } from '../../model/ongeplande-actie';\nimport { ArrayMultimap } from '../../util/multi-map';\nimport { DeleteOngeplandeActie, DeleteOngeplandeActieSelectieId } from '../actions/actions';\nimport { MstEditorState } from '../mst-editor-state';\n\n@Injectable()\nexport class DeleteOngeplandeActieEffect {\n constructor(private actions$: Actions,\n private store: Store<MstEditorState>) {\n }\n\n authActions$ = createEffect(() => this.actions$.pipe(\n ofType(DeleteOngeplandeActie),\n withLatestFrom(this.store),\n map(([action, state]) => {\n const actie = action.ongeplandeActie;\n const ongeplandeActies = state.ongeplandeActies;\n\n this.updateOngeplandeActiesIdsOnDelete(actie, ongeplandeActies);\n })), { dispatch: false });\n\n updateOngeplandeActiesIdsOnDelete(actie, ongeplandeActies: ArrayMultimap<string, OngeplandeActie>): void {\n actie.puics.forEach(puic => {\n const acties = ongeplandeActies.get(puic);\n if (acties) {\n const index = acties.indexOf(actie);\n if (index > -1) {\n acties.splice(index, 1);\n }\n if (acties.length === 0) {\n ongeplandeActies.delete(puic);\n this.store.dispatch(DeleteOngeplandeActieSelectieId(puic));\n }\n }\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { sbblad } from '@loxia/rijwegen';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { Store } from '@ngrx/store';\nimport { map, withLatestFrom } from 'rxjs/operators';\nimport { SignaleringsBeeldManagerService } from '../../services/signalerings-beeld-manager.service';\nimport * as MstActions from '../actions/actions';\nimport { SetOngeplandeActiesBepaald } from '../actions/actions';\nimport { navigeerVanaf } from '../actions/ritdelen.actions';\nimport { MstEditorState } from '../mst-editor-state';\n\n@Injectable()\nexport class FocusEffect {\n\n constructor(private actions$: Actions,\n private store: Store<MstEditorState>,\n private sbmService: SignaleringsBeeldManagerService) {\n }\n\n focusOpBeweging$ = createEffect(() => this.actions$.pipe(\n ofType(MstActions.focusOpRitdeel),\n withLatestFrom(this.store),\n map(([actie, _storeState]) => {\n const ritdeel = actie.ritdeel;\n const topoElementen = this.sbmService.bepaalRouteElementen(ritdeel.getRoute());\n const dwangPuics = this.getPuics(topoElementen);\n\n if (ritdeel.isNietBeschikbaar()) {\n this.store.dispatch(SetOngeplandeActiesBepaald(false));\n this.store.dispatch(navigeerVanaf(actie.paginationSize, actie.iaVersieInfo, ritdeel));\n }\n\n return MstActions.focusOpIds(dwangPuics);\n }))\n );\n\n private getPuics(topoElementen: sbblad.HasIdentifier[]): string[] {\n return topoElementen.map(e => e.getPuic());\n }\n}\n","import { Injectable } from '@angular/core';\nimport { MessagesService, } from '../../atomic-components/services/messages.service';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { Store } from '@ngrx/store';\nimport { map, take } from 'rxjs/operators';\nimport { ISignaleringsbeeldInfoDto } from '../../resources/signaleringsbeeldinfo.resource';\nimport { EditorService } from '../../services/editor.service';\nimport { RitLezerService } from '../../services/rit-lezer.service';\nimport { MessageBuilder } from '../../util/message-builder';\nimport Utils from '../../util/utils';\nimport * as MstActions from '../actions/actions';\nimport { SetSignaleringsbeeldInfoDtos } from '../actions/actions';\nimport * as RitdelenActions from '../actions/ritdelen.actions';\nimport { MstEditorState } from '../mst-editor-state';\n\n@Injectable()\nexport class LaadRouteFilesEffect {\n authActions$ = createEffect(() => this.actions$.pipe(\n ofType(SetSignaleringsbeeldInfoDtos),\n map(action => this.laadRouteFiles(action))), { dispatch: false }\n );\n\n constructor(private readonly actions$: Actions,\n private readonly store: Store<MstEditorState>,\n private readonly ritLezer: RitLezerService,\n private readonly editorService: EditorService,\n private readonly messagesService: MessagesService) {\n }\n\n laadRouteFiles(actie: {\n dtos: ISignaleringsbeeldInfoDto[];\n iaversieinfo: any;\n treinpad: any;\n paginationSize: number;\n ritGewijzigdToegestaan: boolean\n }): void {\n const isReady = this.editorService.isReady();\n isReady.then(() => {\n const pplgs = this.bepaalSbDtoPplgs(actie.dtos);\n const promise = this.editorService.laadRouteFiles(actie.iaversieinfo.versie, pplgs);\n\n promise.then(() => {\n this.updateRitdelen(actie);\n }, err => {\n this.messagesService.showMessage(MessageBuilder.rwpDataNietGevonden(Utils.getValidErorrMessage(err)));\n });\n });\n }\n\n private updateRitdelen(actie: {\n dtos: ISignaleringsbeeldInfoDto[];\n iaversieinfo: any;\n treinpad: any;\n paginationSize: number;\n ritGewijzigdToegestaan: boolean\n }): void {\n setTimeout(() => {\n this.store.select('ritDelen').pipe(take(1)).subscribe(ritdelen => {\n if (ritdelen.length === 0) {\n ritdelen = this.ritLezer.parseRit(actie.treinpad, actie.ritGewijzigdToegestaan);\n }\n\n this.store.dispatch(RitdelenActions.setRitDelen(ritdelen, actie.paginationSize, actie.iaversieinfo));\n this.store.dispatch(MstActions.setEditable(actie.treinpad.ritStatus !== 'Definitief'));\n });\n }, 0);\n }\n\n private bepaalSbDtoPplgs(dtos: ISignaleringsbeeldInfoDto[]): any[] {\n const pplgs = [];\n dtos.forEach(dto => {\n dto.pplgs.forEach(pplg => {\n if (!pplgs.includes(pplg)) {\n pplgs.push(pplg);\n }\n });\n });\n return pplgs;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\nimport { ClearProgress } from '../state/actions/actions';\nimport { BaseRestService } from './base-rest.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ConnectorService extends BaseRestService {\n\n public getOtherRand(puic: string): Observable<string> {\n return this.httpClient.get<string>(\n this.getUrl(this.iaVersie, puic))\n .pipe(catchError((err, _caught) => this.handleResult(err)));\n }\n\n private getUrl(iaVersie: string, puic: string): string {\n return `${ this.baseUrl }/mst/rest/connector/${iaVersie}/${ puic }`;\n }\n\n handleResult(res: any): [] {\n if (res.error) {\n console.log('error bij ophalen connector-info', res.error);\n }\n this.store.dispatch(ClearProgress());\n return [];\n }\n}\n\n","import { Injectable } from '@angular/core';\nimport { ImxViewerComponent, Point, SvgInfo } from '@loxia/imx-viewer';\nimport { sbblad } from '@loxia/rijwegen';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { Store } from '@ngrx/store';\nimport { Observable, of, throwError } from 'rxjs';\nimport { catchError, map, switchMap, take, tap, withLatestFrom } from 'rxjs/operators';\nimport { MessagesService } from '../../atomic-components/services/messages.service';\nimport { Ritdeel, RitdeelZichtbaarheid } from '../../model/ritdeel';\nimport { InfraModel } from '../../optimo';\nimport { ISignaleringsbeeldInfoDto, SignaleringsbeeldInfoResource } from '../../resources/signaleringsbeeldinfo.resource';\nimport { ConnectorService } from '../../services/connector.service';\nimport { EditorService } from '../../services/editor.service';\nimport { SignaleringsBeeldManagerService } from '../../services/signalerings-beeld-manager.service';\nimport { MessageBuilder } from '../../util/message-builder';\nimport Utils from '../../util/utils';\nimport * as MstActions from '../actions/actions';\nimport { SetSignaleringsbeeldInfoDtos, SetVisibleSignaleringsbeeldInfoDtos } from '../actions/actions';\nimport * as RitdelenActions from '../actions/ritdelen.actions';\nimport { MstEditorState } from '../mst-editor-state';\nimport TopologyElement = sbblad.TopologyElement;\n\ninterface NavigeerBuitenRitInput {\n rand: TopologyElement;\n randPuic: string;\n storeState: MstEditorState;\n otherPplg?: string;\n dtos?: ISignaleringsbeeldInfoDto[];\n svgDataUrls?: string[];\n}\n\ninterface SignaleringsbeeldInfoInput {\n dtos?: ISignaleringsbeeldInfoDto[];\n actie: any;\n storeState: MstEditorState;\n}\n\n@Injectable()\nexport class LaadSignaleringsbeeldenEffect {\n\n private SVG_PIXEL_RUIMTE = 30;\n\n constructor(private actions$: Actions,\n private store: Store<MstEditorState>,\n private signaleringsBeeldManagerService: SignaleringsBeeldManagerService,\n private editorService: EditorService,\n private sbiResource: SignaleringsbeeldInfoResource,\n private connectorService: ConnectorService,\n private messagesSerivce: MessagesService) {\n }\n\n verwerkRitdelen$ = createEffect(() => this.actions$.pipe(\n ofType(RitdelenActions.setRitDelen, RitdelenActions.navigeer, RitdelenActions.navigeerVanaf),\n withLatestFrom(this.store),\n map(([actie, storeState]) => {\n this.store.dispatch(MstActions.SetOngeplandeActiesBepaald(false));\n this.verwerkRitdelen(actie, storeState);\n })), { dispatch: false }\n );\n\n laadEnVerwerkSignaleringsbeeldInfo$ = createEffect(() => this.actions$.pipe(\n ofType(MstActions.laadEnVerwerkSignaleringsbeeldInfo),\n withLatestFrom(this.store),\n switchMap(([actie, storeState]) => this.handleSignaleringsbeeldInfo({actie, storeState}))\n ), { dispatch: false });\n\n private handleSignaleringsbeeldInfo({actie, storeState} : SignaleringsbeeldInfoInput): Observable<ISignaleringsbeeldInfoDto[]> {\n return this.sbiResource.laadSignaleringsbeeldInfo(this.createSignaleringsbeeldInfoQueryDto(actie.pplgs, storeState.iaVersie)).pipe(\n take(1),\n tap((dtos) => this.processResponse({dtos, storeState, actie})),\n catchError((err) => {\n this.messagesSerivce.showMessage(MessageBuilder.nietGevondenSBI(err));\n return throwError(() => err);\n })\n );\n }\n\n private processResponse({ dtos, storeState, actie }: SignaleringsbeeldInfoInput): void {\n if (dtos && dtos.filter(dto => dto.metVisualisatie).length > 12) {\n this.messagesSerivce.showMessage(MessageBuilder.meerDan12BladenGevonden(dtos.length));\n }\n this.store.dispatch(SetSignaleringsbeeldInfoDtos(dtos, storeState.iaVersie, actie.rit, actie.paginationSize, actie.ritGewijzigdToegestaan));\n this.store.dispatch(SetVisibleSignaleringsbeeldInfoDtos(dtos));\n }\n\n navigeerBuitenRit$ = createEffect(() => this.actions$.pipe(\n ofType(MstActions.navigeerBuitenRit),\n withLatestFrom(this.store),\n switchMap(([actie, storeState]) =>\n of({\n rand: this.signaleringsBeeldManagerService.getTopologyElementByPuic(actie.randPuic),\n randPuic: actie.randPuic,\n storeState\n }).pipe(\n switchMap(this.getOtherRand.bind(this)),\n switchMap(this.loadRouteFilesAndSignaleringsbeeldInfo.bind(this)),\n switchMap(this.loadSignaleringsbeelden.bind(this)),\n map(this.processSvgsAndUpdateRitdelen.bind(this))\n )\n )\n ), { dispatch: false });\n\n private getOtherRand({ rand, randPuic, storeState}: NavigeerBuitenRitInput) {\n return this.connectorService.getOtherRand(randPuic).pipe(\n map(otherPplg => ({ otherPplg, rand, storeState }))\n );\n }\n\n private loadRouteFilesAndSignaleringsbeeldInfo({ otherPplg, rand, storeState }: NavigeerBuitenRitInput) {\n this.editorService.laadRouteFiles(storeState.iaVersie.versie, [rand.getPPLG(), otherPplg]);\n return this.sbiResource.laadSignaleringsbeeldInfo(this.createSignaleringsbeeldInfoQueryDto([rand.getPPLG(), otherPplg], storeState.iaVersie)).pipe(\n map(dtos => ({ dtos, storeState }))\n );\n }\n\n private loadSignaleringsbeelden({ dtos, storeState }: NavigeerBuitenRitInput) {\n return this.editorService.laadSignaleringsbeelden(storeState.iaVersie.versie, dtos).pipe(\n map(svgDataUrls => ({ svgDataUrls, storeState, dtos }))\n );\n }\n\n private processSvgsAndUpdateRitdelen({ svgDataUrls, storeState, dtos }: NavigeerBuitenRitInput): void {\n this.verwerkSvgs(svgDataUrls);\n const nieuweRitdelen = this.updateRitdelen(storeState.ritDelen, dtos);\n this.store.dispatch(MstActions.UpdateVisibleSignaleringsbeeldInfoDtos(dtos));\n this.store.dispatch(RitdelenActions.updateRitDelen(nieuweRitdelen));\n }\n\n verwerkRitdelen(actie, storeState: MstEditorState): void {\n const isInit = actie.type === RitdelenActions.SET_RIT_DELEN;\n const ritDelen: Ritdeel[] = isInit ? actie.ritDelen : storeState.ritDelen;\n const storeDtos: ISignaleringsbeeldInfoDto[] = storeState.signaleringsbeeldInfoDtos;\n\n this.navigeer(ritDelen, actie, storeDtos);\n\n const visibleRitDelen = ritDelen.filter(n => n.isZichtbaarBinnenWindow());\n const visibleRitPplgs: string[] = visibleRitDelen.map(r => r.getPplg()).filter(this.distinct);\n\n const visibleDtos = this.bepaalZichtbareDtos(visibleRitPplgs, storeDtos);\n const loadingDtos = this.bepaalToLoadDtos(visibleDtos, ritDelen, visibleRitDelen, visibleRitPplgs, storeState);\n\n this.editorService.laadSignaleringsbeelden(actie.iaversieinfo.versie, loadingDtos).pipe(\n tap(svgDataUrls => {\n this.verwerkSvgs(svgDataUrls);\n this.updateState(ritDelen, visibleDtos, storeState, visibleRitPplgs, loadingDtos, isInit, storeDtos);\n }),\n catchError(err => {\n this.messagesSerivce.showMessage(MessageBuilder.rwpDataNietGevonden(Utils.getValidErorrMessage(err)));\n throw err;\n })\n ).subscribe();\n }\n\n private updateState(ritDelen: Ritdeel[], visibleDtos: ISignaleringsbeeldInfoDto[], storeState: MstEditorState, visibleRitPplgs: string[], loadingDtos: any[], isInit: boolean, storeDtos: ISignaleringsbeeldInfoDto[]): void {\n setTimeout(() => {\n const nieuweRitdelen = this.updateRitdelen(ritDelen, visibleDtos);\n this.debugLog(storeState.debug, visibleRitPplgs, loadingDtos);\n\n if (!isInit) {\n this.store.dispatch(MstActions.UpdateSignaleringsbeeldInfoDtos(storeDtos));\n this.store.dispatch(MstActions.UpdateVisibleSignaleringsbeeldInfoDtos(loadingDtos));\n }\n this.store.dispatch(RitdelenActions.updateRitDelen(nieuweRitdelen));\n }, 0);\n }\n\n private createSignaleringsbeeldInfoQueryDto(pplgs: string[], iainfo: InfraModel): any {\n const datum = iainfo.ingangsDatum && !isNaN(iainfo.ingangsDatum.getTime()) ? iainfo.ingangsDatum.toISOString() : undefined;\n return { pplgs, versie: iainfo.versie, ingangsDatum: datum };\n }\n\n private verwerkSvgs(svgDataUrls): void {\n this.store.dispatch(MstActions.SetSvgInfos(this.bepaalSvgInfos(svgDataUrls)));\n }\n\n private bepaalSvgInfos(svgDataUrls): SvgInfo[] {\n let nextCoords = new Point(0, 0);\n const infos: SvgInfo[] = [];\n svgDataUrls.forEach(svgDataUrl => {\n if (svgDataUrl) {\n const decoded = atob(svgDataUrl.substring('data:image/svg+xml;base64,'.length));\n infos.push(new SvgInfo('data:image/svg+xml,' + decoded, nextCoords));\n nextCoords = new Point(nextCoords.x + ImxViewerComponent.getXCoordinate(decoded) + this.SVG_PIXEL_RUIMTE, 0);\n }\n });\n return infos;\n }\n\n private bepaalToLoadDtos(visibleDtos, ritDelen: Ritdeel[], visibleRitDelen, visibleRitPplgs: string[], storeState: MstEditorState): any[] {\n const loadingDtos = [...visibleDtos];\n const firstIdx = ritDelen.indexOf(visibleRitDelen[0]) - 1;\n this.addPrevNonVisibleDto(firstIdx, ritDelen, loadingDtos, visibleRitPplgs, storeState.signaleringsbeeldInfoDtos);\n const lastIdx = ritDelen.indexOf(visibleRitDelen[visibleRitDelen.length - 1]) + 1;\n this.addNextNonVisibleDto(lastIdx, ritDelen, loadingDtos, visibleRitPplgs, storeState.signaleringsbeeldInfoDtos);\n return loadingDtos;\n }\n\n private bepaalZichtbareDtos(visibleRitPplgs: string[], dtos: ISignaleringsbeeldInfoDto[]): ISignaleringsbeeldInfoDto[] {\n const visibleDtos: ISignaleringsbeeldInfoDto[] = [];\n visibleRitPplgs.forEach(pplg => {\n dtos.filter(dto => dto.pplgs.includes(pplg)).forEach(dto => {\n if (!visibleDtos.includes(dto)) {\n visibleDtos.push(dto);\n }\n });\n });\n visibleDtos.forEach(dto => dto.metVisualisatie = true);\n dtos.filter(d => !visibleDtos.includes(d)).forEach(d => d.metVisualisatie = false);\n return visibleDtos;\n }\n\n private distinct(value, index, self): boolean {\n return self.indexOf(value) === index;\n }\n\n private addPrevNonVisibleDto(firstIdx, ritdelen: Ritdeel[], loadingDtos: ISignaleringsbeeldInfoDto[], visibleRitPplgs: string[],\n allDtos: ISignaleringsbeeldInfoDto[]): void {\n if (firstIdx >= 0) {\n const pplg = ritdelen[firstIdx].getPplg();\n const ritdeelDtos = allDtos.filter(dto => dto.pplgs.includes(pplg)).filter(dto => !loadingDtos.includes(dto));\n\n if (!visibleRitPplgs.includes(pplg) && ritdeelDtos.length > 0) {\n ritdeelDtos.filter(d => !loadingDtos.includes(d)).forEach(d => {\n d.metVisualisatie = false;\n loadingDtos.push(d);\n });\n } else {\n this.addPrevNonVisibleDto(firstIdx - 1, ritdelen, loadingDtos, visibleRitPplgs, allDtos);\n }\n }\n }\n\n private addNextNonVisibleDto(lastIdx, ritdelen: Ritdeel[], loadingDtos: ISignaleringsbeeldInfoDto[], visibleRitPplgs: string[],\n allDtos: ISignaleringsbeeldInfoDto[]): void {\n if (lastIdx <= ritdelen.length - 1) {\n const pplg = ritdelen[lastIdx].getPplg();\n const ritdeelDtos = allDtos.filter(dto => dto.pplgs.includes(pplg)).filter(dto => !loadingDtos.includes(dto));\n\n if (!visibleRitPplgs.includes(pplg) && ritdeelDtos.length > 0) {\n ritdeelDtos.filter(d => !loadingDtos.includes(d)).forEach(d => {\n d.metVisualisatie = false;\n loadingDtos.push(d);\n });\n } else {\n this.addNextNonVisibleDto(lastIdx + 1, ritdelen, loadingDtos, visibleRitPplgs, allDtos);\n }\n }\n }\n\n private debugLog(debug, visibleRitPplgs: string[], loadingDtos): void {\n if (debug) {\n console.log('RIT PPLGs: ' + visibleRitPplgs);\n loadingDtos.forEach(dto => {\n let str = '\\nDTO-bladNaam: ' + dto.bladNaam;\n str += '\\nDTO-PPLGs : ' + dto.pplgs;\n str += '\\nVisible : ' + dto.metVisualisatie;\n console.log(str);\n });\n }\n }\n\n // acties: Navigeer|NavigeerVanaf|SetRitDelen\n private navigeer(ritDelen: Ritdeel[], actie: {\n paginationSize: number;\n stapSize: number;\n type: string;\n ritdeel\n }, storeDtos: ISignaleringsbeeldInfoDto[]): void {\n // alle ritdelen krijgen zichtbaarheidBuitenPaginatie => false\n if (actie.type === RitdelenActions.SET_RIT_DELEN) {\n this.bepaalZichtbaarheidRechts(0, ritDelen, actie.paginationSize, storeDtos);\n } else if (actie.type === RitdelenActions.NAVIGEER) {\n const isLinks = actie.stapSize < 0;\n const startIndex = this.bepaalStartIndex(ritDelen);\n const endIndex = this.bepaalEndIndex(ritDelen);\n const navigerenMogelijk = !(startIndex === 0 && isLinks || endIndex === ritDelen.length - 1 && !isLinks);\n if (navigerenMogelijk) {\n if (isLinks) {\n this.bepaalZichtbaarheidLinks(startIndex, ritDelen, actie.paginationSize, storeDtos);\n } else {\n this.bepaalZichtbaarheidRechts(endIndex, ritDelen, actie.paginationSize, storeDtos);\n }\n }\n } else if (actie.type === RitdelenActions.NAVIGEER_VANAF) {\n const idx = ritDelen.indexOf(actie.ritdeel);\n this.bepaalZichtbaarheidRechts(idx, ritDelen, actie.paginationSize, storeDtos);\n }\n }\n\n private updateRitdelen(ritdelen: Ritdeel[], visibleDtos: ISignaleringsbeeldInfoDto[]): Ritdeel[] {\n const visibleIndices = [];\n for (let i = 0; i < ritdelen.length; i++) {\n if (ritdelen[i].isZichtbaarBinnenWindow()) {\n visibleIndices.push(i);\n }\n }\n const min = Math.min(...visibleIndices);\n const max = Math.max(...visibleIndices);\n\n for (let i = 0; i < ritdelen.length; i++) {\n const rd = ritdelen[i];\n\n if (rd.isZichtbaarBinnenWindow()) {\n rd.bepaalTopologieElementen(this.signaleringsBeeldManagerService);\n if (rd.getTopologieElementen().length > 0) {\n ritdelen[i] = rd.isNietBeschikbaar() ? rd.copyMetZichtbaarheid(RitdeelZichtbaarheid.ZICHTBAAR) : rd;\n } else {\n ritdelen[i] = this.maakOnzichtbaar(rd);\n }\n }\n }\n\n this.updateZichtbaarheidAangrezendeRitdelen(min, max, ritdelen, visibleDtos);\n\n return this.updateZichtbaarheidBuitenWindow(ritdelen, visibleDtos);\n }\n\n private updateZichtbaarheidBuitenWindow(nieuweRitdelen, visibleDtos: ISignaleringsbeeldInfoDto[]): Ritdeel[] {\n\n for (let i = 0; i < nieuweRitdelen.length; i++) {\n const rd = nieuweRitdelen[i];\n\n if (!rd.isZichtbaar() && this.bevatGevisualiseerdePplg(visibleDtos, rd.getPplg())) {\n rd.bepaalTopologieElementen(this.signaleringsBeeldManagerService);\n if (rd.getTopologieElementen().length > 0 && this.isEersteLaatstePuicZichtbaar(rd.getTopologieElementen())) {\n nieuweRitdelen[i] = rd.isNietBeschikbaar() ? rd.copyMetZichtbaarheidEnPaginatie(RitdeelZichtbaarheid.ZICHTBAAR, true) :\n rd.copyMetZichtbaarheidBuitenPaginatie(true);\n }\n }\n }\n return nieuweRitdelen;\n }\n\n private updateZichtbaarheidAangrezendeRitdelen(min, max, nieuweRitdelen, visibleDtos: ISignaleringsbeeldInfoDto[]): void {\n let i = min - 1;\n while (i >= 0) {\n i = this.updateZichtbaarHeid(i, 0, visibleDtos, nieuweRitdelen) - 1;\n }\n\n i = max + 1;\n while (i < nieuweRitdelen.length) {\n i = this.updateZichtbaarHeid(i, nieuweRitdelen.length, visibleDtos, nieuweRitdelen) + 1;\n }\n }\n\n private updateZichtbaarHeid(i: number, end: number, visibleDtos: ISignaleringsbeeldInfoDto[], nieuweRitdelen: Ritdeel[]): number {\n const rd = nieuweRitdelen[i];\n if (this.bevatGevisualiseerdePplg(visibleDtos, rd.getPplg())) {\n i = this.updateZichtbaarheidAangrenzendeRitdeel(rd, nieuweRitdelen, i, end);\n } else {\n i = end;\n }\n return i;\n }\n\n private isEersteLaatstePuicZichtbaar(topoElementen: TopologyElement[]): boolean {\n return !!document.getElementById('p' + topoElementen[0].getPuic()) ||\n !!document.getElementById('p' + topoElementen[topoElementen.length - 1].getPuic());\n }\n\n private updateZichtbaarheidAangrenzendeRitdeel(rd: Ritdeel, nieuweRitdelen: Ritdeel[], i: number, end: number): any {\n rd.bepaalTopologieElementen(this.signaleringsBeeldManagerService);\n if (rd.getTopologieElementen().length > 0 && this.isEersteLaatstePuicZichtbaar(rd.getTopologieElementen())) {\n nieuweRitdelen[i] = rd.isNietBeschikbaar() ? rd.copyMetZichtbaarheid(RitdeelZichtbaarheid.ZICHTBAAR) : rd;\n\n } else {\n return end;\n }\n return i;\n }\n\n private bevatGevisualiseerdePplg(visibleDtos: ISignaleringsbeeldInfoDto[], pplg: string): boolean {\n for (const dto of visibleDtos) {\n for (const dtopplg of dto.pplgs) {\n if (dtopplg === pplg) {\n return true;\n }\n }\n }\n return false;\n }\n\n private maakOnzichtbaar(rd): Ritdeel {\n return rd.isZichtbaar() || rd.isOnzichtbaarDoorGebruiker() ?\n rd.copyMetZichtbaarheidEnPaginatie(RitdeelZichtbaarheid.ONZICHTBAAR_DOOR_SYSTEEM, false) :\n rd.copyMetZichtbaarheidBuitenPaginatie(false);\n }\n\n private bepaalZichtbaarheidRechts(idx: number, items: Ritdeel[], paginationSize: number, dtos: ISignaleringsbeeldInfoDto[]): void {\n const pplgsWindow = [];\n const dtosWindow = [];\n for (let i = 0; i < items.length; i++) {\n const rd = items[i];\n if (i >= idx && this.valtBinnenPaginatieWindow(pplgsWindow, paginationSize, dtosWindow)) {\n this.setZichtbaar(rd, pplgsWindow, dtos, dtosWindow, items, i);\n } else {\n items[i] = rd.isZichtbaar() || rd.isOnzichtbaarDoorGebruiker() ?\n rd.copyMetZichtbaarheidEnPaginatie(RitdeelZichtbaarheid.ONZICHTBAAR_DOOR_SYSTEEM, false) :\n rd.copyMetZichtbaarheidBuitenPaginatie(false);\n }\n }\n }\n\n private bepaalZichtbaarheidLinks(idx: number, items: Ritdeel[], paginationSize: number, dtos: ISignaleringsbeeldInfoDto[]): void {\n const pplgsWindow = [];\n const dtosWindow = [];\n for (let i = items.length - 1; i >= 0; i--) {\n const rd = items[i];\n if (i <= idx && this.valtBinnenPaginatieWindow(pplgsWindow, paginationSize, dtosWindow)) {\n this.setZichtbaar(rd, pplgsWindow, dtos, dtosWindow, items, i);\n } else {\n items[i] = rd.isZichtbaar() || rd.isOnzichtbaarDoorGebruiker() ?\n rd.copyMetZichtbaarheidEnPaginatie(RitdeelZichtbaarheid.ONZICHTBAAR_DOOR_SYSTEEM, false) :\n rd.copyMetZichtbaarheidBuitenPaginatie(false);\n }\n }\n }\n\n private valtBinnenPaginatieWindow(pplgsWindow, paginationSize: number, dtosWindow): boolean {\n return pplgsWindow.length < paginationSize || dtosWindow.length < paginationSize;\n }\n\n private setZichtbaar(rd, pplgsWindow, dtos: ISignaleringsbeeldInfoDto[], dtosWindow, items: Ritdeel[], i: number): void {\n const itemPplg = rd.getPplg();\n if (!pplgsWindow.includes(itemPplg)) {\n pplgsWindow.push(itemPplg);\n }\n\n const pplgDtos = [];\n dtos.filter(dto => dto.pplgs.includes(itemPplg)).forEach(dto => {\n if (!pplgDtos.includes(dto)) {\n pplgDtos.push(dto);\n }\n });\n\n pplgDtos.filter(d => !dtosWindow.includes(d)).forEach(d => dtosWindow.push(d));\n\n items[i] = !rd.isZichtbaar() ? rd.copyMetZichtbaarheidEnPaginatie(RitdeelZichtbaarheid.ZICHTBAAR, false) :\n rd.copyMetZichtbaarheidBuitenPaginatie(false);\n }\n\n private bepaalStartIndex(ritDelen: Ritdeel[]): number {\n for (let i = 0; i < ritDelen.length; i++) {\n if (ritDelen[i].isBinnenWindow()) {\n return i;\n }\n }\n return -1;\n }\n\n private bepaalEndIndex(ritDelen: Ritdeel[]): number {\n for (let i = ritDelen.length - 1; i >= 0; i--) {\n if (ritDelen[i].isBinnenWindow()) {\n return i;\n }\n }\n return -1;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { Store } from '@ngrx/store';\nimport { from } from 'rxjs';\nimport { map, switchMap, withLatestFrom } from 'rxjs/operators';\nimport { Beweging } from '../../optimo';\nimport { BewegingVerrijkerService } from '../../services/beweging-verrijker.service';\nimport { KeurAlleActiesGoed, UpdateRit } from '../actions/actions';\nimport { MstEditorState } from '../mst-editor-state';\n\n@Injectable()\nexport class RitGoedkeurenEffect {\n\n constructor(private actions$: Actions,\n private store: Store<MstEditorState>,\n private bewegingVerrijker: BewegingVerrijkerService) {\n }\n\n keurAllesGoed$ = createEffect(() => this.actions$.pipe(\n ofType(KeurAlleActiesGoed),\n withLatestFrom(this.store),\n switchMap(([action, _store]) =>\n from(this.bewegingVerrijker.getBewegingen(action.bewegingen, action.ongeplandeActies)),\n ),\n map((bewegingen: Beweging[]) => UpdateRit(bewegingen))\n ));\n}\n","import { Injectable } from '@angular/core';\nimport { domein, JsJavaUtil } from '@loxia/rijwegen';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { Store } from '@ngrx/store';\nimport { map, withLatestFrom } from 'rxjs/operators';\nimport { RijwegplanRijwegDwangCombinatie } from '../../model/rijwegplan-rijweg-dwang-combinatie';\nimport { Ritdeel } from '../../model/ritdeel';\nimport { EditorService } from '../../services/editor.service';\nimport { SignaleringsBeeldManagerService } from '../../services/signalerings-beeld-manager.service';\nimport * as RitdelenActions from '../actions/ritdelen.actions';\nimport { MstEditorState } from '../mst-editor-state';\nimport VrijebaanRijwegplan = domein.VrijebaanRijwegplan;\n\n@Injectable()\nexport class RitdelenEffect {\n\n constructor(private actions$: Actions,\n private store: Store<MstEditorState>,\n private sbmService: SignaleringsBeeldManagerService,\n private rijwegPlanEditorService: EditorService) {\n }\n\n updateRitDelen$ = createEffect(() => this.actions$.pipe(\n ofType(RitdelenActions.updateRitDelen),\n withLatestFrom(this.store),\n map(([actie, _storeState]) => {\n const nieuweRitDelen = actie.ritDelen.map(ritDeel => ritDeel.isZichtbaar() ?\n ritDeel.copyMetAlternatieveRoutes(this.sbmService.bepaalAlternativeRoutes(ritDeel.getRijweg())) : ritDeel);\n return RitdelenActions.setRitdelenAfterUpdate(nieuweRitDelen);\n }))\n );\n\n setAlternatieveRitDelen$ = createEffect(() => this.actions$.pipe(\n ofType(RitdelenActions.setAlternatieveRitDelen),\n withLatestFrom(this.store),\n map(([actie, storeState]) => {\n const alternatieveRitDeel = actie.alternatieveRitDeel;\n const ritDelen = storeState.ritDelen;\n const orgRitdeel = alternatieveRitDeel.ritDeel;\n let newRitDeel = orgRitdeel.copyMetDwang(alternatieveRitDeel.alternatieveRoute.getDwang());\n const alterRoutes = this.sbmService.bepaalAlternativeRoutes(alternatieveRitDeel.ritDeel.getRijweg());\n newRitDeel = newRitDeel.copyMetAlternatieveRoutesZonderActies(alterRoutes);\n newRitDeel.bepaalTopologieElementen(this.sbmService);\n this.vervangRitdeel(ritDelen, orgRitdeel, newRitDeel);\n\n return RitdelenActions.setRitdelenAfterUpdate(ritDelen);\n }))\n );\n\n ritdeelInvoegen$ = createEffect(() => this.actions$.pipe(\n ofType(RitdelenActions.ritdeelInvoegen),\n withLatestFrom(this.store),\n map(([actie, storeState]) => {\n const ritDelen = this.ritdeelInvoegenFunc(storeState.ritDelen, actie.nieuweRoute, this.rijwegPlanEditorService, this.sbmService);\n return RitdelenActions.setRitdelenAfterUpdate(ritDelen);\n }))\n );\n\n private ritdeelInvoegenFunc(ritDelen: Ritdeel[], nieuweRoute, rijwegPlanEditorService, sbmService): Ritdeel[] {\n const origineelRitdeel = nieuweRoute.beginSeinOpRitdeel.ritdeel;\n const beginSein = nieuweRoute.beginSeinOpRitdeel.sein;\n const rijwegplan = rijwegPlanEditorService.getRijwegplan(beginSein.getPPLG());\n const dwangen: domein.Dwang[] = JsJavaUtil.listToArray(rijwegplan.getOnderliggendeDwangenTotEnVanSein(origineelRitdeel.getDwang(), beginSein));\n const isSamengesteldeRoute = dwangen[0] && dwangen[1];\n\n let newRitdeel1 = origineelRitdeel;\n\n if (isSamengesteldeRoute) {\n newRitdeel1 = this.verwerkSamengesteldeRoute(origineelRitdeel, rijwegplan, dwangen, sbmService, ritDelen);\n }\n\n if (nieuweRoute.combinatieVoorEindsein.isVrijeBaanRijweg()) {\n this.extendRitdeelMetVrijebaanInfo(newRitdeel1, nieuweRoute, sbmService);\n } else {\n this.maakNieuwRitdeel(newRitdeel1, nieuweRoute, sbmService, ritDelen);\n }\n\n if (isSamengesteldeRoute) {\n ritDelen.splice(ritDelen.indexOf(origineelRitdeel), 1);\n }\n\n return [...ritDelen];\n }\n\n\n private vervangRitdeel(ritdelen: Ritdeel[], orgRitdeel: Ritdeel, newRitdeel: Ritdeel): void {\n for (let i = 0; i < ritdelen.length; i++) {\n if (ritdelen[i] === orgRitdeel) {\n ritdelen[i] = newRitdeel;\n break;\n }\n }\n }\n\n private verwerkSamengesteldeRoute(origineelRitdeel, rijwegplan, dwangen, sbmService, ritDelen): Ritdeel {\n // dwangen in 2 nieuwe ritdelen verwerken voor de knip\n const nieuweRijweg1 =\n rijwegplan.getRijwegVoorSeinen(dwangen[0].getRoute().getBeginSein(), dwangen[0].getRoute().getEindSein());\n const dwangInfo1 = new RijwegplanRijwegDwangCombinatie(rijwegplan, nieuweRijweg1, dwangen[0]);\n const newRitdeel1 = new Ritdeel(dwangInfo1, [], null, null, null, []);\n\n // remove vrijbaan info uit ritdeel\n newRitdeel1.vrijebaanRijwegplanRijwegDwangCombi = null;\n newRitdeel1.vervolgSpoor = null;\n\n newRitdeel1.bepaalTopologieElementen(sbmService);\n this.insertRitdeel(ritDelen, origineelRitdeel, newRitdeel1);\n\n const nieuweRijweg2 =\n rijwegplan.getRijwegVoorSeinen(dwangen[1].getRoute().getBeginSein(), dwangen[1].getRoute().getEindSein());\n const dwangInfo2 = new RijwegplanRijwegDwangCombinatie(rijwegplan, nieuweRijweg2, dwangen[1]);\n const newRitdeel2 = new Ritdeel(dwangInfo2, [], null, null, null, []);\n\n newRitdeel2.bepaalTopologieElementen(sbmService);\n this.insertRitdeel(ritDelen, newRitdeel1, newRitdeel2);\n\n return newRitdeel1;\n }\n\n private extendRitdeelMetVrijebaanInfo(newRitdeel1, nieuweRoute, sbmService): void {\n newRitdeel1.vrijebaanRijwegplanRijwegDwangCombi = nieuweRoute.combinatieVoorEindsein;\n\n const vbrwp = <VrijebaanRijwegplan>nieuweRoute.combinatieVoorEindsein.rijwegplan;\n newRitdeel1.vervolgSpoor = vbrwp.getVervolgSpoor(nieuweRoute.combinatieVoorEindsein.rijweg);\n\n newRitdeel1.bepaalTopologieElementen(sbmService);\n }\n\n private maakNieuwRitdeel(newRitdeel1, nieuweRoute, sbmService, ritDelen): void {\n let newRitdeel = this.createRitdeel(nieuweRoute);\n const altRoutes = sbmService.bepaalAlternativeRoutes(newRitdeel.getRijweg());\n newRitdeel = newRitdeel.copyMetAlternatieveRoutes(altRoutes);\n newRitdeel.bepaalTopologieElementen(sbmService);\n this.insertRitdeel(ritDelen, newRitdeel1, newRitdeel);\n }\n\n createRitdeel(nieuweRoute): Ritdeel {\n return new Ritdeel(nieuweRoute.combinatieVoorEindsein, [], null, null, null, []);\n }\n\n private insertRitdeel(ritdelen: Ritdeel[], naRitdeelPositie: Ritdeel, newRitdeel: Ritdeel): void {\n const idx = ritdelen.indexOf(naRitdeelPositie);\n ritdelen.splice(idx + 1, 0, newRitdeel);\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { SignaleringsbeeldSvgUtilityService } from '@loxia/rijwegen';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { Store } from '@ngrx/store';\nimport { map } from 'rxjs/operators';\nimport { SignaleringsBeeldManagerService } from '../../services/signalerings-beeld-manager.service';\nimport * as MstActions from '../actions/actions';\nimport { SetConnectorenClickableIds } from '../actions/actions';\nimport { MstEditorState } from '../mst-editor-state';\n\n@Injectable()\nexport class SvgViewEffect {\n\n constructor(private actions$: Actions,\n private store: Store<MstEditorState>,\n private signaleringsBeeldManagerService: SignaleringsBeeldManagerService,\n private sbSvgUtilService: SignaleringsbeeldSvgUtilityService) {\n }\n\n updateSvgView$ = createEffect(() => this.actions$.pipe(\n ofType(MstActions.SetSvgInfos),\n map((_actie) => {\n setTimeout(() => {\n this.sbSvgUtilService.addSvgDefs();\n\n const wisselEnStoringskaderPuicMap = new Map<string, string>();\n this.signaleringsBeeldManagerService.getAlleSoortenWissels()\n .forEach(wissel => wisselEnStoringskaderPuicMap.set(wissel.getPuic(), wissel.getStoringSymboolPuic()));\n this.sbSvgUtilService.zetClassOpStoringSymbolenMetMap(wisselEnStoringskaderPuicMap);\n this.sbSvgUtilService.zetClassOpSpoornummers(this.signaleringsBeeldManagerService.getPuicsVoorSpoornummers());\n\n this.sbSvgUtilService.maakOngewensteElementenOnzichtbaar();\n this.sbSvgUtilService.zetClassOpLangeText();\n\n this.sbSvgUtilService.maakOngewensteSeindelenOnzichtbaar(this.signaleringsBeeldManagerService.getSeinen());\n this.sbSvgUtilService.maakSignaleringsElementenOnzichtbaar(this.signaleringsBeeldManagerService.getSignaleringsElementen());\n\n const puicsVoorRanden = this.signaleringsBeeldManagerService.getPuicsVoorRanden();\n this.zetClassOpRanden(puicsVoorRanden);\n this.sbSvgUtilService.zetClassOpRijrichtingen(this.signaleringsBeeldManagerService.getSeinen());\n this.store.dispatch(SetConnectorenClickableIds(puicsVoorRanden));\n\n }, 0);\n })), {dispatch: false}\n );\n\n private zetClassOpRanden(puics: string[]): void {\n puics.forEach(element => {\n const rand = document.getElementById('p' + element);\n rand?.classList.add('connector');\n });\n }\n}\n","import { RijwegplanRijwegDwangCombinatie } from './rijwegplan-rijweg-dwang-combinatie';\nimport { SeinOpRitdeel } from './sein-op-ritdeel';\n\nexport class NieuweRoute {\n\n constructor(public beginSeinOpRitdeel: SeinOpRitdeel, public combinatieVoorEindsein: RijwegplanRijwegDwangCombinatie) {\n }\n\n isValid(): boolean {\n return this.combinatieVoorEindsein !== null;\n }\n}\n","import { ActionReducer, createReducer, on } from '@ngrx/store';\nimport { Ritdeel, RitdeelZichtbaarheid } from '../../model/ritdeel';\nimport * as RitdelenActions from '../actions/ritdelen.actions';\n\nconst { ZICHTBAAR, ONZICHTBAAR_DOOR_GEBRUIKER, ONZICHTBAAR_DOOR_SYSTEEM } = RitdeelZichtbaarheid;\n\nexport const ritdelenReducer: ActionReducer<Ritdeel[], RitdelenActions.RitDeelActionsUnion> = createReducer(\n [] as Ritdeel[],\n on(RitdelenActions.setRitdelenAfterUpdate, setRitDelenAfterUpdateFunc),\n on(RitdelenActions.setRitdeelZichtbaar, setRitdeelZichtbaarFunc),\n on(RitdelenActions.toggleRitdeelZichtbaar, toggleRitdeelZichtbaarFunc),\n on(RitdelenActions.setZichtbaarheidAlleRitdelen, setZichtbaarheidAlleRitdelenFunc),\n on(RitdelenActions.toggleZichtbaarheidVoorBewegingen, toggleZichtbaarheidVoorBewegingenFunc),\n on(RitdelenActions.deleteRitdeel, deleteRitdeelFunc),\n on(RitdelenActions.deleteRitdeelActie, deleteRitdeelActieFunc),\n on(RitdelenActions.addRitdeelActie, addRitdeelActieFunc)\n);\n\nfunction setRitDelenAfterUpdateFunc(_: Ritdeel[], { ritDelen }): Ritdeel[] {\n return [...ritDelen];\n}\n\nfunction setRitdeelZichtbaarFunc(ritDelen: Ritdeel[], { ritDeel, zichtbaar }): Ritdeel[] {\n const gezetRitdeel = ritDeel.copyMetZichtbaarheid(zichtbaar ? ZICHTBAAR : ONZICHTBAAR_DOOR_GEBRUIKER);\n vervangRitdeel(ritDelen, ritDeel, gezetRitdeel);\n return [...ritDelen];\n}\n\nfunction toggleRitdeelZichtbaarFunc(ritDelen: Ritdeel[], { ritDeel }): Ritdeel[] {\n const getoggeldeRitdeel = ritDeel.copyMetZichtbaarheid(ritDeel.isZichtbaar() ? ONZICHTBAAR_DOOR_GEBRUIKER : ZICHTBAAR);\n vervangRitdeel(ritDelen, ritDeel, getoggeldeRitdeel);\n return [...ritDelen];\n}\n\nfunction setZichtbaarheidAlleRitdelenFunc(ritDelen: Ritdeel[], { zichtbaarheid }): Ritdeel[] {\n ritDelen.filter(r => r.getZichtbaarheid() !== ONZICHTBAAR_DOOR_SYSTEEM).forEach(ritDeel => {\n vervangRitdeel(ritDelen, ritDeel, ritDeel.copyMetZichtbaarheid(zichtbaarheid ? ZICHTBAAR : ONZICHTBAAR_DOOR_GEBRUIKER));\n });\n return [...ritDelen];\n}\n\nfunction toggleZichtbaarheidVoorBewegingenFunc(ritDelen: Ritdeel[], { bewegingIds }): Ritdeel[] {\n ritDelen.filter(r => r.beweging && bewegingIds.includes(Number(r.getBewegingId()))).forEach(ritDeel => {\n vervangRitdeel(ritDelen, ritDeel, ritDeel.copyMetZichtbaarheid(ZICHTBAAR));\n });\n return [...ritDelen];\n}\n\nfunction vervangRitdeel(ritdelen: Ritdeel[], orgRitdeel: Ritdeel, newRitdeel: Ritdeel): void {\n for (let i = 0; i < ritdelen.length; i++) {\n if (ritdelen[i] === orgRitdeel) {\n ritdelen[i] = newRitdeel;\n break;\n }\n }\n}\n\nfunction deleteRitdeelFunc(ritDelen: Ritdeel[], { ritDeel }): Ritdeel[] {\n const idx = ritDelen.indexOf(ritDeel);\n if (idx >= 0) {\n ritDelen.splice(idx, 1);\n }\n return [...ritDelen];\n}\n\nfunction deleteRitdeelActieFunc(ritDelen: Ritdeel[], { ritDeel, actie }): Ritdeel[] {\n for (const item of ritDelen) {\n // We gebruiken equals omdat het wel of niet zichtbaar zijn van een ritdeel niet relevant is\n if (item.equals(ritDeel)) {\n const acties = ritDeel.acties;\n const aidx = acties.indexOf(actie);\n acties.splice(aidx, 1);\n break;\n }\n }\n return [...ritDelen];\n}\n\nfunction addRitdeelActieFunc(ritDelen: Ritdeel[], { ritDeel, actie }): Ritdeel[] {\n ritDeel.acties.push(actie);\n return [...ritDelen];\n}\n\n","import { SvgInfo } from '@loxia/imx-viewer';\nimport { createReducer, on } from '@ngrx/store';\nimport { AlgemeneRitDto } from '../../generated/openapi';\nimport { ProgressIndicator } from '../atomic-components/progress-indicator/progress-indicator.entity';\nimport { NieuweRoute } from '../model/nieuwe-route';\nimport { OngeplandeActie } from '../model/ongeplande-actie';\nimport { Ritdeel } from '../model/ritdeel';\nimport { Actie, Beweging, InfraModel } from '../optimo';\nimport { ISignaleringsbeeldInfoDto } from '../resources/signaleringsbeeldinfo.resource';\nimport { ArrayMultimap } from '../util/multi-map';\nimport * as MstActions from './actions/actions';\nimport { ritdelenReducer } from './reducer/rit-delen.reducer';\n\nexport interface MstEditorState {\n ritDelen: Ritdeel[]; // ons model van treinpad\n\n // puics voor SelectieInfos\n ritSelectieIds: string[];\n actieOpRitSelectieIds: string[];\n gebrokenRitSelectieIds: string[];\n alternatievenSelectieIds: string[];\n beginSeinSelectieIds: string[];\n eindSeinSelectieIds: string[];\n ongeplandeActieSelectieIds: string[];\n ongeplandeActies: ArrayMultimap<string, OngeplandeActie>;\n geplandeActies: ArrayMultimap<Actie, string>;\n\n // puics voor clicks\n alternatievenClickableIds: string[];\n eindSeinenClickableIds: string[];\n connectorClickableIds: string[];\n\n // puics voor rightclicks\n beginSeinRightClickableIds: string[];\n\n nieuweRoute: NieuweRoute;\n\n signaleringsbeeldInfoDtos: ISignaleringsbeeldInfoDto[];\n visibleSbInfoDtos: ISignaleringsbeeldInfoDto[];\n algemeneRitInfoDto: AlgemeneRitDto;\n iaVersie: InfraModel;\n svgInfos: SvgInfo[];\n debug: boolean;\n editable: boolean;\n ongeplandeActiesBepaald: boolean;\n progressState: ProgressState;\n nieuweBewegingen: Beweging[];\n baseUrl: string;\n focusIds: string[];\n selectedRitdeelId: number;\n}\n\ninterface ProgressState {\n progressIndicator?: ProgressIndicator;\n}\n\nconst onIdsActionHandler = (action) => on(action, (_: string[], { ids }) => ids);\nconst createIdsReducer = (action) => createReducer([] as string[], onIdsActionHandler(action));\n\nexport const editableReducer = createReducer(true, on(MstActions.setEditable, (_, { editable }) => editable));\n\nexport const progressIndicatorReducer = createReducer(\n undefined,\n on(MstActions.ShowProgress, () => ({ progressIndicator: {} })),\n on(MstActions.ClearProgress, () => undefined)\n);\n\nexport const svgInfoReducer = createReducer([] as SvgInfo[], on(MstActions.SetSvgInfos, (_, { svgInfos }) => svgInfos));\nexport const debugReducer = createReducer(false, on(MstActions.SetDebug, (_, { debug }) => debug));\nexport const ritSelectieIdsReducer = createIdsReducer(MstActions.SetRitSelectieIds);\n\nexport const actieOpRitReducer = createReducer(\n new ArrayMultimap<Actie, string>(),\n on(MstActions.SetGeplandeActies, (_, { geplandeActiesMap }) => geplandeActiesMap),\n on(MstActions.AddGeplandeActie, (geplandeActies, { actie, puics }) => {\n geplandeActies.putAll(actie, puics);\n return new ArrayMultimap(geplandeActies);\n }),\n on(MstActions.DeleteGeplandeActie, (geplandeActies, { actie }) => {\n geplandeActies.delete(actie);\n return new ArrayMultimap(geplandeActies);\n })\n);\n\nexport const actieOpRitSelectieIdsReducer = createReducer(\n [] as string[],\n onIdsActionHandler(MstActions.SetActieOpRitSelectieIds),\n on(MstActions.AddGeplandeActie, (ids: string[], { puics }) => {\n puics.filter(puic => !ids.includes(puic)).forEach(puic => ids.push(puic));\n return [...ids];\n }),\n on(MstActions.DeleteGeplandeActie, (ids: string[], { puics }) => {\n puics.filter(puic => ids.includes(puic)).forEach(puic => ids = ids.filter(p => p !== puic));\n return [...ids];\n })\n);\n\nexport const ongeplandeActieReducer = createReducer(\n new ArrayMultimap<string, OngeplandeActie>(),\n on(MstActions.SetOngeplandeActies, (_, { ongeplandeActiesMap }) => ongeplandeActiesMap),\n on(MstActions.AddOngeplandeActie, (ongeplandeActies, { ongeplandeActie }) => {\n ongeplandeActie.puics.filter(puic => !ongeplandeActies.containsEntry(puic, ongeplandeActie))\n .forEach(puic => ongeplandeActies.put(puic, ongeplandeActie));\n return new ArrayMultimap(ongeplandeActies);\n }),\n on(MstActions.DeleteOngeplandeActie, (ongeplandeActies, { ongeplandeActie }) => {\n ongeplandeActie.puics.forEach(puic => ongeplandeActies.delete(puic, ongeplandeActie));\n return new ArrayMultimap(ongeplandeActies);\n })\n);\n\nexport const ongeplandeActieSelectieIdsReducer = createReducer(\n [] as string[],\n // on(MstActions.SetOngeplandeActieSelectieIds, (_, { ids }) => ids),\n onIdsActionHandler(MstActions.SetOngeplandeActieSelectieIds),\n on(MstActions.AddOngeplandeActie, (ids: string[], { ongeplandeActie }) => {\n ongeplandeActie.puics.filter(puic => !ids.includes(puic)).forEach(puic => ids.push(puic));\n return [...ids];\n }),\n on(MstActions.DeleteOngeplandeActieSelectieId, (ids: string[], { id }) => [].concat(ids.includes(id) ? ids.filter(_id => _id !== id) : ids))\n);\n\nexport const gebrokenRitSelectieIdsReducer = createIdsReducer(MstActions.SetGebrokenRitSelectieIds);\nexport const alternatievenSelectieIdsReducer = createIdsReducer(MstActions.SetAlternatievenSelectieIds);\nexport const beginSeinSelectieIdsReducer = createIdsReducer(MstActions.SetBeginSeinSelectieIds);\nexport const eindSeinSelectieIdsReducer = createIdsReducer(MstActions.SetEindSeinSelectieIds);\nexport const alternatievenClickableIdsReducer = createIdsReducer(MstActions.SetAlternatievenClickableIds);\nexport const eindSeinenClickableIdsReducer = createIdsReducer(MstActions.SetEindSeinenClickableIds);\nexport const connectorClickableIdsReducer = createIdsReducer(MstActions.SetConnectorenClickableIds);\nexport const beginSeinRightClickableIdsReducer = createIdsReducer(MstActions.SetBeginSeinRightClickableIds);\n\nexport const nieuweRouteReducer = createReducer(\n new NieuweRoute(null, null),\n on(MstActions.SetNieuwRouteBeginSein, (_, { startSeinOpRitdeel }) => new NieuweRoute(startSeinOpRitdeel, null)),\n on(MstActions.SetNieuwRouteEindSein, (nieuweRoute, { combinatieVoorEindsein }) => new NieuweRoute(nieuweRoute.beginSeinOpRitdeel, combinatieVoorEindsein)),\n on(MstActions.ResetNieuweRoute, () => new NieuweRoute(null, null))\n);\n\nexport const signaleringsbeeldInfoDtosReducer = createReducer(\n [] as ISignaleringsbeeldInfoDto[],\n on(MstActions.SetSignaleringsbeeldInfoDtos, (_, { dtos }) => dtos),\n on(MstActions.UpdateSignaleringsbeeldInfoDtos, (_, { dtos }) => [...dtos])\n);\n\nexport const visibleSbInfoDtosReducer = createReducer(\n [] as ISignaleringsbeeldInfoDto[],\n on(MstActions.SetVisibleSignaleringsbeeldInfoDtos, (_, { dtos }) => dtos),\n on(MstActions.UpdateVisibleSignaleringsbeeldInfoDtos, (_, { dtos }) => [...dtos])\n);\n\nexport const iaVersieReducer = createReducer({},\n on(MstActions.SetIaVersie,\n (_, { iaVersie }) => Object.assign({}, iaVersie, { versie: iaVersie.versie.toUpperCase() })));\nexport const algemeneRitInfoDtoReducer = createReducer({ }, on(MstActions.SetAlgemeneRitInfo, (_, { algemeneRitInfoDto }) => algemeneRitInfoDto));\nexport const ongeplandeActiesBepaaldReducer = createReducer(false, on(MstActions.SetOngeplandeActiesBepaald, (_, { bepaald }) => bepaald));\n\nexport const nieuweBewegingReducer = createReducer({ }, on(MstActions.UpdateRit, (_, { bewegingen }) => bewegingen));\n\nexport const baseUrlReducer = createReducer(undefined, on(MstActions.SetBaseUrl, (_, { baseUrl }) => baseUrl));\n\nexport const focusIdsReducer = createReducer({ }, on(MstActions.focusOpIds, (_, { puics }) => puics));\n\nexport const selectedRitdeelIdReducer = createReducer({}, on(MstActions.SetSelectedRitdeel, (_, { id }) => id));\n\nexport const storeReducers = {\n ritDelen: ritdelenReducer,\n ritSelectieIds: ritSelectieIdsReducer,\n actieOpRitSelectieIds: actieOpRitSelectieIdsReducer,\n ongeplandeActieSelectieIds: ongeplandeActieSelectieIdsReducer,\n ongeplandeActies: ongeplandeActieReducer,\n gebrokenRitSelectieIds: gebrokenRitSelectieIdsReducer,\n alternatievenSelectieIds: alternatievenSelectieIdsReducer,\n beginSeinSelectieIds: beginSeinSelectieIdsReducer,\n eindSeinSelectieIds: eindSeinSelectieIdsReducer,\n alternatievenClickableIds: alternatievenClickableIdsReducer,\n eindSeinenClickableIds: eindSeinenClickableIdsReducer,\n connectorClickableIds: connectorClickableIdsReducer,\n beginSeinRightClickableIds: beginSeinRightClickableIdsReducer,\n nieuweRoute: nieuweRouteReducer,\n geplandeActies: actieOpRitReducer,\n signaleringsbeeldInfoDtos: signaleringsbeeldInfoDtosReducer,\n visibleSbInfoDtos: visibleSbInfoDtosReducer,\n iaVersie: iaVersieReducer,\n algemeneRitInfoDto: algemeneRitInfoDtoReducer,\n svgInfos: svgInfoReducer,\n debug: debugReducer,\n editable: editableReducer,\n ongeplandeActiesBepaald: ongeplandeActiesBepaaldReducer,\n progressState: progressIndicatorReducer,\n nieuweBewegingen: nieuweBewegingReducer,\n baseUrl: baseUrlReducer,\n focusIds: focusIdsReducer,\n selectedRitdeelId: selectedRitdeelIdReducer\n};\n\n","import { Injectable, NgZone } from '@angular/core';\n\n@Injectable()\nexport class ZoneUtil {\n private readonly zoneHandler;\n\n constructor(private readonly ngZone: NgZone) {\n\n this.zoneHandler = {\n get: (target: any, name: string): () => any => {\n const _ZoneHandler = this;\n const delegate = target[name];\n if (this.isFunction(delegate)) {\n return function(...args) {\n const that = this;\n return _ZoneHandler.ngZone.run(() => delegate.apply(that, args));\n };\n }\n return delegate;\n }\n };\n }\n\n isFunction(obj): boolean {\n return !!(obj?.constructor && obj.call && obj.apply);\n }\n\n proxy(target: any): any {\n return new Proxy(target, this.zoneHandler);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MessageComponent } from './atomic-components/message';\nimport { ImxViewerModule } from '@loxia/imx-viewer';\nimport { RijwegenModule } from '@loxia/rijwegen';\nimport { EffectsModule } from '@ngrx/effects';\nimport { StoreModule } from '@ngrx/store';\nimport { ResourceModule } from '@ngx-resource/handler-ngx-http';\nimport { MessagesComponent } from './atomic-components/messages/messages.component';\nimport { OverlayComponent } from './atomic-components/overlay/overlay.component';\nimport { ProgressIndicatorComponent } from './atomic-components/progress-indicator/progress-indicator.component';\nimport { MstviewerComponent } from './components/mstviewer/mstviewer.component';\nimport { RitdelenLijstComponent } from './components/ritdelen-lijst/ritdelen-lijst.component';\nimport { RitdelenViewComponent } from './components/ritdelen-view/ritdelen-view.component';\nimport { RpeComponent } from './components/rpe/rpe.component';\nimport { MstLoggingResource } from './resources/mstlogging.resource';\nimport { SignaleringsbeeldInfoResource } from './resources/signaleringsbeeldinfo.resource';\nimport { BewegingUtils } from './services/beweging-utils.service';\nimport { BewegingVerrijkerService } from './services/beweging-verrijker.service';\nimport { EditorService } from './services/editor.service';\nimport { RitLezerService } from './services/rit-lezer.service';\nimport { SignaleringsBeeldManagerService } from './services/signalerings-beeld-manager.service';\nimport { BepaalOngeplandeActiesEffect } from './state/effect/bepaal-ongeplande-acties.effect';\nimport { BepaalSbInfosEffect } from './state/effect/bepaal-sb-infos.effect';\nimport { BewegingInvoegenEffect } from './state/effect/beweging-invoegen.effect';\nimport { DeleteOngeplandeActieEffect } from './state/effect/delete-ongeplande-actie.effect';\nimport { FocusEffect } from './state/effect/focus-effect';\nimport { LaadRouteFilesEffect } from './state/effect/laad-route-files.effect';\nimport { LaadSignaleringsbeeldenEffect } from './state/effect/laad-signaleringsbeelden.effect';\nimport { RitGoedkeurenEffect } from './state/effect/rit-goedkeuren.effect';\nimport { RitdelenEffect } from './state/effect/ritdelen.effect';\nimport { SvgViewEffect } from './state/effect/svg-view.effect';\nimport { storeReducers } from './state/mst-editor-state';\nimport { ActieHelper } from './util/actie-helper';\nimport { LoggingHelper } from './util/logging-helper';\nimport { ZoneUtil } from './util/zone-util';\nimport { CarouselControlsComponent } from './components/carousel-controls/carousel-controls.component';\nimport { ViewerControlsComponent } from './components/viewer-controls/viewer-controls.component';\nimport { SvgVisualisatieComponent } from './components/svg-visualisatie/svg-visualisatie.component';\n\nexport const STORE_CONFIG = {\n runtimeChecks: {\n strictStateImmutability: false,\n strictActionImmutability: false,\n // strictStateSerializability: true, // geeft nog runtime errors, zou mooi zijn om aan te kunnen zetten\n // strictActionSerializability: true, // geeft nog runtime errors, zou mooi zijn om aan te kunnen zetten\n strictActionTypeUniqueness: false\n }\n};\n\nconst imports = [\n CommonModule,\n ImxViewerModule,\n RijwegenModule,\n ResourceModule.forRoot(),\n StoreModule.forRoot( storeReducers, STORE_CONFIG),\n EffectsModule.forRoot([\n DeleteOngeplandeActieEffect,\n LaadSignaleringsbeeldenEffect,\n LaadRouteFilesEffect,\n BepaalOngeplandeActiesEffect,\n BewegingInvoegenEffect,\n RitdelenEffect,\n RitGoedkeurenEffect,\n SvgViewEffect,\n BepaalSbInfosEffect,\n FocusEffect\n ])\n];\n\n@NgModule({\n imports,\n declarations: [\n MessageComponent,\n MstviewerComponent,\n OverlayComponent,\n ProgressIndicatorComponent,\n RpeComponent,\n RitdelenLijstComponent,\n RitdelenViewComponent,\n CarouselControlsComponent,\n ViewerControlsComponent,\n SvgVisualisatieComponent,\n MessagesComponent\n ],\n exports: [\n MstviewerComponent\n ],\n providers: [\n ZoneUtil,\n SignaleringsbeeldInfoResource,\n MstLoggingResource,\n EditorService,\n SignaleringsBeeldManagerService,\n RitLezerService,\n BewegingUtils,\n ActieHelper,\n LoggingHelper,\n BewegingVerrijkerService\n ]\n})\nexport class MstViewerModule {\n constructor(private service: EditorService, zoneUtil: ZoneUtil) {\n // maak de EditorService toegankelijk voor GWT code\n window['rpe'] = {\n EditorService: zoneUtil.proxy(service)\n };\n }\n}\n","export interface Rit {\n id: number; // Database Id. Teruggeven wat wij sturen. Als nieuw record, instellen op 0\n jaarplanId: number; // Id van het jaarplan. niet voor visualisatie\n volgnummer: number; // volgnummer van de rit binnen planmodule job. Niet voor visualisatie\n machineTypeId: number; // niet voor visualisatie\n machineTypeOmschrijving?: number; // BV UFM, UST, WOB, etc\n ritDatum?: Date;\n totaleTijd: number; // niet voor visualisatie\n omschrijving?: string; // beschrijving / naam van de rit\n wijzigStatus: string; // wordt na handmatige wijziging aangepast van 'Normaal' naar 'Gewijzigd'.\n ritStatus: string; // Concept / Definitief (e.v.t. tussen statussen n.t.b. Definitief betekent dat rit niet mag worden aangepast.\n aantalRitActies?: number; // Niet nodig voor visualisatie\n startLocatie?: string; // Startsein \"{IaGebiedType},{IaGebied},{SeinNaam},{SeinType}\"\n eindLocatie?: string; // Eindsein \"{IaGebiedType},{IaGebied},{SeinNaam},{SeinType}\"\n bewegingen: Beweging[]; // Lijst van bewegingen (routes)\n}\n\nexport interface Beweging {\n id: number; // Database Id. Teruggeven wat wij sturen. Als nieuw record, instellen op 0\n ritId: number; // Database Id van de rit. Teruggeven wat wij sturen. Als nieuw record, instellen op 0\n volgnummerBinnenRit: number; // volgnummer van beweging binnen de rit\n vanSeinType: string;\n vanSeinNaam: string;\n vanSeinPplg: string;\n vanGebiedType?: string;\n vanGebiedNaam?: string;\n naarSeinType: string;\n naarSeinNaam: string;\n naarSeinPplg: string;\n naarGebiedType?: string;\n naarGebiedNaam?: string;\n dwangNummer: number;\n vanPplg: string;\n vanSpoor: string;\n naarPplg: string;\n naarSpoor: string;\n treinNummer?: number; // Treinnummer (Donna) zodra bekend\n tijdstip?: Date; // Start tijdstip (Donna) zodra bekend\n opmerking?: string; // textuele opmerking\n wijzigStatus: string; // Wijzigstatus specifiek voor de Beweging. kan mogelijk vervangen\n ritActies: Actie[]; // Lijst van ritacties binnen deze route\n}\n\nexport interface Actie {\n id: number; // Database Id. Teruggeven wat wij sturen. Als nieuw record, instellen op 0\n bewegingId: number; // Database Id van de rit. Teruggeven wat wij sturen. Als nieuw record, instellen op 0\n volgnummerBinnenBeweging: number; // volgnummer van ritactie binnen de beweging / route\n volgnummerBinnenPlanningsRegel: number;\n ritActieTypeId: number; // Database Id van ritactieType. Overnemen van planningsregel als een nieuwe wordt toegevoegd\n ritActieTypeOmschrijving?: string; // omscrhijving van de ritActieType. Overnemen van planningsregel als een nieuwe wordt toegevoegd\n planningsRegelId?: number; // overnemen van planningsregel\n infraObjectType: string; // overnemen van planningsregel (Wissel of Spoortak)\n iaGebiedType: string; // overnemen van planningsregel\n iaGebiedNaam: number; // overnemen van planningsregel\n pplgNaam: string;\n wisselType: string; // overnemen van planningsregel\n wisselNaam: string; // overnemen van planningsregel\n wisselKantCode: string; // overnemen van planningsregel\n vanKilometerlint?: string; // overnemen van planningsregel (leeg bij Wissel)\n vanKilometrering?: number; // overnemen van planningsregel (leeg bij Wissel)\n totKilometerlint?: string; // overnemen van planningsregel (leeg bij Wissel)\n totKilometrering?: number; // overnemen van planningsregel (leeg bij Wissel)\n werkorderId: string; // overnemen van planningsregel (SAP werkorderId of bij meten bestandsnaam + regelnummer)\n infraBron: string; // overnemen van planningsregel (EquipmentId of BBK SpoortakNaam)\n opmerking: string;\n ritActieStatus: string; // Status van de ritactie. 'Gepland' als al gepland is. Anders moet het nog gepland worden.\n}\n\n// IA informatie\nexport interface InfraModel {\n versie: string;\n ingangsDatum: Date;\n}\n\n// enum WijzigSatussen {\n// 'Normaal', // Record ongewijzigd na eerste aanmaak (b.v. uit de planmodule)\n// 'Gewijzigd', // Record dat handmatig gewijzigd is na aanmaken (via b.v. visualisatie)\n// 'Toegevoegd', // Record volledig handmatig aangemaakt\n// 'Verwijderd', // Record dat verwijderd is maar gewaard wordt vanwege historie\n// 'Ongeldig', // Record dat om een of andere reden ongeldig is (b.v. infra specificatie bestaat niet)\n// }\n","/*\n * Public API Surface of mst-viewer\n */\n\nexport * from './lib/mst-viewer.module';\nexport * from './lib/components/mstviewer/mstviewer.component';\nexport * from './lib/resources/signaleringsbeeldinfo.resource';\nexport * from './lib//model/melding-event';\nexport * from './lib/optimo';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i1.MessagesService","i3.MessageComponent","i1.SignaleringsBeeldManagerService","i1.EditorService","i2.BewegingUtils","i2.SignaleringsBeeldManagerService","MstActions.focusOpIds","i2.ViewerControlService","i3.SignaleringsBeeldManagerService","i2.Configuration","i1.LogControllerService","i2","i2.MstLoggingResource","i3.MessagesService","i4","i5.LoggingHelper","RitdeelViewModel","RitdelenActions.toggleRitdeelZichtbaar","RitdelenActions.setZichtbaarheidAlleRitdelen","RitdelenActions.deleteRitdeel","RitdelenActions.deleteRitdeelActie","MstActions.AddOngeplandeActie","MstActions.DeleteGeplandeActie","RitdelenActions.addRitdeelActie","MstActions.AddGeplandeActie","MstActions.DeleteOngeplandeActie","i3","i3.BewegingUtils","i5.CarouselControlsComponent","i3.ActieHelper","i4.SignaleringsBeeldManagerService","i5.EditorService","i6","MstActions.focusOpRitdeel","MstActions.bepaalSbInfos","i3.DebugService","i4.PrintBewegingService","i5","i6.OverlayComponent","i7.ProgressIndicatorComponent","i8.RpeComponent","i9.RitdelenLijstComponent","i10.RitdelenViewComponent","i11.ViewerControlsComponent","i12.SvgVisualisatieComponent","i13.MessagesComponent","i2.MessagesService","i4.MstLoggingResource","i5.MessagesService","i6.ActieHelper","i7.LoggingHelper","MstActions.laadEnVerwerkSignaleringsbeeldInfo","i3.SignaleringsbeeldInfoResource","i4.MessagesService","i5.DateService","i4.EditorService","RitdelenActions.setRitDelen","MstActions.setEditable","i3.RitLezerService","RitdelenActions.navigeer","RitdelenActions.navigeerVanaf","MstActions.SetOngeplandeActiesBepaald","MstActions.navigeerBuitenRit","MstActions.UpdateVisibleSignaleringsbeeldInfoDtos","RitdelenActions.updateRitDelen","RitdelenActions.SET_RIT_DELEN","MstActions.UpdateSignaleringsbeeldInfoDtos","MstActions.SetSvgInfos","RitdelenActions.NAVIGEER","RitdelenActions.NAVIGEER_VANAF","i5.SignaleringsbeeldInfoResource","i6.ConnectorService","i7.MessagesService","i3.BewegingVerrijkerService","RitdelenActions.setRitdelenAfterUpdate","RitdelenActions.setAlternatieveRitDelen","RitdelenActions.ritdeelInvoegen","RitdelenActions.setRitdeelZichtbaar","RitdelenActions.toggleZichtbaarheidVoorBewegingen","MstActions.ShowProgress","MstActions.ClearProgress","MstActions.SetDebug","MstActions.SetRitSelectieIds","MstActions.SetGeplandeActies","MstActions.SetActieOpRitSelectieIds","MstActions.SetOngeplandeActies","MstActions.SetOngeplandeActieSelectieIds","MstActions.DeleteOngeplandeActieSelectieId","MstActions.SetGebrokenRitSelectieIds","MstActions.SetAlternatievenSelectieIds","MstActions.SetBeginSeinSelectieIds","MstActions.SetEindSeinSelectieIds","MstActions.SetAlternatievenClickableIds","MstActions.SetEindSeinenClickableIds","MstActions.SetConnectorenClickableIds","MstActions.SetBeginSeinRightClickableIds","MstActions.SetNieuwRouteBeginSein","MstActions.SetNieuwRouteEindSein","MstActions.ResetNieuweRoute","MstActions.SetSignaleringsbeeldInfoDtos","MstActions.SetVisibleSignaleringsbeeldInfoDtos","MstActions.SetIaVersie","MstActions.SetAlgemeneRitInfo","MstActions.UpdateRit","MstActions.SetBaseUrl","MstActions.SetSelectedRitdeel","i2.ZoneUtil"],"mappings":"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"}
1
+ {"version":3,"file":"loxia-mst-viewer.mjs","sources":["../../../projects/mst-viewer/src/lib/atomic-components/message/message.ts","../../../projects/mst-viewer/src/lib/atomic-components/message/severity.enum.ts","../../../projects/mst-viewer/src/lib/atomic-components/message/message.component.ts","../../../projects/mst-viewer/src/lib/atomic-components/message/message.component.html","../../../projects/mst-viewer/src/lib/atomic-components/services/messages.service.ts","../../../projects/mst-viewer/src/lib/atomic-components/messages/messages.component.ts","../../../projects/mst-viewer/src/lib/atomic-components/messages/messages.component.html","../../../projects/mst-viewer/src/lib/atomic-components/overlay/overlay.component.ts","../../../projects/mst-viewer/src/lib/atomic-components/overlay/overlay.component.html","../../../projects/mst-viewer/src/lib/atomic-components/progress-indicator/progress-indicator.component.ts","../../../projects/mst-viewer/src/lib/atomic-components/progress-indicator/progress-indicator.component.html","../../../projects/mst-viewer/src/generated.version.ts","../../../projects/mst-viewer/src/lib/state/actions/actions.ts","../../../projects/mst-viewer/src/lib/state/actions/ritdelen.actions.ts","../../../projects/mst-viewer/src/lib/util/utils.ts","../../../projects/mst-viewer/src/lib/util/multi-map.ts","../../../projects/mst-viewer/src/lib/services/signalerings-beeld-manager.service.ts","../../../projects/mst-viewer/src/lib/services/editor.service.ts","../../../projects/mst-viewer/src/lib/services/beweging-utils.service.ts","../../../projects/mst-viewer/src/lib/services/viewer-control.service.ts","../../../projects/mst-viewer/src/lib/services/debug.service.ts","../../../projects/mst-viewer/src/lib/services/print-beweging.service.ts","../../../projects/mst-viewer/src/lib/components/rpe/rpe.component.ts","../../../projects/mst-viewer/src/lib/components/rpe/rpe.component.html","../../../projects/mst-viewer/src/lib/model/ongeplande-actie.ts","../../../projects/mst-viewer/src/lib/model/km-range.ts","../../../projects/mst-viewer/src/lib/model/wissel-kant-code.ts","../../../projects/mst-viewer/src/lib/model/melding-event.ts","../../../projects/mst-viewer/src/lib/util/melding-builder.ts","../../../projects/mst-viewer/src/lib/util/message-builder.ts","../../../projects/mst-viewer/src/generated/openapi/encoder.ts","../../../projects/mst-viewer/src/generated/openapi/variables.ts","../../../projects/mst-viewer/src/generated/openapi/configuration.ts","../../../projects/mst-viewer/src/generated/openapi/api/appConfigController.service.ts","../../../projects/mst-viewer/src/generated/openapi/api/bewegingController.service.ts","../../../projects/mst-viewer/src/generated/openapi/api/class0BuildProperties.service.ts","../../../projects/mst-viewer/src/generated/openapi/api/connectorController.service.ts","../../../projects/mst-viewer/src/generated/openapi/api/logController.service.ts","../../../projects/mst-viewer/src/generated/openapi/api/p21Controller.service.ts","../../../projects/mst-viewer/src/generated/openapi/api/sbController.service.ts","../../../projects/mst-viewer/src/generated/openapi/api/api.ts","../../../projects/mst-viewer/src/generated/openapi/model/actieDto.ts","../../../projects/mst-viewer/src/generated/openapi/model/algemeneRitDto.ts","../../../projects/mst-viewer/src/generated/openapi/model/frontendKeycloakConfig.ts","../../../projects/mst-viewer/src/generated/openapi/model/signaleringsbeeldDto.ts","../../../projects/mst-viewer/src/generated/openapi/model/signaleringsbeeldRequestDto.ts","../../../projects/mst-viewer/src/generated/openapi/api.module.ts","../../../projects/mst-viewer/src/lib/resources/mstlogging.resource.ts","../../../projects/mst-viewer/src/lib/util/logging-helper.ts","../../../projects/mst-viewer/src/lib/util/actie-helper.ts","../../../projects/mst-viewer/src/lib/components/ritdelen-lijst/ritdelen-lijst.component.ts","../../../projects/mst-viewer/src/lib/components/ritdelen-lijst/ritdelen-lijst.component.html","../../../projects/mst-viewer/src/lib/components/ritdelen-view/ritdelen-view.component.ts","../../../projects/mst-viewer/src/lib/components/ritdelen-view/ritdelen-view.component.html","../../../projects/mst-viewer/src/lib/components/carousel-controls/carousel-controls.component.ts","../../../projects/mst-viewer/src/lib/components/carousel-controls/carousel-controls.component.html","../../../projects/mst-viewer/src/lib/components/viewer-controls/viewer-controls.component.ts","../../../projects/mst-viewer/src/lib/components/viewer-controls/viewer-controls.component.html","../../../projects/mst-viewer/src/lib/model/alternatief-rit-deel.ts","../../../projects/mst-viewer/src/lib/model/sein-op-ritdeel.ts","../../../projects/mst-viewer/src/lib/util/actie-popover-bepaler.ts","../../../projects/mst-viewer/src/lib/components/svg-visualisatie/svg-visualisatie.component.ts","../../../projects/mst-viewer/src/lib/components/svg-visualisatie/svg-visualisatie.component.html","../../../projects/mst-viewer/src/lib/components/mstviewer/mstviewer.component.ts","../../../projects/mst-viewer/src/lib/components/mstviewer/mstviewer.component.html","../../../projects/mst-viewer/src/lib/resources/signaleringsbeeldinfo.resource.ts","../../../projects/mst-viewer/src/lib/services/base-rest.service.ts","../../../projects/mst-viewer/src/lib/services/beweging-verrijker.service.ts","../../../projects/mst-viewer/src/lib/model/rijwegplan-rijweg-dwang-combinatie.ts","../../../projects/mst-viewer/src/lib/model/ritdeel.ts","../../../projects/mst-viewer/src/lib/services/rit-lezer.service.ts","../../../projects/mst-viewer/src/lib/state/effect/bepaal-ongeplande-acties.effect.ts","../../../projects/mst-viewer/src/lib/util/date.service.ts","../../../projects/mst-viewer/src/lib/state/effect/bepaal-sb-infos.effect.ts","../../../projects/mst-viewer/src/lib/state/effect/beweging-invoegen.effect.ts","../../../projects/mst-viewer/src/lib/state/effect/delete-ongeplande-actie.effect.ts","../../../projects/mst-viewer/src/lib/state/effect/focus-effect.ts","../../../projects/mst-viewer/src/lib/state/effect/laad-route-files.effect.ts","../../../projects/mst-viewer/src/lib/services/connector.service.ts","../../../projects/mst-viewer/src/lib/state/effect/laad-signaleringsbeelden.effect.ts","../../../projects/mst-viewer/src/lib/state/effect/rit-goedkeuren.effect.ts","../../../projects/mst-viewer/src/lib/state/effect/ritdelen.effect.ts","../../../projects/mst-viewer/src/lib/state/effect/svg-view.effect.ts","../../../projects/mst-viewer/src/lib/model/nieuwe-route.ts","../../../projects/mst-viewer/src/lib/state/reducer/rit-delen.reducer.ts","../../../projects/mst-viewer/src/lib/state/mst-editor-state.ts","../../../projects/mst-viewer/src/lib/util/zone-util.ts","../../../projects/mst-viewer/src/lib/mst-viewer.module.ts","../../../projects/mst-viewer/src/lib/optimo.ts","../../../projects/mst-viewer/src/public-api.ts","../../../projects/mst-viewer/src/loxia-mst-viewer.ts"],"sourcesContent":["import { Severity } from './severity.enum';\n\nexport class Message {\n constructor(public readonly severity: Severity, public readonly text: string, public readonly timeout: number = 0) {\n }\n}\n","export enum Severity {\n ERROR = 'error',\n WARNING = 'warning',\n NOTIFICATION = 'notification',\n INFORMATION = 'information',\n SUCCESS = 'success'\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { Message } from './message';\n\n@Component({\n selector: 'loxia-message',\n templateUrl: './message.component.html',\n styleUrls: ['./message.component.scss'],\n standalone: false\n})\nexport class MessageComponent implements OnInit {\n @Input()\n message: Message;\n\n @Output()\n onClearMessage: EventEmitter<Message> = new EventEmitter();\n\n ngOnInit(): void {\n if (this.message.timeout > 0) {\n setTimeout(() => {\n this.closeMessage({ stopPropagation: () => null });\n }, this.message.timeout);\n }\n }\n\n closeMessage(event): void {\n event.stopPropagation();\n this.onClearMessage.emit(this.message);\n this.message = undefined;\n }\n\n get severity(): string {\n return this.message.severity;\n }\n\n}\n","<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","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { Message } from '../message';\n\n@Injectable({ providedIn: 'root' })\nexport class MessagesService {\n private messages: Message[] = [];\n private _messages$: BehaviorSubject<Message[]> = new BehaviorSubject<Message[]>([]);\n\n public showMessage(message: Message): void {\n this.messages.push(message);\n this._messages$.next(this.messages);\n }\n\n public clearMessage(message: Message): void {\n this.messages = this.messages.filter(m => m.text !== message.text);\n this._messages$.next(this.messages);\n }\n\n public get messages$(): Observable<Message[]> {\n return this._messages$;\n }\n}\n","import { Component } from '@angular/core';\nimport { MessagesService } from '../services/messages.service';\n\n@Component({\n selector: 'loxia-messages',\n templateUrl: './messages.component.html',\n styleUrls: ['./messages.component.scss'],\n standalone: false\n})\nexport class MessagesComponent {\n\n constructor(public messagesService: MessagesService) {\n }\n\n trackbyIndex(index: number): number {\n return index;\n }\n}\n","<div class=\"messages w-full\">\n <div *ngFor=\"let message of (messagesService.messages$ | async); let i = index; trackBy: trackbyIndex\">\n <loxia-message [message]=\"message\" (onClearMessage)=\"messagesService.clearMessage($event)\"></loxia-message>\n </div>\n</div>\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'mst-overlay',\n templateUrl: './overlay.component.html',\n styleUrls: ['./overlay.component.scss'],\n standalone: false\n})\nexport class OverlayComponent {\n\n}\n","<div class=\"overlay\">\n <div class=\"centered-content\">\n <div class=\"content\">\n <ng-content></ng-content>\n </div>\n </div>\n</div>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n selector: 'mst-progress-indicator',\n templateUrl: './progress-indicator.component.html',\n styleUrls: ['./progress-indicator.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class ProgressIndicatorComponent {\n\n\n}\n","<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","export const version = '9.0.1-SNAPSHOT';\n\n","import { SvgInfo } from '@loxia/imx-viewer';\nimport { createAction, union } from '@ngrx/store';\nimport { AlgemeneRitDto } from '../../../generated/openapi';\nimport { OngeplandeActie } from '../../model/ongeplande-actie';\nimport { RijwegplanRijwegDwangCombinatie } from '../../model/rijwegplan-rijweg-dwang-combinatie';\nimport { Ritdeel } from '../../model/ritdeel';\nimport { SeinOpRitdeel } from '../../model/sein-op-ritdeel';\nimport { Actie, Beweging, InfraModel, Rit } from '../../optimo';\nimport { ISignaleringsbeeldInfoDto } from '../../resources/signaleringsbeeldinfo.resource';\nimport { ArrayMultimap } from '../../util/multi-map';\n\nexport const SET_EDITABLE = '[mst] SetEditable';\nexport const SET_RIT_SELECTIE_IDS = '[mst] SetRitSelectieIds';\nexport const SET_GEPLANDE_ACTIES = '[mst] SetGeplandeActies';\nexport const DELETE_GEPLANDE_ACTIES = '[mst] DeleteGeplandeActies';\nexport const ADD_GEPLANDE_ACTIES = '[mst] AddGeplandeActies';\nexport const SET_ACTIEOPRIT_SELECTIE_IDS = '[mst] SetActieOpRitSelectieIds';\nexport const SET_ONGEPLANDEACTIE_SELECTIE_IDS = '[mst] SetOngeplandeActieSelectieIds';\nexport const DELETE_ONGEPLANDE_ACTIE_SELECTIE_ID = '[mst] DeleteOngeplandeActieSelectieId';\nexport const ADD_ONGEPLANDE_ACTIE = '[mst] AddOngeplandeActie';\nexport const DELETE_ONGEPLANDE_ACTIE = '[mst] DeleteOngeplandeActie';\nexport const BEPAAL_ONGEPLANDE_ACTIES = '[mst] BepaalOngeplandeActies';\nexport const SET_ONGEPLANDE_ACTIES = '[mst] SetOngeplandeActies';\nexport const SET_GEBROKENRIT_SELECTIE_IDS = '[mst] SetGebrokenRitSelectieIds';\nexport const SET_ALTERNATIEVEN_SELECTIE_IDS = '[mst] SetAlternatievenSelectieIds';\nexport const SET_BEGINSEIN_SELECTIE_IDS = '[mst] SetBeginSeinSelectieIds';\nexport const SET_EINDSEIN_SELECTIE_IDS = '[mst] SetEindSeinSelectieIds';\nexport const SET_ALTERNATIEVEN_CLICKABLE_IDS = '[mst] SetAlternatievenClickableIds';\nexport const SET_EINDSEINEN_CLICKABLE_IDS = '[mst] SetEindSeinenClickableIds';\nexport const SET_CONNECTOREN_CLICKABLE_IDS = '[mst] SetConnectorenlickableIds';\nexport const SET_BEGINSEIN_RIGHTCLICKABLE_IDS = '[mst] SetBeginSeinRightClickableIds';\nexport const SET_NIEUW_ROUTE_BEGINSEIN = '[mst] SetNieuwRouteBeginSein';\nexport const SET_NIEUW_ROUTE_EINDSEIN = '[mst] SetNieuwRouteEindSein';\nexport const RESET_NIEUWE_ROUTE = '[mst] ResetNieuweRoute';\nexport const SET_SIGNALERINGSBEELD_INFO_DTOS = '[mst] SetSignaleringsbeeldInfoDtos';\nexport const UPDATE_SIGNALERINGSBEELD_INFO_DTOS = '[mst] UpdateSignaleringsbeeldInfoDtos';\nexport const SET_VISIBLE_SIGNALERINGSBEELD_INFO_DTOS = '[mst] SetVisibleSignaleringsbeeldInfoDtos';\nexport const UPDATE_VISIBLE_SIGNALERINGSBEELD_INFO_DTOS = '[mst] UpdateVisibleSignaleringsbeeldInfoDtos';\nexport const SET_IA_VERSIE = '[mst] SetIaVersie';\nexport const SET_ALGEMENE_RIT_INFO = '[mst] SetAlgemeneRitInfo';\nexport const SET_SVG_INFOS = '[mst] SET_SVG_INFOS';\nexport const SET_DEBUG = '[mst] SET_DEBUG';\nexport const SET_ONGEPLANDE_ACTIES_BEPAALD = '[mst] SET_ONGEPLANDE_ACTIES_BEPAALD';\nexport const BEWEGING_INVOEGEN = '[mst] BewegingInvoegen';\nexport const SHOW_PROGRESS_INDICATOR = '[progress] Show the progress indicator';\nexport const CLEAR_PROGRESS_INDICATOR = '[progress] Clear the progress indicator';\nexport const KEUR_ALLE_ACTIES_GOED = '[progress] KeurAlleActiesGoed';\nexport const UPDATE_RIT = '[progress] UpdateRit';\nexport const SET_BASE_URL = '[progress] Set BaseUrl';\nexport const NAVIGEER_BUITEN_RIT = '[mst] NavigeerBuitenRit';\nexport const LAAD_EN_VERWERK_SIGNALERINGSBEELD_INFO = '[mst] laadEnVerwerkSignaleringsbeeldInfo';\n\nexport const FOCUS_OP_RITDEEL = '[mst] focusOpRitdeel';\nexport const FOCUS_OP_IDS = '[mst] focusOpIds';\nexport const BEPAAL_SB_INFOS = '[mst] bepaalSbInfos';\nexport const SET_SELECTED_RITDEEL = '[mst] SetSelectedRitdeel';\n\nexport const setEditable = createAction(SET_EDITABLE, (editable: boolean) => ({ editable }));\n\nexport const SetRitSelectieIds = createAction(SET_RIT_SELECTIE_IDS, (ids: string[]) => ({ ids }));\n\nexport const SetGeplandeActies = createAction(SET_GEPLANDE_ACTIES,\n (geplandeActiesMap: ArrayMultimap<Actie, string>) => ({ geplandeActiesMap }));\n\nexport const DeleteGeplandeActie = createAction(DELETE_GEPLANDE_ACTIES, (actie: Actie, puics: string[]) => ({ actie, puics }));\n\nexport const AddGeplandeActie = createAction(ADD_GEPLANDE_ACTIES, (actie: Actie, puics: string[]) => ({ actie, puics }));\n\nexport const SetActieOpRitSelectieIds = createAction(SET_ACTIEOPRIT_SELECTIE_IDS, (ids: string[]) => ({ ids }));\n\nexport const SetOngeplandeActieSelectieIds = createAction(SET_ONGEPLANDEACTIE_SELECTIE_IDS, (ids: string[]) => ({ ids }));\n\nexport const DeleteOngeplandeActieSelectieId = createAction(DELETE_ONGEPLANDE_ACTIE_SELECTIE_ID, (id: string) => ({ id }));\n\nexport const AddOngeplandeActie = createAction(ADD_ONGEPLANDE_ACTIE, (ongeplandeActie: OngeplandeActie) => ({ ongeplandeActie }));\n\nexport const DeleteOngeplandeActie = createAction(DELETE_ONGEPLANDE_ACTIE, (ongeplandeActie: OngeplandeActie) => ({ ongeplandeActie }));\n\nexport const BepaalOngeplandeActies = createAction(BEPAAL_ONGEPLANDE_ACTIES, (ongeplandeActies: any[]) => ({ ongeplandeActies }));\n\nexport const SetOngeplandeActies = createAction(SET_ONGEPLANDE_ACTIES,\n (ongeplandeActiesMap: ArrayMultimap<string, OngeplandeActie>) => ({ ongeplandeActiesMap }));\n\nexport const SetGebrokenRitSelectieIds = createAction(SET_GEBROKENRIT_SELECTIE_IDS, (ids: string[]) => ({ ids }));\n\nexport const SetAlternatievenSelectieIds = createAction(SET_ALTERNATIEVEN_SELECTIE_IDS, (ids: string[]) => ({ ids }));\n\nexport const SetBeginSeinSelectieIds = createAction(SET_BEGINSEIN_SELECTIE_IDS, (ids: string[]) => ({ ids }));\n\nexport const SetEindSeinSelectieIds = createAction(SET_EINDSEIN_SELECTIE_IDS, (ids: string[]) => ({ ids }));\n\nexport const SetAlternatievenClickableIds = createAction(SET_ALTERNATIEVEN_CLICKABLE_IDS, (ids: string[]) => ({ ids }));\n\nexport const SetEindSeinenClickableIds = createAction(SET_EINDSEINEN_CLICKABLE_IDS, (ids: string[]) => ({ ids }));\n\nexport const SetConnectorenClickableIds = createAction(SET_CONNECTOREN_CLICKABLE_IDS, (ids: string[]) => ({ ids }));\n\nexport const SetBeginSeinRightClickableIds = createAction(SET_BEGINSEIN_RIGHTCLICKABLE_IDS, (ids: string[]) => ({ ids }));\n\nexport const SetNieuwRouteBeginSein = createAction(SET_NIEUW_ROUTE_BEGINSEIN,\n (startSeinOpRitdeel: SeinOpRitdeel) => ({ startSeinOpRitdeel }));\n\nexport const SetNieuwRouteEindSein = createAction(SET_NIEUW_ROUTE_EINDSEIN,\n (combinatieVoorEindsein: RijwegplanRijwegDwangCombinatie) => ({ combinatieVoorEindsein }));\n\nexport const ResetNieuweRoute = createAction(RESET_NIEUWE_ROUTE);\n\nexport const SetSignaleringsbeeldInfoDtos = createAction(SET_SIGNALERINGSBEELD_INFO_DTOS,\n (dtos: ISignaleringsbeeldInfoDto[], iaversieinfo: any, treinpad: any, paginationSize: number, ritGewijzigdToegestaan: boolean) =>\n ({ dtos, iaversieinfo, treinpad, paginationSize, ritGewijzigdToegestaan }));\n\nexport const UpdateSignaleringsbeeldInfoDtos = createAction(UPDATE_SIGNALERINGSBEELD_INFO_DTOS,\n (dtos: ISignaleringsbeeldInfoDto[]) => ({ dtos }));\n\nexport const SetVisibleSignaleringsbeeldInfoDtos = createAction(SET_VISIBLE_SIGNALERINGSBEELD_INFO_DTOS,\n (dtos: ISignaleringsbeeldInfoDto[]) => ({ dtos }));\n\nexport const UpdateVisibleSignaleringsbeeldInfoDtos = createAction(UPDATE_VISIBLE_SIGNALERINGSBEELD_INFO_DTOS,\n (dtos: ISignaleringsbeeldInfoDto[]) => ({ dtos }));\n\nexport const SetIaVersie = createAction(SET_IA_VERSIE, (iaVersie: InfraModel) => ({ iaVersie }));\n\nexport const SetSvgInfos = createAction(SET_SVG_INFOS, (svgInfos: SvgInfo[]) => ({ svgInfos }));\n\nexport const SetDebug = createAction(SET_DEBUG, (debug: boolean) => ({ debug }));\n\nexport const SetAlgemeneRitInfo = createAction(SET_ALGEMENE_RIT_INFO, (algemeneRitInfoDto: AlgemeneRitDto) => ({ algemeneRitInfoDto }));\n\nexport const SetOngeplandeActiesBepaald = createAction(SET_ONGEPLANDE_ACTIES_BEPAALD, (bepaald: boolean) => ({ bepaald }));\n\nexport const ShowProgress = createAction(SHOW_PROGRESS_INDICATOR);\nexport const ClearProgress = createAction(CLEAR_PROGRESS_INDICATOR);\nexport const BewegingInvoegen = createAction(BEWEGING_INVOEGEN,\n (startSeinOpRitdeel: SeinOpRitdeel, puicNaarEindSeinCombinatie: Map<string, RijwegplanRijwegDwangCombinatie>) =>\n ({ startSeinOpRitdeel, puicNaarEindSeinCombinatie }));\n\nexport const KeurAlleActiesGoed = createAction(KEUR_ALLE_ACTIES_GOED, (bewegingen: Beweging[], ongeplandeActies: Actie[]) => ({ bewegingen, ongeplandeActies }));\nexport const UpdateRit = createAction(UPDATE_RIT, (bewegingen: Beweging[]) => ({ bewegingen }));\nexport const SetBaseUrl = createAction(SET_BASE_URL, (baseUrl: string) => ({ baseUrl }));\n\nexport const laadEnVerwerkSignaleringsbeeldInfo = createAction(LAAD_EN_VERWERK_SIGNALERINGSBEELD_INFO,\n (rit: Rit, paginationSize: number, pplgs: string[], ritGewijzigdToegestaan: boolean) => ({ rit, paginationSize, pplgs, ritGewijzigdToegestaan }));\nexport const navigeerBuitenRit = createAction(NAVIGEER_BUITEN_RIT, (randPuic: string) => ({ randPuic }));\n\nexport const focusOpRitdeel = createAction(FOCUS_OP_RITDEEL, (ritdeel: Ritdeel, paginationSize: number, iaVersieInfo: InfraModel) => ({ ritdeel, paginationSize, iaVersieInfo }) )\nexport const focusOpIds = createAction(FOCUS_OP_IDS, (puics: string[]) => ({ puics }));\nexport const bepaalSbInfos = createAction(BEPAAL_SB_INFOS, (rit: Rit, ongeplandeActies: Actie[], iaVersie: string, ritGewijzigdToegestaan: boolean, paginationSize: number) => ({ rit, ongeplandeActies, iaVersie, ritGewijzigdToegestaan, paginationSize }));\nexport const SetSelectedRitdeel = createAction(SET_SELECTED_RITDEEL, (id: number) => ({ id }));\n\n// do not export return value\nconst mstActions = union({\n setEditable,\n SetRitSelectieIds,\n SetGeplandeActies,\n DeleteGeplandeActie,\n AddGeplandeActie,\n SetActieOpRitSelectieIds,\n SetOngeplandeActieSelectieIds,\n DeleteOngeplandeActieSelectieId,\n AddOngeplandeActie,\n DeleteOngeplandeActie,\n BepaalOngeplandeActies,\n SetOngeplandeActies,\n SetGebrokenRitSelectieIds,\n SetAlternatievenSelectieIds,\n SetBeginSeinSelectieIds,\n SetEindSeinSelectieIds,\n SetAlternatievenClickableIds,\n SetEindSeinenClickableIds,\n SetBeginSeinRightClickableIds,\n SetNieuwRouteBeginSein,\n SetNieuwRouteEindSein,\n ResetNieuweRoute,\n SetSignaleringsbeeldInfoDtos,\n UpdateSignaleringsbeeldInfoDtos,\n SetVisibleSignaleringsbeeldInfoDtos,\n UpdateVisibleSignaleringsbeeldInfoDtos,\n SetIaVersie,\n SetSvgInfos,\n SetDebug,\n SetAlgemeneRitInfo,\n SetOngeplandeActiesBepaald,\n ShowProgress,\n ClearProgress,\n BewegingInvoegen,\n KeurAlleActiesGoed,\n UpdateRit,\n setSelectedRitdeel: SetSelectedRitdeel\n});\n\n// export only type\nexport type MstActionsUnion = typeof mstActions;\n\n\n\n","import {createAction, union} from '@ngrx/store';\nimport {AlternatiefRitDeel} from '../../model/alternatief-rit-deel';\nimport {NieuweRoute} from '../../model/nieuwe-route';\nimport {Ritdeel} from '../../model/ritdeel';\nimport {Actie} from '../../optimo';\n\nexport const SET_RIT_DELEN = '[mst] SetRitDelen';\nexport const SET_RIT_DELEN_AFTER_UPDATE = '[mst] SetRitDelenAfterUpdate';\nexport const UPDATE_RIT_DELEN = '[mst] UpdateRitDelen';\nexport const TOGGLE_RITDEEL_ZICHTBAAR = '[mst] ToggleRitdeelZichtbaar';\nexport const SET_RITDEEL_ZICHTBAAR = '[mst] ZetRitdeelZichtbaar';\nexport const SET_ZICHTBAARHEID_ALLE_RITDELEN = '[mst] SetZichtbaarheidAlleRitdelen';\nexport const TOGGLE_ZICHTBAARHEID_VOOR_BEWEGINGEN = '[mst] ToggleZichtbaarheidVoorBewegingen';\nexport const SET_ALTERNATIEVE_RIT_DELEN = '[mst] SetAlternatieveRitDelen';\nexport const RITDEEL_INVOEGEN = '[mst] RitdeelInvoegen';\nexport const DELETE_RITDEEL = '[mst] DeleteRitdeel';\nexport const DELETE_RITDEEL_ACTIE = '[mst] DeleteRitdeelActie';\nexport const ADD_RITDEEL_ACTIE = '[mst] AddRitdeelActie';\nexport const NAVIGEER = '[mst] Navigeer';\nexport const NAVIGEER_VANAF = '[mst] NavigeerVanaf';\n\nexport const setRitDelen = createAction(SET_RIT_DELEN,\n (ritDelen: Ritdeel[], paginationSize: number, iaversieinfo: any) => ({ ritDelen, paginationSize, iaversieinfo }));\nexport const setRitdelenAfterUpdate = createAction(SET_RIT_DELEN_AFTER_UPDATE,\n (ritDelen: Ritdeel[]) => ({ ritDelen }));\nexport const navigeer = createAction(NAVIGEER,\n (stapSize: number, paginationSize: number, iaversieinfo: any) => ({ stapSize, paginationSize, iaversieinfo }));\nexport const navigeerVanaf = createAction(NAVIGEER_VANAF,\n (paginationSize: number, iaversieinfo: any, ritdeel: Ritdeel) => ({ paginationSize, iaversieinfo, ritdeel }));\nexport const updateRitDelen = createAction(UPDATE_RIT_DELEN,\n (ritDelen: Ritdeel[]) => ({ ritDelen }));\nexport const toggleRitdeelZichtbaar = createAction(TOGGLE_RITDEEL_ZICHTBAAR, (ritDeel: Ritdeel) => ({ ritDeel }));\nexport const setRitdeelZichtbaar = createAction(SET_RITDEEL_ZICHTBAAR,\n (ritDeel: Ritdeel, zichtbaar: boolean) => ({ ritDeel, zichtbaar }));\nexport const deleteRitdeel = createAction(DELETE_RITDEEL, (ritDeel: Ritdeel) => ({ ritDeel }));\nexport const deleteRitdeelActie = createAction(DELETE_RITDEEL_ACTIE, (ritDeel: Ritdeel, actie: Actie) => ({ ritDeel, actie }));\nexport const addRitdeelActie = createAction(ADD_RITDEEL_ACTIE, (ritDeel: Ritdeel, actie: Actie) => ({ ritDeel, actie }));\nexport const setZichtbaarheidAlleRitdelen = createAction(SET_ZICHTBAARHEID_ALLE_RITDELEN,\n (zichtbaarheid: boolean) => ({ zichtbaarheid }));\nexport const toggleZichtbaarheidVoorBewegingen = createAction(TOGGLE_ZICHTBAARHEID_VOOR_BEWEGINGEN,\n (bewegingIds: number[]) => ({ bewegingIds }));\nexport const setAlternatieveRitDelen = createAction(SET_ALTERNATIEVE_RIT_DELEN,\n (alternatieveRitDeel: AlternatiefRitDeel) => ({ alternatieveRitDeel }));\nexport const ritdeelInvoegen = createAction(RITDEEL_INVOEGEN,\n (nieuweRoute: NieuweRoute) => ({ nieuweRoute }));\n\n// do not export return value\nconst ritdeelActions = union({\n setRitDelen,\n updateRitDelen,\n setRitdelenAfterUpdate,\n toggleRitdeelZichtbaar,\n setRitdeelZichtbaar,\n deleteRitdeel,\n deleteRitdeelActie,\n addRitdeelActie,\n setZichtbaarheidAlleRitdelen,\n toggleZichtbaarheidVoorBewegingen,\n setAlternatieveRitDelen,\n ritdeelInvoegen\n});\n\n// export only type\nexport type RitDeelActionsUnion = typeof ritdeelActions;\n","export default class Utils {\n\n public static flatMap(xs, f): any {\n return xs.reduce((acc, x) => acc.concat(f(x)), []);\n }\n\n public static getValidErorrMessage(err: any): string {\n let errorMsg = '';\n if (err.msg) {\n errorMsg += err.msg;\n }\n\n if (Array.isArray(err.body)) {\n err.body.forEach(x => errorMsg += x);\n } else if (err.body) {\n if (err.body instanceof ProgressEvent) {\n errorMsg = 'Kon geen verbinding maken met de server';\n } else if (err.body.text) {\n errorMsg += err.body.text;\n } else {\n errorMsg += err.body;\n }\n }\n if (err.message) {\n errorMsg += err.message;\n }\n if (typeof err === 'string' || err instanceof String) {\n errorMsg += err;\n }\n if (errorMsg !== '') {\n return errorMsg;\n }\n }\n}\n","import Utils from './utils';\n\n/**\n * https://gist.github.com/jordanluyke/609a4fffb69d1ebafdadd313ee2ee804\n *\n * @author Jordan Luyke <jordanluyke@gmail.com>\n */\n\nexport class MultimapEntry<K, V> {\n constructor(readonly key: K, readonly value: V) {\n }\n}\n\nexport interface Multimap<K, V> {\n entries: MultimapEntry<K, V>[];\n\n clear(): void;\n\n containsKey(key: K): boolean;\n\n containsValue(value: V): boolean;\n\n containsEntry(key: K, value: V): boolean;\n\n delete(key: K, value?: V): boolean;\n\n get(key: K): V[];\n\n keys(): K[];\n\n values(): V[];\n\n put(key: K, value: V): MultimapEntry<K, V>[];\n\n size(): number;\n}\n\nexport class ArrayMultimap<K, V> implements Multimap<K, V> {\n\n private _entries: MultimapEntry<K, V>[] = [];\n\n constructor(map?: Multimap<K, V>) {\n if (map) {\n this._entries = map.entries.slice();\n }\n }\n\n public size(): number {\n return this.keys().length;\n }\n\n public clear(): void {\n this._entries = [];\n }\n\n public containsKey(key: K): boolean {\n return this._entries\n .filter(entry => entry.key === key)\n .length > 0;\n }\n\n public containsValue(value: V): boolean {\n return this._entries\n .filter(entry => entry.value === value)\n .length > 0;\n }\n\n public containsEntry(key: K, value: V): boolean {\n return this._entries\n .filter(entry => entry.key === key && entry.value === value)\n .length > 0;\n }\n\n public delete(key: K, value?: V): boolean {\n const temp = this._entries;\n this._entries = this._entries\n .filter(entry => {\n if (value) {\n return entry.key !== key || entry.value !== value;\n }\n return entry.key !== key;\n });\n return temp.length !== this._entries.length;\n }\n\n public get entries(): MultimapEntry<K, V>[] {\n return this._entries;\n }\n\n public get(key: K): V[] {\n const valueMap = this._entries\n .filter(entry => entry.key === key)\n .map(entry => entry.value);\n return valueMap || [];\n }\n\n public keys(): K[] {\n return Array.from(new Set(this._entries.map(entry => entry.key)));\n }\n\n public values(): V[] {\n return Utils.flatMap(this._entries, x => x.value);\n }\n\n public put(key: K, value: V): MultimapEntry<K, V>[] {\n this._entries.push(new MultimapEntry(key, value));\n return this._entries;\n }\n\n public putAll(key: K, values: V[]): MultimapEntry<K, V>[] {\n values.forEach(value => this._entries.push(new MultimapEntry(key, value)));\n return this._entries;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { domein, JsJavaUtil, sbblad } from '@loxia/rijwegen';\n\n@Injectable()\nexport class SignaleringsBeeldManagerService {\n private signaleringsBeeldManager;\n\n /*\n * SignaleringsBeeldManager gezet vanuit GWT\n */\n set(signaleringsBeeldManager: any): void {\n this.signaleringsBeeldManager = signaleringsBeeldManager;\n }\n\n isReady(): boolean {\n return !!this.signaleringsBeeldManager;\n }\n\n bepaalRouteElementen(route: domein.Route): sbblad.TopologyElement[] {\n try {\n return JsJavaUtil.listToArray(this.signaleringsBeeldManager.bepaalRouteElementenStrict(route));\n } catch (e) {\n console.log(e.message);\n return [];\n }\n }\n\n getPuicsVoorSeinenInRoute(route: domein.Route): string[] {\n try {\n return JsJavaUtil.listToArray(this.signaleringsBeeldManager.getPuicsVoorSeinenInRoute(route));\n } catch (e) {\n console.log(e.message);\n return [];\n }\n }\n\n getSBSein(sein: domein.Sein): sbblad.Sein {\n return this.signaleringsBeeldManager.getSeinStrict(sein);\n }\n\n getSbSpoortak(takId: string): sbblad.Spoortak {\n return this.signaleringsBeeldManager ? this.signaleringsBeeldManager.getSpoortak(takId) : null;\n }\n\n getAlleSoortenWissels(): sbblad.Wissel[] {\n return this.signaleringsBeeldManager.getAlleSoortenWissels();\n }\n\n getSBWissel(wisselNaam: string, pplg: string): sbblad.Wissel {\n return this.signaleringsBeeldManager.getWissel(wisselNaam, pplg);\n }\n\n getSignaleringsElementen(): sbblad.SignaleringsElement[] {\n return this.signaleringsBeeldManager.getSignaleringsElementen();\n }\n\n bepaalAlternativeRoutes(rijweg: domein.Rijweg): sbblad.AlternativeRoute[] {\n return JsJavaUtil.listToArray(this.signaleringsBeeldManager.bepaalAlternativeRoutes(rijweg));\n }\n\n bepaalAlternativeRouteHighlights(alternatieveRoute: sbblad.AlternativeRoute,\n topoElementen: sbblad.HasIdentifier[]): sbblad.HasIdentifier[] {\n return JsJavaUtil.listToArray(this.signaleringsBeeldManager.bepaalAlternativeRouteHighlights(alternatieveRoute, topoElementen));\n }\n\n getPuicsVoorSeinen(): string[] {\n return this.signaleringsBeeldManager.getPuicsVoorSeinen();\n }\n\n getSeinen(): sbblad.Sein[] {\n return this.signaleringsBeeldManager.getSeinen();\n }\n\n getPuicsVoorWissels(): string[] {\n return this.signaleringsBeeldManager.getPuicsVoorWissels();\n }\n\n getPuicsVoorRanden(): string[] {\n return this.signaleringsBeeldManager.getPuicsVoorRanden();\n }\n\n getWisselMetStoringskaderPuic(storingskaderPuic: string): sbblad.Wissel {\n return this.signaleringsBeeldManager.getWisselMetStoringskaderPuic(storingskaderPuic);\n }\n\n getPuicsVoorWissel(wisselId: string, pplg: string): any {\n return this.signaleringsBeeldManager ? this.signaleringsBeeldManager.getPuicsVoorWissel(wisselId, pplg) : null;\n }\n\n getPuicsVoorSpoornummers(): string[] {\n return this.signaleringsBeeldManager.getPuicsVoorSpoornummers();\n }\n\n getPuicsVoorSplitEngelseWissels(): string[] {\n return this.signaleringsBeeldManager.getPuicsVoorSplitEngelseWissels();\n }\n\n getTechnischAlternatiefSBSein(sein: sbblad.Sein): sbblad.Sein {\n return this.signaleringsBeeldManager.getTechnischAlternatiefSBSein(sein);\n }\n\n getTopologyElementByPuic(puic: string): sbblad.TopologyElement {\n return this.signaleringsBeeldManager.getTopologyElementByPuic(puic);\n }\n\n getEersteVerbindingPuicVoorSplitEngelseWissel(engelsWisselNaam: string, kantcode: string): any {\n return this.signaleringsBeeldManager.getEersteVerbindingPuicVoorSplitEngelseWissel(engelsWisselNaam, kantcode);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { domein } from '@loxia/rijwegen';\nimport { from, Observable } from 'rxjs';\nimport { ISignaleringsbeeldInfoDto } from '../resources/signaleringsbeeldinfo.resource';\nimport { SignaleringsBeeldManagerService } from './signalerings-beeld-manager.service';\n\n@Injectable()\nexport class EditorService {\n private editor;\n private resolveReadyPromise;\n private promise;\n\n constructor(private signaleringsBeeldManagerService: SignaleringsBeeldManagerService) {\n this.initReadyPromise();\n }\n\n setEditor(editor): void {\n this.editor = editor;\n\n this.resolveReadyPromise();\n }\n\n isReady(): Promise<void> {\n return this.promise;\n }\n\n setSignaleringsBeeldManager(signaleringsBeeldManager): void {\n this.signaleringsBeeldManagerService.set(signaleringsBeeldManager);\n }\n\n laadSignaleringsbeelden(iaVersie: string, dtos: ISignaleringsbeeldInfoDto[]): Observable<any> {\n const laadSignaleringsbeelden = this.editor.laadSignaleringsbeelden(iaVersie, dtos);\n return from(laadSignaleringsbeelden);\n }\n\n laadRouteFiles(iaVersie: string, pplgs: string[]): any {\n return this.editor.laadRouteFiles(iaVersie, pplgs);\n }\n\n getRijwegplan(pplg: string): domein.Rijwegplan {\n return this.editor.getRijwegplan(pplg);\n }\n\n getVrijebaanRijwegplan(pplg: string, vanSpoor: string): domein.VrijebaanRijwegplan {\n return this.editor.getVrijebaanRijwegplan(pplg, vanSpoor);\n }\n\n getRijwegplannen(): domein.Rijwegplan[] {\n return this.editor.getRijwegplannen();\n }\n\n private initReadyPromise(): void {\n const that = this;\n this.promise = this.promise === undefined ? new Promise(function(resolve, _reject) {\n that.resolveReadyPromise = resolve;\n }) : this.promise;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Ritdeel } from '../model/ritdeel';\nimport { Actie, Beweging } from '../optimo';\nimport { ArrayMultimap } from '../util/multi-map';\nimport { EditorService } from './editor.service';\n\n@Injectable()\nexport class BewegingUtils {\n static readonly GEWIJZIGD = 'Gewijzigd';\n static readonly TOEGEVOEGD = 'Toegevoegd';\n static readonly NORMAAL = 'Normaal';\n private static readonly SEIN_TYPE_FICTIEF = 'FICTIEF';\n private static readonly SPOOR_NAAR_VRIJEBAAN_POSTFIX = '_e';\n\n constructor(private readonly editorService: EditorService) {\n }\n\n public extractBewegingenUitRitdelen(ritDelen: Ritdeel[], origineleBewegingen: Beweging[]): Beweging[] {\n const retval: Beweging[] = [];\n retval.length = ritDelen.length;\n\n const origineleBewegingMap = this.bepaalOrigineleBewegingMap(origineleBewegingen);\n\n let vorigeBeweging: Beweging = null;\n for (let i = 0; i < ritDelen.length; i++) {\n const ritdeel = ritDelen[i];\n if (ritdeel.beweging) {\n retval[i] = ritdeel.beweging;\n const nieuwDwangNummer = BewegingUtils.toRouteFileDwangNummer(ritdeel.getDwangNummer());\n if (BewegingUtils.isGewijzigd(ritdeel, nieuwDwangNummer, origineleBewegingMap)) {\n retval[i].wijzigStatus = BewegingUtils.GEWIJZIGD;\n retval[i].dwangNummer = nieuwDwangNummer;\n ritdeel.beweging.ritActies = ritdeel.acties;\n BewegingUtils.removeKerenExtensie(retval[i]);\n BewegingUtils.removeKerenExtensie(vorigeBeweging);\n } else if (i === ritDelen.length - 1 && BewegingUtils.bewegingenZijnGewijzigd(ritDelen, origineleBewegingen)) {\n BewegingUtils.removeKerenExtensie(retval[i]);\n } else if (retval[i].wijzigStatus === BewegingUtils.TOEGEVOEGD) {\n BewegingUtils.removeKerenExtensie(vorigeBeweging);\n }\n } else {\n retval[i] = this.maakBeweging(ritdeel);\n }\n retval[i].volgnummerBinnenRit = i + 1;\n vorigeBeweging = ritdeel.beweging;\n }\n return retval;\n }\n\n private static bewegingenZijnGewijzigd(ritDelen: Ritdeel[], origineleBewegingen: Beweging[]): boolean {\n const ritDelenArray = ritDelen\n .filter(r => r.beweging)\n .map(r => r.beweging.id)\n .sort((a, b) => a - b);\n\n const bewegingenIdArray = origineleBewegingen.map(b => b.id).sort((a, b) => a - b);\n return JSON.stringify(ritDelenArray) !== JSON.stringify(bewegingenIdArray);\n }\n\n private static removeKerenExtensie(beweging: Beweging): void {\n if (beweging && this.containsExtensie('_k', beweging.naarSpoor)) {\n beweging.naarSpoor = beweging.naarSpoor.split('_k')[0];\n beweging.wijzigStatus = this.GEWIJZIGD;\n }\n }\n\n static containsExtensie(match: string, stringToCheck: string): boolean {\n return stringToCheck.indexOf(match) !== -1;\n }\n\n private static isGewijzigd(ritdeel: Ritdeel, nieuwDwangNummer, origineleBewegingenMap: ArrayMultimap<number, number>): boolean {\n const dwangGewijzigd = ritdeel.beweging.dwangNummer !== nieuwDwangNummer;\n let gewijzigd = false;\n if (ritdeel.beweging.wijzigStatus === this.NORMAAL) {\n const origineleBewegingActies = origineleBewegingenMap.get(ritdeel.beweging.id);\n const huidigeActies = this.createSortedActieIdList(ritdeel.acties);\n gewijzigd = JSON.stringify(huidigeActies) !== JSON.stringify(origineleBewegingActies);\n }\n return dwangGewijzigd || gewijzigd;\n }\n\n private bepaalOrigineleBewegingMap(origineleBewegingen: Beweging[]): ArrayMultimap<number, number> {\n const bewegingMap = new ArrayMultimap<number, number>();\n origineleBewegingen.forEach(b => {\n const actieIds = BewegingUtils.createSortedActieIdList(b.ritActies);\n bewegingMap.putAll(b.id, actieIds);\n });\n return bewegingMap;\n }\n\n private static createSortedActieIdList(acties: Actie[]): number[] {\n return acties.map(actie => actie.id).sort((a, b) => a - b);\n }\n\n public maakBeweging(newRitdeel: Ritdeel): Beweging {\n const eindSein = newRitdeel.getRoute().getEindSein();\n\n let naarSeinNaam;\n let naarSeinPplg;\n let naarSpoor = newRitdeel.getNaarPrlSpoor();\n if (eindSein.getTypeAlsString() === BewegingUtils.SEIN_TYPE_FICTIEF) {\n if (newRitdeel.heeftVrijebaanInfo()) {\n const vbEindSein = newRitdeel.getVrijebaanRijweg().getEindSein();\n naarSeinNaam = vbEindSein.getName();\n naarSeinPplg = vbEindSein.getPPLG();\n naarSpoor += BewegingUtils.SPOOR_NAAR_VRIJEBAAN_POSTFIX;\n } else {\n const rijwegplan = this.editorService.getRijwegplan(newRitdeel.getPplg());\n const rijwegAndereRichting = rijwegplan.getRijweg(newRitdeel.getVisueelNaarPrlSpoor(), newRitdeel.getVanPrlSpoor());\n const startSeinInAndereRichting = rijwegAndereRichting.getBeginSein();\n naarSeinNaam = startSeinInAndereRichting.getName();\n naarSeinPplg = startSeinInAndereRichting.getPPLG();\n }\n } else {\n naarSeinNaam = eindSein.getName();\n naarSeinPplg = eindSein.getPPLG();\n }\n return BewegingUtils.vulBeweging(newRitdeel, naarSeinNaam, naarSeinPplg, naarSpoor);\n }\n\n private static vulBeweging(newRitdeel: Ritdeel, naarSeinNaam: string, naarSeinPplg: string, naarSpoor: string): Beweging {\n return {\n id: 0,\n ritId: 0,\n volgnummerBinnenRit: -1,\n vanSeinType: 'BED_SEIN',\n vanSeinNaam: newRitdeel.getRoute().getBeginSein().getName(),\n vanSeinPplg: newRitdeel.getRoute().getBeginSein().getPPLG(),\n naarSeinType: 'BED_SEIN',\n naarSeinNaam,\n naarSeinPplg,\n dwangNummer: BewegingUtils.toRouteFileDwangNummer(newRitdeel.getDwangNummer()),\n vanPplg: newRitdeel.getPplg(),\n vanSpoor: newRitdeel.getVanPrlSpoor(),\n naarPplg: newRitdeel.getPplg(),\n naarSpoor,\n ritActies: [],\n wijzigStatus: this.TOEGEVOEGD\n };\n }\n\n private static toRouteFileDwangNummer(dwangNummer: number): number {\n return (dwangNummer === 0) ? -1 : dwangNummer;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { SelectieInfo } from '@loxia/imx-viewer';\nimport { Store } from '@ngrx/store';\nimport { BehaviorSubject, combineLatest, Observable, Subscription } from 'rxjs';\nimport { AlgemeneRitDto } from '../../generated/openapi';\nimport { Ritdeel } from '../model/ritdeel';\nimport { Actie, Beweging, Rit } from '../optimo';\nimport { KeurAlleActiesGoed, SetAlgemeneRitInfo, ShowProgress } from '../state/actions/actions';\nimport { MstEditorState } from '../state/mst-editor-state';\nimport { BewegingUtils } from './beweging-utils.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ViewerControlService {\n private readonly subscriptions = new Subscription();\n\n private readonly valideRit$ = new BehaviorSubject(false);\n private readonly printing$ = new BehaviorSubject(false);\n\n private sideNavOpen = false;\n sideNavOpen$ = new BehaviorSubject(this.sideNavOpen);\n\n selectieInfos: SelectieInfo[];\n ritdelen: Ritdeel[];\n origineelTreinPad: Rit;\n\n constructor(private readonly store: Store<MstEditorState>,\n private readonly bewegingUtils: BewegingUtils) {\n this.subscriptions.add(combineLatest([\n store.select('ritSelectieIds'),\n store.select('actieOpRitSelectieIds'),\n store.select('ongeplandeActieSelectieIds'),\n store.select('gebrokenRitSelectieIds'),\n store.select('alternatievenSelectieIds'),\n store.select('beginSeinSelectieIds'),\n store.select('eindSeinSelectieIds')]\n ).subscribe(([rit, actieOpRitSelectieIds, ongeplandeActieSelectieIds, gebrokenrit, alternatieven, begin, eind]) => {\n const selectie = [];\n selectie.push(new SelectieInfo(rit, 'rit'));\n selectie.push(new SelectieInfo(actieOpRitSelectieIds, 'actieoprit'));\n selectie.push(new SelectieInfo(ongeplandeActieSelectieIds, 'ongeplandeActie'));\n selectie.push(new SelectieInfo(gebrokenrit, 'gebrokenrit'));\n selectie.push(new SelectieInfo(alternatieven, 'alternatieveRoute'));\n selectie.push(new SelectieInfo(begin, 'zigzagVan'));\n selectie.push(new SelectieInfo(eind, 'zigzagNaar'));\n this.selectieInfos = selectie;\n }\n ));\n\n this.subscriptions.add(store.select('ritDelen').subscribe(ritdelen => this.ritdelen = ritdelen));\n }\n\n toggleSideNavVisible(): void {\n this.sideNavOpen = !this.sideNavOpen;\n this.sideNavOpen$.next(this.sideNavOpen);\n }\n\n keurAlleActiesGoed(ongeplandeActies: Actie[]): void {\n if (this.ritdelen) {\n this.store.dispatch(ShowProgress());\n const bewegingen = this.bewegingUtils.extractBewegingenUitRitdelen(this.ritdelen, this.origineelTreinPad.bewegingen);\n const alleActies = this.verzamelAlleActies(this.ritdelen, ongeplandeActies);\n this.store.dispatch(KeurAlleActiesGoed(this.getBewegingenZonderActies(bewegingen), alleActies));\n }\n }\n\n setValideRit(valideRit: boolean): void {\n this.valideRit$.next(valideRit);\n }\n\n setPrinting(printing: boolean): void {\n this.printing$.next(printing);\n }\n\n private getBewegingenZonderActies(bewegingen: Beweging[]): Beweging[] {\n return bewegingen.map(beweging => {\n beweging.ritActies = [];\n return beweging;\n });\n }\n\n private verzamelAlleActies(ritDelen: Ritdeel[], ongeplandeActies: Actie[]): Actie[] {\n const retval = [];\n retval.push(...ongeplandeActies);\n retval.push(...ritDelen.filter(ritdeel => ritdeel.acties.length > 0).flatMap(ritdeel => ritdeel.acties));\n return retval;\n }\n\n setOrigineelTreinPad(treinpad: Rit): void {\n const rit = JSON.parse(JSON.stringify(treinpad));\n\n this.store.dispatch(SetAlgemeneRitInfo( {\n id: rit.id,\n jaarplanId: rit.jaarplanId,\n volgnummer: rit.volgnummer,\n machineTypeId: rit.machineTypeId,\n machineTypeOmschrijving: rit.machineTypeOmschrijving,\n ritDatum: rit.ritDatum,\n startDatum: rit.startDatum,\n eindDatum: rit.eindDatum,\n ritNaam: rit.ritNaam,\n startLocatie: rit.startLocatie,\n eindLocatie: rit.eindLocatie,\n ritStatus: rit.ritStatus,\n modified: rit.modified,\n modifiedBy: rit.modifiedBy,\n planJobId: rit.planJobId\n } as AlgemeneRitDto)\n );\n this.origineelTreinPad = rit;\n }\n\n isValideRit$(): Observable<boolean> {\n return this.valideRit$;\n }\n\n isPrinting$(): Observable<boolean> {\n return this.printing$;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { JsJavaUtil, sbblad } from '@loxia/rijwegen';\nimport { Store } from '@ngrx/store';\nimport { SetDebug } from '../state/actions/actions';\nimport { MstEditorState } from '../state/mst-editor-state';\nimport { SignaleringsBeeldManagerService } from './signalerings-beeld-manager.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DebugService {\n private readonly listener = this.debugEventListener();\n\n constructor(private store: Store<MstEditorState>,\n private sbmService: SignaleringsBeeldManagerService) {\n }\n\n setDebugFlag(debug: boolean): void {\n this.store.dispatch(SetDebug(debug));\n\n if (debug) {\n document.getElementById('svgContainer').addEventListener('mouseover', this.listener);\n } else {\n document.getElementById('svgContainer').removeEventListener('mouseover', this.listener);\n }\n }\n\n private debugEventListener(): (e: any) => void {\n return (event): void => {\n let elem = event.target;\n let id: string;\n let found = false;\n do {\n id = elem.id;\n if (id.startsWith('p')) {\n const tp = this.sbmService.getTopologyElementByPuic(id.substring(1));\n if (tp) {\n this.printKmInfo(tp);\n found = true;\n }\n }\n elem = elem.parentElement;\n } while (!found && elem);\n };\n }\n\n private printKmInfo(tp: sbblad.TopologyElement): void {\n const kms: sbblad.Kilometrering[] = JsJavaUtil.listToArray(tp.getKilometreringen());\n if (kms.length > 0) {\n let logline = 'Kminfo: ' + tp.getComponentName() + ', ';\n for (const km of kms) {\n logline += km.getKmLint() + ' ' + km.getKmWaarde() + ' ';\n }\n console.log(logline);\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { sbblad } from '@loxia/rijwegen';\nimport { Store } from '@ngrx/store';\nimport { Ritdeel } from '../model/ritdeel';\nimport { InfraModel } from '../optimo';\nimport * as MstActions from '../state/actions/actions';\nimport { ClearProgress, ShowProgress } from '../state/actions/actions';\nimport { navigeerVanaf, setZichtbaarheidAlleRitdelen, toggleZichtbaarheidVoorBewegingen } from '../state/actions/ritdelen.actions';\nimport { MstEditorState } from '../state/mst-editor-state';\nimport { SignaleringsBeeldManagerService } from './signalerings-beeld-manager.service';\nimport { ViewerControlService } from './viewer-control.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PrintBewegingService {\n private ritdelen: Ritdeel[];\n\n constructor(private store: Store<MstEditorState>,\n private viewerControlService: ViewerControlService,\n private sbmService: SignaleringsBeeldManagerService) {\n this.store.select(s => s.ritDelen).subscribe(ritdelen => this.ritdelen = ritdelen);\n }\n\n printBeweging(bewegingId: number, paginationSize: number, iaVersieInfo: InfraModel): Promise<boolean> {\n const gevondenRitdeel: Ritdeel[] = this.ritdelen.filter(r => parseInt(r.getBewegingId(), 10) === bewegingId);\n\n // hide/show de knoppen\n const printing = !!bewegingId && gevondenRitdeel.length === 1;\n this.viewerControlService.setPrinting(printing);\n\n if (!printing) {\n return Promise.reject(new Error('Geen beweging gevonden voor ' + bewegingId));\n }\n\n return new Promise<boolean>((resolve) => {\n const ritdeel = gevondenRitdeel[0];\n if (ritdeel.isNietBeschikbaar()) {\n this.store.dispatch(navigeerVanaf(paginationSize, iaVersieInfo, ritdeel));\n this.store.dispatch(ShowProgress());\n setTimeout(() => this.focusOpBeweging(ritdeel, resolve), 1000);\n } else {\n this.focusOpBeweging(ritdeel, resolve);\n }\n });\n }\n\n private focusOpBeweging(ritdeel: Ritdeel, resolve: Function): void {\n // deselecteer alles\n this.store.dispatch(setZichtbaarheidAlleRitdelen(false));\n // enable ritacties (checkbox) voor alle ritdelen met beweging die matched met bewegingId(s)\n this.store.dispatch(toggleZichtbaarheidVoorBewegingen([parseInt(ritdeel.getBewegingId(), 10)]));\n setTimeout(() => {\n\n // dit neemt niet de vrijebaan elementen mee\n const topoElementen = this.sbmService.bepaalRouteElementen(ritdeel.getRoute());\n const dwangPuics = this.getPuics(topoElementen);\n this.store.dispatch(MstActions.focusOpIds(dwangPuics));\n\n setTimeout(() => {\n // resolve de promise, om aan te geven dat focus klaar is\n resolve(true);\n this.viewerControlService.setPrinting(false);\n this.store.dispatch(ClearProgress());\n }, 1000);\n });\n }\n\n private getPuics(topoElementen: sbblad.HasIdentifier[]): string[] {\n return topoElementen.map(e => e.getPuic());\n }\n\n}\n","import { AfterViewInit, Component, ElementRef, Input, ViewChild } from '@angular/core';\n\n@Component({\n selector: 'rpe-component',\n templateUrl: './rpe.component.html',\n standalone: false\n})\nexport class RpeComponent implements AfterViewInit {\n @Input() baseurl: string;\n @Input() path: string;\n\n @ViewChild('rpescript') script: ElementRef;\n\n convertToScript(): void {\n const element = this.script.nativeElement;\n const script = document.createElement('script');\n script.type = 'text/javascript';\n if (this.baseurl && this.path) {\n script.src = this.baseurl + this.path;\n // eslint-disable-next-line no-console\n console.log('Code geladen van: ' + script.src); //useful for debugging in GWT environment\n }\n const parent = element.parentElement;\n parent.parentElement.replaceChild(script, parent);\n }\n\n ngAfterViewInit(): void {\n this.convertToScript();\n }\n}\n","<div #rpescript style.display=\"none\">\n <ng-content></ng-content>\n</div>\n","import { Actie } from '../optimo';\n\nexport class OngeplandeActie {\n constructor(public actie: Actie,\n public puics: string[]) {\n }\n\n}\n","import { JsJavaUtil, sbblad } from '@loxia/rijwegen';\nimport Kilometrering = sbblad.Kilometrering;\nimport TopologyElement = sbblad.TopologyElement;\n\nexport class KmRange {\n private constructor(public topologyElement: TopologyElement,\n public vanKilometreringen: Kilometrering[],\n public totKilometreringen: Kilometrering[]) {\n }\n\n public static rangeVoorPuntObject(topologyElement: TopologyElement): KmRange {\n return new KmRange(topologyElement,\n JsJavaUtil.listToArray(topologyElement.getKilometreringen()),\n JsJavaUtil.listToArray(topologyElement.getKilometreringen()));\n }\n\n public static rangeVoorStrekObject(topologyElement: TopologyElement,\n vanKilometreringen: Kilometrering[],\n totKilometreringen: Kilometrering[]): KmRange {\n return new KmRange(topologyElement, vanKilometreringen, totKilometreringen);\n }\n\n public static getKilometrering(lintNaam: string, kilometreringen: Kilometrering[]): Kilometrering {\n const result: Kilometrering[] = kilometreringen.filter(kilometrering => kilometrering.getKmLint() === lintNaam);\n if (result.length >= 1) {\n return result[0];\n }\n return null;\n }\n\n heeftOverlap(kilometrering1: Kilometrering, kilometrering2: Kilometrering): boolean {\n const vanKilometrering = KmRange.getKilometrering(kilometrering1.getKmLint(), this.vanKilometreringen);\n const totKilometrering = KmRange.getKilometrering(kilometrering2.getKmLint(), this.totKilometreringen);\n if (!vanKilometrering || !totKilometrering) {\n return false;\n }\n\n let startKmWaarde = vanKilometrering.getKmWaarde();\n let endKmWaarde = totKilometrering.getKmWaarde();\n if (startKmWaarde > endKmWaarde) {\n const temp = { end: endKmWaarde, start: startKmWaarde };\n startKmWaarde = temp.end;\n endKmWaarde = temp.start;\n }\n\n const actieStartKmWaarde = kilometrering1.getKmWaarde();\n const actieEndKmWaarde = kilometrering2.getKmWaarde();\n return endKmWaarde >= actieStartKmWaarde && actieEndKmWaarde >= startKmWaarde;\n }\n}\n","export class WisselKantCode {\n constructor(public naam: string, public kantCode: string) {\n }\n}\n","export class MeldingEvent {\n constructor(public meldingMessage: string, public meldingLevel: string) {\n }\n}\n","import { MeldingEvent } from '../model/melding-event';\n\nexport const MELDING_LEVEL_ERROR = 'error';\nexport const MELDING_LEVEL_WARNING = 'warn';\nexport const MELDING_LEVEL_INFO = 'info';\n\nexport class MeldingBuilder {\n\n public static nietGevondenTakkenOngeplandeActies(nietGevondenTakken: string[]): MeldingEvent {\n return new MeldingEvent('Niet gevonden takken uit \\'OngeplandeActies\\': ' + nietGevondenTakken, MELDING_LEVEL_INFO);\n }\n\n public static actieHighlightError(actieZonderElementen: number[]): MeldingEvent {\n return new MeldingEvent('Highlight error. Geen elementen kunnen vinden voor actie(s) met id: ' + actieZonderElementen,\n MELDING_LEVEL_ERROR);\n }\n}\n","import { Message, Severity } from '../atomic-components/message/';\nimport { Beweging } from '../optimo';\nimport Utils from './utils';\n\nexport class MessageBuilder {\n public static rwpDataNietGevonden(err: string): Message {\n return new Message(Severity.ERROR, 'Error bij ophalen van rijwegplan data: ' + err);\n }\n\n public static rijwegNietGevonden(beweging: Beweging): Message {\n return new Message(Severity.ERROR, `Rijweg van ${ beweging.vanSpoor } in PPLG ${ beweging.vanPplg } naar ${ beweging.naarSpoor } niet gevonden`);\n }\n\n public static rijwegplanNietGevonden(beweging: Beweging): Message {\n return new Message(Severity.ERROR, `Rijwegplan van PPLG ${ beweging.vanPplg } niet gevonden`);\n }\n\n public static dwangNietGevonden(beweging: Beweging): Message {\n return new Message(Severity.ERROR, `Dwang ${ beweging.dwangNummer } voor rijweg van ${ beweging.vanSpoor } in PPLG ${ beweging.vanPplg } naar ${ beweging.naarSpoor } niet gevonden`);\n }\n\n public static nietGevondenSBI(err: string): Message {\n return new Message(Severity.ERROR, 'Error bij het ophalen van signaleringsbeeldinfo: ' + Utils.getValidErorrMessage(err));\n }\n\n public static actieHighlightError(actieZonderElementen: number[]): Message {\n return new Message(Severity.ERROR, 'Highlight error. Geen elementen kunnen vinden voor actie(s) met id: ' + actieZonderElementen);\n }\n\n public static ritFileAlGewijzigdError(beweging: Beweging): Message {\n return new Message(Severity.ERROR, 'Rit bevat een beweging met status \\'Gewijzigd\\': Beweging met ID:' + beweging.id);\n }\n\n public static meerDan12BladenGevonden(bladAmount: number): Message {\n return new Message(Severity.WARNING, 'Warning, Rit bevat ' + bladAmount + ' bladen. Er worden maximaal 12 bladen ondersteund.');\n }\n\n public static nietGevondenTakkenOngeplandeActies(nietGevondenTakken: string[]): Message {\n return new Message(Severity.INFORMATION, 'Info, Niet gevonden takken uit \\'OngeplandeActies\\': ' + nietGevondenTakken);\n }\n}\n\n","import { HttpParameterCodec } from '@angular/common/http';\n\n/**\n * Custom HttpParameterCodec\n * Workaround for https://github.com/angular/angular/issues/18261\n */\nexport class CustomHttpParameterCodec implements HttpParameterCodec {\n encodeKey(k: string): string {\n return encodeURIComponent(k);\n }\n encodeValue(v: string): string {\n return encodeURIComponent(v);\n }\n decodeKey(k: string): string {\n return decodeURIComponent(k);\n }\n decodeValue(v: string): string {\n return decodeURIComponent(v);\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport const BASE_PATH = new InjectionToken<string>('basePath');\nexport const COLLECTION_FORMATS = {\n 'csv': ',',\n 'tsv': ' ',\n 'ssv': ' ',\n 'pipes': '|'\n}\n","import { HttpParameterCodec } from '@angular/common/http';\nimport { Param } from './param';\n\nexport interface ConfigurationParameters {\n /**\n * @deprecated Since 5.0. Use credentials instead\n */\n apiKeys?: {[ key: string ]: string};\n username?: string;\n password?: string;\n /**\n * @deprecated Since 5.0. Use credentials instead\n */\n accessToken?: string | (() => string);\n basePath?: string;\n withCredentials?: boolean;\n /**\n * Takes care of encoding query- and form-parameters.\n */\n encoder?: HttpParameterCodec;\n /**\n * Override the default method for encoding path parameters in various\n * <a href=\"https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#style-values\">styles</a>.\n * <p>\n * See {@link README.md} for more details\n * </p>\n */\n encodeParam?: (param: Param) => string;\n /**\n * The keys are the names in the securitySchemes section of the OpenAPI\n * document. They should map to the value used for authentication\n * minus any standard prefixes such as 'Basic' or 'Bearer'.\n */\n credentials?: {[ key: string ]: string | (() => string | undefined)};\n}\n\nexport class Configuration {\n /**\n * @deprecated Since 5.0. Use credentials instead\n */\n apiKeys?: {[ key: string ]: string};\n username?: string;\n password?: string;\n /**\n * @deprecated Since 5.0. Use credentials instead\n */\n accessToken?: string | (() => string);\n basePath?: string;\n withCredentials?: boolean;\n /**\n * Takes care of encoding query- and form-parameters.\n */\n encoder?: HttpParameterCodec;\n /**\n * Encoding of various path parameter\n * <a href=\"https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#style-values\">styles</a>.\n * <p>\n * See {@link README.md} for more details\n * </p>\n */\n encodeParam: (param: Param) => string;\n /**\n * The keys are the names in the securitySchemes section of the OpenAPI\n * document. They should map to the value used for authentication\n * minus any standard prefixes such as 'Basic' or 'Bearer'.\n */\n credentials: {[ key: string ]: string | (() => string | undefined)};\n\n constructor(configurationParameters: ConfigurationParameters = {}) {\n this.apiKeys = configurationParameters.apiKeys;\n this.username = configurationParameters.username;\n this.password = configurationParameters.password;\n this.accessToken = configurationParameters.accessToken;\n this.basePath = configurationParameters.basePath;\n this.withCredentials = configurationParameters.withCredentials;\n this.encoder = configurationParameters.encoder;\n if (configurationParameters.encodeParam) {\n this.encodeParam = configurationParameters.encodeParam;\n }\n else {\n this.encodeParam = param => this.defaultEncodeParam(param);\n }\n if (configurationParameters.credentials) {\n this.credentials = configurationParameters.credentials;\n }\n else {\n this.credentials = {};\n }\n\n // init default keycloak_auth credential\n if (!this.credentials['keycloak_auth']) {\n this.credentials['keycloak_auth'] = () => {\n return typeof this.accessToken === 'function'\n ? this.accessToken()\n : this.accessToken;\n };\n }\n }\n\n /**\n * Select the correct content-type to use for a request.\n * Uses {@link Configuration#isJsonMime} to determine the correct content-type.\n * If no content type is found return the first found type if the contentTypes is not empty\n * @param contentTypes - the array of content types that are available for selection\n * @returns the selected content-type or <code>undefined</code> if no selection could be made.\n */\n public selectHeaderContentType (contentTypes: string[]): string | undefined {\n if (contentTypes.length === 0) {\n return undefined;\n }\n\n const type = contentTypes.find((x: string) => this.isJsonMime(x));\n if (type === undefined) {\n return contentTypes[0];\n }\n return type;\n }\n\n /**\n * Select the correct accept content-type to use for a request.\n * Uses {@link Configuration#isJsonMime} to determine the correct accept content-type.\n * If no content type is found return the first found type if the contentTypes is not empty\n * @param accepts - the array of content types that are available for selection.\n * @returns the selected content-type or <code>undefined</code> if no selection could be made.\n */\n public selectHeaderAccept(accepts: string[]): string | undefined {\n if (accepts.length === 0) {\n return undefined;\n }\n\n const type = accepts.find((x: string) => this.isJsonMime(x));\n if (type === undefined) {\n return accepts[0];\n }\n return type;\n }\n\n /**\n * Check if the given MIME is a JSON MIME.\n * JSON MIME examples:\n * application/json\n * application/json; charset=UTF8\n * APPLICATION/JSON\n * application/vnd.company+json\n * @param mime - MIME (Multipurpose Internet Mail Extensions)\n * @return True if the given MIME is JSON, false otherwise.\n */\n public isJsonMime(mime: string): boolean {\n const jsonMime: RegExp = new RegExp('^(application\\/json|[^;/ \\t]+\\/[^;/ \\t]+[+]json)[ \\t]*(;.*)?$', 'i');\n return mime !== null && (jsonMime.test(mime) || mime.toLowerCase() === 'application/json-patch+json');\n }\n\n public lookupCredential(key: string): string | undefined {\n const value = this.credentials[key];\n return typeof value === 'function'\n ? value()\n : value;\n }\n\n private defaultEncodeParam(param: Param): string {\n // This implementation exists as fallback for missing configuration\n // and for backwards compatibility to older typescript-angular generator versions.\n // It only works for the 'simple' parameter style.\n // Date-handling only works for the 'date-time' format.\n // All other styles and Date-formats are probably handled incorrectly.\n //\n // But: if that's all you need (i.e.: the most common use-case): no need for customization!\n\n const value = param.dataFormat === 'date-time' && param.value instanceof Date\n ? (param.value as Date).toISOString()\n : param.value;\n\n return encodeURIComponent(String(value));\n }\n}\n","/**\n * MST\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec, HttpContext \n } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\n// @ts-ignore\nimport { FrontendProperties } from '../model/frontendProperties';\n\n// @ts-ignore\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\nimport {\n AppConfigControllerServiceInterface\n} from './appConfigController.serviceInterface';\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AppConfigControllerService implements AppConfigControllerServiceInterface {\n\n protected basePath = 'http://localhost:8080/mst';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string|string[], @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (Array.isArray(basePath) && basePath.length > 0) {\n basePath = basePath[0];\n }\n\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n // @ts-ignore\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key, (value as Date).toISOString().substring(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * Geeft configuratie voor frontend\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getAppConfig(observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext, transferCache?: boolean}): Observable<FrontendProperties>;\n public getAppConfig(observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<FrontendProperties>>;\n public getAppConfig(observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<FrontendProperties>>;\n public getAppConfig(observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n\n let localVarHeaders = this.defaultHeaders;\n\n let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (localVarHttpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (localVarHttpHeaderAcceptSelected !== undefined) {\n localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n }\n\n let localVarHttpContext: HttpContext | undefined = options && options.context;\n if (localVarHttpContext === undefined) {\n localVarHttpContext = new HttpContext();\n }\n\n let localVarTransferCache: boolean | undefined = options && options.transferCache;\n if (localVarTransferCache === undefined) {\n localVarTransferCache = true;\n }\n\n\n let responseType_: 'text' | 'json' | 'blob' = 'json';\n if (localVarHttpHeaderAcceptSelected) {\n if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n responseType_ = 'text';\n } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n responseType_ = 'json';\n } else {\n responseType_ = 'blob';\n }\n }\n\n let localVarPath = `/rest/appconfig`;\n return this.httpClient.request<FrontendProperties>('get', `${this.configuration.basePath}${localVarPath}`,\n {\n context: localVarHttpContext,\n responseType: <any>responseType_,\n withCredentials: this.configuration.withCredentials,\n headers: localVarHeaders,\n observe: observe,\n transferCache: localVarTransferCache,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * MST\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec, HttpContext \n } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\n// @ts-ignore\nimport { BewegingDto } from '../model/bewegingDto';\n// @ts-ignore\nimport { RitRequestDto } from '../model/ritRequestDto';\n\n// @ts-ignore\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\nimport {\n BewegingControllerServiceInterface\n} from './bewegingController.serviceInterface';\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BewegingControllerService implements BewegingControllerServiceInterface {\n\n protected basePath = 'http://localhost:8080/mst';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string|string[], @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (Array.isArray(basePath) && basePath.length > 0) {\n basePath = basePath[0];\n }\n\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n // @ts-ignore\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key, (value as Date).toISOString().substring(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param iaVersie \n * @param ritRequestDto \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public verrijkBewegingenMetOngeplandeActies(iaVersie: string, ritRequestDto: RitRequestDto, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext, transferCache?: boolean}): Observable<Array<BewegingDto>>;\n public verrijkBewegingenMetOngeplandeActies(iaVersie: string, ritRequestDto: RitRequestDto, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<Array<BewegingDto>>>;\n public verrijkBewegingenMetOngeplandeActies(iaVersie: string, ritRequestDto: RitRequestDto, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<Array<BewegingDto>>>;\n public verrijkBewegingenMetOngeplandeActies(iaVersie: string, ritRequestDto: RitRequestDto, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n if (iaVersie === null || iaVersie === undefined) {\n throw new Error('Required parameter iaVersie was null or undefined when calling verrijkBewegingenMetOngeplandeActies.');\n }\n if (ritRequestDto === null || ritRequestDto === undefined) {\n throw new Error('Required parameter ritRequestDto was null or undefined when calling verrijkBewegingenMetOngeplandeActies.');\n }\n\n let localVarHeaders = this.defaultHeaders;\n\n let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (localVarHttpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (localVarHttpHeaderAcceptSelected !== undefined) {\n localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n }\n\n let localVarHttpContext: HttpContext | undefined = options && options.context;\n if (localVarHttpContext === undefined) {\n localVarHttpContext = new HttpContext();\n }\n\n let localVarTransferCache: boolean | undefined = options && options.transferCache;\n if (localVarTransferCache === undefined) {\n localVarTransferCache = true;\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType_: 'text' | 'json' | 'blob' = 'json';\n if (localVarHttpHeaderAcceptSelected) {\n if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n responseType_ = 'text';\n } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n responseType_ = 'json';\n } else {\n responseType_ = 'blob';\n }\n }\n\n let localVarPath = `/rest/beweging/${this.configuration.encodeParam({name: \"iaVersie\", value: iaVersie, in: \"path\", style: \"simple\", explode: false, dataType: \"string\", dataFormat: undefined})}`;\n return this.httpClient.request<Array<BewegingDto>>('put', `${this.configuration.basePath}${localVarPath}`,\n {\n context: localVarHttpContext,\n body: ritRequestDto,\n responseType: <any>responseType_,\n withCredentials: this.configuration.withCredentials,\n headers: localVarHeaders,\n observe: observe,\n transferCache: localVarTransferCache,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * MST\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec, HttpContext \n } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\n\n// @ts-ignore\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\nimport {\n Class0BuildPropertiesServiceInterface\n} from './class0BuildProperties.serviceInterface';\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class Class0BuildPropertiesService implements Class0BuildPropertiesServiceInterface {\n\n protected basePath = 'http://localhost:8080/mst';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string|string[], @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (Array.isArray(basePath) && basePath.length > 0) {\n basePath = basePath[0];\n }\n\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n // @ts-ignore\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key, (value as Date).toISOString().substring(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getBuildProperties(observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<string>;\n public getBuildProperties(observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<string>>;\n public getBuildProperties(observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<string>>;\n public getBuildProperties(observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n\n let localVarHeaders = this.defaultHeaders;\n\n let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (localVarHttpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (localVarHttpHeaderAcceptSelected !== undefined) {\n localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n }\n\n let localVarHttpContext: HttpContext | undefined = options && options.context;\n if (localVarHttpContext === undefined) {\n localVarHttpContext = new HttpContext();\n }\n\n let localVarTransferCache: boolean | undefined = options && options.transferCache;\n if (localVarTransferCache === undefined) {\n localVarTransferCache = true;\n }\n\n\n let responseType_: 'text' | 'json' | 'blob' = 'json';\n if (localVarHttpHeaderAcceptSelected) {\n if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n responseType_ = 'text';\n } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n responseType_ = 'json';\n } else {\n responseType_ = 'blob';\n }\n }\n\n let localVarPath = `/build.properties`;\n return this.httpClient.request<string>('get', `${this.configuration.basePath}${localVarPath}`,\n {\n context: localVarHttpContext,\n responseType: <any>responseType_,\n withCredentials: this.configuration.withCredentials,\n headers: localVarHeaders,\n observe: observe,\n transferCache: localVarTransferCache,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * MST\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec, HttpContext \n } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\n\n// @ts-ignore\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\nimport {\n ConnectorControllerServiceInterface\n} from './connectorController.serviceInterface';\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ConnectorControllerService implements ConnectorControllerServiceInterface {\n\n protected basePath = 'http://localhost:8080/mst';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string|string[], @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (Array.isArray(basePath) && basePath.length > 0) {\n basePath = basePath[0];\n }\n\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n // @ts-ignore\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key, (value as Date).toISOString().substring(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param iaVersie \n * @param connectorPuic \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getOtherConnector(iaVersie: string, connectorPuic: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext, transferCache?: boolean}): Observable<string>;\n public getOtherConnector(iaVersie: string, connectorPuic: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<string>>;\n public getOtherConnector(iaVersie: string, connectorPuic: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<string>>;\n public getOtherConnector(iaVersie: string, connectorPuic: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n if (iaVersie === null || iaVersie === undefined) {\n throw new Error('Required parameter iaVersie was null or undefined when calling getOtherConnector.');\n }\n if (connectorPuic === null || connectorPuic === undefined) {\n throw new Error('Required parameter connectorPuic was null or undefined when calling getOtherConnector.');\n }\n\n let localVarHeaders = this.defaultHeaders;\n\n let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (localVarHttpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (localVarHttpHeaderAcceptSelected !== undefined) {\n localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n }\n\n let localVarHttpContext: HttpContext | undefined = options && options.context;\n if (localVarHttpContext === undefined) {\n localVarHttpContext = new HttpContext();\n }\n\n let localVarTransferCache: boolean | undefined = options && options.transferCache;\n if (localVarTransferCache === undefined) {\n localVarTransferCache = true;\n }\n\n\n let responseType_: 'text' | 'json' | 'blob' = 'json';\n if (localVarHttpHeaderAcceptSelected) {\n if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n responseType_ = 'text';\n } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n responseType_ = 'json';\n } else {\n responseType_ = 'blob';\n }\n }\n\n 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})}`;\n return this.httpClient.request<string>('get', `${this.configuration.basePath}${localVarPath}`,\n {\n context: localVarHttpContext,\n responseType: <any>responseType_,\n withCredentials: this.configuration.withCredentials,\n headers: localVarHeaders,\n observe: observe,\n transferCache: localVarTransferCache,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * MST\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec, HttpContext \n } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\n// @ts-ignore\nimport { LogDto } from '../model/logDto';\n\n// @ts-ignore\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\nimport {\n LogControllerServiceInterface\n} from './logController.serviceInterface';\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LogControllerService implements LogControllerServiceInterface {\n\n protected basePath = 'http://localhost:8080/mst';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string|string[], @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (Array.isArray(basePath) && basePath.length > 0) {\n basePath = basePath[0];\n }\n\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n // @ts-ignore\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key, (value as Date).toISOString().substring(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param logDto \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public log(logDto: Array<LogDto>, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined, context?: HttpContext, transferCache?: boolean}): Observable<any>;\n public log(logDto: Array<LogDto>, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined, context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<any>>;\n public log(logDto: Array<LogDto>, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined, context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<any>>;\n public log(logDto: Array<LogDto>, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: undefined, context?: HttpContext, transferCache?: boolean}): Observable<any> {\n if (logDto === null || logDto === undefined) {\n throw new Error('Required parameter logDto was null or undefined when calling log.');\n }\n\n let localVarHeaders = this.defaultHeaders;\n\n let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (localVarHttpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n ];\n localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (localVarHttpHeaderAcceptSelected !== undefined) {\n localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n }\n\n let localVarHttpContext: HttpContext | undefined = options && options.context;\n if (localVarHttpContext === undefined) {\n localVarHttpContext = new HttpContext();\n }\n\n let localVarTransferCache: boolean | undefined = options && options.transferCache;\n if (localVarTransferCache === undefined) {\n localVarTransferCache = true;\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType_: 'text' | 'json' | 'blob' = 'json';\n if (localVarHttpHeaderAcceptSelected) {\n if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n responseType_ = 'text';\n } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n responseType_ = 'json';\n } else {\n responseType_ = 'blob';\n }\n }\n\n let localVarPath = `/rest/logging/`;\n return this.httpClient.request<any>('post', `${this.configuration.basePath}${localVarPath}`,\n {\n context: localVarHttpContext,\n body: logDto,\n responseType: <any>responseType_,\n withCredentials: this.configuration.withCredentials,\n headers: localVarHeaders,\n observe: observe,\n transferCache: localVarTransferCache,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * MST\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec, HttpContext \n } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\n\n// @ts-ignore\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\nimport {\n P21ControllerServiceInterface\n} from './p21Controller.serviceInterface';\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class P21ControllerService implements P21ControllerServiceInterface {\n\n protected basePath = 'http://localhost:8080/mst';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string|string[], @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (Array.isArray(basePath) && basePath.length > 0) {\n basePath = basePath[0];\n }\n\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n /**\n * @param consumes string[] mime-types\n * @return true: consumes contains 'multipart/form-data', false: otherwise\n */\n private canConsumeForm(consumes: string[]): boolean {\n const form = 'multipart/form-data';\n for (const consume of consumes) {\n if (form === consume) {\n return true;\n }\n }\n return false;\n }\n\n // @ts-ignore\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key, (value as Date).toISOString().substring(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param p21Levering \n * @param update \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public createP21Levering(p21Levering: Blob, update?: boolean, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext, transferCache?: boolean}): Observable<string>;\n public createP21Levering(p21Levering: Blob, update?: boolean, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<string>>;\n public createP21Levering(p21Levering: Blob, update?: boolean, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<string>>;\n public createP21Levering(p21Levering: Blob, update?: boolean, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n if (p21Levering === null || p21Levering === undefined) {\n throw new Error('Required parameter p21Levering was null or undefined when calling createP21Levering.');\n }\n\n let localVarHeaders = this.defaultHeaders;\n\n let localVarCredential: string | undefined;\n // authentication (keycloak_auth) required\n localVarCredential = this.configuration.lookupCredential('keycloak_auth');\n if (localVarCredential) {\n localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n }\n\n let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (localVarHttpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (localVarHttpHeaderAcceptSelected !== undefined) {\n localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n }\n\n let localVarHttpContext: HttpContext | undefined = options && options.context;\n if (localVarHttpContext === undefined) {\n localVarHttpContext = new HttpContext();\n }\n\n let localVarTransferCache: boolean | undefined = options && options.transferCache;\n if (localVarTransferCache === undefined) {\n localVarTransferCache = true;\n }\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'multipart/form-data'\n ];\n\n const canConsumeForm = this.canConsumeForm(consumes);\n\n let localVarFormParams: { append(param: string, value: any): any; };\n let localVarUseForm = false;\n let localVarConvertFormParamsToString = false;\n // use FormData to transmit files using content-type \"multipart/form-data\"\n // see https://stackoverflow.com/questions/4007969/application-x-www-form-urlencoded-or-multipart-form-data\n localVarUseForm = canConsumeForm;\n if (localVarUseForm) {\n localVarFormParams = new FormData();\n } else {\n localVarFormParams = new HttpParams({encoder: this.encoder});\n }\n\n if (update !== undefined) {\n localVarFormParams = localVarFormParams.append('update', <any>update) as any || localVarFormParams;\n }\n if (p21Levering !== undefined) {\n localVarFormParams = localVarFormParams.append('p21Levering', <any>p21Levering) as any || localVarFormParams;\n }\n\n let responseType_: 'text' | 'json' | 'blob' = 'json';\n if (localVarHttpHeaderAcceptSelected) {\n if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n responseType_ = 'text';\n } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n responseType_ = 'json';\n } else {\n responseType_ = 'blob';\n }\n }\n\n let localVarPath = `/services/secure/rest/backend/uploadversie`;\n return this.httpClient.request<string>('post', `${this.configuration.basePath}${localVarPath}`,\n {\n context: localVarHttpContext,\n body: localVarConvertFormParamsToString ? localVarFormParams.toString() : localVarFormParams,\n responseType: <any>responseType_,\n withCredentials: this.configuration.withCredentials,\n headers: localVarHeaders,\n observe: observe,\n transferCache: localVarTransferCache,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getVersies(observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<Array<string>>;\n public getVersies(observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<Array<string>>>;\n public getVersies(observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<Array<string>>>;\n public getVersies(observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: 'application/json', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n\n let localVarHeaders = this.defaultHeaders;\n\n let localVarCredential: string | undefined;\n // authentication (keycloak_auth) required\n localVarCredential = this.configuration.lookupCredential('keycloak_auth');\n if (localVarCredential) {\n localVarHeaders = localVarHeaders.set('Authorization', 'Bearer ' + localVarCredential);\n }\n\n let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (localVarHttpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n 'application/json'\n ];\n localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (localVarHttpHeaderAcceptSelected !== undefined) {\n localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n }\n\n let localVarHttpContext: HttpContext | undefined = options && options.context;\n if (localVarHttpContext === undefined) {\n localVarHttpContext = new HttpContext();\n }\n\n let localVarTransferCache: boolean | undefined = options && options.transferCache;\n if (localVarTransferCache === undefined) {\n localVarTransferCache = true;\n }\n\n\n let responseType_: 'text' | 'json' | 'blob' = 'json';\n if (localVarHttpHeaderAcceptSelected) {\n if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n responseType_ = 'text';\n } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n responseType_ = 'json';\n } else {\n responseType_ = 'blob';\n }\n }\n\n let localVarPath = `/services/secure/rest/backend/versies`;\n return this.httpClient.request<Array<string>>('get', `${this.configuration.basePath}${localVarPath}`,\n {\n context: localVarHttpContext,\n responseType: <any>responseType_,\n withCredentials: this.configuration.withCredentials,\n headers: localVarHeaders,\n observe: observe,\n transferCache: localVarTransferCache,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","/**\n * MST\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n/* tslint:disable:no-unused-variable member-ordering */\n\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams,\n HttpResponse, HttpEvent, HttpParameterCodec, HttpContext \n } from '@angular/common/http';\nimport { CustomHttpParameterCodec } from '../encoder';\nimport { Observable } from 'rxjs';\n\n// @ts-ignore\nimport { SignaleringsbeeldDto } from '../model/signaleringsbeeldDto';\n// @ts-ignore\nimport { SignaleringsbeeldRequestDto } from '../model/signaleringsbeeldRequestDto';\n\n// @ts-ignore\nimport { BASE_PATH, COLLECTION_FORMATS } from '../variables';\nimport { Configuration } from '../configuration';\nimport {\n SbControllerServiceInterface\n} from './sbController.serviceInterface';\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SbControllerService implements SbControllerServiceInterface {\n\n protected basePath = 'http://localhost:8080/mst';\n public defaultHeaders = new HttpHeaders();\n public configuration = new Configuration();\n public encoder: HttpParameterCodec;\n\n constructor(protected httpClient: HttpClient, @Optional()@Inject(BASE_PATH) basePath: string|string[], @Optional() configuration: Configuration) {\n if (configuration) {\n this.configuration = configuration;\n }\n if (typeof this.configuration.basePath !== 'string') {\n if (Array.isArray(basePath) && basePath.length > 0) {\n basePath = basePath[0];\n }\n\n if (typeof basePath !== 'string') {\n basePath = this.basePath;\n }\n this.configuration.basePath = basePath;\n }\n this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();\n }\n\n\n // @ts-ignore\n private addToHttpParams(httpParams: HttpParams, value: any, key?: string): HttpParams {\n if (typeof value === \"object\" && value instanceof Date === false) {\n httpParams = this.addToHttpParamsRecursive(httpParams, value);\n } else {\n httpParams = this.addToHttpParamsRecursive(httpParams, value, key);\n }\n return httpParams;\n }\n\n private addToHttpParamsRecursive(httpParams: HttpParams, value?: any, key?: string): HttpParams {\n if (value == null) {\n return httpParams;\n }\n\n if (typeof value === \"object\") {\n if (Array.isArray(value)) {\n (value as any[]).forEach( elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));\n } else if (value instanceof Date) {\n if (key != null) {\n httpParams = httpParams.append(key, (value as Date).toISOString().substring(0, 10));\n } else {\n throw Error(\"key may not be null if value is Date\");\n }\n } else {\n Object.keys(value).forEach( k => httpParams = this.addToHttpParamsRecursive(\n httpParams, value[k], key != null ? `${key}.${k}` : k));\n }\n } else if (key != null) {\n httpParams = httpParams.append(key, value);\n } else {\n throw Error(\"key may not be null if value is not object or array\");\n }\n return httpParams;\n }\n\n /**\n * @param signaleringsbeeldRequestDto \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public getSignaleringsbeelden(signaleringsbeeldRequestDto: SignaleringsbeeldRequestDto, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext, transferCache?: boolean}): Observable<Array<SignaleringsbeeldDto>>;\n public getSignaleringsbeelden(signaleringsbeeldRequestDto: SignaleringsbeeldRequestDto, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<Array<SignaleringsbeeldDto>>>;\n public getSignaleringsbeelden(signaleringsbeeldRequestDto: SignaleringsbeeldRequestDto, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: '*/*', context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<Array<SignaleringsbeeldDto>>>;\n public getSignaleringsbeelden(signaleringsbeeldRequestDto: SignaleringsbeeldRequestDto, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: '*/*', context?: HttpContext, transferCache?: boolean}): Observable<any> {\n if (signaleringsbeeldRequestDto === null || signaleringsbeeldRequestDto === undefined) {\n throw new Error('Required parameter signaleringsbeeldRequestDto was null or undefined when calling getSignaleringsbeelden.');\n }\n\n let localVarHeaders = this.defaultHeaders;\n\n let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (localVarHttpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n '*/*'\n ];\n localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (localVarHttpHeaderAcceptSelected !== undefined) {\n localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n }\n\n let localVarHttpContext: HttpContext | undefined = options && options.context;\n if (localVarHttpContext === undefined) {\n localVarHttpContext = new HttpContext();\n }\n\n let localVarTransferCache: boolean | undefined = options && options.transferCache;\n if (localVarTransferCache === undefined) {\n localVarTransferCache = true;\n }\n\n\n // to determine the Content-Type header\n const consumes: string[] = [\n 'application/json'\n ];\n const httpContentTypeSelected: string | undefined = this.configuration.selectHeaderContentType(consumes);\n if (httpContentTypeSelected !== undefined) {\n localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);\n }\n\n let responseType_: 'text' | 'json' | 'blob' = 'json';\n if (localVarHttpHeaderAcceptSelected) {\n if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n responseType_ = 'text';\n } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n responseType_ = 'json';\n } else {\n responseType_ = 'blob';\n }\n }\n\n let localVarPath = `/rest/signaleringsbeeldeninfo`;\n return this.httpClient.request<Array<SignaleringsbeeldDto>>('post', `${this.configuration.basePath}${localVarPath}`,\n {\n context: localVarHttpContext,\n body: signaleringsbeeldRequestDto,\n responseType: <any>responseType_,\n withCredentials: this.configuration.withCredentials,\n headers: localVarHeaders,\n observe: observe,\n transferCache: localVarTransferCache,\n reportProgress: reportProgress\n }\n );\n }\n\n /**\n * Check of IA versie bestaat\n * @param versie \n * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.\n * @param reportProgress flag to report request and response progress.\n */\n public valideerIaVersie(versie: string, observe?: 'body', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined, context?: HttpContext, transferCache?: boolean}): Observable<any>;\n public valideerIaVersie(versie: string, observe?: 'response', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined, context?: HttpContext, transferCache?: boolean}): Observable<HttpResponse<any>>;\n public valideerIaVersie(versie: string, observe?: 'events', reportProgress?: boolean, options?: {httpHeaderAccept?: undefined, context?: HttpContext, transferCache?: boolean}): Observable<HttpEvent<any>>;\n public valideerIaVersie(versie: string, observe: any = 'body', reportProgress: boolean = false, options?: {httpHeaderAccept?: undefined, context?: HttpContext, transferCache?: boolean}): Observable<any> {\n if (versie === null || versie === undefined) {\n throw new Error('Required parameter versie was null or undefined when calling valideerIaVersie.');\n }\n\n let localVarQueryParameters = new HttpParams({encoder: this.encoder});\n if (versie !== undefined && versie !== null) {\n localVarQueryParameters = this.addToHttpParams(localVarQueryParameters,\n <any>versie, 'versie');\n }\n\n let localVarHeaders = this.defaultHeaders;\n\n let localVarHttpHeaderAcceptSelected: string | undefined = options && options.httpHeaderAccept;\n if (localVarHttpHeaderAcceptSelected === undefined) {\n // to determine the Accept header\n const httpHeaderAccepts: string[] = [\n ];\n localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);\n }\n if (localVarHttpHeaderAcceptSelected !== undefined) {\n localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);\n }\n\n let localVarHttpContext: HttpContext | undefined = options && options.context;\n if (localVarHttpContext === undefined) {\n localVarHttpContext = new HttpContext();\n }\n\n let localVarTransferCache: boolean | undefined = options && options.transferCache;\n if (localVarTransferCache === undefined) {\n localVarTransferCache = true;\n }\n\n\n let responseType_: 'text' | 'json' | 'blob' = 'json';\n if (localVarHttpHeaderAcceptSelected) {\n if (localVarHttpHeaderAcceptSelected.startsWith('text')) {\n responseType_ = 'text';\n } else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {\n responseType_ = 'json';\n } else {\n responseType_ = 'blob';\n }\n }\n\n let localVarPath = `/rest/signaleringsbeeldeninfo/valideeriaversie`;\n return this.httpClient.request<any>('get', `${this.configuration.basePath}${localVarPath}`,\n {\n context: localVarHttpContext,\n params: localVarQueryParameters,\n responseType: <any>responseType_,\n withCredentials: this.configuration.withCredentials,\n headers: localVarHeaders,\n observe: observe,\n transferCache: localVarTransferCache,\n reportProgress: reportProgress\n }\n );\n }\n\n}\n","export * from './appConfigController.service';\nimport { AppConfigControllerService } from './appConfigController.service';\nexport * from './appConfigController.serviceInterface';\nexport * from './bewegingController.service';\nimport { BewegingControllerService } from './bewegingController.service';\nexport * from './bewegingController.serviceInterface';\nexport * from './class0BuildProperties.service';\nimport { Class0BuildPropertiesService } from './class0BuildProperties.service';\nexport * from './class0BuildProperties.serviceInterface';\nexport * from './connectorController.service';\nimport { ConnectorControllerService } from './connectorController.service';\nexport * from './connectorController.serviceInterface';\nexport * from './logController.service';\nimport { LogControllerService } from './logController.service';\nexport * from './logController.serviceInterface';\nexport * from './p21Controller.service';\nimport { P21ControllerService } from './p21Controller.service';\nexport * from './p21Controller.serviceInterface';\nexport * from './sbController.service';\nimport { SbControllerService } from './sbController.service';\nexport * from './sbController.serviceInterface';\nexport const APIS = [AppConfigControllerService, BewegingControllerService, Class0BuildPropertiesService, ConnectorControllerService, LogControllerService, P21ControllerService, SbControllerService];\n","/**\n * MST\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface ActieDto { \n id?: number;\n bewegingId?: number;\n volgnummerBinnenBeweging?: number;\n volgnummerBinnenPlanningsRegel?: number;\n ritActieTypeId?: number;\n ritActieTypeOmschrijving?: string;\n planningsRegelId?: number;\n infraObjectType?: string;\n iaGebiedType?: string;\n iaGebiedNaam?: string;\n pplgNaam?: string;\n wisselType?: string;\n wisselNaam?: string;\n wisselKantCode?: string;\n vanKilometerlint?: string;\n vanKilometrering?: number;\n totKilometerlint?: string;\n totKilometrering?: number;\n werkorderId?: string;\n infraBron?: string;\n opmerking?: string;\n ritActieStatus?: string;\n}\n\n","/**\n * MST\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface AlgemeneRitDto { \n id?: string;\n jaarplanId?: string;\n volgnummer?: string;\n machineTypeId?: string;\n machineTypeOmschrijving?: string;\n ritDatum?: string;\n startDatum?: string;\n eindDatum?: string;\n ritNaam?: string;\n startLocatie?: string;\n eindLocatie?: string;\n ritStatus?: string;\n modified?: string;\n modifiedBy?: string;\n planJobId?: string;\n}\n\n","/**\n * MST\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface FrontendKeycloakConfig { \n clientId?: string;\n realm?: string;\n url?: string;\n}\n\n","/**\n * MST\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface SignaleringsbeeldDto { \n bladNaam?: string;\n pplgs?: Array<string>;\n metVisualisatie?: boolean;\n}\n\n","/**\n * MST\n * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)\n *\n * The version of the OpenAPI document: 1\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport interface SignaleringsbeeldRequestDto { \n pplgs?: Array<string>;\n versie?: string;\n ingangsDatum?: string;\n}\n\n","import { NgModule, ModuleWithProviders, SkipSelf, Optional } from '@angular/core';\nimport { Configuration } from './configuration';\nimport { HttpClient } from '@angular/common/http';\n\n\n@NgModule({\n imports: [],\n declarations: [],\n exports: [],\n providers: []\n})\nexport class ApiModule {\n public static forRoot(configurationFactory: () => Configuration): ModuleWithProviders<ApiModule> {\n return {\n ngModule: ApiModule,\n providers: [ { provide: Configuration, useFactory: configurationFactory } ]\n };\n }\n\n constructor( @Optional() @SkipSelf() parentModule: ApiModule,\n @Optional() http: HttpClient) {\n if (parentModule) {\n throw new Error('ApiModule is already loaded. Import in your base AppModule only.');\n }\n if (!http) {\n throw new Error('You need to import the HttpClientModule in your AppModule! \\n' +\n 'See also https://github.com/angular/angular/issues/20575');\n }\n }\n}\n","import { Injectable, OnDestroy } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { Subscription } from 'rxjs';\nimport { LogControllerService, LogDto } from '../../generated/openapi';\nimport { MstEditorState } from '../state/mst-editor-state';\n\n@Injectable()\nexport class MstLoggingResource implements OnDestroy {\n\n private subscriptions: Subscription = new Subscription();\n\n constructor(private readonly controller: LogControllerService, private readonly store: Store<MstEditorState>) {\n this.subscriptions.add(this.store.select('baseUrl').subscribe(baseUrl => controller.configuration.basePath = baseUrl + '/mst'));\n }\n\n ngOnDestroy(): void {\n this.subscriptions.unsubscribe();\n }\n\n public logMessages(logDto: LogDto[]): void {\n this.controller.log(logDto).subscribe();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { take } from 'rxjs/operators';\nimport { ActieDto, AlgemeneRitDto, LogDto } from '../../generated/openapi';\nimport { MeldingEvent } from '../model/melding-event';\nimport { Actie } from '../optimo';\nimport { SignaleringsbeeldInfoDto } from '../resources/signaleringsbeeldinfo.resource';\nimport { MstEditorState } from '../state/mst-editor-state';\n\n@Injectable()\nexport class LoggingHelper {\n\n constructor(private readonly store: Store<MstEditorState>) {\n }\n\n public maakLogDTO(melding: MeldingEvent, actie: Actie): LogDto {\n let iaVersie = '';\n let algemeneRitInfoDto: AlgemeneRitDto = null;\n let actieDto: ActieDto = null;\n\n this.store.select('algemeneRitInfoDto').pipe(take(1)).subscribe(dto => {\n algemeneRitInfoDto = dto;\n });\n this.store.select('iaVersie').pipe(take(1)).subscribe(ia => {\n iaVersie = ia.versie;\n });\n\n if (actie) {\n actieDto = {\n pplgNaam: actie.pplgNaam,\n ritActieTypeOmschrijving: actie.ritActieTypeOmschrijving,\n ritActieStatus: actie.ritActieStatus,\n bewegingId: actie.bewegingId,\n wisselType: actie.wisselType,\n wisselNaam: actie.wisselNaam,\n wisselKantCode: actie.wisselKantCode,\n vanKilometerlint: actie.vanKilometerlint,\n vanKilometrering: actie.vanKilometrering,\n totKilometerlint: actie.totKilometerlint,\n totKilometrering: actie.totKilometrering\n } as ActieDto;\n }\n return {\n iaVersie,\n meldingLevel: melding.meldingLevel,\n meldingMessage: melding.meldingMessage,\n actieDto,\n algemeneRitInfoDto,\n sbinfoDtos: this.getSbInfoDtos()\n } as LogDto;\n }\n\n public getSbInfoDtos(): SignaleringsbeeldInfoDto[] {\n const sbInfoDtos: SignaleringsbeeldInfoDto[] = [];\n this.store.select('visibleSbInfoDtos').pipe(take(1)).subscribe(dtos => {\n dtos.forEach(d => {\n sbInfoDtos.push(d as SignaleringsbeeldInfoDto);\n });\n });\n return sbInfoDtos;\n }\n}\n\n\n","import { Injectable } from '@angular/core';\nimport { JsJavaUtil, sbblad } from '@loxia/rijwegen';\nimport { Store } from '@ngrx/store';\nimport { LogDto } from '../../generated/openapi';\nimport { MessagesService } from '../atomic-components/services/messages.service';\nimport { KmRange } from '../model/km-range';\nimport { MeldingEvent } from '../model/melding-event';\nimport { Ritdeel } from '../model/ritdeel';\nimport { WisselKantCode } from '../model/wissel-kant-code';\nimport { Actie } from '../optimo';\nimport { MstLoggingResource } from '../resources/mstlogging.resource';\nimport { SignaleringsBeeldManagerService } from '../services/signalerings-beeld-manager.service';\nimport { MstEditorState } from '../state/mst-editor-state';\nimport { LoggingHelper } from './logging-helper';\nimport { MeldingBuilder } from './melding-builder';\nimport { MessageBuilder } from './message-builder';\nimport { ArrayMultimap } from './multi-map';\nimport Kilometrering = sbblad.Kilometrering;\nimport TopologyElement = sbblad.TopologyElement;\n\n/**\n * export const RIT_ACTIE_1 = 1;\n * export const RIT_ACTIE_SLIJPEN_VIADUCT_KLEIN = 2;\n * export const RIT_ACTIE_SLIJPEN_BOOG = 3;\n */\nexport const RIT_ACTIE_SLIJPEN_WISSEL_KLEIN = 4;\nexport const RIT_ACTIE_SLIJPEN_WISSEL_GROOT = 5;\n/**\n * export const RIT_ACTIE_SLIJPEN_OVERWEG = 6;\n * export const RIT_ACTIE_SLIJPEN_BRUG_GROOT = 7;\n * export const RIT_ACTIE_SLIJPEN_BRUG_KLEIN = 8;\n * export const RIT_ACTIE_SLIJPEN_SPOORTAK = 9;\n */\nexport const RIT_ACTIE_VST = 10;\n/**\n * export const RIT_ACTIE_BVLBLD_T = 11;\n * export const RIT_ACTIE_SLIJPEN_VIADUCT_GROOT = 12;\n * export const RIT_ACTIE_PANTCONT_T = 13;\n * export const RIT_ACTIE_RIJDRLIG_T = 14;\n * export const RIT_ACTIE_SPSTLAPR_T = 15;\n * export const RIT_ACTIE_SPSTOPPDEF_T = 16;\n * export const RIT_ACTIE_SPSTOPPBLD_T = 17;\n * export const RIT_ACTIE_SPSTDEF_T = 18;\n * export const RIT_ACTIE_SPSTDWPR_T = 19;\n * export const RIT_ACTIE_BAANBLD_T = 20;\n * export const RIT_ACTIE_SPGEOM_T = 21;\n * export const RIT_ACTIE_22 = 22;\n * export const RIT_ACTIE_23 = 23;\n * export const RIT_ACTIE_RIJDRDIK_T = 24;\n * export const RIT_ACTIE_SLIJPEN_TUNNEL = 25;\n */\nexport const RIT_ACTIE_SLIJPEN_WISSEL_1_OP_2_KOMMA_5 = 26;\nexport const RIT_ACTIE_SLIJPEN_WISSEL_1_OP_29 = 27;\nexport const RIT_ACTIE_SLIJPEN_WISSEL_1_OP_20 = 28;\nexport const RIT_ACTIE_SLIJPEN_WISSEL_1_OP_18_KOMMA_5 = 29;\nexport const RIT_ACTIE_SLIJPEN_WISSEL_1_OP_18 = 30;\nexport const RIT_ACTIE_SLIJPEN_WISSEL_1_OP_15 = 31;\nexport const RIT_ACTIE_SLIJPEN_WISSEL_1_OP_12 = 32;\nexport const RIT_ACTIE_SLIJPEN_WISSEL_1_OP_10 = 33;\nexport const RIT_ACTIE_SLIJPEN_WISSEL_1_OP_34_KOMMA_7 = 34;\nexport const RIT_ACTIE_SLIJPEN_WISSEL_1_OP_9 = 35;\nexport const RIT_ACTIE_SLIJPEN_WISSEL_1_OP_7_KOMMA_5 = 36;\nexport const RIT_ACTIE_SLIJPEN_WISSEL_1_OP_7 = 37;\nexport const RIT_ACTIE_SLIJPEN_WISSEL_1_OP_6 = 38;\nexport const RIT_ACTIE_SLIJPEN_WISSEL_1_OP_5 = 39;\nexport const RIT_ACTIE_SLIJPEN_WISSEL_1_OP_4_KOMMA_5 = 40;\nexport const RIT_ACTIE_SLIJPEN_WISSEL_1_OP_4 = 41;\nexport const RIT_ACTIE_SLIJPEN_WISSEL_1_OP_3_KOMMA_5 = 42;\nexport const RIT_ACTIE_SLIJPEN_WISSEL_1_OP_8 = 43;\nexport const RIT_ACTIE_SLIJPEN_WISSEL_1_OP_39_KOMMA_1 = 44;\n\nexport class MstKilometrering implements sbblad.Kilometrering {\n constructor(private readonly kmLint: string, private readonly kmWaarde: number) {\n }\n\n getKmLint(): string {\n return this.kmLint;\n }\n\n getKmWaarde(): number {\n return this.kmWaarde;\n }\n}\n\n@Injectable()\nexport class ActieHelper {\n static readonly HALF_ENGELS_WISSEL = 'HalveEngelseWissel';\n static readonly ENGELS_WISSEL = 'EngelseWissel';\n static readonly SLIJPEN_WISSEL_ACTIES = [\n RIT_ACTIE_SLIJPEN_WISSEL_KLEIN,\n RIT_ACTIE_SLIJPEN_WISSEL_GROOT,\n RIT_ACTIE_SLIJPEN_WISSEL_1_OP_2_KOMMA_5,\n RIT_ACTIE_SLIJPEN_WISSEL_1_OP_29,\n RIT_ACTIE_SLIJPEN_WISSEL_1_OP_20,\n RIT_ACTIE_SLIJPEN_WISSEL_1_OP_18_KOMMA_5,\n RIT_ACTIE_SLIJPEN_WISSEL_1_OP_18,\n RIT_ACTIE_SLIJPEN_WISSEL_1_OP_15,\n RIT_ACTIE_SLIJPEN_WISSEL_1_OP_12,\n RIT_ACTIE_SLIJPEN_WISSEL_1_OP_10,\n RIT_ACTIE_SLIJPEN_WISSEL_1_OP_34_KOMMA_7,\n RIT_ACTIE_SLIJPEN_WISSEL_1_OP_9,\n RIT_ACTIE_SLIJPEN_WISSEL_1_OP_7_KOMMA_5,\n RIT_ACTIE_SLIJPEN_WISSEL_1_OP_7,\n RIT_ACTIE_SLIJPEN_WISSEL_1_OP_6,\n RIT_ACTIE_SLIJPEN_WISSEL_1_OP_5,\n RIT_ACTIE_SLIJPEN_WISSEL_1_OP_4_KOMMA_5,\n RIT_ACTIE_SLIJPEN_WISSEL_1_OP_4,\n RIT_ACTIE_SLIJPEN_WISSEL_1_OP_3_KOMMA_5,\n RIT_ACTIE_SLIJPEN_WISSEL_1_OP_8,\n RIT_ACTIE_SLIJPEN_WISSEL_1_OP_39_KOMMA_1];\n\n private debug: boolean;\n\n constructor(private readonly sbmService: SignaleringsBeeldManagerService,\n private readonly mstLogResource: MstLoggingResource,\n private readonly messagesService: MessagesService,\n private readonly store: Store<MstEditorState>,\n private readonly loggingHelper: LoggingHelper) {\n this.store.select('debug').subscribe(debug => this.debug = debug);\n }\n\n public static getActieTopoElements(ritDeel: Ritdeel, sbmService: SignaleringsBeeldManagerService): TopologyElement[] {\n const actieTopoElements = ritDeel.getTopologieElementen().slice();\n const extraTopoElement = ActieHelper.getVoorSectieVanBeginSein(ritDeel, sbmService);\n if (extraTopoElement) {\n actieTopoElements.splice(0, 0, extraTopoElement);\n }\n return actieTopoElements;\n }\n\n static isVSTActie(actie): boolean {\n return actie.ritActieTypeId === RIT_ACTIE_VST;\n }\n\n static isWisselSlijpenActie(actie): boolean {\n return this.SLIJPEN_WISSEL_ACTIES.indexOf(actie.ritActieTypeId) >= 0;\n }\n\n static bepaalTakId(actie): string {\n return actie.pplgNaam + '-' + actie.wisselNaam + '-' + actie.wisselKantCode;\n }\n\n static isHeelOfHalfEngelsWisselActie(actie: Actie): boolean {\n return actie.infraObjectType === this.HALF_ENGELS_WISSEL || actie.infraObjectType === this.ENGELS_WISSEL;\n }\n\n static getVSTActieOmschrijving(actie: Actie): string {\n if (this.isEngelseWissel(actie)) {\n const wisselNamen = this.getWisselDelen(actie.wisselNaam);\n const kantCodes = this.getKantCodes(actie.wisselKantCode);\n return `VST ${ wisselNamen[0] } ${ kantCodes[0] } - ${ wisselNamen[1] } ${ kantCodes[1] }`;\n } else {\n return `VST ${ actie.wisselNaam } ${ ActieHelper.getKantcodeTekst(actie.wisselKantCode) }`;\n }\n }\n\n public static actieComparator(actie1: Actie, actie2: Actie): number {\n if (actie1.vanKilometrering !== actie2.vanKilometrering) {\n return actie1.vanKilometrering > actie2.vanKilometrering ? 1 : -1;\n }\n if (actie1.ritActieTypeOmschrijving !== actie2.ritActieTypeOmschrijving) {\n return actie1.ritActieTypeOmschrijving > actie2.ritActieTypeOmschrijving ? 1 : -1;\n }\n if (actie1.wisselNaam !== actie2.wisselNaam) {\n return actie1.wisselNaam > actie2.wisselNaam ? 1 : -1;\n }\n if (actie1.wisselKantCode !== actie2.wisselKantCode) {\n return actie1.wisselKantCode > actie2.wisselKantCode ? 1 : -1;\n }\n return 0;\n }\n\n static getWisselKantCodes(actie: Actie): WisselKantCode[] {\n const wisselKantCodes: WisselKantCode[] = [];\n\n const namen = this.getWisselDelen(actie.wisselNaam);\n const kantCodes = this.getKantCodes(actie.wisselKantCode);\n for (let i = 0; i < namen.length; i++) {\n wisselKantCodes.push(new WisselKantCode(namen[i], kantCodes[i]));\n }\n\n return wisselKantCodes;\n }\n\n static getWisselDelen(wisselNaam: string): string[] {\n return wisselNaam.split('|');\n }\n\n static getKantCodes(kantCodes: string): string[] {\n if (kantCodes.length === 2) {\n return [kantCodes.charAt(0), kantCodes.charAt(1)];\n }\n return [kantCodes];\n }\n\n private static getVoorSectieVanBeginSein(ritDeel: Ritdeel, sbmService: SignaleringsBeeldManagerService): TopologyElement {\n // RPE toont een rijweg vanaf de sectiescheiding behorend bij het beginsein. MST levert bewegingen waarbij acties gedaan moeten\n // worden tussen het beginsein en de genoemde sectiescheiding. Om deze te kunnen tonen voegen we de voorsectie van het beginsein\n // toe aan de lijst met route elementen.\n const beginRouteSein = ritDeel.getRoute().getBeginSein();\n const sbSein = sbmService.getSBSein(beginRouteSein);\n return sbSein ? sbSein.getVoorSectie() : null;\n }\n\n// make sure the elems are sorted in ascending order\n private static sorteerTopoElementen(topoElems: sbblad.TopologyElement[]): sbblad.TopologyElement[] {\n const topoElementen = topoElems.slice();\n let lint = null;\n let first = null;\n let second = null;\n\n for (const topoElement of topoElementen) {\n let kilometreringen = null;\n\n const kms = JsJavaUtil.listToArray(topoElement.getKilometreringen());\n if (kms !== null && kms.length > 0) {\n kilometreringen = kms;\n }\n\n if (kilometreringen && !first) {\n first = kilometreringen[0].getKmWaarde();\n lint = kilometreringen[0].getKmLint();\n } else if (kilometreringen && first && !second) {\n const km = KmRange.getKilometrering(lint, kilometreringen);\n if (km) {\n second = km.getKmWaarde();\n }\n }\n if (first && second && first > second) {\n topoElementen.reverse();\n break;\n }\n }\n return topoElementen;\n }\n\n private static corrigeerTopoElementenZonderKms(topoElementenZonderKms, vanKilometreringen: sbblad.Kilometrering[],\n totKilometreringen: sbblad.Kilometrering[], kmRanges: KmRange[]): void {\n topoElementenZonderKms.forEach(e => {\n if (!vanKilometreringen && totKilometreringen) {\n vanKilometreringen = [new MstKilometrering(totKilometreringen[0].getKmLint(), -100000)];\n }\n if (!totKilometreringen && vanKilometreringen) {\n totKilometreringen = [new MstKilometrering(vanKilometreringen[0].getKmLint(), 100000)];\n }\n\n if (vanKilometreringen[0] > totKilometreringen[0]) {\n kmRanges.push(KmRange.rangeVoorStrekObject(e, this.addKm(vanKilometreringen, -1), this.addKm(totKilometreringen, 1)));\n } else {\n kmRanges.push(KmRange.rangeVoorStrekObject(e, this.addKm(vanKilometreringen, 1), this.addKm(totKilometreringen, -1)));\n }\n });\n }\n\n private static addKm(kms: Kilometrering[], aantal: number): Kilometrering[] {\n const retval = [];\n for (const km of kms) {\n retval.push(new MstKilometrering(km.getKmLint(), km.getKmWaarde() + aantal));\n }\n return retval;\n }\n\n private static kanActiesBepalen(ritdeel: Ritdeel): Actie[] {\n return ritdeel.isZichtbaar() && ritdeel.acties;\n }\n\n private static isKilometreringAanwezig(fragmenten: sbblad.TopologyElement[]): boolean {\n let aanwezig = false;\n for (const fragment of fragmenten) {\n const kms = JsJavaUtil.listToArray(fragment.getKilometreringen());\n if (kms !== null && kms.length > 0) {\n aanwezig = true;\n break;\n }\n }\n return aanwezig;\n }\n\n private static bepaalSpoortakFragmenten(spoortak: sbblad.Spoortak): sbblad.TopologyElement[] {\n return JsJavaUtil.listToArray(spoortak.getTakElementen());\n }\n\n private static bepaalSpoortakFragmentenPuics(fragmenten: sbblad.TopologyElement[]): string[] {\n const puics = [];\n fragmenten.forEach(deel => puics.push(deel.getPuic()));\n return puics;\n }\n\n private static isEngelseWissel(actie: Actie): boolean {\n return actie.wisselNaam.includes('|') && actie.wisselKantCode.length === 2;\n }\n\n private static getKantcodeTekst(kantcode: string): string {\n let tekst = 'Voor';\n if (this.isKantCodeLinks(kantcode)) {\n tekst = 'Links';\n } else if (this.isKantCodeRechts(kantcode)) {\n tekst = 'Rechts';\n }\n return tekst;\n }\n\n private static isKantCodeRechts(kantcode: string): boolean {\n return kantcode === 'R';\n }\n\n private static isKantCodeLinks(kantcode: string): boolean {\n return kantcode === 'L';\n }\n\n bepaalPuicsVoorActie(actie: Actie): string[] {\n let puics;\n if (ActieHelper.isVSTActie(actie)) {\n puics = this.bepaalPuicsVoorVSTActie(actie);\n } else if (ActieHelper.isWisselSlijpenActie(actie)) {\n puics = this.bepaalPuicVoorWisselSlijpenActie(actie);\n } else {\n puics = this.bepaalActiePuicsVoorSpoortak(actie);\n }\n return puics;\n }\n\n bepaalActiePuicsUitRitdeel(ritDeel): ArrayMultimap<Actie, string> {// voor highlights\n const map = new ArrayMultimap<Actie, string>();\n if (ActieHelper.kanActiesBepalen(ritDeel)) {\n ritDeel.acties.forEach(a => {\n map.putAll(a, this.bepaalPuicsVoorActie(a));\n });\n }\n return map;\n }\n\n bepaalActiesPuics(acties: Actie[], topoElem: TopologyElement[]): ArrayMultimap<Actie, string> {\n const topoElementen = ActieHelper.sorteerTopoElementen(topoElem);\n\n const kmRanges = this.verwerkTopoElementen(topoElementen);\n return this.verwerkActies(acties, kmRanges);\n }\n\n private verwerkActies(acties: Actie[], kmRanges: KmRange[]): ArrayMultimap<Actie, string> {\n const actieZonderElementen: number[] = [];\n const logMeldingDTOs: LogDto[] = [];\n\n const retval = new ArrayMultimap<Actie, string>();\n acties.forEach(actie => {\n if (ActieHelper.isWisselSlijpenActie(actie)) {\n const puicArray = this.bepaalPuicVoorWisselSlijpenActie(actie);\n retval.putAll(actie, puicArray);\n } else {\n const puics = [];\n kmRanges.forEach(kmRange => {\n let vanKilometrering = new MstKilometrering(actie.vanKilometerlint, actie.vanKilometrering);\n let totKilometrering = new MstKilometrering(actie.totKilometerlint, actie.totKilometrering);\n if (actie.vanKilometrering > actie.totKilometrering) {\n const temp = { van: vanKilometrering, tot: totKilometrering };\n vanKilometrering = temp.tot;\n totKilometrering = temp.van;\n }\n if (kmRange.heeftOverlap(vanKilometrering, totKilometrering)) {\n puics.push(kmRange.topologyElement.getPuic());\n }\n });\n if (puics.length === 0) {\n actieZonderElementen.push(actie.id);\n const melding: MeldingEvent = MeldingBuilder.actieHighlightError(actieZonderElementen);\n logMeldingDTOs.push(this.loggingHelper.maakLogDTO(melding, actie));\n }\n retval.putAll(actie, puics);\n }\n });\n this.logLegeMeldingDto(logMeldingDTOs);\n return retval;\n }\n\n private logLegeMeldingDto(logDto: LogDto[]): void {\n if (logDto.length > 0) {\n return this.mstLogResource.logMessages(logDto);\n }\n }\n\n private verwerkTopoElementen(topoElementen: sbblad.TopologyElement[]): KmRange[] {\n const kmRanges: KmRange[] = [];\n\n let topoElementenZonderKms = [];\n let laatstePuntKms: Kilometrering[] = null;\n topoElementen.forEach(elem => {\n const kms: Kilometrering[] = JsJavaUtil.listToArray(elem.getKilometreringen());\n if (kms.length > 0) {\n ActieHelper.corrigeerTopoElementenZonderKms(topoElementenZonderKms, laatstePuntKms, kms, kmRanges);\n topoElementenZonderKms = [];\n kmRanges.push(KmRange.rangeVoorPuntObject(elem));\n laatstePuntKms = kms;\n } else {\n topoElementenZonderKms.push(elem);\n }\n });\n if (topoElementenZonderKms.length > 0 && laatstePuntKms) {\n ActieHelper.corrigeerTopoElementenZonderKms(topoElementenZonderKms, laatstePuntKms, null, kmRanges);\n }\n return kmRanges;\n }\n\n private bepaalActiePuicsVoorSpoortak(actie: Actie): string[] {\n const spoortak = this.sbmService.getSbSpoortak(ActieHelper.bepaalTakId(actie));\n\n let puics = [];\n if (!spoortak) {\n return puics;\n }\n const fragmenten = ActieHelper.bepaalSpoortakFragmenten(spoortak);\n if (ActieHelper.isKilometreringAanwezig(fragmenten)) {\n const map = this.bepaalActiesPuics([actie], fragmenten);\n for (const key of Array.from(map.keys())) {\n map.get(key).forEach(x => puics.push(x));\n }\n } else {\n puics = ActieHelper.bepaalSpoortakFragmentenPuics(fragmenten);\n }\n return puics;\n }\n\n private bepaalPuicsVoorVSTActie(actie: Actie): string[] {\n if (ActieHelper.isHeelOfHalfEngelsWisselActie(actie)) {\n const retval = [];\n const wisselDelen = ActieHelper.getWisselDelen(actie.wisselNaam);\n const puicsEersteWissel = this.bepaalWisselPuics(wisselDelen[0], actie.pplgNaam, actie.wisselKantCode[0]);\n const puicsTweedeWissel = this.bepaalWisselPuics(wisselDelen[1], actie.pplgNaam, actie.wisselKantCode[1]);\n\n const puic1 = this.sbmService.getEersteVerbindingPuicVoorSplitEngelseWissel(wisselDelen[0], actie.wisselKantCode[0]);\n if (puic1 !== '') {\n retval.push(puic1);\n }\n const puic2 = this.sbmService.getEersteVerbindingPuicVoorSplitEngelseWissel(wisselDelen[1], actie.wisselKantCode[1]);\n if (puic2 !== '') {\n retval.push(puic2);\n }\n retval.push(...puicsEersteWissel);\n retval.push(...puicsTweedeWissel);\n return retval;\n } else {\n return this.bepaalWisselPuics(actie.wisselNaam, actie.pplgNaam, actie.wisselKantCode);\n }\n }\n\n private bepaalWisselPuics(wisselNaam: string, pplgNaam: string, kantcode: string): string[] {\n const wissel = this.sbmService.getSBWissel(wisselNaam, pplgNaam);\n if (!wissel) {\n return [];\n }\n const kantElement = this.bepaalKantElement(kantcode, wissel);\n if (!kantElement) {\n return [];\n }\n const storingSymboolPuic = wissel.getStoringSymboolPuic();\n\n return [storingSymboolPuic, kantElement.getPuic()];\n }\n\n private bepaalKantElement(kantcode: string, wissel: sbblad.Wissel): sbblad.SpoortakFragment {\n if (ActieHelper.isKantCodeRechts(kantcode)) {\n return wissel.getRight();\n }\n if (ActieHelper.isKantCodeLinks(kantcode)) {\n return wissel.getLeft();\n }\n return null;\n }\n\n private bepaalPuicVoorWisselSlijpenActie(actie: Actie): string[] {\n const storingsSymboolPuic = this.sbmService.getSBWissel(actie.wisselNaam, actie.pplgNaam)?.getStoringSymboolPuic();\n if (!storingsSymboolPuic && this.debug) {\n const melding: MeldingEvent = MeldingBuilder.actieHighlightError([actie.id]);\n this.messagesService.showMessage(MessageBuilder.actieHighlightError([actie.id]));\n this.mstLogResource.logMessages([this.loggingHelper.maakLogDTO(melding, actie)]);\n }\n return storingsSymboolPuic ? [storingsSymboolPuic] : [];\n }\n}\n\n\n","import {ChangeDetectionStrategy, Component, EventEmitter, Input, OnDestroy, Output} from '@angular/core';\nimport {domein, JsJavaUtil} from '@loxia/rijwegen';\nimport {Store} from '@ngrx/store';\nimport {combineLatest, Subscription} from 'rxjs';\nimport {filter} from 'rxjs/operators';\nimport {OngeplandeActie} from '../../model/ongeplande-actie';\nimport {Ritdeel} from '../../model/ritdeel';\nimport {Actie} from '../../optimo';\nimport {SignaleringsBeeldManagerService} from '../../services/signalerings-beeld-manager.service';\nimport * as MstActions from '../../state/actions/actions';\nimport * as RitdelenActions from '../../state/actions/ritdelen.actions';\nimport {MstEditorState} from '../../state/mst-editor-state';\nimport {ActieHelper} from '../../util/actie-helper';\nimport {ArrayMultimap} from '../../util/multi-map';\n\n@Component({\n selector: 'ritdelen-lijst',\n templateUrl: './ritdelen-lijst.component.html',\n styleUrls: ['./ritdelen-lijst.component.scss'],\n changeDetection: ChangeDetectionStrategy.Default,\n standalone: false\n})\nexport class RitdelenLijstComponent implements OnDestroy {\n @Input() nietGeplandeActies: Actie[];\n\n @Output() focusEmitter = new EventEmitter<Ritdeel>();\n @Output() keurAlleActiesGoed = new EventEmitter();\n\n ritdeelViewModels: RitdeelViewModel[];\n selectedRitdeel: Ritdeel;\n selectedRitdeelActies: Actie[] = [];\n selectedRitdeelOngeplandeActies: OngeplandeActie[] = [];\n disableActieKnoppenVanRitdeel: boolean;\n editable: boolean;\n\n private ongeplandeActiesMap: ArrayMultimap<string, OngeplandeActie>;\n private geplandeActies: ArrayMultimap<Actie, string>;\n private readonly NG_ACTIE_PREFIX = '* ';\n private readonly subscriptions: Subscription[] = [];\n\n constructor(private readonly store: Store<MstEditorState>, private readonly sbmService: SignaleringsBeeldManagerService) {\n this.subscriptions.push(store.select('ritDelen').subscribe((ritdelen) => {\n this.ritdeelViewModels = ritdelen?.map(ritdeel => {\n return new RitdeelViewModel(\n ritdeel,\n this.selectedRitdeelClass(ritdeel),\n this.isRitdeelZichtbaar(ritdeel),\n this.getTitle(ritdeel),\n ritdeel.isNietBeschikbaar(),\n this.isRitdeelNieuw(ritdeel),\n ritdeel.getVanPrlSpoor(),\n ritdeel.getNaarPrlSpoorText(),\n ritdeel.getDwangNummer(),\n ritdeel.getPplgString(),\n this.getTreinNummer(ritdeel));\n })\n }));\n this.subscriptions.push(store.select('ongeplandeActies').subscribe(acties => this.ongeplandeActiesMap = acties));\n this.subscriptions.push(store.select('geplandeActies').subscribe(acties => this.geplandeActies = acties));\n this.subscriptions.push(store.select('editable').subscribe(editable => this.editable = editable));\n\n // listen to changes from svg-viewer-component, saving ritdeel in store isn't cool because of all the gwt in it. This is\n // just to make changes within the angular lifecycle.\n this.subscriptions.push(store.select('selectedRitdeelId').pipe(\n filter(id => !id)).subscribe(this.deselectRitdeel\n ));\n\n this.subscriptions.push(\n combineLatest([\n this.store.select('ritDelen'),\n this.store.select('ongeplandeActies')]\n ).subscribe(() => this.updateOngeplandeActiesList()));\n }\n\n ngOnDestroy(): void {\n this.subscriptions.forEach(s => s.unsubscribe());\n }\n\n isRitdeelZichtbaar(ritdeel: Ritdeel): boolean {\n return ritdeel.isZichtbaar();\n }\n\n toggleRitdeelZichtbaarheid(ritdeel: Ritdeel): void {\n this.deselectRitdeel();\n this.store.dispatch(RitdelenActions.toggleRitdeelZichtbaar(ritdeel));\n }\n\n toggleZichtbaarheidAlleRitdelen(checked: boolean): void {\n this.deselectRitdeel();\n this.store.dispatch(RitdelenActions.setZichtbaarheidAlleRitdelen(checked));\n }\n\n isRitdeelNieuw(ritdeel: Ritdeel): string {\n return ritdeel.isNieuw() ? '+' : '';\n }\n\n getTitle(ritdeel: Ritdeel): string {\n return ritdeel.getBewegingId();\n }\n\n getTreinNummer(ritdeel: Ritdeel): string {\n return ritdeel.getTreinNummer();\n }\n\n deleteRitdeel(ritdeel: Ritdeel): void {\n ritdeel.acties.forEach(actie => {\n this.verhuisActieNaarOngepland(actie);\n });\n this.deselectRitdeel();\n this.store.dispatch(RitdelenActions.deleteRitdeel(ritdeel));\n }\n\n deleteActiesUitRit(): void {\n this.selectedRitdeel.acties.slice().forEach(actie => {\n this.deleteActieUitRit(actie);\n });\n }\n\n deleteActieUitRit(actie): void {\n const acties = this.selectedRitdeel.acties;\n const idx = acties.indexOf(actie);\n if (idx >= 0) {\n this.verhuisActieNaarOngepland(actie);\n this.store.dispatch(RitdelenActions.deleteRitdeelActie(this.selectedRitdeel, acties[idx]));\n }\n const index = this.nietGeplandeActies.indexOf(actie);\n if (index < 0) {\n this.nietGeplandeActies.push(actie);\n }\n }\n\n private verhuisActieNaarOngepland(actie): void {\n const puics = this.geplandeActies.get(actie);\n\n if (puics && puics.length > 0) {\n this.store.dispatch(MstActions.AddOngeplandeActie(new OngeplandeActie(actie, puics)));\n this.store.dispatch(MstActions.DeleteGeplandeActie(actie, puics));\n }\n }\n\n voegActiesToeAanRit(): void {\n const acties = this.selectedRitdeelOngeplandeActies;\n acties.slice().forEach(actie => {\n this.voegActieToeAanRit(actie);\n });\n }\n\n voegActieToeAanRit(ongeplandeActie: OngeplandeActie): void {\n const idx = this.selectedRitdeelOngeplandeActies.indexOf(ongeplandeActie);\n if (idx >= 0) {\n this.store.dispatch(RitdelenActions.addRitdeelActie(this.selectedRitdeel, this.selectedRitdeelOngeplandeActies[idx].actie));\n this.store.dispatch(MstActions.AddGeplandeActie(ongeplandeActie.actie, ongeplandeActie.puics));\n this.store.dispatch(MstActions.DeleteOngeplandeActie(ongeplandeActie));\n }\n }\n\n updateOngeplandeActiesList(): void {\n if (this.selectedRitdeel) {\n this.selectedRitdeelOngeplandeActies = [];\n const ritPuics: string[] = [];\n const ritdeelTopoElements = ActieHelper.getActieTopoElements(this.selectedRitdeel, this.sbmService);\n const wisselObjecten: domein.Wissel[] = JsJavaUtil.listToArray(this.selectedRitdeel.getRoute().getWisselObjectenInDeRoute());\n\n ritdeelTopoElements.forEach(elem => ritPuics.push(elem.getPuic()));\n const ongeplandeActiesArray = this.ongeplandeActiesMap.values();\n ongeplandeActiesArray.forEach(oa => {\n const acties = this.ritdeelViewModels.flatMap(rd => rd.ritdeel.acties);\n const alreadyAdded = acties.filter(a => a.id === oa.actie.id).length > 0;\n if (!alreadyAdded) {\n let oaMatch;\n if (ActieHelper.isVSTActie(oa.actie)) {\n oaMatch = this.matchedWisselMetKantCodeInVSTActie(oa, wisselObjecten) ? oa : undefined;\n } else if (oa.puics.filter(p => ritPuics.includes(p) || this.bevatWisselPuic(ritPuics, p)).length > 0) {\n oaMatch = oa;\n }\n\n const alreadyAddedAsOngepland = this.selectedRitdeelOngeplandeActies.filter(a => a.actie.id === oa.actie.id).length > 0;\n if (oaMatch && !alreadyAddedAsOngepland) {\n this.selectedRitdeelOngeplandeActies.push(oaMatch);\n }\n }\n });\n }\n }\n\n matchedWisselMetKantCodeInVSTActie(ongeplandeActie: OngeplandeActie, wissels: domein.Wissel[]): boolean {\n const pplg = ongeplandeActie.actie.pplgNaam;\n const wisselKantCodes = ActieHelper.getWisselKantCodes(ongeplandeActie.actie);\n\n let gevondenWissels = 0;\n let gevondenWisselKantCodes = 0;\n\n wisselKantCodes.forEach((wisselKantCode) => {\n const gevondenWissel = this.findWisselOpNaamEnPplg(wissels, wisselKantCode.naam, pplg);\n\n if (gevondenWissel) {\n gevondenWissels++;\n if (this.getKantCode(gevondenWissel.getStand()) === wisselKantCode.kantCode) {\n gevondenWisselKantCodes++;\n }\n }\n });\n\n return gevondenWissels > 0 && gevondenWissels === gevondenWisselKantCodes;\n }\n\n private findWisselOpNaamEnPplg(wissels: domein.Wissel[], wisselNaam: string, pplgNaam: string): domein.Wissel {\n return wissels.find(wo => wo.getName() === wisselNaam && wo.getPPLG() === pplgNaam);\n }\n\n private bevatWisselPuic(ritPuics: string[], p): boolean {\n return ritPuics.includes(this.sbmService.getWisselMetStoringskaderPuic(p)?.getPuic());\n }\n\n selectedRitdeelClass(ritdeel: Ritdeel): string {\n if (ritdeel.getZichtbaarheidBuitenPaginatie()) {\n if (ritdeel.equals(this.selectedRitdeel)) {\n return 'selected';\n }\n return 'visible-outside-window';\n }\n if (ritdeel.isNietBeschikbaar()) {\n return 'disabled';\n }\n if (ritdeel.equals(this.selectedRitdeel)) {\n return 'selected';\n }\n return '';\n }\n\n selectRitdeel(event: MouseEvent, ritdeel: Ritdeel): void {\n if (event?.ctrlKey) {\n this.focusEmitter.emit(ritdeel);\n } else {\n if (ritdeel?.equals(this.selectedRitdeel)) {\n this.deselectRitdeel();\n return;\n }\n\n this.selectedRitdeel = ritdeel;\n this.disableActieKnoppenVanRitdeel = !this.selectedRitdeel.isZichtbaar();\n\n if (ritdeel.acties) {\n this.selectedRitdeelActies = ritdeel.acties;\n this.updateOngeplandeActiesList();\n } else {\n this.selectedRitdeelActies = [];\n this.selectedRitdeelOngeplandeActies = [];\n }\n }\n }\n\n actieOmschrijvingTekst(actie: Actie): string {\n const prefix = this.bepaalPrefixVoorActieOmschrijving(actie);\n if (ActieHelper.isVSTActie(actie)) {\n return this.maakVstActieOmschrijving(actie, prefix);\n }\n return prefix + actie.ritActieTypeOmschrijving;\n }\n\n private maakVstActieOmschrijving(actie: Actie, prefix: string): string {\n return `${ prefix }${ ActieHelper.getVSTActieOmschrijving(actie) }`;\n }\n\n bepaalPrefixVoorActieOmschrijving(actie: Actie): string {\n const prefix = '';\n if (this.selectedRitdeel.acties.includes(actie)) {\n // Afwijkende naam bij niet gevisualiseerde actie in rit\n const puics = this.geplandeActies.get(actie);\n return puics.length > 0 ? prefix : this.NG_ACTIE_PREFIX;\n }\n return prefix;\n }\n\n actieVanKmTekst(actie: Actie): string {\n if (ActieHelper.isWisselSlijpenActie(actie)) {\n return actie.wisselNaam;\n }\n return actie.vanKilometerlint ? actie.vanKilometerlint + ' ' + actie.vanKilometrering : '-';\n }\n\n actieTotKmTekst(actie: Actie): string {\n return actie.totKilometerlint ? actie.totKilometerlint + ' ' + actie.totKilometrering : '-';\n }\n\n deselectRitdeel(): void {\n this.disableActieKnoppenVanRitdeel = false;\n this.selectedRitdeel = undefined;\n this.selectedRitdeelActies = [];\n this.selectedRitdeelOngeplandeActies = [];\n }\n\n getPplgString(ritdeel: Ritdeel): string {\n return ritdeel.getPplgString();\n }\n\n private getKantCode(stand: domein.Stand): string {\n if (stand === window['domein'].Stand.LINKS) {\n return 'L';\n }\n return 'R';\n }\n\n planAlleRitActies(): void {\n this.keurAlleActiesGoed.emit();\n this.deselectRitdeel();\n }\n}\n\nclass RitdeelViewModel {\n constructor(\n readonly ritdeel: Ritdeel,\n readonly selectedRitdeelClass: string,\n readonly isZichtbaar: boolean,\n readonly title: string,\n readonly isNietBeschikbaar: boolean,\n readonly isNieuw: string,\n readonly vanPrlSpoor: string,\n readonly naarPrlSpoor: string,\n readonly dwangNummer: number,\n readonly pplgString: string,\n readonly treinNummer: string\n ) {\n }\n}\n","<div id=\"ritdelen-lijst\">\n <div class=\"sidebar-header\">\n <h3 [attr.data-test-id]=\"'title-rit-details'\">Ritdetails</h3>\n </div>\n <div class=\"panes-container\">\n <div class=\"top-pane tableFixHead\" id=\"top-pane\">\n <table class=\"table\" aria-hidden=\"true\" [attr.data-test-id]=\"'table-rit-details'\">\n <thead>\n <tr>\n <th scope=\"col\">\n <input #input\n type=\"checkbox\"\n checked\n class=\"checkbox col-visibility\"\n (change)=\"toggleZichtbaarheidAlleRitdelen(input.checked)\"\n id=\"ritdetails-selecteerAlles\"\n title=\"Selecteer alles\"\n [attr.data-test-id]=\"'checkbox-alle-bewegingen'\">\n </th>\n <th scope=\"col\"></th>\n <th scope=\"col\">Van</th>\n <th scope=\"col\">Naar</th>\n <th scope=\"col\">DW</th>\n <th scope=\"col\">PPLG(s)</th>\n <th scope=\"col\">Treinnr.</th>\n <th scope=\"col\"></th>\n </tr>\n </thead>\n\n <tr *ngFor=\"let ritdeelViewModel of ritdeelViewModels; let i = index\"\n class=\"{{ selectedRitdeelClass(ritdeelViewModel.ritdeel) }}\" id=\"ritdetails-r{{i}}\">\n <td>\n <input id=\"ritdetails-r{{i}}-zichtbaar\"\n [attr.data-test-id]=\"'checkbox-r'+i\"\n type=\"checkbox\"\n class=\"checkbox col-visibility\"\n [checked]=\"ritdeelViewModel.isZichtbaar\"\n [title]=\"ritdeelViewModel.title\"\n (change)=\"toggleRitdeelZichtbaarheid(ritdeelViewModel.ritdeel)\"\n [hidden]=\"ritdeelViewModel.isNietBeschikbaar\"/>\n </td>\n <td id=\"ritdetails-r{{i}}-gewijzigd\" (click)=\"selectRitdeel($event, ritdeelViewModel.ritdeel)\">{{ritdeelViewModel.isNieuw}}</td>\n <td id=\"ritdetails-r{{i}}-vanSpoor\" (click)=\"selectRitdeel($event, ritdeelViewModel.ritdeel)\">{{ritdeelViewModel.vanPrlSpoor}}</td>\n <td id=\"ritdetails-r{{i}}-naarSpoor\" (click)=\"selectRitdeel($event, ritdeelViewModel.ritdeel)\">{{ritdeelViewModel.naarPrlSpoor}}</td>\n <td id=\"ritdetails-r{{i}}-dwangNummer\" (click)=\"selectRitdeel($event, ritdeelViewModel.ritdeel)\">{{ritdeelViewModel.dwangNummer}}</td>\n <td id=\"ritdetails-r{{i}}-pplgs\" (click)=\"selectRitdeel($event, ritdeelViewModel.ritdeel)\">{{ritdeelViewModel.pplgString}}</td>\n <td id=\"ritdetails-r{{i}}-treinNummer\" (click)=\"selectRitdeel($event, ritdeelViewModel.ritdeel)\">{{ritdeelViewModel.treinNummer}}</td>\n <td style=\"text-align:right\">\n <button *ngIf=\"editable\"\n id=\"ritdetails-r{{i}}-del\"\n type=\"button\"\n class=\"loxia-btn loxia-btn-danger btn-sm\"\n (click)=\"deleteRitdeel(ritdeelViewModel.ritdeel)\">X\n </button>\n </td>\n </tr>\n\n </table>\n </div>\n <div class=\"actie-pane\">\n <div *ngIf=\"selectedRitdeel && (selectedRitdeelActies.length > 0 || selectedRitdeelOngeplandeActies.length > 0) \"\n id=\"actie-pane\">\n <h4>Geplande acties</h4>\n <table aria-hidden=\"true\">\n <tr>\n <th scope=\"col\">Actie</th>\n <th scope=\"col\">Van</th>\n <th scope=\"col\">Tot</th>\n <th scope=\"col\">\n <button *ngIf=\"editable\"\n [hidden]=\"selectedRitdeelActies.length===0\"\n id=\"bulkSetOngeplandButton\"\n [attr.data-test-id]=\"'unplan-all-actions'\"\n type=\"button\"\n class=\"loxia-btn loxia-btn-danger btn-sm\"\n (click)=\"deleteActiesUitRit()\"\n [disabled]=\"disableActieKnoppenVanRitdeel\">X\n </button>\n </th>\n </tr>\n\n <tr *ngFor=\"let actie of selectedRitdeelActies; let i = index\" id=\"ritdetails-a{{i}}\">\n <td id=\"ritdetails-a{{i}}-omschrijving\" class=\"nowrap\">{{ actieOmschrijvingTekst(actie) }}</td>\n <td id=\"ritdetails-a{{i}}-vanKmLint\">{{ actieVanKmTekst(actie)}}</td>\n <td id=\"ritdetails-a{{i}}-totKmLint\">{{ actieTotKmTekst(actie)}}</td>\n <td style=\"text-align:right\">\n <button *ngIf=\"editable\"\n id=\"ritdetails-a{{i}}-del\"\n type=\"button\"\n class=\"loxia-btn loxia-btn-danger btn-sm\"\n (click)=\"deleteActieUitRit(actie)\"\n [disabled]=\"disableActieKnoppenVanRitdeel\">X\n </button>\n </td>\n </tr>\n </table>\n <h4>Ongeplande acties</h4>\n <table aria-hidden=\"true\">\n <tr>\n <th scope=\"col\">Actie</th>\n <th scope=\"col\">Van</th>\n <th scope=\"col\">Tot</th>\n <th scope=\"col\">\n <button *ngIf=\"editable\"\n [hidden]=\"selectedRitdeelOngeplandeActies.length===0\"\n id=\"bulkSetGeplandButton\"\n [attr.data-test-id]=\"'plan-all-actions'\"\n type=\"button\"\n class=\"loxia-btn loxia-btn-success loxia-btn-sm\"\n (click)=\"voegActiesToeAanRit()\"\n [disabled]=\"disableActieKnoppenVanRitdeel\">^\n </button>\n </th>\n </tr>\n\n <tr *ngFor=\"let ongeplandeActie of selectedRitdeelOngeplandeActies; let i = index\"\n id=\"ritdetails-oa{{i}}\">\n <td id=\"ritdetails-oa{{i}}-omschrijving\" class=\"nowrap\">{{actieOmschrijvingTekst(ongeplandeActie.actie) }}</td>\n <td id=\"ritdetails-oa{{i}}-vanKmLint\">{{ actieVanKmTekst(ongeplandeActie.actie)}}</td>\n <td id=\"ritdetails-oa{{i}}-totKmLint\">{{ actieTotKmTekst(ongeplandeActie.actie)}}</td>\n <td style=\"text-align:right\">\n <button *ngIf=\"editable\"\n id=\"ritdetails-oa{{i}}-del\"\n type=\"button\"\n class=\"loxia-btn loxia-btn-success loxia-btn-sm\"\n (click)=\"voegActieToeAanRit(ongeplandeActie)\"\n [disabled]=\"disableActieKnoppenVanRitdeel\">^\n </button>\n </td>\n </tr>\n </table>\n </div>\n </div>\n <div class=\"knop-pane\">\n <button type=\"button\"\n class=\"loxia-btn loxia-btn-primary loxia-btn-sm\"\n [attr.data-test-id]=\"'plan-all-actions-for-file'\"\n [innerText]=\"'Plan acties hele rit'\"\n (click)=\"planAlleRitActies()\">\n </button>\n </div>\n </div>\n</div>\n","import {Component, EventEmitter, HostListener, OnDestroy, Output} from '@angular/core';\nimport {Store} from '@ngrx/store';\nimport {Subscription} from 'rxjs';\nimport {Ritdeel} from '../../model/ritdeel';\nimport {setRitdeelZichtbaar, setZichtbaarheidAlleRitdelen} from '../../state/actions/ritdelen.actions';\nimport {MstEditorState} from '../../state/mst-editor-state';\n\n@Component({\n selector: 'ritdelen-view',\n templateUrl: './ritdelen-view.component.html',\n styleUrls: ['./ritdelen-view.component.scss'],\n standalone: false\n})\nexport class RitdelenViewComponent implements OnDestroy {\n @Output() focusEmitter = new EventEmitter<Ritdeel>();\n\n @HostListener('window:keyup', ['$event'])\n keyEvent(event: KeyboardEvent): void {\n if (event.key === 'ArrowLeft' && this.selectedRitdeelIndex > 0) {\n this.selectRitdeel(this.selectedRitdeelIndex - 1);\n } else if (event.key === 'ArrowRight' && this.selectedRitdeelIndex < this.ritdeelViewModels.length) {\n this.selectRitdeel(this.selectedRitdeelIndex + 1);\n }\n }\n\n ritdeelViewModels: RitdeelViewModel[] = [];\n selectedRitdeelIndex = -1;\n\n\n private readonly subscriptions: Subscription[] = [];\n\n constructor(private readonly store: Store<MstEditorState>) {\n this.subscriptions.push(store.select('ritDelen').subscribe(ritdelen => this.handleRitDelenUpdate(ritdelen)));\n }\n\n ngOnDestroy(): void {\n this.subscriptions.forEach(s => s.unsubscribe());\n }\n\n selectedRitdeelClass(ritdeel: Ritdeel): string {\n const ritdeelIndex = this.ritdeelViewModels.findIndex(r => r.ritdeel === ritdeel);\n if (this.selectedRitdeelIndex !== -1 && this.selectedRitdeelIndex === ritdeelIndex) {\n return 'selected';\n }\n if (ritdeel.getZichtbaarheidBuitenPaginatie()) {\n return 'visible-outside-window';\n }\n if (ritdeel.isNietBeschikbaar()) {\n return 'disabled';\n }\n return '';\n }\n\n selectRitdeel(index: number): void {\n if (this.selectedRitdeelIndex >= 0) {\n this.store.dispatch(setRitdeelZichtbaar(this.ritdeelViewModels[this.selectedRitdeelIndex].ritdeel, false));\n }\n this.selectedRitdeelIndex = index;\n const ritdeel = this.ritdeelViewModels[index].ritdeel;\n this.focusEmitter.emit(ritdeel);\n this.store.dispatch(setRitdeelZichtbaar(ritdeel, true));\n }\n\n private handleRitDelenUpdate(ritdelen: Ritdeel[]): void {\n this.ritdeelViewModels = ritdelen.map(ritdeel => new RitdeelViewModel(\n ritdeel,\n ritdeel.getVanPrlSpoor(),\n ritdeel.getNaarPrlSpoor(),\n ritdeel.getDwangNummer(),\n ritdeel.getVanSeinName(),\n ritdeel.getNaarSeinName(),\n ritdeel.getTreinNummer()\n ));\n\n setTimeout(() => {\n if (this.meerdereRitDelenZichtbaar()) {\n this.store.dispatch(setZichtbaarheidAlleRitdelen(false));\n if (this.ritdelenBeschikbaarMaarZonderSelectie()) {\n this.selectRitdeel(0);\n } else if (this.ritdeelViewModels.length > 0) {\n this.selectRitdeel(this.selectedRitdeelIndex);\n }\n }\n });\n }\n\n private ritdelenBeschikbaarMaarZonderSelectie(): boolean {\n return this.ritdeelViewModels.length > 0 && this.selectedRitdeelIndex < 0;\n }\n\n private meerdereRitDelenZichtbaar(): boolean {\n let count = 0;\n for (const ritdeelViewModel of this.ritdeelViewModels) {\n if (ritdeelViewModel.ritdeel.isNietBeschikbaar()) {\n continue;\n }\n if (ritdeelViewModel.ritdeel.isZichtbaar()) {\n count++;\n if (count > 1) {\n return true;\n }\n }\n }\n return false;\n }\n}\n\nclass RitdeelViewModel {\n constructor(\n readonly ritdeel: Ritdeel,\n readonly vanPrlSpoor: string,\n readonly naarPrlSpoor: string,\n readonly dwangNummer: number,\n readonly vanSeinName: string,\n readonly naarSeinName: string,\n readonly treinNummer: string) {\n }\n}\n","<div id=\"ritdelen-lijst\">\n <div class=\"sidebar-header\">\n <h3>Ritdetails view</h3>\n </div>\n <div class=\"panes-container\">\n <div class=\"top-pane tableFixHead\" id=\"top-pane\">\n <table class=\"table\" aria-hidden=\"true\">\n <thead>\n <tr>\n <th scope=\"col\"></th>\n <th scope=\"col\" colspan=\"2\" style=\"text-align:center;\">Spoor</th>\n <th scope=\"col\"></th>\n <th scope=\"col\" colspan=\"2\" style=\"text-align:center;\">Sein</th>\n <th scope=\"col\"></th>\n <th scope=\"col\"></th>\n </tr>\n <tr>\n <th scope=\"col\"></th>\n <th scope=\"col\">Van</th>\n <th scope=\"col\">Naar</th>\n <th scope=\"col\">DW</th>\n <th scope=\"col\">Van</th>\n <th scope=\"col\">Naar</th>\n <th scope=\"col\">Treinnummer</th>\n <th scope=\"col\"></th>\n </tr>\n </thead>\n\n <tr *ngFor=\"let ritdeelViewModel of ritdeelViewModels; let i = index\"\n class=\"{{ selectedRitdeelClass(ritdeelViewModel.ritdeel) }}\" id=\"ritdetails-r{{i}}\">\n <td id=\"ritdetails-r{{i}}-gewijzigd\" (click)=\"selectRitdeel(i)\"></td>\n <td id=\"ritdetails-r{{i}}-vanSpoor\" (click)=\"selectRitdeel(i)\">{{ritdeelViewModel.vanPrlSpoor}}</td>\n <td id=\"ritdetails-r{{i}}-naarSpoor\" (click)=\"selectRitdeel(i)\">{{ritdeelViewModel.naarPrlSpoor}}</td>\n <td id=\"ritdetails-r{{i}}-dwangNummer\" (click)=\"selectRitdeel(i)\">{{ritdeelViewModel.dwangNummer}}</td>\n <td id=\"ritdetails-r{{i}}-vanSeinName\" (click)=\"selectRitdeel(i)\">{{ritdeelViewModel.vanSeinName}}</td>\n <td id=\"ritdetails-r{{i}}-naarSeinName\" (click)=\"selectRitdeel(i)\">{{ritdeelViewModel.naarSeinName}}</td>\n <td id=\"ritdetails-r{{i}}-treinNummer\" (click)=\"selectRitdeel(i)\">{{ritdeelViewModel.treinNummer}}</td>\n <td style=\"text-align:right\">\n </td>\n </tr>\n </table>\n </div>\n </div>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { filter, map } from 'rxjs/operators';\nimport { Ritdeel } from '../../model/ritdeel';\nimport { InfraModel } from '../../optimo';\nimport { navigeer } from '../../state/actions/ritdelen.actions';\nimport { MstEditorState } from '../../state/mst-editor-state';\n\n@Component({\n selector: 'carousel-controls',\n templateUrl: './carousel-controls.component.html',\n styleUrls: ['./carousel-controls.component.scss'],\n standalone: false\n})\nexport class CarouselControlsComponent {\n @Input() paginationSize = 4;\n @Input() iaversieinfo: InfraModel;\n @Input() sideNavOpen: boolean;\n\n ritdelen$ = this.store.select('ritDelen').pipe(filter(r => r?.length > 0));\n kanLinks$ = this.ritdelen$.pipe(map(r => this.kanLinksNavigeren(r)));\n kanRechts$ = this.ritdelen$.pipe(map(r => this.kanRechtsNavigeren(r)));\n\n constructor(private store: Store<MstEditorState>) {\n }\n\n private kanLinksNavigeren(ritDelen: Ritdeel[]): boolean {\n return ritDelen.length > this.paginationSize && !ritDelen[0].isBinnenWindow();\n }\n\n private kanRechtsNavigeren(ritDelen: Ritdeel[]): boolean {\n return ritDelen.length > this.paginationSize && !ritDelen[ritDelen.length - 1].isBinnenWindow();\n }\n\n navigeerNaarLinks(event: MouseEvent): void {\n this.store.dispatch(navigeer(event?.ctrlKey ? -1 : -(this.paginationSize - 1), this.paginationSize, this.iaversieinfo));\n }\n\n navigeerNaarRechts(event: MouseEvent): void {\n this.store.dispatch(navigeer(event?.ctrlKey ? 1 : this.paginationSize - 1, this.paginationSize, this.iaversieinfo));\n }\n}\n","<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","import { Component, EventEmitter, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { Subscription } from 'rxjs';\nimport { InfraModel, Rit } from '../../optimo';\nimport { BewegingUtils } from '../../services/beweging-utils.service';\nimport { ViewerControlService } from '../../services/viewer-control.service';\nimport { MstEditorState } from '../../state/mst-editor-state';\n\n@Component({\n selector: 'viewer-controls',\n templateUrl: './viewer-controls.component.html',\n styleUrls: ['./viewer-controls.component.scss'],\n standalone: false\n})\nexport class ViewerControlsComponent implements OnChanges {\n @Input() paginationSize = 4;\n @Input() iaversieinfo: InfraModel;\n @Input() treinpad: Rit;\n @Input() goedgekeurd: EventEmitter<Rit>;\n\n printing$ = this.viewerControlsService.isPrinting$();\n valideRit$ = this.viewerControlsService.isValideRit$();\n\n subscriptions = new Subscription();\n editable: boolean;\n\n constructor(private store: Store<MstEditorState>,\n public viewerControlsService: ViewerControlService,\n private bewegingUtils: BewegingUtils) {\n this.subscriptions.add(this.store.select('editable').subscribe(editable => this.editable = editable));\n }\n\n ngOnChanges({ treinpad }: SimpleChanges): void {\n if (treinpad && this.treinpad) {\n this.viewerControlsService.setOrigineelTreinPad(this.treinpad);\n }\n }\n\n showGoedkeuren(): boolean {\n return this.editable && this.viewerControlsService.selectieInfos.length !== 0;\n }\n\n goedkeurenClick(): void {\n const ritDelen = this.viewerControlsService.ritdelen;\n if (ritDelen) {\n delete this.treinpad.aantalRitActies;\n this.treinpad.bewegingen = this.bewegingUtils.extractBewegingenUitRitdelen(ritDelen, this.viewerControlsService.origineelTreinPad.bewegingen);\n this.goedgekeurd.emit(this.treinpad);\n this.viewerControlsService.setOrigineelTreinPad(this.treinpad);\n }\n }\n\n}\n","<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","import { sbblad } from '@loxia/rijwegen';\nimport { Ritdeel } from './ritdeel';\n\nexport class AlternatiefRitDeel {\n\n constructor(public ritDeel: Ritdeel, public alternatieveRoute: sbblad.AlternativeRoute) {\n\n }\n\n}\n","import { domein } from '@loxia/rijwegen';\nimport { Ritdeel } from './ritdeel';\n\nexport class SeinOpRitdeel {\n constructor(public sein: domein.Sein, public ritdeel: Ritdeel) {\n }\n}\n","import { PopoverInfo } from '@loxia/imx-viewer';\nimport { OngeplandeActie } from '../model/ongeplande-actie';\nimport { Ritdeel } from '../model/ritdeel';\nimport { Actie } from '../optimo';\nimport { ActieHelper } from './actie-helper';\nimport { ArrayMultimap } from './multi-map';\n\ninterface TreinNummerActieInfo {\n treinNummer: number;\n actie: Actie;\n}\n\nexport class ActiePopoverBepaler {\n static bepaalPopoverInfos(ritDelen: Ritdeel[], ritActieTopoPuics: ArrayMultimap<Actie, string>,\n ongeplandeActies: ArrayMultimap<string, OngeplandeActie>): PopoverInfo[] {\n const puicNaarActieMap = this.bepaalPuicNaarActieMap(ritDelen, ritActieTopoPuics);\n const puicNaarOngeplandeActieMap = this.bepaalPuicNaarOngeplandeActieMap(ongeplandeActies);\n\n const puics = puicNaarActieMap.keys();\n puics.push(...puicNaarOngeplandeActieMap.keys().filter(p => !puics.includes(p)));\n\n const infos = [];\n puics.forEach(puic => {\n let content = '';\n const treinNummerActieInfosGepland = puicNaarActieMap.get(puic).sort(this.sortTreinNummerActieInfo());\n const treinNummerActieInfosOngepland = puicNaarOngeplandeActieMap.get(puic).sort(this.sortTreinNummerActieInfo());\n const showTreinNummer = treinNummerActieInfosGepland.some(i => !!i.treinNummer)\n || treinNummerActieInfosOngepland.some(i => !!i.treinNummer);\n treinNummerActieInfosGepland.forEach(a => content = this.vulPopoverContent(content, a, 'popovertekst-gepland', showTreinNummer));\n treinNummerActieInfosOngepland.forEach(a => content = this.vulPopoverContent(content, a, 'popovertekst-ongepland', showTreinNummer));\n\n const info = this.createPopoverInfo(content, puic, showTreinNummer);\n infos.push(info);\n });\n return infos;\n }\n\n private static createPopoverInfo(content: string, puic: string, showTreinNummer: boolean): PopoverInfo {\n const info = new PopoverInfo([puic], content);\n info.popoverTitleContent = showTreinNummer ? '<span class=\"treinnummer\">Trein #</span><span>Acties</span>' : 'Acties';\n return info;\n }\n\n private static sortTreinNummerActieInfo(): (a: TreinNummerActieInfo, b: TreinNummerActieInfo) => number {\n return (a1, a2): number => ActieHelper.actieComparator(a1.actie, a2.actie);\n }\n\n private static bepaalPuicNaarOngeplandeActieMap(ongeplandeActies: ArrayMultimap<string, OngeplandeActie>): ArrayMultimap<string, TreinNummerActieInfo> {\n const puicNaarOngeplandeActieMap = new ArrayMultimap<string, TreinNummerActieInfo>();\n if (ongeplandeActies.size() > 0) {\n ongeplandeActies.entries.forEach(entry => {\n const treinNummerActieInfos = puicNaarOngeplandeActieMap.get(entry.key);\n if (!treinNummerActieInfos?.map(({ actie }) => actie).includes(entry.value.actie)) {\n puicNaarOngeplandeActieMap.put(entry.key, { treinNummer: undefined, actie: entry.value.actie });\n }\n });\n }\n return puicNaarOngeplandeActieMap;\n }\n\n private static bepaalPuicNaarActieMap(ritDelen: Ritdeel[], ritActieTopoPuics: ArrayMultimap<Actie, string>): ArrayMultimap<string, TreinNummerActieInfo> {\n const puicNaarActieMap = new ArrayMultimap<string, TreinNummerActieInfo>();\n ritDelen.forEach(ritDeel => {\n if (ritDeel.isZichtbaar() && ritDeel.acties.length !== 0) {\n ritDeel.acties.forEach(ritActie => {\n const puics = ritActieTopoPuics.get(ritActie);\n puics.forEach(puic => {\n this.addToPuicNaarActieMapIfNotExists(puicNaarActieMap, puic, ritActie, ritDeel.beweging?.treinNummer);\n });\n });\n }\n });\n return puicNaarActieMap;\n }\n\n private static addToPuicNaarActieMapIfNotExists(puicNaarActieMap: ArrayMultimap<string, TreinNummerActieInfo>, puic: string, ritActie: Actie, treinNummer: number): void {\n const treinNummerActieInfos = puicNaarActieMap.get(puic);\n if (!(treinNummerActieInfos?.find(({ actie }) => actie === ritActie))) {\n const actieInfo: TreinNummerActieInfo = { treinNummer, actie: ritActie };\n puicNaarActieMap.put(puic, actieInfo);\n }\n }\n\n private static vulPopoverContent(content: string, { treinNummer, actie }: TreinNummerActieInfo, clazz: string, showTreinNummer: boolean): string {\n let retval = content;\n const treinnummerClass = showTreinNummer ? 'class=\"treinnummer\"' : 'class=\"no-treinnummer\"';\n\n retval += '<div class=\"nowrap ' + clazz + '\">';\n retval += `<span ${ treinnummerClass }>${ treinNummer || '-' }</span>`;\n\n let actieOmschrijving = '';\n if (ActieHelper.isVSTActie(actie)) {\n actieOmschrijving += ActieHelper.getVSTActieOmschrijving(actie);\n } else if (ActieHelper.isWisselSlijpenActie(actie)) {\n actieOmschrijving += `${ actie.ritActieTypeOmschrijving } ${ actie.wisselNaam }`;\n } else {\n actieOmschrijving += `${ actie.ritActieTypeOmschrijving } ${ actie.vanKilometerlint } ${ actie.vanKilometrering }`;\n actieOmschrijving += '-';\n if (actie.totKilometerlint !== actie.vanKilometerlint) {\n actieOmschrijving += actie.totKilometerlint;\n actieOmschrijving += ' ';\n }\n actieOmschrijving += actie.totKilometrering;\n }\n retval += `<span>${ actieOmschrijving }</span></div>`;\n return retval;\n }\n}\n","import { Component, Input, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { ImxViewerComponent, PopoverInfo, SelectieEvent, SvgInfo } from '@loxia/imx-viewer';\nimport { domein, sbblad } from '@loxia/rijwegen';\nimport { Store } from '@ngrx/store';\nimport { combineLatest, Observable, Subscription } from 'rxjs';\nimport { AlternatiefRitDeel } from '../../model/alternatief-rit-deel';\nimport { OngeplandeActie } from '../../model/ongeplande-actie';\nimport { RijwegplanRijwegDwangCombinatie } from '../../model/rijwegplan-rijweg-dwang-combinatie';\nimport { Ritdeel } from '../../model/ritdeel';\nimport { SeinOpRitdeel } from '../../model/sein-op-ritdeel';\nimport { Actie } from '../../optimo';\nimport { EditorService } from '../../services/editor.service';\nimport { SignaleringsBeeldManagerService } from '../../services/signalerings-beeld-manager.service';\nimport { ViewerControlService } from '../../services/viewer-control.service';\nimport {\n AddOngeplandeActie,\n BepaalOngeplandeActies,\n BewegingInvoegen,\n ClearProgress, SetSelectedRitdeel,\n navigeerBuitenRit,\n ResetNieuweRoute,\n SetActieOpRitSelectieIds,\n SetAlternatievenClickableIds,\n SetAlternatievenSelectieIds,\n SetBeginSeinRightClickableIds,\n SetBeginSeinSelectieIds,\n SetEindSeinenClickableIds,\n SetEindSeinSelectieIds,\n SetGebrokenRitSelectieIds,\n SetGeplandeActies,\n SetNieuwRouteEindSein,\n SetRitSelectieIds\n} from '../../state/actions/actions';\nimport { ritdeelInvoegen, setAlternatieveRitDelen } from '../../state/actions/ritdelen.actions';\nimport { MstEditorState } from '../../state/mst-editor-state';\nimport { ActieHelper } from '../../util/actie-helper';\nimport { ActiePopoverBepaler } from '../../util/actie-popover-bepaler';\nimport { ArrayMultimap } from '../../util/multi-map';\nimport Utils from '../../util/utils';\n\n@Component({\n selector: 'svg-visualisatie',\n templateUrl: './svg-visualisatie.component.html',\n styleUrls: ['./svg-visualisatie.component.scss'],\n standalone: false\n})\nexport class SvgVisualisatieComponent implements OnInit, OnDestroy {\n\n @Input() nietGeplandeActies: Actie[];\n @Input() useClickArea: boolean;\n\n @ViewChild('imxviewercontainer') imxviewer: ImxViewerComponent;\n\n svgInfos$: Observable<SvgInfo[]> = this.store.select('svgInfos');\n popoverInfos: PopoverInfo[] = [];\n clickableIds: string[] = [];\n\n rightClickableIds: string[] = [];\n contextMenuActions: any = [];\n contextMenuStyle: any = { display: 'none' };\n editable: boolean;\n\n private puicNaarBeginSeinRitdeel = new Map<string, SeinOpRitdeel>();\n private puicNaarEindSeinCombinatie = new Map<string, RijwegplanRijwegDwangCombinatie>();\n private puicNaarAlternatieveRoute = new Map<string, AlternatiefRitDeel>();\n\n private ongeplandeActiesBepaald = false;\n private subscriptions: Subscription[] = [];\n\n constructor(private store: Store<MstEditorState>,\n public viewerControlsService: ViewerControlService,\n private actieHelper: ActieHelper,\n private sbmService: SignaleringsBeeldManagerService,\n private editorService: EditorService) {\n this.onRitdelenUpdate();\n this.triggerClickableIdBepaling();\n this.triggerRightClickableIdBepaling();\n this.handleNieuweRouteToegevoegd();\n this.setupTriggerPopoverBepaling();\n\n this.subscriptions.push(this.store.select('editable').subscribe(editable => {\n this.editable = editable;\n }));\n this.subscriptions.push(this.store.select('ongeplandeActiesBepaald')\n .subscribe(ongeplandeActiesBepaald => this.ongeplandeActiesBepaald = ongeplandeActiesBepaald));\n this.subscriptions.push(this.store.select('focusIds')\n .subscribe(focusIds => {\n if (focusIds && this.imxviewer) {\n this.imxviewer.focusOnIds(focusIds);\n }\n }));\n }\n\n ngOnInit(): void {\n document.getElementById('contextMenu').addEventListener('mouseleave', () => this.hideContextMenu());\n }\n\n ngOnDestroy(): void {\n this.subscriptions.forEach(s => s.unsubscribe());\n }\n\n handleImxviewClick(evt: SelectieEvent): void {\n const puic = evt.id as string;\n const alternatieveRitDeel = this.puicNaarAlternatieveRoute.get(puic);\n const combinatie = this.puicNaarEindSeinCombinatie.get(puic);\n if (alternatieveRitDeel) {\n alternatieveRitDeel.ritDeel.acties.forEach(actie => {\n const puics = this.actieHelper.bepaalPuicsVoorActie(actie);\n if (puics.length > 0) {\n this.store.dispatch(AddOngeplandeActie(new OngeplandeActie(actie, puics)));\n }\n });\n this.store.dispatch(setAlternatieveRitDelen(alternatieveRitDeel));\n } else if (combinatie) {\n this.store.dispatch(SetNieuwRouteEindSein(combinatie));\n } else {\n const rand = this.sbmService.getTopologyElementByPuic(puic);\n if (rand) {\n this.store.dispatch(navigeerBuitenRit(puic));\n }\n }\n\n this.store.dispatch(SetSelectedRitdeel(undefined));\n }\n\n handleImxviewRightClick(evt: SelectieEvent): void {\n const fn = (): void => {\n const startSeinOpRitdeel = this.puicNaarBeginSeinRitdeel.get(evt.id as string);\n if (startSeinOpRitdeel) {\n this.bewegingInvoegen(startSeinOpRitdeel);\n }\n };\n this.contextMenuActions = [];\n this.contextMenuActions.push({ label: 'beweging invoegen', click: fn });\n this.contextMenuStyle = {\n left: (evt.event.offsetX - 5) + 'px',\n top: (evt.event.offsetY - 5) + 'px',\n display: 'inline',\n position: 'absolute'\n };\n }\n\n bewegingInvoegen(startSeinOpRitdeel: SeinOpRitdeel): void {\n this.hideContextMenu();\n this.store.dispatch(BewegingInvoegen(startSeinOpRitdeel, this.puicNaarEindSeinCombinatie));\n }\n\n hideContextMenu(): void {\n this.contextMenuStyle = {\n display: 'none',\n position: 'absolute'\n };\n }\n\n private handleNieuweRouteToegevoegd(): void {\n this.store.select('nieuweRoute')\n .subscribe((nieuweRoute) => {\n if (nieuweRoute.isValid()) {\n this.store.dispatch(ResetNieuweRoute());\n this.store.dispatch(ritdeelInvoegen(nieuweRoute));\n }\n }\n );\n }\n\n private onRitdelenUpdate(): void {\n this.subscriptions.push(this.store.select('ritDelen').subscribe(ritDelen => {\n if (ritDelen && ritDelen.length > 0) {\n this.bepaalRouteHighlights(ritDelen);\n if (this.editable) {\n this.bepaalContextMenuVoorBeginSeinen(ritDelen);\n }\n if (!this.ongeplandeActiesBepaald) {\n this.bepaalOngeplandeActies();\n }\n }\n }));\n }\n\n private triggerClickableIdBepaling(): void {\n this.subscriptions.push(combineLatest([\n this.store.select('alternatievenClickableIds'),\n this.store.select('eindSeinenClickableIds'),\n this.store.select('connectorClickableIds')]\n ).subscribe(([alternatievenClickableIds, eindSeinenClickableIds, connectorClickableIds]) =>\n this.clickableIds = [...alternatievenClickableIds, ...eindSeinenClickableIds, ...connectorClickableIds]));\n }\n\n private triggerRightClickableIdBepaling(): void {\n this.subscriptions.push(combineLatest([this.store.select('beginSeinRightClickableIds')]\n ).subscribe(([beginSeinRightClickableIds]) => {\n const ids = [];\n ids.push(...beginSeinRightClickableIds);\n this.rightClickableIds = ids;\n }\n ));\n }\n\n private setupTriggerPopoverBepaling(): void {\n this.subscriptions.push(combineLatest([\n this.store.select('ritDelen'),\n this.store.select('ongeplandeActies'),\n this.store.select('geplandeActies')]\n ).subscribe(([ritdelen, ongeplandeActies, geplandeActies]) => {\n if (ritdelen && ritdelen.length > 0 && geplandeActies && ongeplandeActies) {\n this.popoverInfos = ActiePopoverBepaler.bepaalPopoverInfos(ritdelen, geplandeActies, ongeplandeActies);\n }\n }\n ));\n }\n\n bepaalOngeplandeActies(): void {\n if (this.nietGeplandeActies) {\n this.store.dispatch(BepaalOngeplandeActies(this.nietGeplandeActies));\n }\n }\n\n private bepaalContextMenuVoorBeginSeinen(ritDelen: Ritdeel[]): void {\n if (!this.sbmService.isReady()) {\n return;\n }\n\n let ids = [];\n ritDelen.filter(ritDeel => ritDeel.isZichtbaar()).forEach(ritDeel => {\n const puics = ritDeel.getSeinen().flatMap(sein => this.verzamelBeginSeinInformatie(sein, ritDeel));\n ids = ids.concat(puics);\n });\n\n this.store.dispatch(SetBeginSeinRightClickableIds(ids));\n this.store.dispatch(SetBeginSeinSelectieIds([]));\n this.store.dispatch(SetEindSeinSelectieIds([]));\n this.store.dispatch(SetEindSeinenClickableIds([]));\n }\n\n private verzamelBeginSeinInformatie(sein: domein.Sein, ritDeel: Ritdeel): string[] {\n const puics: string[] = [];\n const sbSein = this.sbmService.getSBSein(sein);\n if (sbSein) {\n const puic = sbSein.getPuic();\n puics.push(puic);\n this.puicNaarBeginSeinRitdeel.set(puic, new SeinOpRitdeel(sein, ritDeel));\n }\n const altSbSein = this.sbmService.getTechnischAlternatiefSBSein(sbSein);\n if (altSbSein) {\n const puic = altSbSein.getPuic();\n puics.push(puic);\n const rwp = this.editorService.getRijwegplan(altSbSein.getPPLG());\n const domeinSein = rwp.getBeginSein(altSbSein.getName());\n // sein kan niet altijd gevonden worden omdat er niet altijd een rijweg vanaf dit sein is, bijv bij veerwissel.\n if (domeinSein) {\n this.puicNaarBeginSeinRitdeel.set(puic, new SeinOpRitdeel(domeinSein, ritDeel));\n }\n }\n return puics;\n }\n\n private bepaalRouteHighlights(ritDelen: Ritdeel[]): void {\n let ritSelectiePuics = [];\n const actieOpRitSelectiePuics = new ArrayMultimap<Actie, string>();\n let gebrokenRitSelectiePuics = [];\n const alternatieveRoutePuics = [];\n const clickableIds = [];\n let laatsteNaarSpoor: string;\n const bestaatUit1Ritdeel = ritDelen.length === 1;\n let gebrokenRit = false;\n ritDelen.forEach(ritDeel => {\n if (ritDeel.isZichtbaar()) {\n const map: ArrayMultimap<Actie, string> = this.actieHelper.bepaalActiePuicsUitRitdeel(ritDeel);\n map.keys().forEach(key => actieOpRitSelectiePuics.putAll(key, map.get(key)));\n\n const isGebrokenRitdeel = !bestaatUit1Ritdeel && this.isGebrokenRitdeel(ritDeel, laatsteNaarSpoor);\n const puics = [...this.getPuics(ritDeel.getTopologieElementen()),\n ...this.sbmService.getPuicsVoorSeinenInRoute(ritDeel.getRoute())];\n\n if (puics && isGebrokenRitdeel) {\n gebrokenRitSelectiePuics = gebrokenRitSelectiePuics.concat(puics);\n } else if (puics) {\n ritSelectiePuics = ritSelectiePuics.concat(puics);\n }\n\n this.bepaalAlternatieven(ritDeel, clickableIds, alternatieveRoutePuics);\n\n gebrokenRit = gebrokenRit || isGebrokenRitdeel;\n }\n laatsteNaarSpoor = ritDeel.getVisueelNaarPrlSpoor();\n });\n\n this.viewerControlsService.setValideRit(!gebrokenRit);\n\n this.store.dispatch(SetGeplandeActies(actieOpRitSelectiePuics));\n const actieOpRitSelectiePuicsArray = Utils.flatMap(Array.from(actieOpRitSelectiePuics.values()), x => x);\n this.store.dispatch(SetActieOpRitSelectieIds(actieOpRitSelectiePuicsArray));\n ritSelectiePuics = ritSelectiePuics.filter(item => actieOpRitSelectiePuicsArray.indexOf(item) < 0); // make mutually exclusive\n this.store.dispatch(SetRitSelectieIds(ritSelectiePuics));\n this.store.dispatch(SetGebrokenRitSelectieIds(gebrokenRitSelectiePuics));\n this.store.dispatch(SetAlternatievenClickableIds(this.editable ? clickableIds : []));\n this.store.dispatch(SetAlternatievenSelectieIds(this.editable ? alternatieveRoutePuics : []));\n this.store.dispatch(ClearProgress());\n }\n\n private bepaalAlternatieven(ritDeel: Ritdeel, clickableIds: string[], alternatieveRoutePuics: string[]): void {\n ritDeel.getAlternatieveRoutes()?.forEach(alternatieveRoute => {\n const alternatieveTopoElementen =\n this.sbmService.bepaalAlternativeRouteHighlights(alternatieveRoute, ritDeel.getTopologieElementen());\n\n const altPuics = this.getPuics(alternatieveTopoElementen);\n if (altPuics) {\n clickableIds.push(...altPuics);\n altPuics.forEach(puic => {\n this.puicNaarAlternatieveRoute.set(puic, new AlternatiefRitDeel(ritDeel, alternatieveRoute));\n alternatieveRoutePuics.push(puic);\n });\n }\n });\n }\n\n private isGebrokenRitdeel(ritDeel, laatsteNaarSpoor): boolean {\n const isGebrokenRitdeel = !(!laatsteNaarSpoor || ritDeel.getVanPrlSpoor() === laatsteNaarSpoor);\n if (isGebrokenRitdeel) {\n console.log('Rit van ' + ritDeel.getVanPrlSpoor() + ' naar ' + ritDeel.getNaarPrlSpoor()\n + ' in pplg ' + ritDeel.getPplg() + ' sluit niet aan op vorige beweging.');\n }\n return isGebrokenRitdeel;\n }\n\n private getPuics(topoElementen: sbblad.HasIdentifier[]): string[] {\n return topoElementen.map(e => e.getPuic());\n }\n}\n","<imx-viewer #imxviewercontainer\n [svgInfo]=\"svgInfos$ | async\"\n [selectieInfos]=\"viewerControlsService.selectieInfos\"\n [clickableIds]=\"clickableIds\"\n [rightClickableIds]=\"rightClickableIds\"\n [popoverInfos]=\"popoverInfos\"\n [inlineDgnCssImport]=\"false\"\n [useClickArea]=\"useClickArea\"\n [zoomScaleSensitivity]=\"0.25\"\n (clickHandler)=\"handleImxviewClick($event)\"\n (rightClickHandler)=\"handleImxviewRightClick($event)\"\n ></imx-viewer>\n\n<ul id=\"contextMenu\" class=\"dropdown-menu\" role=\"menu\" [ngStyle]=\"contextMenuStyle\">\n <li *ngFor=\"let action of contextMenuActions\"><a class=\"dropdown-item\" tabindex=\"-1\"\n (click)=\"action.click()\">{{action.label}}</a></li>\n</ul>\n","import { Component, EventEmitter, Input, OnChanges, OnDestroy, OnInit, Output, SimpleChanges } from '@angular/core';\nimport { select, Store } from '@ngrx/store';\nimport { Observable, Subscription } from 'rxjs';\nimport { version } from '../../../generated.version';\nimport { ProgressIndicator } from '../../atomic-components/progress-indicator/progress-indicator.entity';\nimport { Ritdeel } from '../../model/ritdeel';\nimport { Actie, InfraModel, Rit } from '../../optimo';\nimport { DebugService } from '../../services/debug.service';\nimport { PrintBewegingService } from '../../services/print-beweging.service';\nimport { ViewerControlService } from '../../services/viewer-control.service';\nimport * as MstActions from '../../state/actions/actions';\nimport { SetBaseUrl, SetIaVersie, SetOngeplandeActiesBepaald } from '../../state/actions/actions';\nimport { setRitdelenAfterUpdate } from '../../state/actions/ritdelen.actions';\nimport { MstEditorState } from '../../state/mst-editor-state';\n\n@Component({\n selector: 'mst-viewer',\n templateUrl: './mstviewer.component.html',\n styleUrls: ['./mstviewer.component.scss'],\n standalone: false\n})\nexport class MstviewerComponent implements OnChanges, OnInit, OnDestroy {\n @Input() iaversieinfo: InfraModel;\n @Input() treinpad: Rit;\n @Input() ongeplandeActies: Actie[];\n @Input() paginationSize = 4;\n @Input() baseurl = 'https://acceptatie.raildesign.nl';\n @Input() debug: boolean;\n @Input() viewer: boolean;\n @Input() useClickArea: boolean;\n\n @Output() goedgekeurd: EventEmitter<Rit> = new EventEmitter();\n\n progressIndicator$: Observable<ProgressIndicator>;\n\n private subscriptions: Subscription = new Subscription();\n\n constructor(private store: Store<MstEditorState>,\n public viewerControlsService: ViewerControlService,\n private debugService: DebugService,\n private printBewegingService: PrintBewegingService) {\n\n this.subscriptions.add(this.store.select('nieuweBewegingen').subscribe(nieuweRit => {\n if (this.treinpad) {\n this.treinpad.bewegingen = nieuweRit;\n store.dispatch(setRitdelenAfterUpdate([]));\n store.dispatch(SetOngeplandeActiesBepaald(false));\n this.bepaalSbInfos(true);\n }\n }));\n this.progressIndicator$ = this.store.pipe(select(s => s.progressState?.progressIndicator));\n }\n\n ngOnInit(): void {\n // eslint-disable-next-line no-console\n console.log('MST viewer versie: ' + version);\n }\n\n ngOnChanges({ debug, baseurl, treinpad, ongeplandeActies, iaversieinfo }: SimpleChanges): void {\n if (debug) {\n this.debugService.setDebugFlag(debug.currentValue);\n }\n if (baseurl) {\n this.store.dispatch(SetBaseUrl(baseurl.currentValue));\n }\n if (treinpad || ongeplandeActies) {\n this.bepaalSbInfos();\n }\n if (iaversieinfo) {\n this.store.dispatch(SetIaVersie(iaversieinfo.currentValue));\n this.bepaalSbInfos();\n }\n if (ongeplandeActies) {\n this.store.dispatch(SetOngeplandeActiesBepaald(false));\n }\n }\n\n ngOnDestroy(): void {\n this.debugService.setDebugFlag(false);\n this.subscriptions.unsubscribe();\n }\n\n focusRitdeel(ritdeel: Ritdeel): void {\n this.store.dispatch(MstActions.focusOpRitdeel(ritdeel, this.paginationSize, this.iaversieinfo));\n }\n\n focusPuic(puics: string[]): void {\n this.store.dispatch(MstActions.focusOpIds(puics));\n }\n\n bepaalSbInfos(ritGewijzigdToegestaan = false): void {\n if (this.treinpad && this.ongeplandeActies && this.iaversieinfo?.versie) {\n this.store.dispatch(MstActions.bepaalSbInfos(this.treinpad, this.ongeplandeActies, this.iaversieinfo?.versie, ritGewijzigdToegestaan, this.paginationSize));\n }\n }\n\n printFocusBeweging(bewegingId: number): Promise<boolean> {\n return this.printBewegingService.printBeweging(bewegingId, this.paginationSize, this.iaversieinfo);\n }\n\n keurAlleActiesGoed(): void {\n this.viewerControlsService.keurAlleActiesGoed(this.ongeplandeActies);\n }\n}\n","<loxia-messages></loxia-messages>\n<mst-overlay *ngIf=\"(progressIndicator$ | async)\" >\n <mst-progress-indicator id=\"progress-indicator\">\n </mst-progress-indicator>\n</mst-overlay>\n\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","import { Injectable, OnDestroy } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport {\n IResourceMethodObservable,\n Resource,\n ResourceAction,\n ResourceHandler,\n ResourceModel,\n ResourceParams,\n ResourceRequestMethod\n} from '@ngx-resource/core';\nimport { Subscription } from 'rxjs';\nimport { MstEditorState } from '../state/mst-editor-state';\n\n@Injectable()\n@ResourceParams({\n pathPrefix: '/mst/rest/signaleringsbeeldeninfo'\n})\n\nexport class SignaleringsbeeldInfoResource extends Resource implements OnDestroy{\n private subscriptions = new Subscription();\n\n constructor(restHandler: ResourceHandler, private store: Store<MstEditorState>) {\n super(restHandler);\n this.subscriptions.add(this.store.select('baseUrl').subscribe(baseUrl => this.$setUrl(baseUrl)));\n }\n\n ngOnDestroy(): void {\n this.subscriptions.unsubscribe();\n }\n\n @ResourceAction({\n path: '/',\n method: ResourceRequestMethod.Post\n })\n laadSignaleringsbeeldInfo: IResourceMethodObservable<{\n pplgs: string[];\n versie: string;\n ingangsDatum: string;\n }, ISignaleringsbeeldInfoDto[]>;\n\n @ResourceAction({\n path: '/valideeriaversie'\n })\n getBestaatIALevering: IResourceMethodObservable<{ versie: string }, Response>;\n\n}\n\nexport interface ISignaleringsbeeldInfoDto {\n bladNaam: string;\n pplgs: string[];\n metVisualisatie: boolean;\n}\n\nexport class SignaleringsbeeldInfoDto extends ResourceModel implements ISignaleringsbeeldInfoDto {\n $resource = SignaleringsbeeldInfoResource;\n bladNaam: string;\n pplgs: string[];\n metVisualisatie: boolean;\n\n constructor(data?: ISignaleringsbeeldInfoDto) {\n super();\n this.$setData(data);\n }\n\n toJSON(): any {\n return { bladnaam: this.bladNaam, pplgs: this.pplgs, metVisualisatie: this.metVisualisatie };\n }\n\n toString(): string {\n return `${ this.bladNaam }, ${ this.pplgs }, ${ this.metVisualisatie }`;\n }\n\n $setData(data: ISignaleringsbeeldInfoDto): this {\n if (data) {\n this.bladNaam = data.bladNaam;\n this.pplgs = data.pplgs;\n this.metVisualisatie = data.metVisualisatie;\n }\n return this;\n }\n\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable, OnDestroy } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { Subscription } from 'rxjs';\nimport { MstEditorState } from '../state/mst-editor-state';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BaseRestService implements OnDestroy {\n\n private subscriptions: Subscription = new Subscription();\n protected baseUrl: string;\n protected iaVersie: string;\n\n constructor(protected httpClient: HttpClient, protected store: Store<MstEditorState>) {\n this.subscriptions.add(this.store.select('baseUrl').subscribe(baseUrl => this.baseUrl = baseUrl));\n this.subscriptions.add(this.store.select('iaVersie').subscribe(iaVersie => this.iaVersie = iaVersie.versie));\n }\n\n ngOnDestroy(): void {\n this.subscriptions.unsubscribe();\n }\n}\n","import { HttpHeaders } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\nimport { Actie, Beweging } from '../optimo';\nimport { ClearProgress } from '../state/actions/actions';\nimport { BaseRestService } from './base-rest.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BewegingVerrijkerService extends BaseRestService {\n\n public getBewegingen(bewegingen: Beweging[], ongeplandeActies: Actie[]): Observable<Beweging[]> {\n return this.httpClient.put<Beweging[]>(\n this.getUrl(this.iaVersie),\n { bewegingen, ongeplandeActies },\n { headers: new HttpHeaders().set('Accept', 'application/json').append('Content-Type', 'application/json') })\n .pipe(catchError((err, _caught) => this.errorHandler(err)));\n }\n\n private getUrl(iaVersie: string): string {\n return `${ this.baseUrl }/mst/rest/beweging/${ iaVersie }`;\n }\n\n errorHandler(error: any): [] {\n // eslint-disable-next-line no-console\n console.log('error bij verrijken', error);\n this.store.dispatch(ClearProgress());\n return [];\n }\n}\n","import { domein } from '@loxia/rijwegen';\nimport VrijebaanRijwegplan = domein.VrijebaanRijwegplan;\n\nexport class RijwegplanRijwegDwangCombinatie {\n constructor(public readonly rijwegplan: domein.Rijwegplan,\n public readonly rijweg: domein.Rijweg,\n public readonly dwang: domein.Dwang) {\n }\n\n getDwangNummer(): number {\n return this.dwang.getDwangNummer() === 0 ? -1 : this.dwang.getDwangNummer();\n }\n\n getVanPrlSpoor(): string {\n return this.dwang.getVanPrlSpoor();\n }\n\n getNaarPrlSpoor(): string {\n return this.dwang.getNaarPrlSpoor();\n }\n\n getRoute(): domein.Route {\n return this.dwang.getRoute();\n }\n\n isVrijeBaanRijweg(): boolean {\n const vbrwp = <VrijebaanRijwegplan>this.rijwegplan;\n return !!vbrwp.getVervolgSpoor;\n }\n}\n","import { domein, JsJavaUtil, sbblad } from '@loxia/rijwegen';\nimport { Actie, Beweging } from '../optimo';\nimport { BewegingUtils } from '../services/beweging-utils.service';\nimport { RijwegplanRijwegDwangCombinatie } from './rijwegplan-rijweg-dwang-combinatie';\n\nexport enum RitdeelZichtbaarheid {\n ZICHTBAAR = 1,\n ONZICHTBAAR_DOOR_GEBRUIKER = 2,\n ONZICHTBAAR_DOOR_SYSTEEM = 3\n}\n\nexport class Ritdeel {\n private alternatieveRoutes: sbblad.AlternativeRoute[] = [];\n private zichtbaarheid = RitdeelZichtbaarheid.ZICHTBAAR;\n private zichtbaarBuitenPaginatie = false;\n\n constructor(private readonly rijwegplanRijwegDwangCombi: RijwegplanRijwegDwangCombinatie,\n public acties: Actie[],\n public readonly beweging: Beweging,\n public vrijebaanRijwegplanRijwegDwangCombi: RijwegplanRijwegDwangCombinatie,\n public vervolgSpoor: string,\n private topoElementen: sbblad.TopologyElement[]) {\n }\n\n getAlternatieveRoutes(): sbblad.AlternativeRoute[] {\n return this.alternatieveRoutes;\n }\n\n copyMetDwang(nieuweDwang: domein.Dwang): Ritdeel {\n const nieuweRijwegplanRijwegDwangCombi =\n new RijwegplanRijwegDwangCombinatie(\n this.rijwegplanRijwegDwangCombi.rijwegplan, this.rijwegplanRijwegDwangCombi.rijweg, nieuweDwang);\n const copy = new Ritdeel(nieuweRijwegplanRijwegDwangCombi, [], this.beweging,\n this.vrijebaanRijwegplanRijwegDwangCombi, this.vervolgSpoor, this.topoElementen);\n copy.alternatieveRoutes = this.alternatieveRoutes;\n copy.zichtbaarheid = this.zichtbaarheid;\n copy.zichtbaarBuitenPaginatie = this.zichtbaarBuitenPaginatie;\n return copy;\n }\n\n copyMetAlternatieveRoutes(alternatieveRoutes: sbblad.AlternativeRoute[]): Ritdeel {\n const copy = new Ritdeel(this.rijwegplanRijwegDwangCombi, this.acties, this.beweging,\n this.vrijebaanRijwegplanRijwegDwangCombi, this.vervolgSpoor, this.topoElementen);\n copy.alternatieveRoutes = alternatieveRoutes;\n copy.zichtbaarheid = this.zichtbaarheid;\n copy.zichtbaarBuitenPaginatie = this.zichtbaarBuitenPaginatie;\n\n return copy;\n }\n\n copyMetAlternatieveRoutesZonderActies(alternatieveRoutes: sbblad.AlternativeRoute[]): Ritdeel {\n const copy = this.copyMetAlternatieveRoutes(alternatieveRoutes);\n if (copy.beweging) {\n copy.acties = [];\n }\n return copy;\n }\n\n copyMetZichtbaarheid(zichtbaarheid: RitdeelZichtbaarheid): Ritdeel {\n const copy = new Ritdeel(this.rijwegplanRijwegDwangCombi, this.acties, this.beweging,\n this.vrijebaanRijwegplanRijwegDwangCombi, this.vervolgSpoor, this.topoElementen);\n copy.alternatieveRoutes = this.alternatieveRoutes;\n copy.zichtbaarheid = zichtbaarheid;\n copy.zichtbaarBuitenPaginatie = this.zichtbaarBuitenPaginatie;\n\n return copy;\n }\n\n copyMetZichtbaarheidEnPaginatie(zichtbaarheid: RitdeelZichtbaarheid, zichtbaarBuitenPaginatie: boolean): Ritdeel {\n const copy = this.copyMetZichtbaarheid(zichtbaarheid);\n copy.zichtbaarBuitenPaginatie = zichtbaarBuitenPaginatie;\n\n return copy;\n }\n\n copyMetZichtbaarheidBuitenPaginatie(zichtbaarBuitenPaginatie: boolean): Ritdeel {\n const copy = new Ritdeel(this.rijwegplanRijwegDwangCombi, this.acties, this.beweging,\n this.vrijebaanRijwegplanRijwegDwangCombi, this.vervolgSpoor, this.topoElementen);\n copy.alternatieveRoutes = this.alternatieveRoutes;\n copy.zichtbaarheid = this.zichtbaarheid;\n copy.zichtbaarBuitenPaginatie = zichtbaarBuitenPaginatie;\n\n return copy;\n }\n\n equals(other: Ritdeel): boolean {\n if (!other) {\n return false;\n }\n return other.rijwegplanRijwegDwangCombi === this.rijwegplanRijwegDwangCombi;\n }\n\n getRijwegplan(): domein.Rijwegplan {\n return this.rijwegplanRijwegDwangCombi.rijwegplan;\n }\n\n getRijweg(): domein.Rijweg {\n return this.rijwegplanRijwegDwangCombi.rijweg;\n }\n\n getDwang(): domein.Dwang {\n return this.rijwegplanRijwegDwangCombi.dwang;\n }\n\n getRoute(): domein.Route {\n return this.rijwegplanRijwegDwangCombi.getRoute();\n }\n\n getSeinen(): domein.Sein[] {\n const seinen: domein.Sein[] = JsJavaUtil.listToArray(this.rijwegplanRijwegDwangCombi.getRoute().getSeinen());\n if (this.vrijebaanRijwegplanRijwegDwangCombi) {\n const sein: domein.Sein[] = JsJavaUtil.listToArray(this.vrijebaanRijwegplanRijwegDwangCombi.getRoute().getSeinen());\n seinen.push(...sein);\n }\n return seinen;\n }\n\n getVanPrlSpoor(): string {\n return this.rijwegplanRijwegDwangCombi.getVanPrlSpoor();\n }\n\n getVisueelNaarPrlSpoor(): string {\n if (this.vervolgSpoor) {\n return this.vervolgSpoor;\n }\n\n return this.rijwegplanRijwegDwangCombi.getNaarPrlSpoor();\n }\n\n getNaarPrlSpoor(): string {\n return this.rijwegplanRijwegDwangCombi.getNaarPrlSpoor();\n }\n\n getNaarPrlSpoorText(): string {\n let retval = this.rijwegplanRijwegDwangCombi.getNaarPrlSpoor();\n if (this.vrijebaanRijwegplanRijwegDwangCombi) {\n retval += '_e';\n }\n if (this.vervolgSpoor) {\n retval += '(' + this.vervolgSpoor + ')';\n }\n return retval;\n }\n\n getVrijebaanRijwegplan(): domein.Rijwegplan {\n return this.vrijebaanRijwegplanRijwegDwangCombi.rijwegplan;\n }\n\n getVrijebaanRijweg(): domein.Rijweg {\n return this.vrijebaanRijwegplanRijwegDwangCombi.rijweg;\n }\n\n getVrijebaanDwang(): domein.Dwang {\n return this.vrijebaanRijwegplanRijwegDwangCombi.dwang;\n }\n\n getDwangNummer(): number {\n return this.rijwegplanRijwegDwangCombi.getDwangNummer();\n }\n\n getZichtbaarheid(): RitdeelZichtbaarheid {\n return this.zichtbaarheid;\n }\n\n isZichtbaar(): boolean {\n return this.zichtbaarheid === RitdeelZichtbaarheid.ZICHTBAAR;\n }\n\n isZichtbaarBinnenWindow(): boolean {\n return this.isZichtbaar() && !this.zichtbaarBuitenPaginatie;\n }\n\n isBinnenWindow(): boolean {\n return (this.zichtbaarheid === RitdeelZichtbaarheid.ZICHTBAAR ||\n this.zichtbaarheid === RitdeelZichtbaarheid.ONZICHTBAAR_DOOR_GEBRUIKER)\n && this.zichtbaarBuitenPaginatie === false;\n }\n\n isNietBeschikbaar(): boolean {\n return this.zichtbaarheid === RitdeelZichtbaarheid.ONZICHTBAAR_DOOR_SYSTEEM;\n }\n\n isOnzichtbaarDoorGebruiker(): boolean {\n return this.zichtbaarheid === RitdeelZichtbaarheid.ONZICHTBAAR_DOOR_GEBRUIKER;\n }\n\n isNieuw(): boolean {\n return !this.beweging || this.beweging.wijzigStatus === BewegingUtils.TOEGEVOEGD;\n }\n\n getPplg(): string {\n return this.rijwegplanRijwegDwangCombi.rijwegplan.getPPLG();\n }\n\n getPplgString(): string {\n if (this.getVanSeinPplg() === this.getNaarSeinPplg()) {\n return this.getVanSeinPplg();\n } else {\n return this.getVanSeinPplg() + ' / ' + this.getNaarSeinPplg();\n }\n }\n\n heeftVrijebaanInfo(): boolean {\n return this.vrijebaanRijwegplanRijwegDwangCombi && !!this.vrijebaanRijwegplanRijwegDwangCombi.dwang;\n }\n\n getVrijebaanPrlRoute(): domein.Route {\n return this.vrijebaanRijwegplanRijwegDwangCombi.getRoute();\n }\n\n getTopologieElementen(): sbblad.TopologyElement[] {\n return this.topoElementen;\n }\n\n getBewegingId(): string {\n if (this.beweging) {\n return '' + this.beweging.id;\n }\n return '';\n }\n\n getTreinNummer(): string {\n if (this.beweging?.treinNummer) {\n return '' + this.beweging.treinNummer;\n }\n return '';\n }\n\n getVanSeinPplg(): string {\n return this.beweging ? this.beweging.vanSeinPplg : this.getRoute().getBeginSein().getPPLG();\n }\n\n getNaarSeinPplg(): string {\n return this.beweging ? this.beweging.naarSeinPplg : this.getRoute().getEindSein().getPPLG();\n }\n\n getVanSeinName(): string {\n return this.getRoute().getBeginSein().getName();\n }\n\n getNaarSeinName(): string {\n return this.getRoute().getEindSein().getName();\n }\n\n getZichtbaarheidBuitenPaginatie(): boolean {\n return this.zichtbaarBuitenPaginatie;\n }\n\n bepaalTopologieElementen(signaleringsBeeldManagerService): void {\n const topoElementen = signaleringsBeeldManagerService.bepaalRouteElementen(this.getRoute());\n\n if (this.heeftVrijebaanInfo()) {\n const vrijebaanTopoElementen = signaleringsBeeldManagerService.bepaalRouteElementen(this.getVrijebaanPrlRoute());\n topoElementen.push(...vrijebaanTopoElementen);\n }\n this.topoElementen = topoElementen;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { domein, JsJavaUtil } from '@loxia/rijwegen';\nimport { MessagesService } from '../atomic-components/services/messages.service';\nimport { RijwegplanRijwegDwangCombinatie } from '../model/rijwegplan-rijweg-dwang-combinatie';\nimport { Ritdeel } from '../model/ritdeel';\nimport { Beweging, Rit } from '../optimo';\nimport { MessageBuilder } from '../util/message-builder';\nimport { EditorService } from './editor.service';\n\nconst SPOOR_NAAR_VRIJEBAAN_POSTFIX = '_e';\nconst SPOOR_NAAR_VEERWISSEL_VRIJEBAAN_POSTFIX = '_v';\n\n@Injectable()\nexport class RitLezerService {\n constructor(private rijwegPlanEditorService: EditorService,\n private readonly messagesService: MessagesService) {\n }\n\n public parseRit(rit: Rit, ritGewijzigdToegestaan: boolean): Ritdeel[] {\n const ritDelen = [];\n const missingPplgs = [];\n if (!this.ritBestandIsGewijzigd(rit, ritGewijzigdToegestaan)) {\n rit.bewegingen.forEach(beweging => this.parseBeweging(beweging, ritDelen, missingPplgs));\n }\n return ritDelen;\n }\n\n private parseBeweging(beweging: Beweging, ritDelen: any[], missingPplgs: string[]): void {\n const rijwegPlan = this.getRijwegPlan(beweging.vanPplg);\n if (!rijwegPlan) {\n if (!missingPplgs.includes(beweging.vanPplg)) {\n this.messagesService.showMessage(MessageBuilder.rijwegplanNietGevonden(beweging));\n missingPplgs.push(beweging.vanPplg);\n }\n return;\n }\n const rijweg = this.getRijweg(rijwegPlan, beweging.vanSpoor, beweging.naarSpoor);\n if (!rijweg) {\n this.messagesService.showMessage(MessageBuilder.rijwegNietGevonden(beweging));\n return;\n }\n\n const dwang = this.getDwang(rijweg, beweging.dwangNummer);\n if (!dwang) {\n this.messagesService.showMessage(MessageBuilder.dwangNietGevonden(beweging));\n return;\n }\n const { vrijebaanDwangInfo, vervolgSpoor } = this.extractVrijebaanDwangInfo(beweging, rijwegPlan, rijweg);\n const dwangInfo = new RijwegplanRijwegDwangCombinatie(rijwegPlan, rijweg, dwang);\n ritDelen.push(new Ritdeel(dwangInfo, beweging.ritActies, beweging, vrijebaanDwangInfo, vervolgSpoor, []));\n }\n\n private extractVrijebaanDwangInfo(beweging: Beweging, rijwegPlan: domein.Rijwegplan, rijweg: domein.Rijweg) {\n let vrijebaanDwangInfo = null;\n let vervolgSpoor;\n if (beweging.naarSpoor.endsWith(SPOOR_NAAR_VRIJEBAAN_POSTFIX) ||\n beweging.naarSpoor.endsWith(SPOOR_NAAR_VEERWISSEL_VRIJEBAAN_POSTFIX)) {\n let vrijebaanRijweg: domein.Rijweg;\n let vrijebaanDwang;\n const vrijebaanRijwegplan =\n this.rijwegPlanEditorService.getVrijebaanRijwegplan(rijwegPlan.getPPLG(),\n rijweg.getEindSein().getName());\n if (vrijebaanRijwegplan) {\n const rijwegenArray: domein.Rijweg[] = JsJavaUtil.listToArray(vrijebaanRijwegplan.getRijwegen());\n\n const vrijebaanRijwegen =\n rijwegenArray.filter(\n vbRijweg => vbRijweg.getBeginSein().getName() === rijweg.getEindSein().getName());\n if (vrijebaanRijwegen.length > 0) {\n vrijebaanRijweg = vrijebaanRijwegen[0];\n vrijebaanDwang = vrijebaanRijweg.getDwangVoorDwangNummer(0);\n vervolgSpoor = vrijebaanRijwegplan.getVervolgSpoor(vrijebaanRijweg);\n }\n vrijebaanDwangInfo =\n new RijwegplanRijwegDwangCombinatie(vrijebaanRijwegplan, vrijebaanRijweg, vrijebaanDwang);\n }\n }\n return { vrijebaanDwangInfo, vervolgSpoor };\n }\n\n private getRijwegPlan(pplg: string): domein.Rijwegplan {\n return this.rijwegPlanEditorService.getRijwegplan(pplg);\n }\n\n private getDwang(rijweg: domein.Rijweg, dwangNummer: number): domein.Dwang {\n return rijweg.getDwangVoorDwangNummer(this.converteerDwangNummer(dwangNummer));\n }\n\n private getRijweg(rijwegPlan: domein.Rijwegplan, vanSpoor: string, naarSpoor: string): domein.Rijweg {\n const vanPrlSpoor = this.verwijderExtendedInformatie(vanSpoor);\n const naarPrlSpoor = this.verwijderExtendedInformatie(naarSpoor);\n return rijwegPlan.getRijweg(vanPrlSpoor, naarPrlSpoor);\n }\n\n private ritBestandIsGewijzigd(rit: Rit, ritGewijzigdToegestaan: boolean): boolean {\n for (const beweging of rit.bewegingen) {\n if (this.isGewijzigd(beweging) && !ritGewijzigdToegestaan) {\n this.messagesService.showMessage(MessageBuilder.ritFileAlGewijzigdError(beweging));\n return true;\n }\n }\n return false;\n }\n\n private verwijderExtendedInformatie(spoor: string): string {\n return spoor.split('_')[0];\n }\n\n private converteerDwangNummer(dwangNummer: number): number {\n return (dwangNummer === -1) ? 0 : dwangNummer;\n }\n\n private isGewijzigd(beweging: Beweging): boolean {\n return beweging.wijzigStatus === 'Gewijzigd';\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { Store } from '@ngrx/store';\nimport { map, withLatestFrom } from 'rxjs/operators';\nimport { LogDto } from '../../../generated/openapi';\nimport { MessagesService } from '../../atomic-components/services/messages.service';\nimport { MeldingEvent } from '../../model/melding-event';\nimport { OngeplandeActie } from '../../model/ongeplande-actie';\nimport { MstLoggingResource } from '../../resources/mstlogging.resource';\nimport { SignaleringsBeeldManagerService } from '../../services/signalerings-beeld-manager.service';\nimport { ActieHelper } from '../../util/actie-helper';\nimport { LoggingHelper } from '../../util/logging-helper';\nimport { MeldingBuilder } from '../../util/melding-builder';\nimport { MessageBuilder } from '../../util/message-builder';\nimport { ArrayMultimap } from '../../util/multi-map';\nimport {\n BepaalOngeplandeActies,\n SetOngeplandeActies,\n SetOngeplandeActiesBepaald,\n SetOngeplandeActieSelectieIds\n} from '../actions/actions';\nimport { MstEditorState } from '../mst-editor-state';\n\n@Injectable()\nexport class BepaalOngeplandeActiesEffect {\n bepaalOngeplandeActies$ = createEffect(() => this.actions$.pipe(\n ofType(BepaalOngeplandeActies),\n withLatestFrom(this.store),\n map(([action, store]) => {\n\n const puicActieMap = new ArrayMultimap<string, OngeplandeActie>();\n const nietGevondenTakken = [];\n const logMeldingDTOs: LogDto[] = [];\n\n const acties = store.ritDelen.flatMap(rd => rd.acties);\n\n action.ongeplandeActies.forEach(actie => {\n const alreadyAdded = acties.filter(a => a.id === actie.id).length > 0;\n if (!alreadyAdded) {\n const puics = this.actieHelper.bepaalPuicsVoorActie(actie);\n\n if (puics.length > 0) {\n const ongeplandeActie = new OngeplandeActie(actie, puics);\n this.updatePuicActieMap(puics, ongeplandeActie, puicActieMap);\n } else {\n const takId = ActieHelper.bepaalTakId(actie);\n const spoortak = this.sbmService.getSbSpoortak(takId);\n if (!spoortak && nietGevondenTakken.indexOf(takId) < 0) {\n nietGevondenTakken.push(takId);\n const melding: MeldingEvent = MeldingBuilder.nietGevondenTakkenOngeplandeActies(nietGevondenTakken);\n logMeldingDTOs.push(this.loggingHelper.maakLogDTO(melding, actie));\n } else if (spoortak) {\n const melding: MeldingEvent = MeldingBuilder.actieHighlightError([actie.id]);\n logMeldingDTOs.push(this.loggingHelper.maakLogDTO(melding, actie));\n this.messagesService.showMessage(MessageBuilder.actieHighlightError([actie.id]));\n }\n }\n }\n });\n if (nietGevondenTakken.length > 0) {\n this.messagesService.showMessage(MessageBuilder.nietGevondenTakkenOngeplandeActies(nietGevondenTakken));\n }\n if (logMeldingDTOs.length > 0) {\n this.mstLogResource.logMessages(logMeldingDTOs);\n }\n\n this.store.dispatch(SetOngeplandeActies(puicActieMap));\n this.store.dispatch(SetOngeplandeActieSelectieIds(Array.from(puicActieMap.keys())));\n this.store.dispatch(SetOngeplandeActiesBepaald(true));\n })\n ), { dispatch: false });\n\n constructor(private actions$: Actions,\n private store: Store<MstEditorState>,\n private sbmService: SignaleringsBeeldManagerService,\n private mstLogResource: MstLoggingResource,\n private messagesService: MessagesService,\n private actieHelper: ActieHelper,\n private loggingHelper: LoggingHelper\n ) {\n }\n\n private updatePuicActieMap(puics: string[], ongeplandeActie: OngeplandeActie, puicMap: ArrayMultimap<string, OngeplandeActie>): void {\n puics.forEach(puic => {\n puicMap.put(puic, ongeplandeActie);\n });\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DateService {\n\n // simple method, in separate method/service to be able to make tests stable\n getCurrentDate(): Date {\n return new Date();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { MessagesService, } from '../../atomic-components/services/messages.service';\nimport { Message, Severity } from '../../atomic-components/message/';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { Store } from '@ngrx/store';\nimport { map, take } from 'rxjs/operators';\nimport { Actie, Rit } from '../../optimo';\nimport { SignaleringsbeeldInfoResource } from '../../resources/signaleringsbeeldinfo.resource';\nimport { DateService } from '../../util/date.service';\nimport Utils from '../../util/utils';\nimport * as MstActions from '../actions/actions';\nimport { SetIaVersie, ShowProgress } from '../actions/actions';\nimport { MstEditorState } from '../mst-editor-state';\n\n@Injectable()\nexport class BepaalSbInfosEffect {\n\n bepaalSbInfos$ = createEffect(() => this.actions$.pipe(\n ofType(MstActions.bepaalSbInfos),\n map((actie) => {\n let pplgs = this.bepaalPplgs(actie.rit);\n pplgs = this.bepaalPplgsUitActies(actie.ongeplandeActies, pplgs);\n if (pplgs.length > 0) {\n this.laadSignaleringsbeeldInfo(pplgs, actie.ritGewijzigdToegestaan, actie.iaVersie, actie.rit, actie.paginationSize);\n }\n\n })), { dispatch: false }\n );\n\n constructor(private readonly actions$: Actions,\n private readonly store: Store<MstEditorState>,\n private readonly sbiResource: SignaleringsbeeldInfoResource,\n private readonly messagesService: MessagesService,\n private readonly dateService: DateService) {\n }\n\n bepaalPplgs(rit: Rit): Array<string> {\n const pplgs = [];\n rit?.bewegingen?.forEach(beweging => {\n this.voegNieuwePplgToe(pplgs, beweging.vanPplg);\n this.voegNieuwePplgToe(pplgs, beweging.naarPplg);\n this.voegNieuwePplgToe(pplgs, beweging.vanSeinPplg);\n this.voegNieuwePplgToe(pplgs, beweging.naarSeinPplg);\n });\n return pplgs;\n }\n\n bepaalPplgsUitActies(acties: Actie[], pplgs: string[]): string[] {\n acties.forEach(actie => this.voegNieuwePplgToe(pplgs, actie.pplgNaam));\n return pplgs;\n }\n\n private laadSignaleringsbeeldInfo(pplgs: string[], ritGewijzigdToegestaan: boolean, iaVersie: string, treinpad: Rit, paginationSize: number): void {\n const obs = this.sbiResource.getBestaatIALevering({ versie: iaVersie });\n this.store.dispatch(ShowProgress());\n obs.pipe(take(1)).subscribe({\n next: _res => this.store.dispatch(MstActions.laadEnVerwerkSignaleringsbeeldInfo(treinpad, paginationSize, pplgs, ritGewijzigdToegestaan)),\n error: err => {\n this.messagesService.showMessage(new Message(Severity.INFORMATION, Utils.getValidErorrMessage(err)));\n const iaVersieInfo = { versie: 'DONNA_97207_VER_1', ingangsDatum: this.dateService.getCurrentDate() };\n this.store.dispatch(SetIaVersie(iaVersieInfo));\n this.store.dispatch(MstActions.laadEnVerwerkSignaleringsbeeldInfo(treinpad, paginationSize, pplgs, ritGewijzigdToegestaan));\n }\n });\n }\n\n private voegNieuwePplgToe(pplgs: Array<string>, pplg: string): void {\n if (pplg && pplgs.indexOf(pplg) < 0) {\n pplgs.push(pplg);\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { domein, JsJavaUtil } from '@loxia/rijwegen';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { Store } from '@ngrx/store';\nimport { map } from 'rxjs/operators';\nimport { RijwegplanRijwegDwangCombinatie } from '../../model/rijwegplan-rijweg-dwang-combinatie';\nimport { EditorService } from '../../services/editor.service';\nimport { SignaleringsBeeldManagerService } from '../../services/signalerings-beeld-manager.service';\nimport {\n BewegingInvoegen,\n SetBeginSeinSelectieIds,\n SetEindSeinenClickableIds,\n SetEindSeinSelectieIds,\n SetNieuwRouteBeginSein\n} from '../actions/actions';\nimport { MstEditorState } from '../mst-editor-state';\nimport VrijebaanRijwegplan = domein.VrijebaanRijwegplan;\n\n@Injectable()\nexport class BewegingInvoegenEffect {\n constructor(private actions$: Actions,\n private store: Store<MstEditorState>,\n private sbmService: SignaleringsBeeldManagerService,\n private editorService: EditorService) {\n }\n\n bewegingInvoegen$ = createEffect(() => this.actions$.pipe(\n ofType(BewegingInvoegen),\n map(action => {\n const startSeinOpRitdeel = action.startSeinOpRitdeel;\n const sein = startSeinOpRitdeel.sein;\n const sbSein = this.sbmService.getSBSein(sein);\n const pplg = sbSein.getPPLG();\n\n const combinaties = [];\n const rijwegplan = this.editorService.getRijwegplan(pplg);\n const eindSeinen: domein.Sein[] = JsJavaUtil.listToArray(rijwegplan.getEindSeinen(sein.getName()));\n combinaties.push(...this.maakCombinaties(rijwegplan, startSeinOpRitdeel.sein, eindSeinen));\n\n if (startSeinOpRitdeel.ritdeel.heeftVrijebaanInfo()) {\n // vrije baan af\n const vbrwp = <VrijebaanRijwegplan>startSeinOpRitdeel.ritdeel.getVrijebaanRijwegplan();\n const otherPplg = vbrwp.getTegenOvergesteldePplg(rijwegplan.getPPLG());\n\n const rwp = this.editorService.getRijwegplan(otherPplg);\n const eSeinen: domein.Sein[] = JsJavaUtil.listToArray(rwp.getEindSeinen(startSeinOpRitdeel.sein.getName()));\n combinaties.push(...this.maakCombinaties(rwp, startSeinOpRitdeel.sein, eSeinen));\n } else {\n // vrije baan op\n const vrijebaanRijwegplan =\n this.editorService.getVrijebaanRijwegplan(pplg, startSeinOpRitdeel.sein.getName());\n if (vrijebaanRijwegplan) {\n const vrijebaanEindSeinen: domein.Sein[] = JsJavaUtil.listToArray(vrijebaanRijwegplan.getEindSeinen(startSeinOpRitdeel.sein.getName()));\n combinaties.push(...this.maakCombinaties(vrijebaanRijwegplan, startSeinOpRitdeel.sein, vrijebaanEindSeinen));\n }\n }\n\n const eindSeinenPuics = [];\n combinaties.forEach(c => {\n const sbEindSein = this.sbmService.getSBSein(c.rijweg.getEindSein());\n if (sbEindSein) {\n const eindSeinPuic = sbEindSein.getPuic();\n action.puicNaarEindSeinCombinatie.set(eindSeinPuic, c);\n eindSeinenPuics.push(eindSeinPuic);\n }\n });\n\n this.store.dispatch(SetNieuwRouteBeginSein(startSeinOpRitdeel));\n this.store.dispatch(SetBeginSeinSelectieIds([sbSein.getPuic()]));\n this.store.dispatch(SetEindSeinSelectieIds(eindSeinenPuics));\n this.store.dispatch(SetEindSeinenClickableIds(eindSeinenPuics));\n\n })\n ), { dispatch: false });\n\n private maakCombinaties(rijwegplan: domein.Rijwegplan, startSein: domein.Sein, eindSeinen: domein.Sein[]): any[] {\n const combinaties = [];\n eindSeinen.forEach(eindSein => {\n const rijweg = rijwegplan.getRijwegVoorSeinen(startSein, eindSein); // zoek rijweg van sein naar sein\n const dwang = rijweg.getVoorkeurDwang(); // pak voorkeursdwang van de rijweg\n combinaties.push(new RijwegplanRijwegDwangCombinatie(rijwegplan, rijweg, dwang));\n });\n return combinaties;\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { Store } from '@ngrx/store';\nimport { map, withLatestFrom } from 'rxjs/operators';\nimport { OngeplandeActie } from '../../model/ongeplande-actie';\nimport { ArrayMultimap } from '../../util/multi-map';\nimport { DeleteOngeplandeActie, DeleteOngeplandeActieSelectieId } from '../actions/actions';\nimport { MstEditorState } from '../mst-editor-state';\n\n@Injectable()\nexport class DeleteOngeplandeActieEffect {\n constructor(private actions$: Actions,\n private store: Store<MstEditorState>) {\n }\n\n authActions$ = createEffect(() => this.actions$.pipe(\n ofType(DeleteOngeplandeActie),\n withLatestFrom(this.store),\n map(([action, state]) => {\n const actie = action.ongeplandeActie;\n const ongeplandeActies = state.ongeplandeActies;\n\n this.updateOngeplandeActiesIdsOnDelete(actie, ongeplandeActies);\n })), { dispatch: false });\n\n updateOngeplandeActiesIdsOnDelete(actie, ongeplandeActies: ArrayMultimap<string, OngeplandeActie>): void {\n actie.puics.forEach(puic => {\n const acties = ongeplandeActies.get(puic);\n if (acties) {\n const index = acties.indexOf(actie);\n if (index > -1) {\n acties.splice(index, 1);\n }\n if (acties.length === 0) {\n ongeplandeActies.delete(puic);\n this.store.dispatch(DeleteOngeplandeActieSelectieId(puic));\n }\n }\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { sbblad } from '@loxia/rijwegen';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { Store } from '@ngrx/store';\nimport { map, withLatestFrom } from 'rxjs/operators';\nimport { SignaleringsBeeldManagerService } from '../../services/signalerings-beeld-manager.service';\nimport * as MstActions from '../actions/actions';\nimport { SetOngeplandeActiesBepaald } from '../actions/actions';\nimport { navigeerVanaf } from '../actions/ritdelen.actions';\nimport { MstEditorState } from '../mst-editor-state';\n\n@Injectable()\nexport class FocusEffect {\n\n constructor(private actions$: Actions,\n private store: Store<MstEditorState>,\n private sbmService: SignaleringsBeeldManagerService) {\n }\n\n focusOpBeweging$ = createEffect(() => this.actions$.pipe(\n ofType(MstActions.focusOpRitdeel),\n withLatestFrom(this.store),\n map(([actie, _storeState]) => {\n const ritdeel = actie.ritdeel;\n const topoElementen = this.sbmService.bepaalRouteElementen(ritdeel.getRoute());\n const dwangPuics = this.getPuics(topoElementen);\n\n if (ritdeel.isNietBeschikbaar()) {\n this.store.dispatch(SetOngeplandeActiesBepaald(false));\n this.store.dispatch(navigeerVanaf(actie.paginationSize, actie.iaVersieInfo, ritdeel));\n }\n\n return MstActions.focusOpIds(dwangPuics);\n }))\n );\n\n private getPuics(topoElementen: sbblad.HasIdentifier[]): string[] {\n return topoElementen.map(e => e.getPuic());\n }\n}\n","import { Injectable } from '@angular/core';\nimport { MessagesService, } from '../../atomic-components/services/messages.service';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { Store } from '@ngrx/store';\nimport { map, take } from 'rxjs/operators';\nimport { ISignaleringsbeeldInfoDto } from '../../resources/signaleringsbeeldinfo.resource';\nimport { EditorService } from '../../services/editor.service';\nimport { RitLezerService } from '../../services/rit-lezer.service';\nimport { MessageBuilder } from '../../util/message-builder';\nimport Utils from '../../util/utils';\nimport * as MstActions from '../actions/actions';\nimport { SetSignaleringsbeeldInfoDtos } from '../actions/actions';\nimport * as RitdelenActions from '../actions/ritdelen.actions';\nimport { MstEditorState } from '../mst-editor-state';\n\n@Injectable()\nexport class LaadRouteFilesEffect {\n authActions$ = createEffect(() => this.actions$.pipe(\n ofType(SetSignaleringsbeeldInfoDtos),\n map(action => this.laadRouteFiles(action))), { dispatch: false }\n );\n\n constructor(private readonly actions$: Actions,\n private readonly store: Store<MstEditorState>,\n private readonly ritLezer: RitLezerService,\n private readonly editorService: EditorService,\n private readonly messagesService: MessagesService) {\n }\n\n laadRouteFiles(actie: {\n dtos: ISignaleringsbeeldInfoDto[];\n iaversieinfo: any;\n treinpad: any;\n paginationSize: number;\n ritGewijzigdToegestaan: boolean\n }): void {\n const isReady = this.editorService.isReady();\n isReady.then(() => {\n const pplgs = this.bepaalSbDtoPplgs(actie.dtos);\n const promise = this.editorService.laadRouteFiles(actie.iaversieinfo.versie, pplgs);\n\n promise.then(() => {\n this.updateRitdelen(actie);\n }, err => {\n this.messagesService.showMessage(MessageBuilder.rwpDataNietGevonden(Utils.getValidErorrMessage(err)));\n });\n });\n }\n\n private updateRitdelen(actie: {\n dtos: ISignaleringsbeeldInfoDto[];\n iaversieinfo: any;\n treinpad: any;\n paginationSize: number;\n ritGewijzigdToegestaan: boolean\n }): void {\n setTimeout(() => {\n this.store.select('ritDelen').pipe(take(1)).subscribe(ritdelen => {\n if (ritdelen.length === 0) {\n ritdelen = this.ritLezer.parseRit(actie.treinpad, actie.ritGewijzigdToegestaan);\n }\n\n this.store.dispatch(RitdelenActions.setRitDelen(ritdelen, actie.paginationSize, actie.iaversieinfo));\n this.store.dispatch(MstActions.setEditable(actie.treinpad.ritStatus !== 'Definitief'));\n });\n }, 0);\n }\n\n private bepaalSbDtoPplgs(dtos: ISignaleringsbeeldInfoDto[]): any[] {\n const pplgs = [];\n dtos.forEach(dto => {\n dto.pplgs.forEach(pplg => {\n if (!pplgs.includes(pplg)) {\n pplgs.push(pplg);\n }\n });\n });\n return pplgs;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\nimport { ClearProgress } from '../state/actions/actions';\nimport { BaseRestService } from './base-rest.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ConnectorService extends BaseRestService {\n\n public getOtherRand(puic: string): Observable<string> {\n return this.httpClient.get<string>(\n this.getUrl(this.iaVersie, puic))\n .pipe(catchError((err, _caught) => this.handleResult(err)));\n }\n\n private getUrl(iaVersie: string, puic: string): string {\n return `${ this.baseUrl }/mst/rest/connector/${iaVersie}/${ puic }`;\n }\n\n handleResult(res: any): [] {\n if (res.error) {\n console.log('error bij ophalen connector-info', res.error);\n }\n this.store.dispatch(ClearProgress());\n return [];\n }\n}\n\n","import { Injectable } from '@angular/core';\nimport { ImxViewerComponent, Point, SvgInfo } from '@loxia/imx-viewer';\nimport { sbblad } from '@loxia/rijwegen';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { Store } from '@ngrx/store';\nimport { Observable, of, throwError } from 'rxjs';\nimport { catchError, map, switchMap, take, tap, withLatestFrom } from 'rxjs/operators';\nimport { MessagesService } from '../../atomic-components/services/messages.service';\nimport { Ritdeel, RitdeelZichtbaarheid } from '../../model/ritdeel';\nimport { InfraModel } from '../../optimo';\nimport { ISignaleringsbeeldInfoDto, SignaleringsbeeldInfoResource } from '../../resources/signaleringsbeeldinfo.resource';\nimport { ConnectorService } from '../../services/connector.service';\nimport { EditorService } from '../../services/editor.service';\nimport { SignaleringsBeeldManagerService } from '../../services/signalerings-beeld-manager.service';\nimport { MessageBuilder } from '../../util/message-builder';\nimport Utils from '../../util/utils';\nimport * as MstActions from '../actions/actions';\nimport { SetSignaleringsbeeldInfoDtos, SetVisibleSignaleringsbeeldInfoDtos } from '../actions/actions';\nimport * as RitdelenActions from '../actions/ritdelen.actions';\nimport { MstEditorState } from '../mst-editor-state';\nimport TopologyElement = sbblad.TopologyElement;\n\ninterface NavigeerBuitenRitInput {\n rand: TopologyElement;\n randPuic: string;\n storeState: MstEditorState;\n otherPplg?: string;\n dtos?: ISignaleringsbeeldInfoDto[];\n svgDataUrls?: string[];\n}\n\ninterface SignaleringsbeeldInfoInput {\n dtos?: ISignaleringsbeeldInfoDto[];\n actie: any;\n storeState: MstEditorState;\n}\n\n@Injectable()\nexport class LaadSignaleringsbeeldenEffect {\n\n private SVG_PIXEL_RUIMTE = 30;\n\n constructor(private actions$: Actions,\n private store: Store<MstEditorState>,\n private signaleringsBeeldManagerService: SignaleringsBeeldManagerService,\n private editorService: EditorService,\n private sbiResource: SignaleringsbeeldInfoResource,\n private connectorService: ConnectorService,\n private messagesSerivce: MessagesService) {\n }\n\n verwerkRitdelen$ = createEffect(() => this.actions$.pipe(\n ofType(RitdelenActions.setRitDelen, RitdelenActions.navigeer, RitdelenActions.navigeerVanaf),\n withLatestFrom(this.store),\n map(([actie, storeState]) => {\n this.store.dispatch(MstActions.SetOngeplandeActiesBepaald(false));\n this.verwerkRitdelen(actie, storeState);\n })), { dispatch: false }\n );\n\n laadEnVerwerkSignaleringsbeeldInfo$ = createEffect(() => this.actions$.pipe(\n ofType(MstActions.laadEnVerwerkSignaleringsbeeldInfo),\n withLatestFrom(this.store),\n switchMap(([actie, storeState]) => this.handleSignaleringsbeeldInfo({actie, storeState}))\n ), { dispatch: false });\n\n private handleSignaleringsbeeldInfo({actie, storeState} : SignaleringsbeeldInfoInput): Observable<ISignaleringsbeeldInfoDto[]> {\n return this.sbiResource.laadSignaleringsbeeldInfo(this.createSignaleringsbeeldInfoQueryDto(actie.pplgs, storeState.iaVersie)).pipe(\n take(1),\n tap((dtos) => this.processResponse({dtos, storeState, actie})),\n catchError((err) => {\n this.messagesSerivce.showMessage(MessageBuilder.nietGevondenSBI(err));\n return throwError(() => err);\n })\n );\n }\n\n private processResponse({ dtos, storeState, actie }: SignaleringsbeeldInfoInput): void {\n if (dtos && dtos.filter(dto => dto.metVisualisatie).length > 12) {\n this.messagesSerivce.showMessage(MessageBuilder.meerDan12BladenGevonden(dtos.length));\n }\n this.store.dispatch(SetSignaleringsbeeldInfoDtos(dtos, storeState.iaVersie, actie.rit, actie.paginationSize, actie.ritGewijzigdToegestaan));\n this.store.dispatch(SetVisibleSignaleringsbeeldInfoDtos(dtos));\n }\n\n navigeerBuitenRit$ = createEffect(() => this.actions$.pipe(\n ofType(MstActions.navigeerBuitenRit),\n withLatestFrom(this.store),\n switchMap(([actie, storeState]) =>\n of({\n rand: this.signaleringsBeeldManagerService.getTopologyElementByPuic(actie.randPuic),\n randPuic: actie.randPuic,\n storeState\n }).pipe(\n switchMap(this.getOtherRand.bind(this)),\n switchMap(this.loadRouteFilesAndSignaleringsbeeldInfo.bind(this)),\n switchMap(this.loadSignaleringsbeelden.bind(this)),\n map(this.processSvgsAndUpdateRitdelen.bind(this))\n )\n )\n ), { dispatch: false });\n\n private getOtherRand({ rand, randPuic, storeState}: NavigeerBuitenRitInput) {\n return this.connectorService.getOtherRand(randPuic).pipe(\n map(otherPplg => ({ otherPplg, rand, storeState }))\n );\n }\n\n private loadRouteFilesAndSignaleringsbeeldInfo({ otherPplg, rand, storeState }: NavigeerBuitenRitInput) {\n this.editorService.laadRouteFiles(storeState.iaVersie.versie, [rand.getPPLG(), otherPplg]);\n return this.sbiResource.laadSignaleringsbeeldInfo(this.createSignaleringsbeeldInfoQueryDto([rand.getPPLG(), otherPplg], storeState.iaVersie)).pipe(\n map(dtos => ({ dtos, storeState }))\n );\n }\n\n private loadSignaleringsbeelden({ dtos, storeState }: NavigeerBuitenRitInput) {\n return this.editorService.laadSignaleringsbeelden(storeState.iaVersie.versie, dtos).pipe(\n map(svgDataUrls => ({ svgDataUrls, storeState, dtos }))\n );\n }\n\n private processSvgsAndUpdateRitdelen({ svgDataUrls, storeState, dtos }: NavigeerBuitenRitInput): void {\n this.verwerkSvgs(svgDataUrls);\n const nieuweRitdelen = this.updateRitdelen(storeState.ritDelen, dtos);\n this.store.dispatch(MstActions.UpdateVisibleSignaleringsbeeldInfoDtos(dtos));\n this.store.dispatch(RitdelenActions.updateRitDelen(nieuweRitdelen));\n }\n\n verwerkRitdelen(actie, storeState: MstEditorState): void {\n const isInit = actie.type === RitdelenActions.SET_RIT_DELEN;\n const ritDelen: Ritdeel[] = isInit ? actie.ritDelen : storeState.ritDelen;\n const storeDtos: ISignaleringsbeeldInfoDto[] = storeState.signaleringsbeeldInfoDtos;\n\n this.navigeer(ritDelen, actie, storeDtos);\n\n const visibleRitDelen = ritDelen.filter(n => n.isZichtbaarBinnenWindow());\n const visibleRitPplgs: string[] = visibleRitDelen.map(r => r.getPplg()).filter(this.distinct);\n\n const visibleDtos = this.bepaalZichtbareDtos(visibleRitPplgs, storeDtos);\n const loadingDtos = this.bepaalToLoadDtos(visibleDtos, ritDelen, visibleRitDelen, visibleRitPplgs, storeState);\n\n this.editorService.laadSignaleringsbeelden(actie.iaversieinfo.versie, loadingDtos).pipe(\n tap(svgDataUrls => {\n this.verwerkSvgs(svgDataUrls);\n this.updateState(ritDelen, visibleDtos, storeState, visibleRitPplgs, loadingDtos, isInit, storeDtos);\n }),\n catchError(err => {\n this.messagesSerivce.showMessage(MessageBuilder.rwpDataNietGevonden(Utils.getValidErorrMessage(err)));\n throw err;\n })\n ).subscribe();\n }\n\n private updateState(ritDelen: Ritdeel[], visibleDtos: ISignaleringsbeeldInfoDto[], storeState: MstEditorState, visibleRitPplgs: string[], loadingDtos: any[], isInit: boolean, storeDtos: ISignaleringsbeeldInfoDto[]): void {\n setTimeout(() => {\n const nieuweRitdelen = this.updateRitdelen(ritDelen, visibleDtos);\n this.debugLog(storeState.debug, visibleRitPplgs, loadingDtos);\n\n if (!isInit) {\n this.store.dispatch(MstActions.UpdateSignaleringsbeeldInfoDtos(storeDtos));\n this.store.dispatch(MstActions.UpdateVisibleSignaleringsbeeldInfoDtos(loadingDtos));\n }\n this.store.dispatch(RitdelenActions.updateRitDelen(nieuweRitdelen));\n }, 0);\n }\n\n private createSignaleringsbeeldInfoQueryDto(pplgs: string[], iainfo: InfraModel): any {\n const datum = iainfo.ingangsDatum && !isNaN(iainfo.ingangsDatum.getTime()) ? iainfo.ingangsDatum.toISOString() : undefined;\n return { pplgs, versie: iainfo.versie, ingangsDatum: datum };\n }\n\n private verwerkSvgs(svgDataUrls): void {\n this.store.dispatch(MstActions.SetSvgInfos(this.bepaalSvgInfos(svgDataUrls)));\n }\n\n private bepaalSvgInfos(svgDataUrls): SvgInfo[] {\n let nextCoords = new Point(0, 0);\n const infos: SvgInfo[] = [];\n svgDataUrls.forEach(svgDataUrl => {\n if (svgDataUrl) {\n const decoded = atob(svgDataUrl.substring('data:image/svg+xml;base64,'.length));\n infos.push(new SvgInfo('data:image/svg+xml,' + decoded, nextCoords));\n nextCoords = new Point(nextCoords.x + ImxViewerComponent.getXCoordinate(decoded) + this.SVG_PIXEL_RUIMTE, 0);\n }\n });\n return infos;\n }\n\n private bepaalToLoadDtos(visibleDtos, ritDelen: Ritdeel[], visibleRitDelen, visibleRitPplgs: string[], storeState: MstEditorState): any[] {\n const loadingDtos = [...visibleDtos];\n const firstIdx = ritDelen.indexOf(visibleRitDelen[0]) - 1;\n this.addPrevNonVisibleDto(firstIdx, ritDelen, loadingDtos, visibleRitPplgs, storeState.signaleringsbeeldInfoDtos);\n const lastIdx = ritDelen.indexOf(visibleRitDelen[visibleRitDelen.length - 1]) + 1;\n this.addNextNonVisibleDto(lastIdx, ritDelen, loadingDtos, visibleRitPplgs, storeState.signaleringsbeeldInfoDtos);\n return loadingDtos;\n }\n\n private bepaalZichtbareDtos(visibleRitPplgs: string[], dtos: ISignaleringsbeeldInfoDto[]): ISignaleringsbeeldInfoDto[] {\n const visibleDtos: ISignaleringsbeeldInfoDto[] = [];\n visibleRitPplgs.forEach(pplg => {\n dtos.filter(dto => dto.pplgs.includes(pplg)).forEach(dto => {\n if (!visibleDtos.includes(dto)) {\n visibleDtos.push(dto);\n }\n });\n });\n visibleDtos.forEach(dto => dto.metVisualisatie = true);\n dtos.filter(d => !visibleDtos.includes(d)).forEach(d => d.metVisualisatie = false);\n return visibleDtos;\n }\n\n private distinct(value, index, self): boolean {\n return self.indexOf(value) === index;\n }\n\n private addPrevNonVisibleDto(firstIdx, ritdelen: Ritdeel[], loadingDtos: ISignaleringsbeeldInfoDto[], visibleRitPplgs: string[],\n allDtos: ISignaleringsbeeldInfoDto[]): void {\n if (firstIdx >= 0) {\n const pplg = ritdelen[firstIdx].getPplg();\n const ritdeelDtos = allDtos.filter(dto => dto.pplgs.includes(pplg)).filter(dto => !loadingDtos.includes(dto));\n\n if (!visibleRitPplgs.includes(pplg) && ritdeelDtos.length > 0) {\n ritdeelDtos.filter(d => !loadingDtos.includes(d)).forEach(d => {\n d.metVisualisatie = false;\n loadingDtos.push(d);\n });\n } else {\n this.addPrevNonVisibleDto(firstIdx - 1, ritdelen, loadingDtos, visibleRitPplgs, allDtos);\n }\n }\n }\n\n private addNextNonVisibleDto(lastIdx, ritdelen: Ritdeel[], loadingDtos: ISignaleringsbeeldInfoDto[], visibleRitPplgs: string[],\n allDtos: ISignaleringsbeeldInfoDto[]): void {\n if (lastIdx <= ritdelen.length - 1) {\n const pplg = ritdelen[lastIdx].getPplg();\n const ritdeelDtos = allDtos.filter(dto => dto.pplgs.includes(pplg)).filter(dto => !loadingDtos.includes(dto));\n\n if (!visibleRitPplgs.includes(pplg) && ritdeelDtos.length > 0) {\n ritdeelDtos.filter(d => !loadingDtos.includes(d)).forEach(d => {\n d.metVisualisatie = false;\n loadingDtos.push(d);\n });\n } else {\n this.addNextNonVisibleDto(lastIdx + 1, ritdelen, loadingDtos, visibleRitPplgs, allDtos);\n }\n }\n }\n\n private debugLog(debug, visibleRitPplgs: string[], loadingDtos): void {\n if (debug) {\n console.log('RIT PPLGs: ' + visibleRitPplgs);\n loadingDtos.forEach(dto => {\n let str = '\\nDTO-bladNaam: ' + dto.bladNaam;\n str += '\\nDTO-PPLGs : ' + dto.pplgs;\n str += '\\nVisible : ' + dto.metVisualisatie;\n console.log(str);\n });\n }\n }\n\n // acties: Navigeer|NavigeerVanaf|SetRitDelen\n private navigeer(ritDelen: Ritdeel[], actie: {\n paginationSize: number;\n stapSize: number;\n type: string;\n ritdeel\n }, storeDtos: ISignaleringsbeeldInfoDto[]): void {\n // alle ritdelen krijgen zichtbaarheidBuitenPaginatie => false\n if (actie.type === RitdelenActions.SET_RIT_DELEN) {\n this.bepaalZichtbaarheidRechts(0, ritDelen, actie.paginationSize, storeDtos);\n } else if (actie.type === RitdelenActions.NAVIGEER) {\n const isLinks = actie.stapSize < 0;\n const startIndex = this.bepaalStartIndex(ritDelen);\n const endIndex = this.bepaalEndIndex(ritDelen);\n const navigerenMogelijk = !(startIndex === 0 && isLinks || endIndex === ritDelen.length - 1 && !isLinks);\n if (navigerenMogelijk) {\n if (isLinks) {\n this.bepaalZichtbaarheidLinks(startIndex, ritDelen, actie.paginationSize, storeDtos);\n } else {\n this.bepaalZichtbaarheidRechts(endIndex, ritDelen, actie.paginationSize, storeDtos);\n }\n }\n } else if (actie.type === RitdelenActions.NAVIGEER_VANAF) {\n const idx = ritDelen.indexOf(actie.ritdeel);\n this.bepaalZichtbaarheidRechts(idx, ritDelen, actie.paginationSize, storeDtos);\n }\n }\n\n private updateRitdelen(ritdelen: Ritdeel[], visibleDtos: ISignaleringsbeeldInfoDto[]): Ritdeel[] {\n const visibleIndices = [];\n for (let i = 0; i < ritdelen.length; i++) {\n if (ritdelen[i].isZichtbaarBinnenWindow()) {\n visibleIndices.push(i);\n }\n }\n const min = Math.min(...visibleIndices);\n const max = Math.max(...visibleIndices);\n\n for (let i = 0; i < ritdelen.length; i++) {\n const rd = ritdelen[i];\n\n if (rd.isZichtbaarBinnenWindow()) {\n rd.bepaalTopologieElementen(this.signaleringsBeeldManagerService);\n if (rd.getTopologieElementen().length > 0) {\n ritdelen[i] = rd.isNietBeschikbaar() ? rd.copyMetZichtbaarheid(RitdeelZichtbaarheid.ZICHTBAAR) : rd;\n } else {\n ritdelen[i] = this.maakOnzichtbaar(rd);\n }\n }\n }\n\n this.updateZichtbaarheidAangrezendeRitdelen(min, max, ritdelen, visibleDtos);\n\n return this.updateZichtbaarheidBuitenWindow(ritdelen, visibleDtos);\n }\n\n private updateZichtbaarheidBuitenWindow(nieuweRitdelen, visibleDtos: ISignaleringsbeeldInfoDto[]): Ritdeel[] {\n\n for (let i = 0; i < nieuweRitdelen.length; i++) {\n const rd = nieuweRitdelen[i];\n\n if (!rd.isZichtbaar() && this.bevatGevisualiseerdePplg(visibleDtos, rd.getPplg())) {\n rd.bepaalTopologieElementen(this.signaleringsBeeldManagerService);\n if (rd.getTopologieElementen().length > 0 && this.isEersteLaatstePuicZichtbaar(rd.getTopologieElementen())) {\n nieuweRitdelen[i] = rd.isNietBeschikbaar() ? rd.copyMetZichtbaarheidEnPaginatie(RitdeelZichtbaarheid.ZICHTBAAR, true) :\n rd.copyMetZichtbaarheidBuitenPaginatie(true);\n }\n }\n }\n return nieuweRitdelen;\n }\n\n private updateZichtbaarheidAangrezendeRitdelen(min, max, nieuweRitdelen, visibleDtos: ISignaleringsbeeldInfoDto[]): void {\n let i = min - 1;\n while (i >= 0) {\n i = this.updateZichtbaarHeid(i, 0, visibleDtos, nieuweRitdelen) - 1;\n }\n\n i = max + 1;\n while (i < nieuweRitdelen.length) {\n i = this.updateZichtbaarHeid(i, nieuweRitdelen.length, visibleDtos, nieuweRitdelen) + 1;\n }\n }\n\n private updateZichtbaarHeid(i: number, end: number, visibleDtos: ISignaleringsbeeldInfoDto[], nieuweRitdelen: Ritdeel[]): number {\n const rd = nieuweRitdelen[i];\n if (this.bevatGevisualiseerdePplg(visibleDtos, rd.getPplg())) {\n i = this.updateZichtbaarheidAangrenzendeRitdeel(rd, nieuweRitdelen, i, end);\n } else {\n i = end;\n }\n return i;\n }\n\n private isEersteLaatstePuicZichtbaar(topoElementen: TopologyElement[]): boolean {\n return !!document.getElementById('p' + topoElementen[0].getPuic()) ||\n !!document.getElementById('p' + topoElementen[topoElementen.length - 1].getPuic());\n }\n\n private updateZichtbaarheidAangrenzendeRitdeel(rd: Ritdeel, nieuweRitdelen: Ritdeel[], i: number, end: number): any {\n rd.bepaalTopologieElementen(this.signaleringsBeeldManagerService);\n if (rd.getTopologieElementen().length > 0 && this.isEersteLaatstePuicZichtbaar(rd.getTopologieElementen())) {\n nieuweRitdelen[i] = rd.isNietBeschikbaar() ? rd.copyMetZichtbaarheid(RitdeelZichtbaarheid.ZICHTBAAR) : rd;\n\n } else {\n return end;\n }\n return i;\n }\n\n private bevatGevisualiseerdePplg(visibleDtos: ISignaleringsbeeldInfoDto[], pplg: string): boolean {\n for (const dto of visibleDtos) {\n for (const dtopplg of dto.pplgs) {\n if (dtopplg === pplg) {\n return true;\n }\n }\n }\n return false;\n }\n\n private maakOnzichtbaar(rd): Ritdeel {\n return rd.isZichtbaar() || rd.isOnzichtbaarDoorGebruiker() ?\n rd.copyMetZichtbaarheidEnPaginatie(RitdeelZichtbaarheid.ONZICHTBAAR_DOOR_SYSTEEM, false) :\n rd.copyMetZichtbaarheidBuitenPaginatie(false);\n }\n\n private bepaalZichtbaarheidRechts(idx: number, items: Ritdeel[], paginationSize: number, dtos: ISignaleringsbeeldInfoDto[]): void {\n const pplgsWindow = [];\n const dtosWindow = [];\n for (let i = 0; i < items.length; i++) {\n const rd = items[i];\n if (i >= idx && this.valtBinnenPaginatieWindow(pplgsWindow, paginationSize, dtosWindow)) {\n this.setZichtbaar(rd, pplgsWindow, dtos, dtosWindow, items, i);\n } else {\n items[i] = rd.isZichtbaar() || rd.isOnzichtbaarDoorGebruiker() ?\n rd.copyMetZichtbaarheidEnPaginatie(RitdeelZichtbaarheid.ONZICHTBAAR_DOOR_SYSTEEM, false) :\n rd.copyMetZichtbaarheidBuitenPaginatie(false);\n }\n }\n }\n\n private bepaalZichtbaarheidLinks(idx: number, items: Ritdeel[], paginationSize: number, dtos: ISignaleringsbeeldInfoDto[]): void {\n const pplgsWindow = [];\n const dtosWindow = [];\n for (let i = items.length - 1; i >= 0; i--) {\n const rd = items[i];\n if (i <= idx && this.valtBinnenPaginatieWindow(pplgsWindow, paginationSize, dtosWindow)) {\n this.setZichtbaar(rd, pplgsWindow, dtos, dtosWindow, items, i);\n } else {\n items[i] = rd.isZichtbaar() || rd.isOnzichtbaarDoorGebruiker() ?\n rd.copyMetZichtbaarheidEnPaginatie(RitdeelZichtbaarheid.ONZICHTBAAR_DOOR_SYSTEEM, false) :\n rd.copyMetZichtbaarheidBuitenPaginatie(false);\n }\n }\n }\n\n private valtBinnenPaginatieWindow(pplgsWindow, paginationSize: number, dtosWindow): boolean {\n return pplgsWindow.length < paginationSize || dtosWindow.length < paginationSize;\n }\n\n private setZichtbaar(rd, pplgsWindow, dtos: ISignaleringsbeeldInfoDto[], dtosWindow, items: Ritdeel[], i: number): void {\n const itemPplg = rd.getPplg();\n if (!pplgsWindow.includes(itemPplg)) {\n pplgsWindow.push(itemPplg);\n }\n\n const pplgDtos = [];\n dtos.filter(dto => dto.pplgs.includes(itemPplg)).forEach(dto => {\n if (!pplgDtos.includes(dto)) {\n pplgDtos.push(dto);\n }\n });\n\n pplgDtos.filter(d => !dtosWindow.includes(d)).forEach(d => dtosWindow.push(d));\n\n items[i] = !rd.isZichtbaar() ? rd.copyMetZichtbaarheidEnPaginatie(RitdeelZichtbaarheid.ZICHTBAAR, false) :\n rd.copyMetZichtbaarheidBuitenPaginatie(false);\n }\n\n private bepaalStartIndex(ritDelen: Ritdeel[]): number {\n for (let i = 0; i < ritDelen.length; i++) {\n if (ritDelen[i].isBinnenWindow()) {\n return i;\n }\n }\n return -1;\n }\n\n private bepaalEndIndex(ritDelen: Ritdeel[]): number {\n for (let i = ritDelen.length - 1; i >= 0; i--) {\n if (ritDelen[i].isBinnenWindow()) {\n return i;\n }\n }\n return -1;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { Store } from '@ngrx/store';\nimport { from } from 'rxjs';\nimport { map, switchMap, withLatestFrom } from 'rxjs/operators';\nimport { Beweging } from '../../optimo';\nimport { BewegingVerrijkerService } from '../../services/beweging-verrijker.service';\nimport { KeurAlleActiesGoed, UpdateRit } from '../actions/actions';\nimport { MstEditorState } from '../mst-editor-state';\n\n@Injectable()\nexport class RitGoedkeurenEffect {\n\n constructor(private actions$: Actions,\n private store: Store<MstEditorState>,\n private bewegingVerrijker: BewegingVerrijkerService) {\n }\n\n keurAllesGoed$ = createEffect(() => this.actions$.pipe(\n ofType(KeurAlleActiesGoed),\n withLatestFrom(this.store),\n switchMap(([action, _store]) =>\n from(this.bewegingVerrijker.getBewegingen(action.bewegingen, action.ongeplandeActies)),\n ),\n map((bewegingen: Beweging[]) => UpdateRit(bewegingen))\n ));\n}\n","import { Injectable } from '@angular/core';\nimport { domein, JsJavaUtil } from '@loxia/rijwegen';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { Store } from '@ngrx/store';\nimport { map, withLatestFrom } from 'rxjs/operators';\nimport { RijwegplanRijwegDwangCombinatie } from '../../model/rijwegplan-rijweg-dwang-combinatie';\nimport { Ritdeel } from '../../model/ritdeel';\nimport { EditorService } from '../../services/editor.service';\nimport { SignaleringsBeeldManagerService } from '../../services/signalerings-beeld-manager.service';\nimport * as RitdelenActions from '../actions/ritdelen.actions';\nimport { MstEditorState } from '../mst-editor-state';\nimport VrijebaanRijwegplan = domein.VrijebaanRijwegplan;\n\n@Injectable()\nexport class RitdelenEffect {\n\n constructor(private actions$: Actions,\n private store: Store<MstEditorState>,\n private sbmService: SignaleringsBeeldManagerService,\n private rijwegPlanEditorService: EditorService) {\n }\n\n updateRitDelen$ = createEffect(() => this.actions$.pipe(\n ofType(RitdelenActions.updateRitDelen),\n withLatestFrom(this.store),\n map(([actie, _storeState]) => {\n const nieuweRitDelen = actie.ritDelen.map(ritDeel => ritDeel.isZichtbaar() ?\n ritDeel.copyMetAlternatieveRoutes(this.sbmService.bepaalAlternativeRoutes(ritDeel.getRijweg())) : ritDeel);\n return RitdelenActions.setRitdelenAfterUpdate(nieuweRitDelen);\n }))\n );\n\n setAlternatieveRitDelen$ = createEffect(() => this.actions$.pipe(\n ofType(RitdelenActions.setAlternatieveRitDelen),\n withLatestFrom(this.store),\n map(([actie, storeState]) => {\n const alternatieveRitDeel = actie.alternatieveRitDeel;\n const ritDelen = storeState.ritDelen;\n const orgRitdeel = alternatieveRitDeel.ritDeel;\n let newRitDeel = orgRitdeel.copyMetDwang(alternatieveRitDeel.alternatieveRoute.getDwang());\n const alterRoutes = this.sbmService.bepaalAlternativeRoutes(alternatieveRitDeel.ritDeel.getRijweg());\n newRitDeel = newRitDeel.copyMetAlternatieveRoutesZonderActies(alterRoutes);\n newRitDeel.bepaalTopologieElementen(this.sbmService);\n this.vervangRitdeel(ritDelen, orgRitdeel, newRitDeel);\n\n return RitdelenActions.setRitdelenAfterUpdate(ritDelen);\n }))\n );\n\n ritdeelInvoegen$ = createEffect(() => this.actions$.pipe(\n ofType(RitdelenActions.ritdeelInvoegen),\n withLatestFrom(this.store),\n map(([actie, storeState]) => {\n const ritDelen = this.ritdeelInvoegenFunc(storeState.ritDelen, actie.nieuweRoute, this.rijwegPlanEditorService, this.sbmService);\n return RitdelenActions.setRitdelenAfterUpdate(ritDelen);\n }))\n );\n\n private ritdeelInvoegenFunc(ritDelen: Ritdeel[], nieuweRoute, rijwegPlanEditorService, sbmService): Ritdeel[] {\n const origineelRitdeel = nieuweRoute.beginSeinOpRitdeel.ritdeel;\n const beginSein = nieuweRoute.beginSeinOpRitdeel.sein;\n const rijwegplan = rijwegPlanEditorService.getRijwegplan(beginSein.getPPLG());\n const dwangen: domein.Dwang[] = JsJavaUtil.listToArray(rijwegplan.getOnderliggendeDwangenTotEnVanSein(origineelRitdeel.getDwang(), beginSein));\n const isSamengesteldeRoute = dwangen[0] && dwangen[1];\n\n let newRitdeel1 = origineelRitdeel;\n\n if (isSamengesteldeRoute) {\n newRitdeel1 = this.verwerkSamengesteldeRoute(origineelRitdeel, rijwegplan, dwangen, sbmService, ritDelen);\n }\n\n if (nieuweRoute.combinatieVoorEindsein.isVrijeBaanRijweg()) {\n this.extendRitdeelMetVrijebaanInfo(newRitdeel1, nieuweRoute, sbmService);\n } else {\n this.maakNieuwRitdeel(newRitdeel1, nieuweRoute, sbmService, ritDelen);\n }\n\n if (isSamengesteldeRoute) {\n ritDelen.splice(ritDelen.indexOf(origineelRitdeel), 1);\n }\n\n return [...ritDelen];\n }\n\n\n private vervangRitdeel(ritdelen: Ritdeel[], orgRitdeel: Ritdeel, newRitdeel: Ritdeel): void {\n for (let i = 0; i < ritdelen.length; i++) {\n if (ritdelen[i] === orgRitdeel) {\n ritdelen[i] = newRitdeel;\n break;\n }\n }\n }\n\n private verwerkSamengesteldeRoute(origineelRitdeel, rijwegplan, dwangen, sbmService, ritDelen): Ritdeel {\n // dwangen in 2 nieuwe ritdelen verwerken voor de knip\n const nieuweRijweg1 =\n rijwegplan.getRijwegVoorSeinen(dwangen[0].getRoute().getBeginSein(), dwangen[0].getRoute().getEindSein());\n const dwangInfo1 = new RijwegplanRijwegDwangCombinatie(rijwegplan, nieuweRijweg1, dwangen[0]);\n const newRitdeel1 = new Ritdeel(dwangInfo1, [], null, null, null, []);\n\n // remove vrijbaan info uit ritdeel\n newRitdeel1.vrijebaanRijwegplanRijwegDwangCombi = null;\n newRitdeel1.vervolgSpoor = null;\n\n newRitdeel1.bepaalTopologieElementen(sbmService);\n this.insertRitdeel(ritDelen, origineelRitdeel, newRitdeel1);\n\n const nieuweRijweg2 =\n rijwegplan.getRijwegVoorSeinen(dwangen[1].getRoute().getBeginSein(), dwangen[1].getRoute().getEindSein());\n const dwangInfo2 = new RijwegplanRijwegDwangCombinatie(rijwegplan, nieuweRijweg2, dwangen[1]);\n const newRitdeel2 = new Ritdeel(dwangInfo2, [], null, null, null, []);\n\n newRitdeel2.bepaalTopologieElementen(sbmService);\n this.insertRitdeel(ritDelen, newRitdeel1, newRitdeel2);\n\n return newRitdeel1;\n }\n\n private extendRitdeelMetVrijebaanInfo(newRitdeel1, nieuweRoute, sbmService): void {\n newRitdeel1.vrijebaanRijwegplanRijwegDwangCombi = nieuweRoute.combinatieVoorEindsein;\n\n const vbrwp = <VrijebaanRijwegplan>nieuweRoute.combinatieVoorEindsein.rijwegplan;\n newRitdeel1.vervolgSpoor = vbrwp.getVervolgSpoor(nieuweRoute.combinatieVoorEindsein.rijweg);\n\n newRitdeel1.bepaalTopologieElementen(sbmService);\n }\n\n private maakNieuwRitdeel(newRitdeel1, nieuweRoute, sbmService, ritDelen): void {\n let newRitdeel = this.createRitdeel(nieuweRoute);\n const altRoutes = sbmService.bepaalAlternativeRoutes(newRitdeel.getRijweg());\n newRitdeel = newRitdeel.copyMetAlternatieveRoutes(altRoutes);\n newRitdeel.bepaalTopologieElementen(sbmService);\n this.insertRitdeel(ritDelen, newRitdeel1, newRitdeel);\n }\n\n createRitdeel(nieuweRoute): Ritdeel {\n return new Ritdeel(nieuweRoute.combinatieVoorEindsein, [], null, null, null, []);\n }\n\n private insertRitdeel(ritdelen: Ritdeel[], naRitdeelPositie: Ritdeel, newRitdeel: Ritdeel): void {\n const idx = ritdelen.indexOf(naRitdeelPositie);\n ritdelen.splice(idx + 1, 0, newRitdeel);\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { SignaleringsbeeldSvgUtilityService } from '@loxia/rijwegen';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { Store } from '@ngrx/store';\nimport { map } from 'rxjs/operators';\nimport { SignaleringsBeeldManagerService } from '../../services/signalerings-beeld-manager.service';\nimport * as MstActions from '../actions/actions';\nimport { SetConnectorenClickableIds } from '../actions/actions';\nimport { MstEditorState } from '../mst-editor-state';\n\n@Injectable()\nexport class SvgViewEffect {\n\n constructor(private actions$: Actions,\n private store: Store<MstEditorState>,\n private signaleringsBeeldManagerService: SignaleringsBeeldManagerService,\n private sbSvgUtilService: SignaleringsbeeldSvgUtilityService) {\n }\n\n updateSvgView$ = createEffect(() => this.actions$.pipe(\n ofType(MstActions.SetSvgInfos),\n map((_actie) => {\n setTimeout(() => {\n this.sbSvgUtilService.addSvgDefs();\n\n const wisselEnStoringskaderPuicMap = new Map<string, string>();\n this.signaleringsBeeldManagerService.getAlleSoortenWissels()\n .forEach(wissel => wisselEnStoringskaderPuicMap.set(wissel.getPuic(), wissel.getStoringSymboolPuic()));\n this.sbSvgUtilService.zetClassOpStoringSymbolenMetMap(wisselEnStoringskaderPuicMap);\n this.sbSvgUtilService.zetClassOpSpoornummers(this.signaleringsBeeldManagerService.getPuicsVoorSpoornummers());\n\n this.sbSvgUtilService.maakOngewensteElementenOnzichtbaar();\n this.sbSvgUtilService.zetClassOpLangeText();\n\n this.sbSvgUtilService.maakOngewensteSeindelenOnzichtbaar(this.signaleringsBeeldManagerService.getSeinen());\n this.sbSvgUtilService.maakSignaleringsElementenOnzichtbaar(this.signaleringsBeeldManagerService.getSignaleringsElementen());\n\n const puicsVoorRanden = this.signaleringsBeeldManagerService.getPuicsVoorRanden();\n this.zetClassOpRanden(puicsVoorRanden);\n this.sbSvgUtilService.zetClassOpRijrichtingen(this.signaleringsBeeldManagerService.getSeinen());\n this.store.dispatch(SetConnectorenClickableIds(puicsVoorRanden));\n\n }, 0);\n })), {dispatch: false}\n );\n\n private zetClassOpRanden(puics: string[]): void {\n puics.forEach(element => {\n const rand = document.getElementById('p' + element);\n rand?.classList.add('connector');\n });\n }\n}\n","import { RijwegplanRijwegDwangCombinatie } from './rijwegplan-rijweg-dwang-combinatie';\nimport { SeinOpRitdeel } from './sein-op-ritdeel';\n\nexport class NieuweRoute {\n\n constructor(public beginSeinOpRitdeel: SeinOpRitdeel, public combinatieVoorEindsein: RijwegplanRijwegDwangCombinatie) {\n }\n\n isValid(): boolean {\n return this.combinatieVoorEindsein !== null;\n }\n}\n","import { ActionReducer, createReducer, on } from '@ngrx/store';\nimport { Ritdeel, RitdeelZichtbaarheid } from '../../model/ritdeel';\nimport * as RitdelenActions from '../actions/ritdelen.actions';\n\nconst { ZICHTBAAR, ONZICHTBAAR_DOOR_GEBRUIKER, ONZICHTBAAR_DOOR_SYSTEEM } = RitdeelZichtbaarheid;\n\nexport const ritdelenReducer: ActionReducer<Ritdeel[], RitdelenActions.RitDeelActionsUnion> = createReducer(\n [] as Ritdeel[],\n on(RitdelenActions.setRitdelenAfterUpdate, setRitDelenAfterUpdateFunc),\n on(RitdelenActions.setRitdeelZichtbaar, setRitdeelZichtbaarFunc),\n on(RitdelenActions.toggleRitdeelZichtbaar, toggleRitdeelZichtbaarFunc),\n on(RitdelenActions.setZichtbaarheidAlleRitdelen, setZichtbaarheidAlleRitdelenFunc),\n on(RitdelenActions.toggleZichtbaarheidVoorBewegingen, toggleZichtbaarheidVoorBewegingenFunc),\n on(RitdelenActions.deleteRitdeel, deleteRitdeelFunc),\n on(RitdelenActions.deleteRitdeelActie, deleteRitdeelActieFunc),\n on(RitdelenActions.addRitdeelActie, addRitdeelActieFunc)\n);\n\nfunction setRitDelenAfterUpdateFunc(_: Ritdeel[], { ritDelen }): Ritdeel[] {\n return [...ritDelen];\n}\n\nfunction setRitdeelZichtbaarFunc(ritDelen: Ritdeel[], { ritDeel, zichtbaar }): Ritdeel[] {\n const gezetRitdeel = ritDeel.copyMetZichtbaarheid(zichtbaar ? ZICHTBAAR : ONZICHTBAAR_DOOR_GEBRUIKER);\n vervangRitdeel(ritDelen, ritDeel, gezetRitdeel);\n return [...ritDelen];\n}\n\nfunction toggleRitdeelZichtbaarFunc(ritDelen: Ritdeel[], { ritDeel }): Ritdeel[] {\n const getoggeldeRitdeel = ritDeel.copyMetZichtbaarheid(ritDeel.isZichtbaar() ? ONZICHTBAAR_DOOR_GEBRUIKER : ZICHTBAAR);\n vervangRitdeel(ritDelen, ritDeel, getoggeldeRitdeel);\n return [...ritDelen];\n}\n\nfunction setZichtbaarheidAlleRitdelenFunc(ritDelen: Ritdeel[], { zichtbaarheid }): Ritdeel[] {\n ritDelen.filter(r => r.getZichtbaarheid() !== ONZICHTBAAR_DOOR_SYSTEEM).forEach(ritDeel => {\n vervangRitdeel(ritDelen, ritDeel, ritDeel.copyMetZichtbaarheid(zichtbaarheid ? ZICHTBAAR : ONZICHTBAAR_DOOR_GEBRUIKER));\n });\n return [...ritDelen];\n}\n\nfunction toggleZichtbaarheidVoorBewegingenFunc(ritDelen: Ritdeel[], { bewegingIds }): Ritdeel[] {\n ritDelen.filter(r => r.beweging && bewegingIds.includes(Number(r.getBewegingId()))).forEach(ritDeel => {\n vervangRitdeel(ritDelen, ritDeel, ritDeel.copyMetZichtbaarheid(ZICHTBAAR));\n });\n return [...ritDelen];\n}\n\nfunction vervangRitdeel(ritdelen: Ritdeel[], orgRitdeel: Ritdeel, newRitdeel: Ritdeel): void {\n for (let i = 0; i < ritdelen.length; i++) {\n if (ritdelen[i] === orgRitdeel) {\n ritdelen[i] = newRitdeel;\n break;\n }\n }\n}\n\nfunction deleteRitdeelFunc(ritDelen: Ritdeel[], { ritDeel }): Ritdeel[] {\n const idx = ritDelen.indexOf(ritDeel);\n if (idx >= 0) {\n ritDelen.splice(idx, 1);\n }\n return [...ritDelen];\n}\n\nfunction deleteRitdeelActieFunc(ritDelen: Ritdeel[], { ritDeel, actie }): Ritdeel[] {\n for (const item of ritDelen) {\n // We gebruiken equals omdat het wel of niet zichtbaar zijn van een ritdeel niet relevant is\n if (item.equals(ritDeel)) {\n const acties = ritDeel.acties;\n const aidx = acties.indexOf(actie);\n acties.splice(aidx, 1);\n break;\n }\n }\n return [...ritDelen];\n}\n\nfunction addRitdeelActieFunc(ritDelen: Ritdeel[], { ritDeel, actie }): Ritdeel[] {\n ritDeel.acties.push(actie);\n return [...ritDelen];\n}\n\n","import { SvgInfo } from '@loxia/imx-viewer';\nimport { createReducer, on } from '@ngrx/store';\nimport { AlgemeneRitDto } from '../../generated/openapi';\nimport { ProgressIndicator } from '../atomic-components/progress-indicator/progress-indicator.entity';\nimport { NieuweRoute } from '../model/nieuwe-route';\nimport { OngeplandeActie } from '../model/ongeplande-actie';\nimport { Ritdeel } from '../model/ritdeel';\nimport { Actie, Beweging, InfraModel } from '../optimo';\nimport { ISignaleringsbeeldInfoDto } from '../resources/signaleringsbeeldinfo.resource';\nimport { ArrayMultimap } from '../util/multi-map';\nimport * as MstActions from './actions/actions';\nimport { ritdelenReducer } from './reducer/rit-delen.reducer';\n\nexport interface MstEditorState {\n ritDelen: Ritdeel[]; // ons model van treinpad\n\n // puics voor SelectieInfos\n ritSelectieIds: string[];\n actieOpRitSelectieIds: string[];\n gebrokenRitSelectieIds: string[];\n alternatievenSelectieIds: string[];\n beginSeinSelectieIds: string[];\n eindSeinSelectieIds: string[];\n ongeplandeActieSelectieIds: string[];\n ongeplandeActies: ArrayMultimap<string, OngeplandeActie>;\n geplandeActies: ArrayMultimap<Actie, string>;\n\n // puics voor clicks\n alternatievenClickableIds: string[];\n eindSeinenClickableIds: string[];\n connectorClickableIds: string[];\n\n // puics voor rightclicks\n beginSeinRightClickableIds: string[];\n\n nieuweRoute: NieuweRoute;\n\n signaleringsbeeldInfoDtos: ISignaleringsbeeldInfoDto[];\n visibleSbInfoDtos: ISignaleringsbeeldInfoDto[];\n algemeneRitInfoDto: AlgemeneRitDto;\n iaVersie: InfraModel;\n svgInfos: SvgInfo[];\n debug: boolean;\n editable: boolean;\n ongeplandeActiesBepaald: boolean;\n progressState: ProgressState;\n nieuweBewegingen: Beweging[];\n baseUrl: string;\n focusIds: string[];\n selectedRitdeelId: number;\n}\n\ninterface ProgressState {\n progressIndicator?: ProgressIndicator;\n}\n\nconst onIdsActionHandler = (action) => on(action, (_: string[], { ids }) => ids);\nconst createIdsReducer = (action) => createReducer([] as string[], onIdsActionHandler(action));\n\nexport const editableReducer = createReducer(true, on(MstActions.setEditable, (_, { editable }) => editable));\n\nexport const progressIndicatorReducer = createReducer(\n undefined,\n on(MstActions.ShowProgress, () => ({ progressIndicator: {} })),\n on(MstActions.ClearProgress, () => undefined)\n);\n\nexport const svgInfoReducer = createReducer([] as SvgInfo[], on(MstActions.SetSvgInfos, (_, { svgInfos }) => svgInfos));\nexport const debugReducer = createReducer(false, on(MstActions.SetDebug, (_, { debug }) => debug));\nexport const ritSelectieIdsReducer = createIdsReducer(MstActions.SetRitSelectieIds);\n\nexport const actieOpRitReducer = createReducer(\n new ArrayMultimap<Actie, string>(),\n on(MstActions.SetGeplandeActies, (_, { geplandeActiesMap }) => geplandeActiesMap),\n on(MstActions.AddGeplandeActie, (geplandeActies, { actie, puics }) => {\n geplandeActies.putAll(actie, puics);\n return new ArrayMultimap(geplandeActies);\n }),\n on(MstActions.DeleteGeplandeActie, (geplandeActies, { actie }) => {\n geplandeActies.delete(actie);\n return new ArrayMultimap(geplandeActies);\n })\n);\n\nexport const actieOpRitSelectieIdsReducer = createReducer(\n [] as string[],\n onIdsActionHandler(MstActions.SetActieOpRitSelectieIds),\n on(MstActions.AddGeplandeActie, (ids: string[], { puics }) => {\n puics.filter(puic => !ids.includes(puic)).forEach(puic => ids.push(puic));\n return [...ids];\n }),\n on(MstActions.DeleteGeplandeActie, (ids: string[], { puics }) => {\n puics.filter(puic => ids.includes(puic)).forEach(puic => ids = ids.filter(p => p !== puic));\n return [...ids];\n })\n);\n\nexport const ongeplandeActieReducer = createReducer(\n new ArrayMultimap<string, OngeplandeActie>(),\n on(MstActions.SetOngeplandeActies, (_, { ongeplandeActiesMap }) => ongeplandeActiesMap),\n on(MstActions.AddOngeplandeActie, (ongeplandeActies, { ongeplandeActie }) => {\n ongeplandeActie.puics.filter(puic => !ongeplandeActies.containsEntry(puic, ongeplandeActie))\n .forEach(puic => ongeplandeActies.put(puic, ongeplandeActie));\n return new ArrayMultimap(ongeplandeActies);\n }),\n on(MstActions.DeleteOngeplandeActie, (ongeplandeActies, { ongeplandeActie }) => {\n ongeplandeActie.puics.forEach(puic => ongeplandeActies.delete(puic, ongeplandeActie));\n return new ArrayMultimap(ongeplandeActies);\n })\n);\n\nexport const ongeplandeActieSelectieIdsReducer = createReducer(\n [] as string[],\n // on(MstActions.SetOngeplandeActieSelectieIds, (_, { ids }) => ids),\n onIdsActionHandler(MstActions.SetOngeplandeActieSelectieIds),\n on(MstActions.AddOngeplandeActie, (ids: string[], { ongeplandeActie }) => {\n ongeplandeActie.puics.filter(puic => !ids.includes(puic)).forEach(puic => ids.push(puic));\n return [...ids];\n }),\n on(MstActions.DeleteOngeplandeActieSelectieId, (ids: string[], { id }) => [].concat(ids.includes(id) ? ids.filter(_id => _id !== id) : ids))\n);\n\nexport const gebrokenRitSelectieIdsReducer = createIdsReducer(MstActions.SetGebrokenRitSelectieIds);\nexport const alternatievenSelectieIdsReducer = createIdsReducer(MstActions.SetAlternatievenSelectieIds);\nexport const beginSeinSelectieIdsReducer = createIdsReducer(MstActions.SetBeginSeinSelectieIds);\nexport const eindSeinSelectieIdsReducer = createIdsReducer(MstActions.SetEindSeinSelectieIds);\nexport const alternatievenClickableIdsReducer = createIdsReducer(MstActions.SetAlternatievenClickableIds);\nexport const eindSeinenClickableIdsReducer = createIdsReducer(MstActions.SetEindSeinenClickableIds);\nexport const connectorClickableIdsReducer = createIdsReducer(MstActions.SetConnectorenClickableIds);\nexport const beginSeinRightClickableIdsReducer = createIdsReducer(MstActions.SetBeginSeinRightClickableIds);\n\nexport const nieuweRouteReducer = createReducer(\n new NieuweRoute(null, null),\n on(MstActions.SetNieuwRouteBeginSein, (_, { startSeinOpRitdeel }) => new NieuweRoute(startSeinOpRitdeel, null)),\n on(MstActions.SetNieuwRouteEindSein, (nieuweRoute, { combinatieVoorEindsein }) => new NieuweRoute(nieuweRoute.beginSeinOpRitdeel, combinatieVoorEindsein)),\n on(MstActions.ResetNieuweRoute, () => new NieuweRoute(null, null))\n);\n\nexport const signaleringsbeeldInfoDtosReducer = createReducer(\n [] as ISignaleringsbeeldInfoDto[],\n on(MstActions.SetSignaleringsbeeldInfoDtos, (_, { dtos }) => dtos),\n on(MstActions.UpdateSignaleringsbeeldInfoDtos, (_, { dtos }) => [...dtos])\n);\n\nexport const visibleSbInfoDtosReducer = createReducer(\n [] as ISignaleringsbeeldInfoDto[],\n on(MstActions.SetVisibleSignaleringsbeeldInfoDtos, (_, { dtos }) => dtos),\n on(MstActions.UpdateVisibleSignaleringsbeeldInfoDtos, (_, { dtos }) => [...dtos])\n);\n\nexport const iaVersieReducer = createReducer({},\n on(MstActions.SetIaVersie,\n (_, { iaVersie }) => Object.assign({}, iaVersie, { versie: iaVersie.versie.toUpperCase() })));\nexport const algemeneRitInfoDtoReducer = createReducer({ }, on(MstActions.SetAlgemeneRitInfo, (_, { algemeneRitInfoDto }) => algemeneRitInfoDto));\nexport const ongeplandeActiesBepaaldReducer = createReducer(false, on(MstActions.SetOngeplandeActiesBepaald, (_, { bepaald }) => bepaald));\n\nexport const nieuweBewegingReducer = createReducer({ }, on(MstActions.UpdateRit, (_, { bewegingen }) => bewegingen));\n\nexport const baseUrlReducer = createReducer(undefined, on(MstActions.SetBaseUrl, (_, { baseUrl }) => baseUrl));\n\nexport const focusIdsReducer = createReducer({ }, on(MstActions.focusOpIds, (_, { puics }) => puics));\n\nexport const selectedRitdeelIdReducer = createReducer({}, on(MstActions.SetSelectedRitdeel, (_, { id }) => id));\n\nexport const storeReducers = {\n ritDelen: ritdelenReducer,\n ritSelectieIds: ritSelectieIdsReducer,\n actieOpRitSelectieIds: actieOpRitSelectieIdsReducer,\n ongeplandeActieSelectieIds: ongeplandeActieSelectieIdsReducer,\n ongeplandeActies: ongeplandeActieReducer,\n gebrokenRitSelectieIds: gebrokenRitSelectieIdsReducer,\n alternatievenSelectieIds: alternatievenSelectieIdsReducer,\n beginSeinSelectieIds: beginSeinSelectieIdsReducer,\n eindSeinSelectieIds: eindSeinSelectieIdsReducer,\n alternatievenClickableIds: alternatievenClickableIdsReducer,\n eindSeinenClickableIds: eindSeinenClickableIdsReducer,\n connectorClickableIds: connectorClickableIdsReducer,\n beginSeinRightClickableIds: beginSeinRightClickableIdsReducer,\n nieuweRoute: nieuweRouteReducer,\n geplandeActies: actieOpRitReducer,\n signaleringsbeeldInfoDtos: signaleringsbeeldInfoDtosReducer,\n visibleSbInfoDtos: visibleSbInfoDtosReducer,\n iaVersie: iaVersieReducer,\n algemeneRitInfoDto: algemeneRitInfoDtoReducer,\n svgInfos: svgInfoReducer,\n debug: debugReducer,\n editable: editableReducer,\n ongeplandeActiesBepaald: ongeplandeActiesBepaaldReducer,\n progressState: progressIndicatorReducer,\n nieuweBewegingen: nieuweBewegingReducer,\n baseUrl: baseUrlReducer,\n focusIds: focusIdsReducer,\n selectedRitdeelId: selectedRitdeelIdReducer\n};\n\n","import { Injectable, NgZone } from '@angular/core';\n\n@Injectable()\nexport class ZoneUtil {\n private readonly zoneHandler;\n\n constructor(private readonly ngZone: NgZone) {\n\n this.zoneHandler = {\n get: (target: any, name: string): () => any => {\n const _ZoneHandler = this;\n const delegate = target[name];\n if (this.isFunction(delegate)) {\n return function(...args) {\n const that = this;\n return _ZoneHandler.ngZone.run(() => delegate.apply(that, args));\n };\n }\n return delegate;\n }\n };\n }\n\n isFunction(obj): boolean {\n return !!(obj?.constructor && obj.call && obj.apply);\n }\n\n proxy(target: any): any {\n return new Proxy(target, this.zoneHandler);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MessageComponent } from './atomic-components/message';\nimport { ImxViewerModule } from '@loxia/imx-viewer';\nimport { RijwegenModule } from '@loxia/rijwegen';\nimport { EffectsModule } from '@ngrx/effects';\nimport { StoreModule } from '@ngrx/store';\nimport { ResourceModule } from '@ngx-resource/handler-ngx-http';\nimport { MessagesComponent } from './atomic-components/messages/messages.component';\nimport { OverlayComponent } from './atomic-components/overlay/overlay.component';\nimport { ProgressIndicatorComponent } from './atomic-components/progress-indicator/progress-indicator.component';\nimport { MstviewerComponent } from './components/mstviewer/mstviewer.component';\nimport { RitdelenLijstComponent } from './components/ritdelen-lijst/ritdelen-lijst.component';\nimport { RitdelenViewComponent } from './components/ritdelen-view/ritdelen-view.component';\nimport { RpeComponent } from './components/rpe/rpe.component';\nimport { MstLoggingResource } from './resources/mstlogging.resource';\nimport { SignaleringsbeeldInfoResource } from './resources/signaleringsbeeldinfo.resource';\nimport { BewegingUtils } from './services/beweging-utils.service';\nimport { BewegingVerrijkerService } from './services/beweging-verrijker.service';\nimport { EditorService } from './services/editor.service';\nimport { RitLezerService } from './services/rit-lezer.service';\nimport { SignaleringsBeeldManagerService } from './services/signalerings-beeld-manager.service';\nimport { BepaalOngeplandeActiesEffect } from './state/effect/bepaal-ongeplande-acties.effect';\nimport { BepaalSbInfosEffect } from './state/effect/bepaal-sb-infos.effect';\nimport { BewegingInvoegenEffect } from './state/effect/beweging-invoegen.effect';\nimport { DeleteOngeplandeActieEffect } from './state/effect/delete-ongeplande-actie.effect';\nimport { FocusEffect } from './state/effect/focus-effect';\nimport { LaadRouteFilesEffect } from './state/effect/laad-route-files.effect';\nimport { LaadSignaleringsbeeldenEffect } from './state/effect/laad-signaleringsbeelden.effect';\nimport { RitGoedkeurenEffect } from './state/effect/rit-goedkeuren.effect';\nimport { RitdelenEffect } from './state/effect/ritdelen.effect';\nimport { SvgViewEffect } from './state/effect/svg-view.effect';\nimport { storeReducers } from './state/mst-editor-state';\nimport { ActieHelper } from './util/actie-helper';\nimport { LoggingHelper } from './util/logging-helper';\nimport { ZoneUtil } from './util/zone-util';\nimport { CarouselControlsComponent } from './components/carousel-controls/carousel-controls.component';\nimport { ViewerControlsComponent } from './components/viewer-controls/viewer-controls.component';\nimport { SvgVisualisatieComponent } from './components/svg-visualisatie/svg-visualisatie.component';\n\nexport const STORE_CONFIG = {\n runtimeChecks: {\n strictStateImmutability: false,\n strictActionImmutability: false,\n // strictStateSerializability: true, // geeft nog runtime errors, zou mooi zijn om aan te kunnen zetten\n // strictActionSerializability: true, // geeft nog runtime errors, zou mooi zijn om aan te kunnen zetten\n strictActionTypeUniqueness: false\n }\n};\n\nconst imports = [\n CommonModule,\n ImxViewerModule,\n RijwegenModule,\n ResourceModule.forRoot(),\n StoreModule.forRoot( storeReducers, STORE_CONFIG),\n EffectsModule.forRoot([\n DeleteOngeplandeActieEffect,\n LaadSignaleringsbeeldenEffect,\n LaadRouteFilesEffect,\n BepaalOngeplandeActiesEffect,\n BewegingInvoegenEffect,\n RitdelenEffect,\n RitGoedkeurenEffect,\n SvgViewEffect,\n BepaalSbInfosEffect,\n FocusEffect\n ])\n];\n\n@NgModule({\n imports,\n declarations: [\n MessageComponent,\n MstviewerComponent,\n OverlayComponent,\n ProgressIndicatorComponent,\n RpeComponent,\n RitdelenLijstComponent,\n RitdelenViewComponent,\n CarouselControlsComponent,\n ViewerControlsComponent,\n SvgVisualisatieComponent,\n MessagesComponent\n ],\n exports: [\n MstviewerComponent\n ],\n providers: [\n ZoneUtil,\n SignaleringsbeeldInfoResource,\n MstLoggingResource,\n EditorService,\n SignaleringsBeeldManagerService,\n RitLezerService,\n BewegingUtils,\n ActieHelper,\n LoggingHelper,\n BewegingVerrijkerService\n ]\n})\nexport class MstViewerModule {\n constructor(private service: EditorService, zoneUtil: ZoneUtil) {\n // maak de EditorService toegankelijk voor GWT code\n window['rpe'] = {\n EditorService: zoneUtil.proxy(service)\n };\n }\n}\n","export interface Rit {\n id: number; // Database Id. Teruggeven wat wij sturen. Als nieuw record, instellen op 0\n jaarplanId: number; // Id van het jaarplan. niet voor visualisatie\n volgnummer: number; // volgnummer van de rit binnen planmodule job. Niet voor visualisatie\n machineTypeId: number; // niet voor visualisatie\n machineTypeOmschrijving?: number; // BV UFM, UST, WOB, etc\n ritDatum?: Date;\n totaleTijd: number; // niet voor visualisatie\n omschrijving?: string; // beschrijving / naam van de rit\n wijzigStatus: string; // wordt na handmatige wijziging aangepast van 'Normaal' naar 'Gewijzigd'.\n ritStatus: string; // Concept / Definitief (e.v.t. tussen statussen n.t.b. Definitief betekent dat rit niet mag worden aangepast.\n aantalRitActies?: number; // Niet nodig voor visualisatie\n startLocatie?: string; // Startsein \"{IaGebiedType},{IaGebied},{SeinNaam},{SeinType}\"\n eindLocatie?: string; // Eindsein \"{IaGebiedType},{IaGebied},{SeinNaam},{SeinType}\"\n bewegingen: Beweging[]; // Lijst van bewegingen (routes)\n}\n\nexport interface Beweging {\n id: number; // Database Id. Teruggeven wat wij sturen. Als nieuw record, instellen op 0\n ritId: number; // Database Id van de rit. Teruggeven wat wij sturen. Als nieuw record, instellen op 0\n volgnummerBinnenRit: number; // volgnummer van beweging binnen de rit\n vanSeinType: string;\n vanSeinNaam: string;\n vanSeinPplg: string;\n vanGebiedType?: string;\n vanGebiedNaam?: string;\n naarSeinType: string;\n naarSeinNaam: string;\n naarSeinPplg: string;\n naarGebiedType?: string;\n naarGebiedNaam?: string;\n dwangNummer: number;\n vanPplg: string;\n vanSpoor: string;\n naarPplg: string;\n naarSpoor: string;\n treinNummer?: number; // Treinnummer (Donna) zodra bekend\n tijdstip?: Date; // Start tijdstip (Donna) zodra bekend\n opmerking?: string; // textuele opmerking\n wijzigStatus: string; // Wijzigstatus specifiek voor de Beweging. kan mogelijk vervangen\n ritActies: Actie[]; // Lijst van ritacties binnen deze route\n}\n\nexport interface Actie {\n id: number; // Database Id. Teruggeven wat wij sturen. Als nieuw record, instellen op 0\n bewegingId: number; // Database Id van de rit. Teruggeven wat wij sturen. Als nieuw record, instellen op 0\n volgnummerBinnenBeweging: number; // volgnummer van ritactie binnen de beweging / route\n volgnummerBinnenPlanningsRegel: number;\n ritActieTypeId: number; // Database Id van ritactieType. Overnemen van planningsregel als een nieuwe wordt toegevoegd\n ritActieTypeOmschrijving?: string; // omscrhijving van de ritActieType. Overnemen van planningsregel als een nieuwe wordt toegevoegd\n planningsRegelId?: number; // overnemen van planningsregel\n infraObjectType: string; // overnemen van planningsregel (Wissel of Spoortak)\n iaGebiedType: string; // overnemen van planningsregel\n iaGebiedNaam: number; // overnemen van planningsregel\n pplgNaam: string;\n wisselType: string; // overnemen van planningsregel\n wisselNaam: string; // overnemen van planningsregel\n wisselKantCode: string; // overnemen van planningsregel\n vanKilometerlint?: string; // overnemen van planningsregel (leeg bij Wissel)\n vanKilometrering?: number; // overnemen van planningsregel (leeg bij Wissel)\n totKilometerlint?: string; // overnemen van planningsregel (leeg bij Wissel)\n totKilometrering?: number; // overnemen van planningsregel (leeg bij Wissel)\n werkorderId: string; // overnemen van planningsregel (SAP werkorderId of bij meten bestandsnaam + regelnummer)\n infraBron: string; // overnemen van planningsregel (EquipmentId of BBK SpoortakNaam)\n opmerking: string;\n ritActieStatus: string; // Status van de ritactie. 'Gepland' als al gepland is. Anders moet het nog gepland worden.\n}\n\n// IA informatie\nexport interface InfraModel {\n versie: string;\n ingangsDatum: Date;\n}\n\n// enum WijzigSatussen {\n// 'Normaal', // Record ongewijzigd na eerste aanmaak (b.v. uit de planmodule)\n// 'Gewijzigd', // Record dat handmatig gewijzigd is na aanmaken (via b.v. visualisatie)\n// 'Toegevoegd', // Record volledig handmatig aangemaakt\n// 'Verwijderd', // Record dat verwijderd is maar gewaard wordt vanwege historie\n// 'Ongeldig', // Record dat om een of andere reden ongeldig is (b.v. infra specificatie bestaat niet)\n// }\n","/*\n * Public API Surface of mst-viewer\n */\n\nexport * from './lib/mst-viewer.module';\nexport * from './lib/components/mstviewer/mstviewer.component';\nexport * from './lib/resources/signaleringsbeeldinfo.resource';\nexport * from './lib//model/melding-event';\nexport * from './lib/optimo';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i1.MessagesService","i3.MessageComponent","i1.SignaleringsBeeldManagerService","i1.EditorService","i2.BewegingUtils","i2.SignaleringsBeeldManagerService","MstActions.focusOpIds","i2.ViewerControlService","i3.SignaleringsBeeldManagerService","i2.Configuration","i1.LogControllerService","i2","i2.MstLoggingResource","i3.MessagesService","i4","i5.LoggingHelper","RitdeelViewModel","RitdelenActions.toggleRitdeelZichtbaar","RitdelenActions.setZichtbaarheidAlleRitdelen","RitdelenActions.deleteRitdeel","RitdelenActions.deleteRitdeelActie","MstActions.AddOngeplandeActie","MstActions.DeleteGeplandeActie","RitdelenActions.addRitdeelActie","MstActions.AddGeplandeActie","MstActions.DeleteOngeplandeActie","i3","i3.BewegingUtils","i5.CarouselControlsComponent","i3.ActieHelper","i4.SignaleringsBeeldManagerService","i5.EditorService","i6","MstActions.focusOpRitdeel","MstActions.bepaalSbInfos","i3.DebugService","i4.PrintBewegingService","i5","i6.OverlayComponent","i7.ProgressIndicatorComponent","i8.RpeComponent","i9.RitdelenLijstComponent","i10.RitdelenViewComponent","i11.ViewerControlsComponent","i12.SvgVisualisatieComponent","i13.MessagesComponent","i2.MessagesService","i4.MstLoggingResource","i5.MessagesService","i6.ActieHelper","i7.LoggingHelper","MstActions.laadEnVerwerkSignaleringsbeeldInfo","i3.SignaleringsbeeldInfoResource","i4.MessagesService","i5.DateService","i4.EditorService","RitdelenActions.setRitDelen","MstActions.setEditable","i3.RitLezerService","RitdelenActions.navigeer","RitdelenActions.navigeerVanaf","MstActions.SetOngeplandeActiesBepaald","MstActions.navigeerBuitenRit","MstActions.UpdateVisibleSignaleringsbeeldInfoDtos","RitdelenActions.updateRitDelen","RitdelenActions.SET_RIT_DELEN","MstActions.UpdateSignaleringsbeeldInfoDtos","MstActions.SetSvgInfos","RitdelenActions.NAVIGEER","RitdelenActions.NAVIGEER_VANAF","i5.SignaleringsbeeldInfoResource","i6.ConnectorService","i7.MessagesService","i3.BewegingVerrijkerService","RitdelenActions.setRitdelenAfterUpdate","RitdelenActions.setAlternatieveRitDelen","RitdelenActions.ritdeelInvoegen","RitdelenActions.setRitdeelZichtbaar","RitdelenActions.toggleZichtbaarheidVoorBewegingen","MstActions.ShowProgress","MstActions.ClearProgress","MstActions.SetDebug","MstActions.SetRitSelectieIds","MstActions.SetGeplandeActies","MstActions.SetActieOpRitSelectieIds","MstActions.SetOngeplandeActies","MstActions.SetOngeplandeActieSelectieIds","MstActions.DeleteOngeplandeActieSelectieId","MstActions.SetGebrokenRitSelectieIds","MstActions.SetAlternatievenSelectieIds","MstActions.SetBeginSeinSelectieIds","MstActions.SetEindSeinSelectieIds","MstActions.SetAlternatievenClickableIds","MstActions.SetEindSeinenClickableIds","MstActions.SetConnectorenClickableIds","MstActions.SetBeginSeinRightClickableIds","MstActions.SetNieuwRouteBeginSein","MstActions.SetNieuwRouteEindSein","MstActions.ResetNieuweRoute","MstActions.SetSignaleringsbeeldInfoDtos","MstActions.SetVisibleSignaleringsbeeldInfoDtos","MstActions.SetIaVersie","MstActions.SetAlgemeneRitInfo","MstActions.UpdateRit","MstActions.SetBaseUrl","MstActions.SetSelectedRitdeel","i2.ZoneUtil"],"mappings":"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"}