{"version":3,"sources":["webpack:///src/core-lib/ej2/services/UserStorageService.ts","webpack:///src/app/shared/slider/slider.module.ts","webpack:///src/core-lib/ej2/utils/PimStatic.ts","webpack:///src/app/shared/collapsible-panel/collapsible-panel.component.ts","webpack:///src/app/shared/collapsible-panel/collapsible-panel.component.html","webpack:///src/core-lib/angular/util.ts","webpack:///src/app/core/AppStateService.ts","webpack:///src/core-lib/ej2/services/GuidService.ts","webpack:///src/core-lib/angular/components/buttons/psp-button/psp-button.component.ts","webpack:///src/app/shared/help-icon/help-icon.component.ts","webpack:///src/app/shared/help-icon/help-icon.component.html","webpack:///src/core-lib/ej2/services/RuntimeService.ts","webpack:///src/app/routes/hot-water-demand/hot-water-demand.module.ts","webpack:///src/core-lib/angular/constants.ts","webpack:///src/app/shared/header/header.component.ts","webpack:///src/app/shared/header/header.component.html","webpack:///src/app/shared/zapfstellen-dialog-data/zapfstellen-dialog-data.component.ts","webpack:///src/app/shared/zapfstellen-dialog-data/zapfstellen-dialog-data.component.html","webpack:///src/app/routes/structure-dialog/structure-dialog.component.ts","webpack:///src/app/routes/structure-dialog/structure-dialog.component.html","webpack:///src/app/core/ProjectService.ts","webpack:///src/core-lib/ej2/components/search/psp-search-box/events.ts","webpack:///src/app/shared/start-page/start-page.module.ts","webpack:///src/app/shared/collapsible-panel/index.ts","webpack:///src/core-lib/angular/components/navigation/psp-help-notify-icon/psp-help-notify-icon.module.ts","webpack:///src/core-lib/ej2/extensions/index.ts","webpack:///src/core-lib/ej2/services/ServiceLocator.ts","webpack:///src/core-lib/ej2/services/FileDownloadService.ts","webpack:///src/core-lib/ej2/components/buttons/psp-button/events.ts","webpack:///src/core-lib/ej2/components/other/psp-contextual-help/PspContextualHelp.ts","webpack:///src/core-lib/ej2/components/utility/psp-loading-spinner/PspLoadingSpinner.ts","webpack:///src/core-lib/ej2/components/inputs/psp-dropdown-icon/events.ts","webpack:///src/app/core/AggregatorDataService.ts","webpack:///src/app/shared/collapsible-panel/panel-header/panel-header.component.ts","webpack:///src/app/shared/collapsible-panel/panel-header/panel-header.component.html","webpack:///src/core-lib/ej2/components/lists-tables/grid/localization.ts","webpack:///src/core-lib/angular/components/navigation/psp-roof-site-header/psp-roof-site-header.component.ts","webpack:///src/core-lib/angular/components/utility/psp-loading-spinner/psp-loading-spinner.component.ts","webpack:///src/environments/environment.ts","webpack:///src/core-lib/ej2/services/ErrorProtocolService.ts","webpack:///src/core-lib/angular/context-util.ts","webpack:///src/app/routes/pipeline/pipeline.module.ts","webpack:///src/core-lib/logging.ts","webpack:///src/app/routes/circulation-volumetric-flow/circulation-volumetric-flow.component.ts","webpack:///src/app/routes/circulation-volumetric-flow/circulation-volumetric-flow.component.html","webpack:///src/core-lib/ej2/components/lists-tables/listbox/localization.ts","webpack:///src/app/routes/home/home.module.ts","webpack:///src/app/routes/base-data-dialog/base-data-dialog.component.ts","webpack:///src/app/routes/base-data-dialog/base-data-dialog.component.html","webpack:///src/core-lib/angular/components/navigation/psp-roof-site-header/psp-roof-site-header.module.ts","webpack:///src/app/shared/slider-text-combo-component/slider-text-combo.component.ts","webpack:///src/app/shared/slider-text-combo-component/slider-text-combo.component.html","webpack:///src/core-lib/ej2/services/ODataHttpService.ts","webpack:///src/app/shared/card/card.component.ts","webpack:///src/app/shared/card/card.component.html","webpack:///src/app/routes/hot-water-demand/hot-water-demand.component.ts","webpack:///src/app/routes/hot-water-demand/hot-water-demand.component.html","webpack:///src/app/routes/demand-volumetric-flow-other/demand-volumetric-flow-other.component.ts","webpack:///src/app/routes/demand-volumetric-flow-other/demand-volumetric-flow-other.component.html","webpack:///src/app/shared/logo/index.ts","webpack:///src/app/core/BuildingTypeResolver.ts","webpack:///src/app/routes/heat-generating-types/heat-generating-types.component.ts","webpack:///src/app/routes/heat-generating-types/heat-generating-types.component.html","webpack:///src/app/routes/selection-item-radio/selection-item-radio.component.ts","webpack:///src/app/routes/selection-item-radio/selection-item-radio.component.html","webpack:///src/core-lib/angular/components/navigation/psp-notify-icon/psp-notify-icon.module.ts","webpack:///src/app/core/math/CirculationFlowMath.ts","webpack:///src/app/core/math/MathLogger.ts","webpack:///src/core-lib/ej2/components/navigation/psp-site-header/events.ts","webpack:///src/app/shared/header/header.module.ts","webpack:///src/core-lib/ej2/extensions/arrayExt.ts","webpack:///src/core-lib/angular/pipes/string-replace.pipe.ts","webpack:///src/app/routes/example-page/example-page.component.ts","webpack:///src/app/routes/example-page/example-page.component.html","webpack:///src/core-lib/angular/components/navigation/psp-help-notify-icon/psp-help-notify-icon.component.ts","webpack:///src/core-lib/angular/components/navigation/psp-user-notify-icon/psp-user-notify-icon.component.ts","webpack:///src/core-lib/ej2/components/navigation/psp-user-notify-icon/PspUserNotifyIcon.ts","webpack:///src/app/shared/shared.module.ts","webpack:///src/app/routes/base-data-dialog/base-data-dialog.module.ts","webpack:///src/core-lib/ej2/components/navigation/psp-site-header/PspSiteHeader.ts","webpack:///src/core-lib/ej2/components/buttons/localization.ts","webpack:///src/app/core/math/UfcMath.ts","webpack:///src/app/shared/dimensioning-schematic/dimensioning-schematic.component.ts","webpack:///src/app/shared/dimensioning-schematic/dimensioning-schematic.component.html","webpack:///src/app/routes/pipeline/pipeline.component.ts","webpack:///src/app/routes/pipeline/pipeline.component.html","webpack:///src/app/routes/result/result.component.ts","webpack:///src/app/routes/result/result.component.html","webpack:///src/app/routes/home/home.component.html","webpack:///src/app/routes/home/home.component.ts","webpack:///src/core-lib/angular/components/navigation/psp-user-notify-icon/psp-user-notify-icon.module.ts","webpack:///src/core-lib/angular/components/search/psp-search-box/psp-search-box.component.ts","webpack:///src/app/shared/card/card.module.ts","webpack:///src/app/shared/slider/index.ts","webpack:///src/app/app.component.ts","webpack:///src/app/app.component.html","webpack:///src/app/shared/logo/logo.module.ts","webpack:///src/core-lib/ej2/services/GlobalizationService.ts","webpack:///src/app/routes/overview/overview.component.html","webpack:///src/app/routes/overview/overview.component.ts","webpack:///src/core-lib/angular/components/forms/psp-form-field/psp-form-field.component.ts","webpack:///src/core-lib/angular/components/forms/psp-form-field/psp-form-field.component.html","webpack:///src/app/core/math/DteMath.ts","webpack:///src/app/routes/config-details-dialog/config-details-dialog.module.ts","webpack:///src/app/shared/logo/logo.component.ts","webpack:///src/app/shared/logo/logo.component.html","webpack:///src/core-lib/ej2/components/other/localization.ts","webpack:///src/app/routes/dte/dte.component.ts","webpack:///src/app/routes/dte/dte.component.html","webpack:///src/core-lib/ej2/utils/ServiceStatic.ts","webpack:///src/core-lib/angular/directives/local-var/loval-var.directive.ts","webpack:///src/core-lib/ej2/components/buttons/psp-button/PspButton.ts","webpack:///src/core-lib/ej2/services/GenericDialogService.ts","webpack:///src/app/routes/structure-item/structure-item.component.ts","webpack:///src/app/routes/structure-item/structure-item.component.html","webpack:///src/app/shared/wohnungsgruppe-dialog-data/wohnungsgruppe-dialog-data.component.ts","webpack:///src/app/shared/wohnungsgruppe-dialog-data/wohnungsgruppe-dialog-data.component.html","webpack:///src/core-lib/ej2/components/navigation/psp-help-notify-icon/events.ts","webpack:///src/core-lib/angular/components/forms/PspFormFieldGroup.ts","webpack:///src/app/routes/config-details-dialog/config-details-dialog.component.ts","webpack:///src/app/routes/config-details-dialog/config-details-dialog.component.html","webpack:///src/app/shared/dte-schematic/dte-schematic.component.ts","webpack:///src/app/core/WebTrekkService.ts","webpack:///src/core-lib/ej2/components/inputs/psp-dropdown-icon/PspDropdownIcon.ts","webpack:///src/app/shared/select-image/select-image.component.ts","webpack:///src/app/shared/select-image/select-image.component.html","webpack:///src/app/shared/step-bar/step-bar.module.ts","webpack:///src/app/shared/ufc-schematic/ufc-schematic.component.ts","webpack:///src/core-lib/angular/components/forms/PspFormField.ts","webpack:///src/app/routes/project-configuration-item/project-configuration-item.module.ts","webpack:///src/app/routes/demand-volumetric-flow-residential/demand-volumetric-flow-residential.module.ts","webpack:///src/core-lib/angular/components/search/psp-search-box/psp-search-box.module.ts","webpack:///src/app/shared/select-image/select-image.module.ts","webpack:///src/app/routes/project-view/project-view.module.ts","webpack:///src/core-lib/angular/components/other/psp-contextual-help/psp-contextual-help.module.ts","webpack:///src/core-lib/angular/components/navigation/psp-site-header/psp-site-header.component.ts","webpack:///src/app/app.module.ts","webpack:///src/app/routes/further-details/further-details.component.ts","webpack:///src/app/routes/further-details/further-details.component.html","webpack:///src/core-lib/ej2/components/utility/psp-loading-spinner/events.ts","webpack:///src/core-lib/angular/components/utility/psp-loading-spinner/psp-loading-spinner.module.ts","webpack:///src/app/routes.ts","webpack:///src/core-lib/ej2/services/shell-services/AppShellHostService.ts","webpack:///src/app/shared/dte-standardbetrieb-schematic/dte-standardbetrieb-schematic.component.ts","webpack:///src/core-lib/ej2/services/ToastService.ts","webpack:///src/app/shared/collapsible-panel/collapsible-panel.module.ts","webpack:///src/app/routes/project-configuration-item/project-configuration-item.component.ts","webpack:///src/app/routes/project-configuration-item/project-configuration-item.component.html","webpack:///src/core-lib/ej2/components/search/psp-search-box/PspSearchBox.ts","webpack:///src/app/shared/step-bar/step-bar.component.ts","webpack:///src/app/shared/step-bar/step-bar.component.html","webpack:///src/core-lib/angular/components/buttons/psp-button/psp-button.module.ts","webpack:///src/core-lib/ej2/services/UrlResolverService.ts","webpack:///src/core-lib/angular/components/other/psp-contextual-help/psp-contextual-help.component.ts","webpack:///src/app/shared/slider/slider.component.ts","webpack:///src/app/shared/slider/slider.component.html","webpack:///src/app/shared/step-bar/index.ts","webpack:///src/app/routes/project-view/project-view.component.html","webpack:///src/app/routes/project-view/project-view.component.ts","webpack:///src/app/core/project-data.service.ts","webpack:///src/app/core/math/HotWaterMath.ts","webpack:///src/app/core/Enums.ts","webpack:///src/app/shared/ValueAccessor.ts","webpack:///src/app/routes/config-dte-dialog/config-dte-dialog.module.ts","webpack:///src/app/routes/demand-volumetric-flow-residential/demand-volumetric-flow-residential.component.ts","webpack:///src/app/routes/demand-volumetric-flow-residential/demand-volumetric-flow-residential.component.html","webpack:///src/app/core/DemandVolumetricFlowBaseComponent.ts","webpack:///src/core-lib/ej2/components/navigation/psp-user-notify-icon/events.ts","webpack:///src/app/routes/dte-temperature/dte-temperature.component.ts","webpack:///src/app/routes/dte-temperature/dte-temperature.component.html","webpack:///src/core-lib/angular/pipes/translate.pipe.ts","webpack:///src/app/routes/select-calculation-reservoir/select-calculation-reservoir.component.ts","webpack:///src/app/routes/select-calculation-reservoir/select-calculation-reservoir.component.html","webpack:///src/app/core/math/PipeDiameterMath.ts","webpack:///src/app/core/ProjectResolver.ts","webpack:///src/core-lib/angular/core-lib.module.ts","webpack:///src/app/routes/demand-volumetric-flow-other/demand-volumetric-flow-other.module.ts","webpack:///src/app/core/ValueFormatterService.ts","webpack:///src/core-lib/ej2/services/LangService.ts","webpack:///src/core-lib/ej2/components/navigation/psp-help-notify-icon/PspHelpNotifyIcon.ts","webpack:///src/core-lib/ej2/services/shell-services/AppShellClientService.ts","webpack:///src/core-lib/angular/components/navigation/psp-site-header/psp-site-header.module.ts","webpack:///src/app/core/math/VolumetricFlowRateMath.ts","webpack:///src/app/shared/start-page/index.ts","webpack:///src/app/shared/card/index.ts","webpack:///src/app/routes/config-dte-dialog/config-dte-dialog.component.ts","webpack:///src/app/routes/config-dte-dialog/config-dte-dialog.component.html","webpack:///src/app/routes/select-calculation-ufc/select-calculation-ufc.component.ts","webpack:///src/app/routes/select-calculation-ufc/select-calculation-ufc.component.html","webpack:///src/app/routes/heat-generator-power/heat-generator-power.component.ts","webpack:///src/app/routes/heat-generator-power/heat-generator-power.component.html","webpack:///src/app/shared/header/index.ts","webpack:///src/app/shared/viega-button-image/viega-button-image.module.ts","webpack:///src/app/core/core.module.ts","webpack:///src/app/shared/viega-button-image/viega-button-image.component.ts","webpack:///src/app/shared/viega-button-image/viega-button-image.component.html","webpack:///src/app/routes/overview/overview.module.ts","webpack:///src/core-lib/angular/components/forms/forms.module.ts","webpack:///src/app/routes/daily-load-profile/daily-load-profile.component.ts","webpack:///src/app/routes/daily-load-profile/daily-load-profile.component.html","webpack:///src/core-lib/angular/pipes/trust-html.pipe.ts","webpack:///src/core-lib/ej2/components/navigation/psp-roof-site-header/PspRoofSiteHeader.ts","webpack:///src/core-lib/ej2/components/inputs/localization.ts","webpack:///src/core-lib/ej2/components/other/psp-contextual-help/events.ts","webpack:///src/core-lib/angular/components/navigation/psp-notify-icon/psp-notify-icon.component.ts","webpack:///src/app/core/UserService.ts","webpack:///src/app/core/math/StorageMath.ts","webpack:///src/app/shared/start-page/start-page.component.ts","webpack:///src/app/shared/start-page/start-page.component.html","webpack:///src/core-lib/ej2/services/TimeoutService.ts","webpack:///src/core-lib/ej2/utils/httpUtils.ts","webpack:///src/app/routes/structure-dialog/structure-dialog.module.ts","webpack:///src/core-lib/ej2/components/other/psp-contextual-help/localization.ts","webpack:///src/core-lib/ej2/components/navigation/psp-roof-site-header/events.ts","webpack:///src/app/routes/selection-item-radio/selection-item-radio.module.ts","webpack:///src/core-lib/ej2/components/navigation/psp-notify-icon/PspNotifyIcon.ts","webpack:///src/main.ts","webpack:///$_lazy_route_resource lazy namespace object"],"names":["UserStorageService","context","valueKey","isSessionStorage","processKey","sessionStorage","getItem","localStorage","value","setItem","removeItem","clear","startsWith","substring","SliderViegaModule","imports","declarations","exports","PimStatic","identityRequestHeader","pspPrivilegedSystemIdentity","BaseLocale","FallbackLocale","ODataDateResponseFormat","TooltipDelayMs","CollapsiblePanelComponent","_isCollapsed","isCollapsible","doAnimateCollapse","collapsed","isCollapsed","emit","newValue","selector","templateUrl","styleUrls","applyMixins","derivedClass","baseClass","forEach","Object","getOwnPropertyNames","prototype","name","hasOwnProperty","isFormBase","ComponentMixins","registerEvents","eventList","obj","direct","ngEventsEmitter","length","event","propCollection","setProperties","clearTemplate","_this","templateNames","index","regTemplates","keys","registeredTemplate","regProperties","filter","val","test","e","m","template","rootNodes","rt","destroy","destroyed","_view","pNode","renderer","parentNode","appendChild","tagObjects","tagObject","instance","RegExp","setValue","nameSpace","object","replace","split","fromObj","i","key","undefined","SVG_REG","ComponentBase","isProtectedOnChange","isFormInit","changeIgnoredPropertyMap","oldValue","oldProperties","changedProperties","finalUpdate","changeTime","setTimeout","dataBind","bind","clearUpdate","clearTimeout","isTempRef","tempOnThis","ngBoundedEvents","isAngular","tags","complexTemplate","ngAttr","getAngularAttr","element","createElement","tagName","prop","ele","srenderer","innerHTML","className","id","styles","setAttribute","attrs","tag","toUpperCase","push","complexTemplates","tempName","propName","attributes","ngAr","tempAfterViewThis","regExp","ngEle","nativeElement","outerHTML","style","visibility","templateProperties","isNotStorybook","window","appendTo","tempOnDestroyThis","classList","contains","tempAfterContentThis","isInitChanges","hasChanges","hasNewChildren","propObj","complexDirProps","list","directivePropList","skip","getModuleName","indexOf","propertyName","compDirPropList","h","k","complexPropName","childObj","innerchildObj","j","innerTag","innerchildTag","getProperties","curIndex","curChild","properties","isUpdated","newVal","oldVal","saveChanges","propList","defineProperty","get","set","twoWaySetter","eventName","handler","eventObj","Map","subscribe","unsubscribe","eventArgs","success","prevDetection","next","localEventObj","charAt","slice","call","preventChange","isPreventChange","stringCompiler","compile","templateEle","helper","contRef","elementRef","_viewContainerRef","pName","data","component","$implicit","conRef","viewContainerRef","viewRef","createEmbeddedView","markForCheck","viewCollection","Template","defaultValue","target","propertyDescriptor","setter","getter","enumerable","configurable","AppStateService","shellService","router","runtimeService","appClosingObservable","appShutdownObservable","hostMessagesObservable","shellMsg","type","handleRequestClose","payload","handleChangeRoute","handlePermissionChange","args","verbose","subjectArgs","targetRoute","cancel","requestChangeRouteObservable","navigate","queryParamsHandling","isForce","closeSelf","refreshRuntimeInfo","isBusy","newActivity","updateAppState","activity","currentState","isUnsaved","information","containsUnsavedChanges","newTabName","tabName","JSON","parse","stringify","_currentState","GuidService","lut","toString","d0","Math","random","d1","d2","d3","propertyArgTypes","textPosition","control","options","iconPosition","spinnerPosition","isDisabled","showSpinner","content","customIconCss","tooltipContent","tooltipPosition","cssClass","description","changeIgnoredProperties","outputBindings","PspButtonComponent","injector","addTwoWay","ngOnInit","ngAfterViewInit","ngOnDestroy","ngAfterContentChecked","inputs","outputs","changeDetection","OnPush","HelpIconComponent","aggregatorDataService","text","aggregatorData","Tables","TooltipRows","find","x","TooltipId","hinweisId","TooltipContentHtmlLoc","error","console","log","RuntimeService","runtimeInfo","Promise","resolve","runtimeInfoRefreshPromise","endpoint","backendRootUrl","runtimeInfoEndpoint","request","beforeSend","httpRequest","setRequestHeader","send","then","responseData","cachedRuntimeInfo","parseRuntimeData","fatal","message","reject","settingKey","throwIfRuntimeInfoMissing","configValue","Config","Error","rawData","HotWaterDemandModule","COMPONENT_CONTEXT","HeaderComponent","titleHref","pageTitleMode","forceMode","logoClicked","mobileMenuStateChanged","innerWidth","isMobile","onResize","newStatus","isMobileMenuExpanded","newMenuState","setSidebarStatus","appTitle","pageTitle","disableBurgerMenu","ZapfstellenDialogData","langService","formatterService","saveNewZapfstelle","editZapfstelle","invalidFieldsDialogButtons","onCloseInvalidFieldsDialog","buttonModel","getString","isPrimary","typeFormFieldsConfig","comfortValuesConfig","comfortValues","Key","Stufe1","Label","Stufe2","Stufe3","dialogHeader","typeFormFields","fieldName","displayName","formState","disabled","displayAsRequired","validatorOrOpts","required","comfortFormFields","helpMessageHtml","helpTextComfort","freeFormFields","pattern","minLength","maxLength","facilities","Vdi6003FacilityRows","concat","VdiFacilityId","DisplayNameLoc","editingItemIsFree","currentType","group","valid","BerechnungsflussSummeLiterSek","currentSum","BerechnungsflussLiterSek","currentFlow","Bezeichnung","currentName","Anzahl","currentCount","Komfortstufe","currentComfort","Typ","editingItemIndex","currentlyFree","reset","item","Auswahl","recalculate","Komfort","Number","calculateFree","calculateVorgegeben","facilityInfo","f","BerechnungsdurchflussKS1","BerechnungsdurchflussKS2","BerechnungsdurchflussKS3","fluss","formatNumber","maximumFractionDigits","minimumFractionDigits","editZapfstelleDialog","show","hide","invalidFieldsDialog","isSaveValid","markAllAsTouched","result","getResultItemFrei","getResultItemVordefiniert","zapfstellenTypeHasChanged","provide","useValue","onEditDialogBackdropClick","onZapfstelleSave","providers","StructureDialogComponent","selectedStructuresOtherChange","selectedStructureResidentialChange","closedCompletely","isClosedWithoutSave","canBeClosed","dialogPristine","dialogWidth","dialogHeight","dialogPosition","X","Y","resetDialog","structures","BuildingTypeRows","structureTitle","_selectedStructureResidential","_selectedStructuresOther","some","s","BuildingType","map","splice","selectedStructureResidential","selectedStructuresOther","dialog","checkIfPristine","_s","onCloseDialog","onBeforeClose","onOverlayClick","buttons","headerText","projectName","changeWarning","ProjectService","globalizationService","odataHttpService","httpClient","userService","fileDownloadService","invalidFileNameCharsRegex","_currentProject","projectMetadataCollectionEndpoint","authorizationHeader","query","queryResponse","metadataEntity","normalizeBackendProjectData","projectId","singleProjectEndpoint","getJson","currentProject","ProjectId","putJson","project","projectCollectionEndpoint","postJson","deleteJson","schematicType","locale","encodeURIComponent","headers","responseType","toPromise","attachmentsToInclude","includeSpecificationTexts","containsAllAttachments","cancellation","projectNameSanitized","ProjectName","projectDateTimeString","dateToHumanReadableString","LastUpdatedUtc","contentDescriptionString","pdfFileName","zipFileName","body","Locale","AttachmentsToInclude","IncludeSpecificationTexts","PdfFileName","state","requestObservable","post","downloadFileName","_","interval","setInterval","clearInterval","isCancellationRequested","closed","fileType","projectData","CreatedUtc","dateTimeOffsetToDate","apiRootUrl","getToken","token","events","startSearch","change","beforeOpen","open","close","blur","focus","actionBegin","actionComplete","actionFailure","select","dataBound","filtering","created","StartPageModule","PspHelpNotifyIconModule","ServiceLocator","FileDownloadService","fileUrlOrBlob","fileName","load","PspContextualHelp","isTooltipOpen","l10n","tabIndex","tooltip","getTooltipContent","position","openDelay","opensOn","offsetX","afterClose","wireEvents","trigger","add","element_click","element_blur","scrollEventHandlers","currentParent","parentElement","closeTooltip","addEventListener","el","remove","element_focus","eh","removeEventListener","openTooltip","newProp","oldProp","updateTooltip","tooltipTextHtml","documentationHref","linkName","documentationLinkName","getConstant","unwireEvents","PspLoadingSpinner","createSpinnerElement","updateDisplayStyle","spinnerEl","spinnerSize","size","width","removeChild","displayStyle","click","AggregatorDataService","urlRaw","getConfigValue","desiredLocale","currentLocale","dbUrlForLocale","fromUrl","forLocale","_cachedAggregatorData","_cachedImageMap","ImageAssetRows","asset","ImageId","extendLabels","labelDataMap","LabelRows","row","LabelId","setLabelData","PanelHeaderComponent","stepBackClicked","stepBack_clicked","stepTitle","stepText","stepDescription","stepDescriptionHelpId","stepBackLabel","titleHelpId","localization","grid","EmptyRecord","Item","Items","Columnchooser","ChooseColumns","Search","OKButton","CancelButton","SelectAll","True","False","SortAscending","SortDescending","CancelEdit","NotEqual","FilterTrue","FilterFalse","InvalidFilterMessage","pager","currentPageInfo","totalItemsInfo","firstPageTooltip","lastPageTooltip","nextPageTooltip","previousPageTooltip","nextPagerTooltip","previousPagerTooltip","titleLinkText","titleLinkHref","hideOnMobile","inputBindings","PspRoofSiteHeaderComponent","PspLoadingSpinnerComponent","environment","buildEnvironment","serviceName","ErrorProtocolService","errorDetails","contextInfo","stack","runtimeInfoPart","DeclaredPermissions","protocolObj","Location","location","href","ErrorDetails","Context","Browser","Agent","navigator","userAgent","Platform","platform","NavigatorLanguage","language","DeviceMemory","DevicePixelRatio","devicePixelRatio","Orientation","orientation","InnerWidth","InnerHeight","innerHeight","PspLocale","RuntimeInfo","provideContext","contextKey","PipelineModule","currentLogLevel","serverLogEndpoint","setLogLevel","newLogLevel","logLevelFromExecEnv","execEnvironment","logWriteFatal","logWriteError","warning","logWriteWarning","logWriteInfo","debug","logWriteDebug","logWriteVerbose","audit","logWriteAudit","contextOrMessage","logToBackend","logWrite","auditKey","logLevel","String","messageLogLevel","allowedLogLevel","messageString","logMethod","logWriteToServer","severLogLevel","numericLogLevelToServerLogLevel","postBody","Level","Message","Args","url","PipeTableRow","CirculationVolumetricFlowComponent","activatedRoute","DataService","valueFormatterService","aggregatorService","circulationFlowMath","ZirkulationsVSBerechnungstyp","label_description","label_stepBack","label_title","selectedDirectFlowUnit","LiterSekunde","enteredDirectFlow","stepDirectFlow","maxDirectFlowSlider","minDirectFlowSlider","maxDirectFlowText","minDirectFlowText","decimalsDirectFlowText","enteredDirectWattage","decimalsDirectWattageText","calculatedResultFlow","calculatedResultWattage","DIRECT_SELECTABLE_UNITS","label","LiterMinute","KgMinute","KgStunde","ProjectValues","Zirkulationsvolumenstrom","ZirkulationsvolumenstromBerechnetLMin","loadValuesFromProject","calculateResult","calculateFromPipesRows","wattsPerMeter","lengthValue","resultWatts","sliderMin","sliderMax","sliderStep","dteInfoRows","DteRows","snapshot","art","currentBerechnungstyp","newUnit","oldUnit","round","convertBetweenUnits","VolumenstromDirekt","calc","verlustleistungFromZirkulationsvolumenstrom","VerlustleistungDirekt","zirkulationsvolumenstromFromVerlustleistung","DVGW553","calcResult","zirkulationsvolumenstromFromLeitungenDVGW553","leitungKellerMeter","leitungSchachtMeter","leitungNutzbereichMeter","leitungKellerWatt","leitungSchachtWatt","leitungNutzbereichWatt","zirukulationsvolumenstromLiterStunde","availableDtesForConfiguredValues","compatibleDtes","r","Dte","from","ZirkulationsverlustleistungBerechnetWatt","setBerechnungstyp","Berechnungstyp","setDirectEntryUnit","ErmittlungZVSVolumenstromDirekt","Einheit","ErmittlungZVSVerlustleistungDirekt","ErmittlungZVSDVGW553","LeitungKellerMeter","LeitungSchachtMeter","LeitungNutzbereichMeter","fromUnit","toUnit","Dichte","entity","saveData","Ermittlungstyp","None","LeitungKellerWatt","LeitungSchachtWatt","LeitungNutzbereichWatt","changed","SectionStates","Set","saveCurrentProject","clone","Check","Rohrauslegung","Ufc","BuildingTypeWarmwasserStates","b","Value","Energiespeicher","isAnyDteAvailable","goBack","navigateNext","HomeModule","BaseDataDialogComponent","runtimeInfoService","tabHeaders","inputPlaceholder","errorDialogWidth","errorDialogHeader","selectedTabs","tabsAnimation","previous","effect","duration","easing","projectEdited","countryTooltipText","getHelpTextContent","projectNameTooltipText","nameTooltipText","projectIdTooltipText","descriptionTooltipText","initFields","informationFields","projectInformationFields","contactFields","projectContactInformationFields","newProjectValues","editingProject","ProjectBuildSection","ProjectNumber","ProjectDescription","addTabsFields","property","validators","validatorsFirst","field","Contacts","addField","checkFormsPristine","Country_0","ConstructionPhase","Description","Name","Address","Country","Zip","City","Phone","Email","addSelectedTab","selectedIndex","errorDialog","pristine","onOpenDialog","onOverlayClickError","tabs","PspRoofSiteHeaderModule","SliderTextComboComponent","valueChange","processValueChange","onChanged","textboxMin","textboxMax","textboxStep","_value","sliderValue","isInteracted","textboxValue","lastChangeWasSlider","onTextboxChanged","onSliderChanged","onTextboxBlur","sliderClass","sliderStyle","textboxClass","textboxStyle","textboxDecimals","showLabel","labelText","labelStyle","labelClass","ODataHttpService","urlResolverService","queryableEndpoint","authorization","resolveServiceUrl","queryString","endsWith","errorObj","status","responseText","odataErrorMsg","simpleRequest","requestBody","method","CardComponent","advancedTouchMode","displayInfoButton","_touchActivated","enlargeInfoButton","cardClicked","demandTouchActivation","selectButtonClicked","infoButtonClicked","isScaled","isVerticalImage","isHovering","preventClick","touchActivated","stopImmediatePropagation","touchEvent","emitCardClicked","linkMouseDown","linkMouseUp","linkMouseOver","linkMouseOut","linkTouchStart","linkTouchEnd","linkUrl","routerLink","imgSrc","imgAlt","imgOverlayText","cardContentPosition","fixedImgHeight","onTouchEnd","HotWaterDemandComponent","dataService","hotWaterMath","appRef","stepBack","SliderDescriptionLiterPerDay","SliderDescriptionDegreeCelsius","DescriptionNutzungsabhaengigLiterPerDay","DescriptionNutzungsabhaengigNumber","DescriptionNutzungsabhaengigUnit","DescriptionNutzungsabhaengigDegreeCelsius","DescriptionFlaechenbezogenLiterPerDay","DescriptionFlaechenbezogenNumber","DescriptionFlaechenbezogenUnit","DescriptionFlaechenbezogenDegreeCelsius","hotWaterManualChecked","manualValue","WarmwasserExaktErmittlungstyp","WwBerechnungValuesBerechnungstyp","continueDisabled","calculationTypeData","calculationTypeDataPreselect","isAreaSelected","warmwasserTemp","nutzungTemp","flaechenTemp","HotWaterManualRadio","checked","editData","ErmittlungWarmwasserExakt","ErmittlungDirekt","WarmwasserDirekt","HotWaterCalculateRadio","ExaktDinValues","FlaechenbezogenQMeter","Nutzungsabhaengig","calculateValues","getTextWidth","selectedNutzungsart","dropdownNutzung","selectedNutzung","Direkt","WarmwasserErgebnisLTag","DIN12831","SpezifischerBedarfFlaecheLiterTag","warmwassertagesbedarfFromNutzungDinEn12831","nutzung","nutzungsabhaengigAnzahl","Flaechenbezogen","flaechenbezogenAnzahl","typ","nutzungsarten","n","DailyNeedUsageTypeId","Nutzungsart","nutzungen","DailyNeedEn12831UsageRows","Nutzung","DailyNeedUsageId","urlProject","setTempProject","selectedProject","TempProject","selectedStructure","ResidentialBuilding","OtherBuildings","Warmwasser","Exakt","nutzungsIdStandard","BuildingId","VorauswahlDailyNeedUsageId","DailyNeedEn12831UsageTypeRows","ForBuildingTypeIds","a","itemData","font","canvas","document","getContext","metrics","measureText","longest","reduce","onChangeErmittlung","onChangeManualSlider","onChangeNutzungsart","onSelectDropdownNutzungsart","onChangeNutzung","onSelectDropdownNutzung","onChangeBerechnung","dropdownNutzungsart","DemandVolumetricFlowOtherComponent","bvsMath","editDialogButtons","onZapfstelleAdd","deleteDialogButtons","onZapfstelleDelete","gleichzeitigkeitDropdownFields","bedarfTemp","bedarfExaktTemp","editingData","ErmittlungBvsDirekt","Bedarfsvolumenstrom","bedarfGrobTemp","ErmittlungOtherGrob","WohneinheitenAbnehmerAnzahl","ErmittlungsTyp","ErmittlungOtherExakt","ErmittlungsTypOther","bedarfExaktTableTemp","gleichzeitigkeitLinear","Grob","BvsDirekt","dialogData","calculateBvs","currentBuildingType","facilityGroups","FacilityGroupRows","BuildingTypeId","buildingTypeInfo","allFacilities","gleichzeitigkeitRows","Din1988SimultaneityRows","SimultaneityId","Din1988KonstanteA","Din1988KonstanteB","Din1988KonstanteC","gebaeudetyp","building","g","FacilityGroupId","ZapfstellenFrei","ZapfstellenVordefiniert","BedarfsvolumenstromErgebnisLMin","calculateBvsGrob","calculateBvsExact","resetResult","unitId","p","w","gleichzeitigkeitType","LineareGleichzeitigkeitFaktor","VorauswahlSimultaneityId","Zapfstellen","wa","FacilityGroupItemRows","gi","berechnungsdurchflussLSek","count","Count","stufe","Stufe","d","bedarfsvolumenstromFromEntnahmestellen","gleichzeitigkeitLinearFactor","entnahmestellen","z","anzahl","isEntnahmestelleErrorShown","gleichzeitigkeitTypeRow","Gleichzeitigkeit","zapfstellen","sortedKeys","sort","arr","join","projectBedarf","BuildingTypeBedarfsvolumenstromStates","getBuildingType","onClickSaveBase","zapfstelle","selectVordefiniertItem","deleteIsFree","deleteIndex","deleteDialog","selectFreeItem","ddlObj","$event","gridFreieZapfstelle","refresh","gridVordefinierteZapfstelle","onClickGoBack","onClickSave","onZapfstelleEdit","BuildingTypeResolver","ars","paramMap","providedIn","HeatGeneratingTypesComponent","formatter","energyLabels","StorageEnergyEfficiencyCategoryRows","addOrEditDataDialogHeader","addOrEditDataDialogWidth","errorRequiredDialogWidth","errorMaxTypesDialogWidth","deleteDialogWidth","errorDialogHeight","dialogTarget","gridData","fields","_power","_delay","_editPower","_editDelay","openAddDataDialog","AddDataDialog","openEditDataDialog","EditDataDialog","closeEditDataDialog","openDeleteDialog","DeleteDialog","closeDeleteDialog","confirmDeleteObject","_index","Grid","addDataButtons","cancelAddDataDialog","addHeatType","editDataButtons","cancelEditDataDialog","saveHeattype","deleteButtons","currentGenerator","Wärmeerzeuger","Energielabel","MinutenwerteEnergiebedarf","MinutenwerteEnergiebedarfAbgesenkt","MinutenwerteQStoOn","MinutenwerteQStoOnAbgesenkt","MinutenwerteVersorgung","MinutenwerteVersorgungAbgesenkt","heatGeneratorData","HeatGeneratorRows","HeatGeneratorId","resetTempVars","ErzeugerArt","LeistungWarmwasserBereitungKw","LeistungWWBereitungKw","VerzoegerungNachheizungMin","ErmittlungsESExakt","TypeDropdownAdd","newEntry","ErrorMaxTypesDialog","ErrorRequiredDialog","editedEntry","TypeDropdownEdit","APlus","A","B","C","onChangeDropdown","Slider","SelectionItemRadioComponent","stateChanged","onChange","itemIndex","itemTitle","itemChecked","optionGroup","PspNotifyIconModule","CirculationFlowMath","verlustleistungKiloWatt","logger","logInputs","temperaturspreizungPwhPwhc","TemperaturspreizungPwhPwhc","kapazitätWasser","KapazitätWasser","dichte","logResult","zirkulationsvolumenstrom","zirkulationsvolumenstromLMin","emperaturspreizungPwhPwhc","pwhStandardbetrieb","pwhCAbgesenkt","verlustleistungStandardbetriebWatt","umgebungstemperatur","Umgebungstemperatur","reduzierteVerlustleistungFactor","verlustleistungAbgesenktKiloWatt","massenstromKgMin","params","assign","LeitungKellerWattMeter","LeitungSchachtWattMeter","LeitungNutzbereichWattMeter","gesamtWatt","logIntermediateResult","ufc","filtervolumenstrom","max","MinFiltervolumenstromLMin","dteRows","dte","MinZirkulationsvolumenstromLMin","MaxZirkulationsvolumenstromLMin","MathLogger","calculationName","instanceNo","instanceCounter","isLoggingEnabled","logoClick","HeaderModule","Array","predicate","array","StringReplacePipe","replaceRegex","withString","regex","ExamplePageComponent","history","back","hintType","iconTooltip","iconCssClass","dropDownCssClass","popupWidth","popupHeight","subheaderText","buttonText","buttonCssClass","buttonIconCssClass","PspHelpNotifyIconComponent","itemTemplate","headerTemplate","footerTemplate","PspUserNotifyIconComponent","PspUserNotifyIcon","defaultHeaderTemplate","defaultFooterTemplate","popupEl","headerEl","innerText","subheaderEl","feedbackButtonEl","feedbackButton","dropDownButton_clickHandler","dropDownButton_click","dropDownButtonUnwireFunc","buttonClick","SharedModule","BaseDataDialogModule","PspSiteHeader","logoEl","src","logoImageSrc","containerEl","logo_Click","UfcMath","availableUfcs","CompatibleUfcs","DimensioningSchematicComponent","projectService","isImageLoaded","loadImage","iframeElRef","iframeEl","getSchematic","svgXmlRaw","loadedHandler","onImageLoaded","contentWindow","write","svgStyles","autoSizeRelativeToWidth","selfEl","desiredHeight","offsetWidth","loadedImageVAspect","height","svgEl","clientHeight","clientWidth","textId","textValue","svgTextEl","freeze","window_resize","PipeRow","PipelineComponent","pipeMath","steptext","pipeSystems","pipeSpecs","maxDruckverlust","resultsVorlauf","nennweite","druckverlustHpa","resultsMitte","resultsUnten","roundTo","num","places","ceil","selectedDte","Ergebnis","selectedDteRow","maxVolumenstrom","MaxVolumenstromPrimaerseite","PipeSpecRows","PipeSystemRows","productGroupData","Entities","ProductGroups","Rohrleitungssystem","systemId","selectedPipeSystemRow","PipeSystemId","loadSystemData","ViegaProductGroupId","rows","nameLoc","rohrlaenge","anzahlBoegen","zusaetzlicherDruckverlust","calculateVorlauf","calculateMitte","calculateUnten","calculateDruckverlustGesamt","setSliderValues","RohrlängeVorlauf","AnzahlBoegenVorlauf","DruckverlustVorlauf","RohrlängeRuecklaufMitte","AnzahlBoegenRuecklaufMitte","DruckverlustRuecklaufMitte","RohrlängeRuecklaufUnten","AnzahlBoegenRuecklaufUnten","DruckverlustRuecklaufUnten","formatDteName","druckverlustGesamt","productGroupId","ProductGroupDetails","ShortDescriptionHtml","imgData","Images","Representative","Formats","Png","Resolutions","Px1024","Url","volumenstromLMin","temperatur","rohrlaengeMeter","parseInt","pipeSystem","rohrdimensionFromAuslegungsparameter","druckverlustHpaVorlauf","druckverlustHpaRlMitte","druckverlustHpaRlUnten","druckverlustGesamtFormatted","temp","projectTemp","saveSliderValues","VerlustHpa","PrimaerseiteVolumenstrom","ErgebnisVorlauf","ErgebnisRuecklaufMitte","ErgebnisRuecklaufUnten","SystemDropdown","SumLineChartValue","GaphData","primaryYAxis","minimum","maximum","title","primaryXAxis","palette","legendSettings","visible","alignment","shapeWidth","chartDataDemand","chartDataQsto","chartDataSupply","chartDataDemandAbgesenkt","chartDataQstoAbgesenkt","chartDataSupplyAbgesenkt","abgesenkt","demand","minutenwerteEnergiebedarf","v","Energy","Minute","supply","minutenwerteVersorgungskennlinie","qsto","minutenwerteQstoOn","maxValue","apply","ResultComponent","StorageMath","formatterServer","HotWaterMath","EnergiespeicherErmittlungstyp","valuesChanged","VolumenDirekteingabeLiter","tempDirekteingabe","ErgebnisDin12831LiterAbgesenkt","ErgebnisDin12831Liter","AnteilBereitschaftsvolumenProzent","tempAnteil","defaultHeater","updateGraph","graphData","heaterRows","saveTempProject","lastDemandResultsPwh","calculateEnergiebedarf","PwhTemperatur","lastStorageResultsPwh","calculateStorageValues","VorlauftemperaturInput","energiespeicherVolumenLiterDin","ConfigurationData","Konfiguration_DTE_Temperaturabsenkung","lastDemandResultsPwhAbgesenkt","lastStorageResultsAbgesenkt","VorlauftemperaturEffektiv","ZirkulationsverlustleistungBerechnetAbgesenktWatt","LeistungWärmeerzeugerKw","gesamtleistungWaermeerzeugerKw","VolumenErgebnisLiter","energiespeicherVolumenLiter","minutenwerteBedarf","minutenwerteBedarfAbgesenkt","minutenwerteVersorgung","minutenwerteVersorgungAbgesenkt","isEnoughVersogung","checkEnoughVersorgung","bedarf","variable","VorlauftemperaturAbgesenkt","WarmwasserErgebnisLtag","PwhTemperaturAbgesenkt","getDisplayValue","setDemandData","setVersorgungsData","temperature","energiebedarfParams","demands","summeEnergiebedarfKwProTag","energiebedarfProTag","tageslastgangAnteile","Tageslastgang","Anteile","energyResult","zirkulationsverlustleistungWatt","generators","leistungWWBereitungKiloWatt","verzoegerungNachheizungMinuten","vorlauftemperatur","storageEnergyEfficiency","EfficiencyCategoryId","getEnergieLabelString","energiebedarf","waermeerzeuger","anteilBereitschaftsvolumenPerecentage","energiespeicherVolumenLiterDirekteingabe","speicherwerteFromEnergiebedarf","HomeComponent","aggregator","tracker","headlineText","subHeadlineText","backgroundUrl","ImageUrlLoc","resetTempProject","initTracker","trackPage","userInfo","UserId","isAuthenticated","login","PspUserNotifyIconModule","theme","placeholder","showPopupButton","showClearButton","openOnFocus","startSearchIconCss","enableAutocomplete","zIndex","readonly","enabled","allowFiltering","filterType","autofill","highlight","suggestionCount","ignoreCase","sortOrder","ignoreAccent","enableRtl","PspSearchBoxComponent","groupTemplate","noRecordsTemplate","actionFailureTemplate","CardModule","AppComponent","zone","roofHeaderLinks","_segments","angemeldet","abmelden","anmelden","bearbeiten","_ufcRouted","userNotifyIconHeaderTemplate","route","injectScript","uc","deactivateBlocking","_satellite","pageBottom","detail","action","reload","UC_UI","showSecondLayer","script","promise","runOutsideAngular","head","newRoute","redirectToAccountManagement","logout","userNotifyIcon","closePopup","fullName","GivenName","FamilyName","header_logoClick","sendToHelp","userNotifyIcon_buttonClick","userNotifyIcon_select","LogoModule","GlobalizationService","dateTimeOffset","asUniversalTime","globalize","parseDate","format","DateTimeOffsetFormat","Date","getTimezoneOffset","date","getUTCFullYear","paddedNumber","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","formatDate","skeleton","syncfusionLocale","_globalize","number","OverviewComponent","dialogService","runtimeServive","MAX_PROJECT_COUNT","selectedProjectId","baseDataHeader","structureHeader","configDteHeader","isConfigDteSelected","configDetailsHeader","gridSortOptions","columns","direction","gridToolbarOptions","searchSettings","operator","emptyTabsData","openBaseDialog","showMaxProjectsError","resetVariables","BaseDataDialog","trackAction","newProject","closeBaseDialog","dialogBackStructureToBase","StructureDialog","Tab","dialogBackConfigDteToStructure","ConfigDteDialog","dialogBackConfigDetailsToConfigDte","ConfigDetailsDialog","dialogNextStructureToConfigDte","StructureOutDialog","emitSelectedStructures","dialogNextConfigDteToConfigDetails","isTemperatureChecked","isDteUfcChecked","emitChecked","emitChange","o","Empty","Konfiguration_DTE_AuslegungRohrleitung","isPipeChecked","Konfiguration_Energiespeicher","isEnergyChecked","projectAmount","trackActionCustom","userId","intern","projectSite","buildingAmount","energySelected","pipeSelected","addAndSelectNewProject","responseStatus","code","showErrorDetailsDialog","openDeleteProjectDialog","DeleteProjectDialog","closeDeleteProjectDialog","hideScroll","openCopyProjectDialog","CopyProjectDialog","closeCopyProjectDialog","toDelete","deleteProject","baseDataButtons","dialogNextBaseToStructure","structureButtons","configDteButtons","configDetailsButtons","deleteProjectButtons","copyProjectButtons","confirmCopyObject","closeDialogButtons","cancelCloseDialog","confirmCloseDialog","listProjects","projects","getNewGuidString","ReportVersion","KaltwasserTemperaturGrad","Pwc","getElementById","search","gridElement","span","onclick","cancelBtnClick","querySelector","emitEditedProject","checkFormsValid","showSimpleDialog","newProjectData","cloneProject","selectProject","CloseDialogDialog","resetDialogs","checkDialogsPristine","setSelectedProjectValues","PipeProject","EnergyProject","FormFieldComponent","reserveLabelSpace","formField","invalid","dirty","touched","forId","DteMath","dteTemperaturesVsCache","cachedDteParams","dteCachedVsMap","bedarfsvolumenStromLMin","pwhAbgesenkt","pwc","pwhCAbgesenktTemperatur","umgebungTemp","reducedVerlustleistungFactor","pwh","temperaturSpreizungAbgesenkt","maxDesiredVorlauftemperatur","possibleDtes","dtesFromBedarfsvolumenstrom","dteResult","dteRow","MinBedarfsvolumenstromLMin","benoetigteVorlauftemperaturFromBedarfsvolumenstrom","bedarfsvolumenstromLMin","bedarfstemperaturPwh","dtesFromBedarfsvolumenstromForAbgesenkt","temperatureParams","dtesForStandardbetrieb","highestAbgesenktPwhc","pwhAbgesenktMax","pwhAbgesenktFromPwhC","bedarfsvolumenstromAbgesenktMin","bedarfsvolumenstromAbgesenktFromBedarfsvolumenstrom","dtesForAbgesenktBetrieb","maxBedarfsvolumenstromLMin","lowestAbgesenktPwhc","pwhcOptimal","bedarfsvolumenstromAbgesenktLMin","MaxBedarfsvolumenstromLMin","dteRowMap","resultDtes","allDteTypes","minBedarfsvolumenstromLMin","resultDte","dtes","heizungsvorlaufTemperatur","dteVsMap","getVsMap","bedarfsvolumenstrom","nextKnownBedarfstemperatur","pwhString","pwhDelta","interpolationsSchrittwert","kvsValue","druckverlustHPa","pow","dteParams","getDtePwhParams","maxEffectiveVorlauftemperatur","vs","heizungsvorlaufVsMap","dteVsFromBedarfstempInternal","min","minEffectiveBedarfsvolumenstrom","vsMap","maxVsPoints","parseFloat","pointIdx","findIndex","point","minEffectiveVorlauftemperatur","benoetigteVorlauftemperatur","prevPoint","vsDiff","vsPointsDiff","factor","temperatureDiff","tempDelta","cacheKey","relevanteVorlauftemperaturen","volauftemperaturenMesspunkteFromDte","previousVs","vorlaufTemp","relDiff","interpolationFactor","interpolationTemperature","lowestTemperature","step","pwhHvlDifference","DiagramEndVorlauftemperatur","results","cacheMap","HeizungsvorlaufTemperatur","calculateVsMap","maximalwerte","vsPwh60","vsPwh55","vsPwh50","vsPwh48","pwhc60","ConfigDetailsDialogModule","LogoComponent","disableShadow","DteComponent","dteMath","tooltipBetriebspunkt","enable","header","tooltipformatBetriebspunkt","vorlauftemperaturSliderMin","minPWHTemperatur","animation","onChangeVorlauftemperatur","DTEAvailable","loadedDteIsInvalid","selectDte","selectRecommendedDte","dteInfo","selectedDTE","DiagramStartVorlauftemperatur","DiagramStepVorlauftemperaturLMin","DiagramStartBedarfsvolumenstromLMin","DiagramEndBedarfsvolumenstromLMin","DiagramStepBedarfsvolumenstromLMin","dteDruckverlust","KvsSecondary","druckverlustStrecke","KvsCirculationFlow","yValues","chartDataPWH60","Vorlauftemperatur","dteVsFromBedarfstemp","createBetriebspunkte","selectDte40","selectDte70","selectDte100","selectDteNone","y","betriebspunkt","chartDataBetriebspunkt","resetGraph","autoOptimizeSettings","setOptimalDteValues","bedarfsvolumenstromEffective","chartDataBedarfsvolumenstrom","DruckverlustHpa","DruckverlustZirkulationsstreckeHpa","DruckverlustGesamtHpa","MesspunktePwh60","BetriebspunktPwh60","GraphBedarfsvolumenstromEffektiv","BedarfsvolumenstromEffektivLMin","BedarfstemperaturGrad","recommendedDTE","recommendedDte","deselectDTE","dte40","dte70","dte100","ServiceStatic","labelAssetEndpoint","VarDirective","vcRef","templateRef","localVar","updateView","PspButton","setup","getIconPosition","getCssClass","iconCss","getIconCssClass","enableHtmlSanitizer","_wrappedButton","createSpinner","setSpinnerPosition","setTextPosition","setSpecialClasses","updateSpinAnimation","setTooltipText","insertBefore","firstChild","tooltipText","showTipPointer","GenericDialogService","customHeader","customDescription","showSimpleYesNoDialog","itemLabel","buttonResult","httpStatusCode","yesBtnText","noBtnText","buttonNames","dialogResult","modalDivEl","isModal","animationSettings","buttonName","buttonIdx","overlayClick","StructureItemComponent","onClick","WohnungsgruppeDialogData","saveNewEditDialog","editItem","calculatedMin","maxDefinedRaumZahl","zweitbadTypes","ZweitesBad","GästezimmerMitBwUndDu","GästezimmerOhneBwUndDu","availableFacilities","ApartmentGroupFacilityRows","allAvailableFacilities","availableErstbadFacilities","ZapfstellenbedarfWVErstbad","zweitbadTypesFields","austattungFields","currentElement","Ausstattungen","Belegungszahl","IsKleinwohnungen","Raumzahl","ZweitBadTyp","AusstattungenZweitbad","currentElementAusstattungsIDs","currentElementZweitbadAusstattungsIDs","formFields","calculateMinBelegungszahl","editElementIndex","gruppe","availableZweitbadFacilities","ZapfstellenbedarfWVZweitbad","ZapfstellenbedarfWVGaesteBwDu","ZapfstellenbedarfWVGaesteOhneBwDu","edit","FacilityId","Bedarf","IsCustom","isZweitbadConfigured","clearEditElement","Din4708ResidentialRoomOccupancyRows","RoomCount","BelegungszahlKleinwohnung","oldMin","getEditedElement","onDialogBackdropClick","onEditDialogSave","PspFormFieldGroup","fieldMap","statusChanges","groupStatusChanged","fieldFallbackErrorMsg","addControl","odataError","foundInAnyField","details","errorDetail","toLowerCase","setErrors","backend","updateFieldError","errorMsg","currentErrorMsg","custom","formErrorMsg","genericErrorMsg","newFieldError","fallbackErrorMsg","errors","errorTypes","includes","ConfigDetailsDialogComponent","isPipeCheckedChange","isEnergyCheckedChange","images","imageRohrleitung","imageSpeicher","_isPipeChecked","_isEnergyChecked","isConfigDteDialogPristine","DteSchematicComponent","changes","updateTextElements","setTextElementValue","energiespeicherVorlauftemperatur","maxAbgesenkteTemperaturPwhC","WebTrekkService","isFirstTrackEvent","isInitialized","trackingId","isTestDomain","TrackIdTest","wtSmart","init","trackId","trackDomain","extension","activate","pageName","userid","projectid","projectInfo","defaultLangId","getDefaultLanguage","ConfiguratorId","parameter","projectZip","projectCity","projectCountry","projectAddress","category","track","parameters","trackingParameter","referrer","getDefaultLanguageString","page","DomainLangUrlMappings","FallbackLanguage","hostname","matchedPattern","matchedLang","TestDomainMatchers","URL","PspDropdownIcon","hintDotEl","iconWrapperEl","iconSpanEl","setHintType","setIconCss","refreshLabel","refreshStyles","updateWidth","dropdownEl","dropDownListSetup","filterBarPlaceholder","enablePersistence","getDropDownCssClass","dataSource","itemDataSource","dropDown_beforeOpen","dropDown_open","dropDown_close","dropDown_select","dropDown_change","dropDown_filtering","dropDown_actionBegin","dropDown_actionComplete","dropDown_actionFailure","dropDown_dataBound","wrappedDropDownList","actionTooltip","iconTooltipPosition","closeDelay","windowCollision","newPosition","labelEl","labelPosition","insertAdjacentElement","TooltipDelay","disableTooltip","popupPosition","enableTooltip","newIconCss","oldIconCss","showPopup","hidePopup","groupBy","SelectImageComponent","buttonClicked","button_clicked","imagePath","imageText","isSelected","StepBarModule","UfcSchematicComponent","PspFormField","ProjectConfigurationItemModule","DemandVolumetricFlowResidentialModule","PspSearchBoxModule","SelectImageModule","ProjectViewModule","PspContextualHelpModule","PspSiteHeaderComponent","AppModule","deps","useFactory","setInjector","all","refreshDataModel","multi","forRoot","relativeLinkResolution","useHash","bootstrap","FurtherDetailsComponent","lineLength","dropdownData","buttonDisabled","sectionOneSelected","sectionTwoSelected","dteSelected","ufcSelected","option2Radio","CheckSections","option3Radio","option4Radio","getCurrentProject","projectValues","DTE","UFC","changeOption2","changeOption3","changeSecondOption","option1Radio","PspLoadingSpinnerModule","routes","path","buildingType","AppShellHostService","clientFrames","pipe","clientId","clientIdByEventSource","source","eventSource","iFrame","sendMessageToClient","newUserIdentity","messageObj","clientFrame","postMessage","DteStandardbetriebSchematicComponent","ToastService","toastContainer","toast","clickToClose","newestOnTop","overrides","showToast","toastDefaultCloseDelay","model","stopPropagation","toastType","timeOut","toastObject","icon","typeIconMap","typeCssClassMap","CollapsiblePanelModule","ProjectConfigurationItemComponent","itemCheckedChange","itemImage","itemDescription","itemHintId","itemCheckBox","PspSearchBox","setEnabled","setTheme","autoCompleteEl","autoCompleteSetup","presetDataSource","quickSearchDataSource","autoComplete_filtering","cssBaseClass","autoComplete_change","autoComplete_select","autoComplete_open","autoComplete_beforeOpen","autoComplete_close","autoComplete_blur","autoComplete_focus","inputAutoComplete","autoComplete_filterActionOverride","autoComplete_clearAllOverride","startSearchIconEl","inputString","emitArgs","baseEventArgs","preventDefaultAction","updateData","autoComplete","beforePopupOpen","resetList","renderReactTemplates","clearAll","where","take","fieldsWithoutGroup","textFieldName","itemText","valueFieldName","itemValue","popup","offsetY","isEnabled","startSearchIcon_click","element_keyup","StepBarComponent","hoverIndex","activeIndex","currentIndex","skipAllowedIndex","demandsIndexChange","segment","newStepIndex","prev","prevSegment","segments","segment_click","nextSegment","isNaN","stepLabelMobile","PspButtonModule","UrlResolverService","frontendFallbackRoot","mappingRules","urlMappings","ruleItem","ruleComponents","sourceUrl","destUrl","resolvedUrl","matchingKey","isMatch","origin","PspContextualHelpComponent","SliderComponent","_min","_max","isLoaded","increment","isSkipAllowed","isDragging","setHandlePosFromValue","which","isFromHandle","handleElement","initDrag","pageX","performDrag","preventDefault","endDrag","touch","touches","isMultitouch","fromHandle","dragStart","handleOrigin","offsetLeft","trackRect","trackElement","getBoundingClientRect","left","refreshMaxHandleOffset","dragDelta","newHandlePos","maxHandleOffset","valuePercentage","setHandlePos","percentage","cssPercentage","handleSize","handle","trackWidth","useExisting","inputId","onMouseDown","onMouseMove","onMouseUp","onTouchStart","onTouchMove","onTouchCancel","onKeyDown","ProjectViewComponent","FormatterService","structureDialogChangeWarning","configDteDialogChangeWarning","configDetailsDialogChangeWarning","SectionState","isDemandOpen","isWaterOpen","isConfigDetailsDialogPristine","allOptionsChecked","reportOptionPipe","notYetSetLabel","checkRequiredLabel","openBaseDataDialog","saveBaseDataDialog","openConfigDteDialog","closeBaseDataDialog","openStructureDialog","saveStructureDialog","previousStatesBVS","previousStatesWW","previousBVS","previousWW","previousBuildingsOther","previousBuildingResidential","po","sum","saveConfig","OrientationFrom","TooltipInfo","Unit","Schematic","refreshImage","closeStructureDialog","openSaveStructureDialog","closeConfigDteDialog","dialogBackCDetailsToConfigDte","reportErrorButtons","closeReportErrorDialog","reportNoDataButtons","closeReportNoDataDialog","reportOptions","Checked","isOdd","ReportAttachmentRows","Row","buildings","formatUfcName","getIconClassFromSectionState","ReportDialog","ReportNoDataDialog","isGenerating","isGenerated","ReportErrorDialog","attachments","AnhangId","generationCancellationToken","generateReport","containsAll","getDownloadFileName","Blob","fileSize","stateBedarfsvolumenstrom","every","stateZirkulationsvolumenstrom","stateDTE","stateUFC","stateRohrleitung","stateWarmwassertagesbedarf","stateSpeicher","selectedBedarfsvolumenstrom","selectedUFC","cancelGenerating","issueDownload","openReportDialog","checkBaseDataPristine","checkStructurePristine","checkConfigPristine","resetConfigDialog","onOverlayClickReport","onCloseReportDialog","ProjectDataService","listProjectMetadata","openProject","addNewProject","saveProject","toClone","copy","generateProjectId","_tempProject","bedarfNutzungsabhaengigLTag","SpezifischerBedarfLiterTag","bedarfFlaechenbezogenLTag","bedarfSumme","logWarning","warmwasserTagesbedarf","bedarfsTemperatur","ZirkulationsVSErmittlungstyp","WarmwasserErmittlungstyp","GleichzeitigkeitResidential","DimensioningSchematicType","BedarfsvolumenstromErmittlungstypOther","BedarfsvolumenstromErmittlungstyp","ZVSDirektEinheit","ValueAccessor","innerValue","fn","ConfigDteDialogModule","DemandVolumetricFlowResidentialComponent","onWohnungsgruppeAdd","onWohnungsgruppeDelete","volumestromTemp","grobTemp","ErmittlungResidentialGrob","WohneinheitenGruppeAnzahl","ErmittlungResidentialKennzahlDirekt","Bedarfskennzahl","KennzahlDirekt","ErmittlungResidentialExakt","Wohnungsgruppen","apartmentGroupPresets","ApartmentGroupPresetRows","apartmentFacilities","gebaudetyp","calculateBvsByKennzahl","ApartmentGroupPresetId","editDialogData","BedarfskennzahlErgebnis","gleichzeitigkeit","DIN4708","TUDresden","gleichzeitigkeitFromEnum","barfsvolumenstromFromBedarfskennzahl","wg","preset","getUnitRow","FacilityIdsErstesBad","zweitbadTypFromString","ZweitesBadTyp","FacilityIdsZweitesBad","calculateBvsFromWohnungsgruppen","groups","bedarfskennzahlFromWohnungsgruppen","belegungszahl","wohnungsanzahl","zweitesBadTyp","zweitbadTypFromEnum","ausstattungen","facilitiesZweitesBad","editDialog","editElement","gridWohnungsgruppenExakt","equipments","onWohnungsgruppeEdit","DemandVolumetricFlowBaseComponent","zweitbad","DteTemperatureComponent","pwh60","maxAbgesenkteTemperatur","pwhName","changeCounter","isValidFlowRate","inputAbgesenkt","VorlauftemperaturAbgesenktInput","selectedDteInfo","druckverlustHpa60","druckverlustStrecke60","druckverlust60Gesamt","bedarfsvolumenstromAbgesenkt","druckverlustHpaAbgesenkt","druckverlustStreckeAbgesenkt","druckverlustAbgesenktGesamt","yValuesPwh60","getPwhAbgesenktChart","yValuesAbgesenkt","chartDataPWHAbgesenkt","benoetigteVorlauftemperaturAbgesenkt","y60","x60","betriebspunkt60","chartDataPWH60Betriebspunkt","dtePwhParams","xAbgesenkt","xAbgesenktPinned","yAbgesenkt","betriebspunktAbgesenkt","chartDataPWHAbgesenktBetriebspunkt","TemperaturAbgesenktPwhc","DruckverlustNormalbetriebHpa","DruckverlustZirkulationsstreckeNormalbetriebHpa","DruckverlustGesamtNormalbetriebHpa","MesspunktePwhAbgesenkt","BetriebspunktPwhAbgesenkt","verlustleistungAbgesenktFromVerlustleistung","recommendedDteForAbgesenkt","optimalPwhC","onChangeSlider","TranslatePipe","lang","sanitizer","replaceValues","translation","bypassSecurityTrustHtml","pure","SelectCalculationReservoirComponent","grobImage","exaktImage","checkedOption","option","onChangeOption","PipeDiameterMath","mathLogger","constants","deltaPVorgabe","maxRohrgefaelleHpaMeter","maxGeschwindigkeitMeterSekunde","deltaPProLeitung","preCalcResults","volumenstromLs","abs","kinViskositaet","rohrrauhigkeit","Rohrrauhigkeit","rGesProLeitung","rohrdimensionAndDruckverlust","rohrEigenschaften","NennweiteDN","IterierbareRohrEigenschaften","druckverlustVerfuegbar","rohrDimEigenschaften","fuerDN","rohrDi","Aussendurchmesser","Wandstaerke","geschwindigkeitMeterSek","PI","reynoldszahlUnused","reibungswert","druckverlustRohrMeter","deltaPRhpA","zBogen","ZetaBogen90","deltaPGesamtProLeitung","lambdaIterationen","z1","z2","z3","sqrt","log10","ProjectResolver","CoreLibModule","DemandVolumetricFlowOtherModule","ValueFormatterService","unit","ceilValue","decimals","power","formattedNumber","LangService","isBaseAvailable","labelDataCache","isLocaleAvailable","retrievePromise","retrieveLabelFile","baseLabelData","localeLabelData","currentLangLabelData","setLanguageDirect","_currentLocale","applyHtmlLangAttribute","setSyncfusionLocale","isSyncfusionInitialized","de","sfCulture","internationalization","currentIdentity","queryParams","URLSearchParams","localeFromQuery","pspLocaleValidationRegex","mappedBy","localeFromIdentity","identityToLocaleMappings","browserLocale","browserLocaleMappings","labelDataReceivePromises","endpointRoute","flattenedLabelData","labelData","parseLabelData","flattenLabelData","hierarchyLabelData","overwriteCurrent","preferExisting","destLabelData","keyPrefix","itemKey","labelKey","replaceValue","htmlElement","getElementsByTagName","PspHelpNotifyIcon","AppShellClientService","appStateUpdates","sendMessageToHost","targetUrl","preferBackground","preferenceBackground","top","PspSiteHeaderModule","VolumetricFlowRateMath","bedarfskennzahl","u3","u4","ku3","gleichzeitigkeitZu","ku4","wzB","r3","u","faculty","resultZu3","wohnungsgruppen","bedarfGesamt","zapfstellenbedarfAusstattungen","zapfstellenbedarfZweitbadAusstattungen","zapfstellenbedarfProWohnung","zapfstellenbedarfGesamt","wohnungsgruppe","bedarskennzahl","temperaturGrad","sumBerechnungsdurchfluss","es","resultBerechnungsdurchflussLMin","c","ergebnisBedarfsvolumenstromLMin","ConfigDteDialogComponent","dteUfcCheckedChange","imageDte","imageDteUfc","dteufc","_dteUfcChecked","dteUfcChecked","SelectCalculationUfcComponent","ufcMath","circuMath","ufcRows","UfcRows","ufcRow","ufcFromDte","filtervolumenstromFromZirkulationsvolumenstrom","toFixed","Filtervolumenstrom","HeatGeneratorPowerComponent","warmwasser","ErmittlungsESGrob","LeistungDirekteingabeKw","ViegaButtonImageModule","CoreModule","ngModule","ViegaButtonImageComponent","iconClicked","icon_clicked","unSelected","OverviewModule","PspFormsModule","DailyLoadProfileComponent","iterableDiffers","percent","ddFields","profiles","totalArrayValue","isCheckRed","tempData","leftTableData","rightTableData","Hour","DailyLoadCourseProfileRows","getBuilding","currentInputType","getInputType","getData","ProfileId","Amount","DailyLoadCourseProfileValuesRows","checkValues","valueType","Vorgabetyp","VorauswahlTageslastgangProfileId","axis","leftTableValues","rightTableValues","sum2","checkRed","anteile","tageslastgang","savedProject","currentTemp","savedTemp","buildingWwState","TrustHtmlPipe","html","PspRoofSiteHeader","titleEl","links","linkListEl","link","idx","headerLinkSeparatorEl","headerLinkItemEl","headerLinkAnchorEl","render","PspNotifyIconComponent","UserService","_userInfo","EMail","keycloak","realm","initOptions","checkLoginIframe","onLoad","tokenParsed","sub","given_name","family_name","email","updateToken","accessTokenRefreshSeconds","accountManagement","redirectUri","pathname","subject","email_verified","hoursPerDay","minutesPerDay","energiebedarfTotal","kwHStundenanteile","stundenanteil","energiebedarfKwProTag","minutenwertekwHAnteil","hourCurrent","minutenanteilCurrent","summeEnergiebedarfCurrent","hour","trunc","minutenanteile","energiebedarfSumme","qStoMax","qStoMaxFromSpeichervolumenDirekteingabe","eintrittstemperaturSpeicher","qStoMaxFromEnergiebedarf","verlustleistungSpeicherKw","verlustleistungSpeicherQwStoT","nennNachheizleistungQnKwh","verlustleistungWaermeverteilungKwMinute","speicherMinutenwerte","leistungWwBereitungGesamtKw","minutenwerte","verlustleistungWaermeverteilungKwhMin","anteilBereitschaftsvolumenFactor","nennNachheizleistungQnKwhMin","qStoOn","qStoStart","minutenwerteVerbrauchskennlinie","qStoCurrent","verzoegerungLTagCurrent","verzoegerungLTagPrev","minutenwertKwHAnteil","minutenwertEnergiebedarf","mittlereSteigungBedarfskennlinie","maxDifference","minDifference","mittlereSteigungAktuell","difference","waermekapazitaetWasser","VerlustleistungFormelKonstanteA","VerlustleistungFormelKonstanteB","VerlustleistungFormelKonstanteC","StartPageComponent","TimeoutService","time","callback","timeoutId","intervalId","executeHttpRequest","defer","contentType","processData","ajax","onSuccess","responseRaw","responseObject","onFailure","response","requestUrl","statusText","StructureDialogModule","SelectionItemRadioModule","PspNotifyIcon","debugOverlaySkeleton","debugSimulatedLoadingTimeMs","additionalRenderTimeMs","isProdEnvironment","guidService","cookie","newGuid","setLanguagePromise","setLanguage","runtimeInfoPromise","hideSkeleton","bootstrapModule","ref","err","background","webpackEmptyAsyncContext","req","module"],"mappings":"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","file":"main-es5.js","sourcesContent":["import { Injectable, Inject } from '@angular/core';\nimport { COMPONENT_CONTEXT } from 'src/core-lib/angular/constants';\n\n@Injectable()\nexport class UserStorageService\n{\n public constructor(\n @Inject(COMPONENT_CONTEXT)\n private context: string = ''\n ) {}\n\n /**\n * Stores the given value using the given key using either local storage or\n * session storage.\n *\n * @param valueKey The context based value key. Prefix with # to ignore context.\n * @param value The value to store.\n * @param isSessionStorage Whether the value is stored for the current session only.\n */\n public getValue(valueKey: string, isSessionStorage: boolean = false): string | null\n {\n valueKey = this.processKey(valueKey);\n\n if (isSessionStorage)\n return sessionStorage.getItem(valueKey);\n else\n return localStorage.getItem(valueKey);\n }\n\n /**\n * Stores the given value using the given key using either local storage or\n * session storage.\n *\n * @param valueKey The context based value key. Prefix with # to ignore context.\n * @param value The value to store.\n * @param isSessionStorage Whether the value is stored for the current session only.\n */\n public setValue(valueKey: string, value: string, isSessionStorage: boolean = false)\n {\n valueKey = this.processKey(valueKey);\n\n if (isSessionStorage)\n sessionStorage.setItem(valueKey, value);\n else\n localStorage.setItem(valueKey, value);\n }\n\n public removeValue(valueKey: string, isSessionStorage: boolean = false)\n {\n valueKey = this.processKey(valueKey);\n\n if (isSessionStorage)\n sessionStorage.removeItem(valueKey);\n else\n localStorage.removeItem(valueKey);\n }\n\n public clearStorage(isSessionStorage: boolean = false)\n {\n if (isSessionStorage)\n sessionStorage.clear();\n else\n localStorage.clear();\n }\n\n private processKey(valueKey: string): string\n {\n if (valueKey.startsWith('#'))\n valueKey = valueKey.substring(1);\n else if (this.context)\n valueKey = `${this.context}.${valueKey}`;\n\n return valueKey;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SliderComponent } from './slider.component';\n\n@NgModule({\n imports: [\n CommonModule\n ],\n declarations: [\n SliderComponent\n ],\n exports: [\n SliderComponent\n ]\n})\nexport class SliderViegaModule { }\n","export class PimStatic\n{\n /**\n * The name of the request header meant to contain the psp identity for authorization purposes.\n */\n public static readonly identityRequestHeader = 'X-Identity';\n\n /**\n * The name of the always psp system identity which should always exist.\n */\n public static readonly pspPrivilegedSystemIdentity = 'PspLocal;System';\n\n /**\n * Indicates the locale of the label file which should be used as the base data file for label data.\n * Other language will override the label data of the base data.\n */\n public static readonly BaseLocale = 'en-US';\n\n /**\n * Indicates the locale used in frontends by default if no other locale can be determined.\n */\n public static readonly FallbackLocale = 'en-US';\n\n /**\n * A Syncfusion conform date format string representing the format DateTimeOffsets are returned with from the server.\n */\n public static readonly ODataDateResponseFormat = '';\n\n public static readonly TooltipDelayMs = 500;\n}\n","import { Component, OnInit, Input, EventEmitter, Output } from '@angular/core';\n\n@Component({\n selector: 'viega-collapsible-panel',\n templateUrl: './collapsible-panel.component.html',\n styleUrls: ['./collapsible-panel.component.scss']\n})\nexport class CollapsiblePanelComponent implements OnInit {\n private _isCollapsed: boolean = false;\n\n public get isCollapsed(): boolean {\n return this._isCollapsed;\n }\n\n @Input()\n public set isCollapsed(newValue: boolean) {\n if (this._isCollapsed !== newValue) {\n this._isCollapsed = newValue;\n this.doAnimateCollapse = false;\n }\n }\n\n @Input()\n public isCollapsible: boolean = true;\n\n public doAnimateCollapse: boolean = true;\n\n @Output()\n public collapsed = new EventEmitter();\n\n constructor() {}\n\n public ngOnInit(): void {}\n\n public toggleCollapsed() {\n this.doAnimateCollapse = true;\n\n this._isCollapsed = !this.isCollapsed;\n this.collapsed.emit(this.isCollapsed);\n }\n}\n","\n\n
\n \n
","// This code was copied from the Syncfusion angular library and contains important utility\n// code to build angular wrappers for Syncfusion components.\n\n/* tslint:disable */\nimport { Component, EventEmitter, Renderer2 } from '@angular/core';\nimport { getValue, setTemplateEngine, getTemplateEngine, attributes, createElement, isNullOrUndefined, isUndefined } from '@syncfusion/ej2-base';\nimport { ViewContainerRef, EmbeddedViewRef, ElementRef, TemplateRef } from '@angular/core';\n\n/**\n * Angular Utility Module (from syncfusion)\n */\n\nexport function applyMixins(derivedClass: any, baseClass: any[]): void {\n baseClass.forEach(baseClass => {\n Object.getOwnPropertyNames(baseClass.prototype).forEach(name => {\n if (!derivedClass.prototype.hasOwnProperty(name) || baseClass.isFormBase) {\n derivedClass.prototype[name] = baseClass.prototype[name];\n }\n });\n });\n}\n\nexport function ComponentMixins(baseClass: Function[]): ClassDecorator {\n return function (derivedClass: Function) {\n applyMixins(derivedClass, baseClass);\n };\n}\n\n/**\n * @private\n */\nexport function registerEvents(eventList: string[], obj: any, direct?: boolean): void {\n let ngEventsEmitter: { [key: string]: Object } = {};\n if (eventList && eventList.length) {\n for (let event of eventList) {\n if (direct === true) {\n obj.propCollection[event] = new EventEmitter(false);\n obj[event] = obj.propCollection[event];\n } else {\n ngEventsEmitter[event] = new EventEmitter(false);\n }\n }\n if (direct !== true) {\n obj.setProperties(ngEventsEmitter, true);\n }\n }\n}\n\n/**\n * @private\n */\nexport function clearTemplate(_this: any, templateNames?: string[], index?: any): void {\n let regTemplates: string[] = Object.keys(_this.registeredTemplate);\n if (regTemplates.length) {\n /* istanbul ignore next */\n let regProperties: string[] = templateNames && templateNames.filter(\n (val: string) => {\n return (/\\./g.test(val) ? false : true);\n });\n for (let registeredTemplate of (regProperties && regProperties || regTemplates)) {\n /* istanbul ignore next */\n if (index && index.length) {\n for (let e = 0; e < index.length; e++) {\n for (let m = 0; m < _this.registeredTemplate.template.length; m++) {\n let value = _this.registeredTemplate.template[m].rootNodes[0];\n if (value === index[e]) {\n let rt = _this.registeredTemplate[registeredTemplate];\n rt[m].destroy();\n }\n }\n }\n } else {\n for (let rt of _this.registeredTemplate[registeredTemplate]) {\n if (!rt.destroyed) {\n if(rt._view){\n let pNode: any = rt._view.renderer.parentNode(rt.rootNodes[0]);\n if (!isNullOrUndefined(pNode)) {\n for (let m: number = 0; m < rt.rootNodes.length; m++) {\n pNode.appendChild(rt.rootNodes[m]);\n }\n }\n }\n rt.destroy();\n }\n }\n }\n delete _this.registeredTemplate[registeredTemplate];\n }\n }\n for (let tagObject of _this.tagObjects) {\n if (tagObject.instance) {\n /* istanbul ignore next */\n tagObject.instance.clearTemplate((templateNames && templateNames.filter(\n (val: string) => {\n return (new RegExp(tagObject.name).test(val) ? true : false);\n })));\n }\n }\n}\n\n/**\n * To set value for the nameSpace in desired object.\n * @param {string} nameSpace - String value to the get the inner object\n * @param {any} value - Value that you need to set.\n * @param {any} obj - Object to get the inner object value.\n * @return {void}\n * @private\n */\nexport function setValue(nameSpace: string, value: any, object: any): any {\n let keys: string[] = nameSpace.replace(/\\[/g, '.').replace(/\\]/g, '').split('.');\n /* istanbul ignore next */\n let fromObj: any = object || {};\n for (let i: number = 0; i < keys.length; i++) {\n let key: string = keys[i];\n if (i + 1 === keys.length) {\n fromObj[key] = value === undefined ? {} : value;\n } else if (fromObj[key] === undefined) {\n fromObj[key] = {};\n }\n fromObj = fromObj[key];\n }\n return fromObj;\n}\n\nexport interface PropertyCollectionInfo {\n props: PropertyDetails[];\n complexProps: PropertyDetails[];\n colProps: PropertyDetails[];\n events: PropertyDetails[];\n propNames: string[];\n complexPropNames: string[];\n colPropNames: string[];\n eventNames: string[];\n}\n\nexport interface PropertyDetails {\n propertyName: string;\n type: FunctionConstructor | Object;\n defaultValue: Object;\n}\n\n\nconst SVG_REG: RegExp = /^svg|^path|^g/;\n\nexport interface IComponentBase {\n registerEvents: (eventList: string[]) => void;\n addTwoWay: (propList: string[]) => void;\n}\n\ninterface Tag {\n hasChanges: boolean;\n getProperties?: Function;\n isInitChanges: boolean;\n hasNewChildren: boolean;\n list: TagList[];\n clearTemplate?: (arg: string[]) => void;\n}\n\ninterface TagList {\n getProperties: Function;\n hasChanges: boolean;\n isUpdated: boolean;\n}\n\n@Component({\n template: ''\n})\nexport class ComponentBase {\n /** @ignore */\n public element: HTMLElement;\n\n /** @ignore */\n public tags: string[];\n\n private ngAttr: string;\n private srenderer: Renderer2;\n protected isProtectedOnChange: boolean = true;\n private isAngular: boolean;\n private isFormInit: boolean = true;\n public preventChange: boolean;\n public isPreventChange: boolean;\n protected oldProperties: { [key: string]: Object };\n protected changedProperties: { [key: string]: Object };\n protected finalUpdate: Function;\n protected isUpdated: boolean;\n /** @ignore */\n public ngEle: ElementRef;\n\n private tagObjects: { name: string, instance: Tag }[];\n\n /** @ignore */\n public onPropertyChanged: (newProp: Object, oldProp: Object) => void;\n\n /** @ignore */\n public appendTo: (ele: string | HTMLElement) => void;\n\n /** @ignore */\n public setProperties: (obj: Object, muteOnChange: boolean) => void;\n\n /** @ignore */\n public properties: Object;\n\n /** @ignore */\n public dataBind: Function;\n\n private createElement: Function;\n\n protected changeIgnoredPropertyMap: { [propertyName: string]: boolean } = {};\n\n protected saveChanges(key: string, newValue: Object, oldValue: Object): void {\n if (this.isProtectedOnChange)\n return;\n if (this.changeIgnoredPropertyMap[key])\n return;\n\n this.oldProperties[key] = oldValue;\n this.changedProperties[key] = newValue;\n // this.changedProperties = {};\n this.finalUpdate();\n\n let changeTime = setTimeout(this.dataBind.bind(this));\n let clearUpdate = () => clearTimeout(changeTime);\n this.finalUpdate = clearUpdate;\n };\n\n /** @ignore */\n public destroy: Function;\n\n private registeredTemplate: { [key: string]: EmbeddedViewRef[] };\n private complexTemplate: string[];\n\n private ngBoundedEvents: { [key: string]: Map };\n\n /** @ignore */\n public ngOnInit(isTempRef?: any): void {\n let tempOnThis: any = isTempRef || this;\n tempOnThis.registeredTemplate = {};\n tempOnThis.ngBoundedEvents = {};\n tempOnThis.isAngular = true;\n tempOnThis.isFormInit = true;\n\n if (isTempRef) {\n this.tags = isTempRef.tags;\n }\n tempOnThis.tags = this.tags || [];\n tempOnThis.complexTemplate = this.complexTemplate || [];\n tempOnThis.tagObjects = [];\n tempOnThis.ngAttr = this.getAngularAttr(tempOnThis.element);\n\n tempOnThis.createElement = (tagName: string, prop?:\n { id?: string, className?: string, innerHTML?: string, styles?: string, attrs?: { [key: string]: string } }) => {\n\n let ele: Element = tempOnThis.srenderer ? tempOnThis.srenderer.createElement(tagName) : createElement(tagName);\n if (typeof (prop) === 'undefined')\n return ele;\n\n ele.innerHTML = (prop.innerHTML ? prop.innerHTML : '');\n\n if (prop.className !== undefined)\n ele.className = prop.className;\n\n if (prop.id !== undefined)\n ele.id = prop.id;\n\n if (prop.styles !== undefined)\n ele.setAttribute('style', prop.styles);\n\n if (tempOnThis.ngAttr !== undefined)\n ele.setAttribute(tempOnThis.ngAttr, '');\n\n if (prop.attrs !== undefined)\n attributes(ele, prop.attrs);\n\n return ele;\n };\n for (let tag of tempOnThis.tags) {\n let tagObject: { name: string, instance: Tag } = {\n instance: getValue('child' + tag.substring(0, 1).toUpperCase() + tag.substring(1), tempOnThis),\n name: tag\n };\n tempOnThis.tagObjects.push(tagObject);\n }\n\n let complexTemplates: string[] = Object.keys(tempOnThis);\n complexTemplates = complexTemplates.filter((val: string): boolean =>\n /Ref$/i.test(val) && /\\_/i.test(val));\n\n for (let tempName of complexTemplates) {\n let propName: string = tempName.replace('Ref', '');\n let val: Object = {};\n setValue(propName.replace('_', '.'), getValue(propName, tempOnThis), val);\n tempOnThis.setProperties(val, true);\n }\n }\n\n public getAngularAttr(ele: Element): string {\n let attributes: NamedNodeMap = ele.attributes;\n let length: number = attributes.length;\n let ngAr: string;\n for (let i: number = 0; i < length; i++) {\n /* istanbul ignore next */\n if (/_ngcontent/g.test(attributes[i].name))\n ngAr = attributes[i].name;\n }\n return ngAr;\n };\n\n public ngAfterViewInit(isTempRef?: any): void {\n let tempAfterViewThis: any = isTempRef || this;\n let regExp: RegExp = /ejs-tab|ejs-accordion|psp-pin-accordion/g;\n /* istanbul ignore next */\n if (regExp.test(tempAfterViewThis.ngEle.nativeElement.outerHTML))\n tempAfterViewThis.ngEle.nativeElement.style.visibility = 'hidden';\n\n /**\n * Root level template properties are not getting rendered,\n * Due to ngonchanges not get triggered.\n * so that we have set template value for root level template properties,\n * for example: refer below syntax\n * ```html\n * \n * \n * \n * \n * ```\n */\n let templateProperties: string[] = Object.keys(tempAfterViewThis);\n templateProperties = templateProperties.filter((val: string): boolean => /Ref$/i.test(val));\n for (let tempName of templateProperties) {\n let propName: string = tempName.replace('Ref', '');\n setValue(propName.replace('_', '.'), getValue(propName + 'Ref', tempAfterViewThis), tempAfterViewThis);\n }\n\n // WARNING: applying a timeout here leads to render problems of this component in multiselects and probably other ng-templates\n // however, this issue seems to appear in storybook only\n const isNotStorybook = window['__STORYBOOK_ADDONS'] === undefined;\n if (isNotStorybook)\n {\n // Used setTimeout for template binding\n // Refer Link: https://github.com/angular/angular/issues/6005\n setTimeout(() => {\n /* istanbul ignore else */\n if (typeof window !== 'undefined') {\n tempAfterViewThis.appendTo(tempAfterViewThis.element);\n tempAfterViewThis.ngEle.nativeElement.style.visibility = '';\n }\n });\n }\n else\n {\n /* istanbul ignore else */\n if (typeof window !== 'undefined') {\n tempAfterViewThis.appendTo(tempAfterViewThis.element);\n tempAfterViewThis.ngEle.nativeElement.style.visibility = '';\n }\n }\n }\n\n public ngOnDestroy(isTempRef?: any): void {\n let tempOnDestroyThis: any = isTempRef || this;\n /* istanbul ignore else */\n setTimeout(() => {\n if (typeof window !== 'undefined' && tempOnDestroyThis.element.classList.contains('e-control')) {\n tempOnDestroyThis.destroy();\n tempOnDestroyThis.clearTemplate(null);\n // removing bounded events and tagobjects from component after destroy\n tempOnDestroyThis.ngBoundedEvents = {};\n tempOnDestroyThis.tagObjects = {};\n tempOnDestroyThis.ngEle = null;\n }\n });\n }\n\n public clearTemplate(templateNames?: string[], index?: any): void {\n clearTemplate(this, templateNames, index);\n };\n\n public ngAfterContentChecked(isTempRef?: any): void\n {\n let tempAfterContentThis: any = isTempRef || this;\n for (let tagObject of tempAfterContentThis.tagObjects) {\n if (!isUndefined(tagObject.instance) &&\n (tagObject.instance.isInitChanges || tagObject.instance.hasChanges || tagObject.instance.hasNewChildren)) {\n if (tagObject.instance.isInitChanges) {\n let propObj: { [key: string]: Object } = {};\n // For angular 9 compatibility\n // Not able to get complex directive properties reference ni Onint hook\n // So we have constructed property here and used\n let complexDirProps;\n let list = getValue('instance.list', tagObject);\n\n if (list && list.length) {\n complexDirProps = list[0].directivePropList;\n }\n let skip: any = true;\n if ((tempAfterContentThis as any).getModuleName && (tempAfterContentThis as any).getModuleName() === 'gantt') {\n skip = false\n }\n\n if (complexDirProps && skip && complexDirProps.indexOf(tagObject.instance.propertyName) === -1) {\n let compDirPropList = Object.keys(tagObject.instance.list[0].propCollection);\n for (let h = 0; h < tagObject.instance.list.length; h++) {\n tagObject.instance.list[h].propCollection[tagObject.instance.propertyName] = [];\n let obj: any = {};\n for (let k = 0; k < compDirPropList.length; k++) {\n let complexPropName = compDirPropList[k];\n obj[complexPropName] = tagObject.instance.list[h].propCollection[complexPropName];\n }\n for (let i = 0; i < tagObject.instance.list[h].tags.length; i++) {\n let tag = tagObject.instance.list[h].tags[i];\n let childObj = getValue('child' + tag.substring(0, 1).toUpperCase() + tag.substring(1), tagObject.instance.list[h]);\n if (childObj) {\n let innerchildObj = tagObject.instance.list[h]['child' + tag.substring(0, 1).toUpperCase() + tag.substring(1)];\n if (innerchildObj) {\n for (let j = 0; j < innerchildObj.list.length; j++) {\n let innerTag = innerchildObj.list[0].tags[0];\n if (innerTag) {\n let innerchildTag = getValue('child' + innerTag.substring(0, 1).toUpperCase() + innerTag.substring(1), innerchildObj.list[j]);\n if (innerchildTag) {\n innerchildObj.list[j].tagObjects.push({ instance: innerchildTag, name: innerTag });\n }\n }\n }\n }\n tagObject.instance.list[h].tagObjects.push({ instance: childObj, name: tag });\n }\n }\n tagObject.instance.list[h].propCollection[tagObject.instance.propertyName].push(obj);\n }\n }\n // End angular 9 compatibility\n propObj[tagObject.name] = tagObject.instance.getProperties();\n tempAfterContentThis.setProperties(propObj, tagObject.instance.isInitChanges);\n } else {\n /* istanbul ignore next */\n if ((tempAfterContentThis[tagObject.name].length !== tagObject.instance.list.length) || (tempAfterContentThis.getModuleName() === 'diagram')) {\n tempAfterContentThis[tagObject.name] = tagObject.instance.list;\n }\n for (let list of tagObject.instance.list) {\n let curIndex: number = tagObject.instance.list.indexOf(list);\n let curChild: any = getValue(tagObject.name, tempAfterContentThis)[curIndex];\n let complexTemplates: string[] = Object.keys(curChild);\n complexTemplates = complexTemplates.filter((val: string): boolean => {\n return /Ref$/i.test(val);\n });\n for (let complexPropName of complexTemplates) {\n complexPropName = complexPropName.replace(/Ref/, '');\n curChild.properties[complexPropName] = Object.keys(curChild.properties).length != 0 &&\n !curChild.properties[complexPropName] ?\n curChild.propCollection[complexPropName] : curChild.properties[complexPropName];\n }\n if (!isUndefined(curChild) && !isUndefined(curChild.setProperties)) {\n if (/diagram|DashboardLayout/.test(tempAfterContentThis.getModuleName())) {\n curChild.setProperties(list.getProperties(), true);\n } else {\n curChild.setProperties(list.getProperties());\n }\n }\n list.isUpdated = true;\n }\n }\n }\n }\n }\n\n protected registerEvents(eventList: string[]): void {\n registerEvents(eventList, this);\n }\n\n protected twoWaySetter(newVal: Object, prop: string): void {\n let oldVal: Object = getValue(prop, this.properties);\n if (oldVal === newVal) {\n return;\n }\n this.saveChanges(prop, newVal, oldVal);\n setValue(prop, (isNullOrUndefined(newVal) ? null : newVal), this.properties);\n getValue(prop + 'Change', this).emit(newVal);\n }\n\n protected addTwoWay(propList: string[]): void {\n for (let prop of propList) {\n getValue(prop, this);\n Object.defineProperty(this, prop, {\n get: () => getValue(prop, this.properties),\n set: (newVal: Object) => this.twoWaySetter(newVal, prop)\n });\n setValue(prop + 'Change', new EventEmitter(), this);\n }\n }\n\n public addEventListener(eventName: string, handler: Function): void {\n let eventObj: EventEmitter = getValue(eventName, this);\n if (!isUndefined(eventObj)) {\n if (!this.ngBoundedEvents[eventName])\n this.ngBoundedEvents[eventName] = new Map();\n\n this.ngBoundedEvents[eventName].set(handler, eventObj.subscribe(handler));\n }\n }\n\n public removeEventListener(eventName: string, handler: Function): void {\n let eventObj: EventEmitter = getValue(eventName, this);\n\n if (!isUndefined(eventObj))\n (>this.ngBoundedEvents[eventName].get(handler)).unsubscribe();\n }\n\n public trigger(eventName: string, eventArgs: object, success?: (eventArgs) => void): void {\n let eventObj: { next: Function } = getValue(eventName, this);\n\n let prevDetection: boolean = this.isProtectedOnChange;\n this.isProtectedOnChange = false;\n\n if (eventArgs)\n (<{ name: string }>eventArgs).name = eventName;\n\n if (!isUndefined(eventObj) && !isUndefined(eventObj.next))\n eventObj.next(eventArgs);\n\n let localEventObj: Function = getValue('local' + eventName.charAt(0).toUpperCase() + eventName.slice(1), this);\n if (!isUndefined(localEventObj))\n localEventObj.call(this, eventArgs);\n\n this.isProtectedOnChange = prevDetection;\n /* istanbul ignore else */\n if (success) {\n this.preventChange = this.isPreventChange;\n success.call(this, eventArgs);\n }\n this.isPreventChange = false;\n }\n}\n\nlet stringCompiler: (template: string, helper?: object) => (data: Object | JSON) => string = getTemplateEngine();\n\n/**\n * Angular Template Compiler\n */\nexport function compile(templateEle: AngularElementType, helper?: Object):\n (data: Object | JSON, component?: any, propName?: any) => Object\n{\n if (typeof templateEle === 'string') {\n return stringCompiler(templateEle, helper);\n } else {\n let contRef: ViewContainerRef = templateEle.elementRef.nativeElement._viewContainerRef;\n let pName: string = templateEle.elementRef.nativeElement.propName;\n return (data: Object, component?: any, propName?: any): Object => {\n let context: Object = { $implicit: data };\n /* istanbul ignore next */\n let conRef: ViewContainerRef = contRef ? contRef : component.viewContainerRef;\n let viewRef: EmbeddedViewRef = conRef.createEmbeddedView(templateEle as TemplateRef, context);\n viewRef.markForCheck();\n /* istanbul ignore next */\n let viewCollection: { [key: string]: EmbeddedViewRef[] } = (component && component.registeredTemplate) ?\n component.registeredTemplate : getValue('currentInstance.registeredTemplate', conRef);\n\n propName = (propName && component.registeredTemplate) ? propName : pName;\n if (typeof viewCollection[propName] === 'undefined')\n viewCollection[propName] = [];\n\n viewCollection[propName].push(viewRef);\n return viewRef.rootNodes;\n };\n }\n}\n\n/**\n * Property decorator for angular.\n */\nexport function Template(defaultValue?: Object): PropertyDecorator {\n return (target: Object, key: string) => {\n let propertyDescriptor: Object = {\n set: setter(key),\n get: getter(key, defaultValue),\n enumerable: true,\n configurable: true\n };\n Object.defineProperty(target, key, propertyDescriptor);\n };\n}\n\nfunction setter(key: string): Function {\n return function (val: AngularElementType): void {\n if (val === undefined)\n return;\n\n setValue(key + 'Ref', val, this);\n if (typeof val !== 'string') {\n val.elementRef.nativeElement._viewContainerRef = this.viewContainerRef;\n val.elementRef.nativeElement.propName = key;\n } else {\n if (this.saveChanges) {\n this.saveChanges(key, val, undefined);\n this.dataBind();\n }\n }\n };\n}\n\nfunction getter(key: string, defaultValue: Object): Function {\n return function (): Object {\n /* istanbul ignore next */\n return getValue(key + 'Ref', this) || defaultValue;\n };\n}\n\nexport interface AngularElementType {\n elementRef: ElementRef;\n}\n\nsetTemplateEngine({ compile: (compile as any) });\n/* tslint:enable */\n","import { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Observable, Subject } from 'rxjs';\nimport { filter, map } from 'rxjs/operators';\nimport { RuntimeService } from 'src/core-lib/ej2/services/RuntimeService';\nimport { AppShellClientService } from 'src/core-lib/ej2/services/shell-services/AppShellClientService';\nimport { AppActivity, IAppState } from 'src/core-lib/ej2/services/shell-services/IAppState';\nimport { IChangeRoutePayload } from 'src/core-lib/ej2/services/shell-services/shell-messages/IChangeRoutePayload';\nimport { IPermissionsChangedMessage } from 'src/core-lib/ej2/services/shell-services/shell-messages/IPermissionsChangedPayload';\nimport { IRequestClosePayload } from 'src/core-lib/ej2/services/shell-services/shell-messages/IRequestClosePayload';\nimport { IShellMessage } from 'src/core-lib/ej2/services/shell-services/shell-messages/IShellMessage';\nimport { log } from 'src/core-lib/logging';\nimport { IChangeRouteArgs } from './IChangeRouteArgs';\nimport { IRequestCloseArgs } from './IRequestCloseArgs';\n\n@Injectable()\nexport class AppStateService\n{\n private _currentState: IAppState;\n\n public get currentState(): IAppState\n {\n return JSON.parse(JSON.stringify(this._currentState));\n }\n\n public get isBusy(): boolean\n {\n return this._currentState.activity === 'busy';\n }\n\n public get isUnsaved(): boolean\n {\n return this._currentState.containsUnsavedChanges;\n }\n\n /**\n * Produces an event if the app shell is attempting to close the application.\n */\n public appClosingObservable: Subject;\n\n /**\n * Produces an event if the app shell is gracefully shutting the application down.\n * Perform cleanup / final storage operations here.\n */\n public appShutdownObservable: Subject;\n\n public requestChangeRouteObservable: Subject;\n\n constructor(\n private shellService: AppShellClientService,\n private router: Router,\n private runtimeService: RuntimeService\n )\n {\n this.appClosingObservable = new Subject();\n this.appShutdownObservable = new Subject();\n\n this.shellService.hostMessagesObservable\n .subscribe((shellMsg: IShellMessage) =>\n {\n if (shellMsg.type === 'PspRequestClose')\n this.handleRequestClose(shellMsg.payload);\n else if (shellMsg.type === 'PspChangeRoute')\n this.handleChangeRoute(shellMsg.payload);\n else if (shellMsg.type === 'PspPermissionsChanged')\n this.handlePermissionChange(shellMsg.payload);\n });\n }\n\n private handleChangeRoute(args: IChangeRoutePayload)\n {\n log.verbose('Navigating to a different route as requested by application shell.');\n const subjectArgs: IChangeRouteArgs =\n {\n targetRoute: args.targetRoute,\n cancel: false,\n };\n this.requestChangeRouteObservable.next(subjectArgs);\n\n if (!subjectArgs.cancel)\n this.router.navigate([args.targetRoute], { queryParamsHandling: 'merge' });\n }\n\n private handleRequestClose(args: IRequestClosePayload)\n {\n const subjectArgs: IRequestCloseArgs =\n {\n cancel: false,\n isForce: args.isForce,\n };\n this.appClosingObservable.next(subjectArgs);\n if (!subjectArgs.cancel || subjectArgs.isForce)\n this.closeSelf();\n }\n\n private handlePermissionChange(args: IPermissionsChangedMessage)\n {\n log.verbose('Refreshing runtime info as request by application shell.');\n this.runtimeService.refreshRuntimeInfo();\n }\n\n /**\n * Sets whether the app should visually be represented in a busy state by the application shell its hosted in, if available.\n */\n public setBusyState(isBusy: boolean): void\n {\n const newActivity: AppActivity = isBusy ? 'busy' : 'default';\n log.verbose(`Requesting the application shell to set activity status to ${newActivity}.`);\n this.shellService.updateAppState({ activity: newActivity });\n this.currentState.activity = newActivity;\n }\n\n /**\n * Sets whether the app should visually be represented in an unsaved state by the application shell its hosted in, if available.\n */\n public setUnsavedState(isUnsaved: boolean): void\n {\n log.information(`Requesting the application shell to set the containsUnsavedChanges flag to ${isUnsaved}.`);\n this.shellService.updateAppState({ containsUnsavedChanges: isUnsaved });\n this.currentState.containsUnsavedChanges = isUnsaved;\n }\n\n /**\n * Requests the app shell to close this application.\n * When this method is called, the isUnsaved state will be ignored and the appClosingObservable will not emit.\n */\n public closeSelf(): void\n {\n log.verbose('Requesting the application shell to close this app.');\n\n // allow the app to perform a graceful shutdown first\n this.appShutdownObservable.next();\n this.shellService.closeSelf();\n }\n\n /**\n * Sets the current name of the application tab in the application shell.\n */\n public setTabName(newTabName: string): void\n {\n log.verbose(`Requesting the application shell to set the tab name of this app to \"${newTabName}\".`);\n\n this.shellService.updateAppState({ tabName: newTabName });\n this.currentState.tabName = newTabName;\n }\n}\n","export class GuidService\n{\n private lut = [];\n\n constructor()\n {\n for (let i = 0; i < 256; i++)\n this.lut[i] = (i < 16 ? '0' : '') + (i).toString(16);\n }\n\n public newGuid(): string\n {\n const d0 = Math.random() * 0x100000000 >>> 0;\n const d1 = Math.random() * 0x100000000 >>> 0;\n const d2 = Math.random() * 0x100000000 >>> 0;\n const d3 = Math.random() * 0x100000000 >>> 0;\n\n return this.lut[d0 & 0xff] +\n this.lut[d0 >> 8 & 0xff] +\n this.lut[d0 >> 16 & 0xff] +\n this.lut[d0 >> 24 & 0xff] +\n '-' +\n this.lut[d1 & 0xff] +\n this.lut[d1 >> 8 & 0xff] +\n '-' +\n this.lut[d1 >> 16 & 0x0f | 0x40] +\n this.lut[d1 >> 24 & 0xff] +\n '-' +\n this.lut[d2 & 0x3f|0x80] +\n this.lut[d2 >> 8 & 0xff] +\n '-' +\n this.lut[d2 >> 16 & 0xff] +\n this.lut[d2 >> 24 & 0xff] +\n this.lut[d3 & 0xff] +\n this.lut[d3 >> 8 & 0xff] +\n this.lut[d3 >> 16 & 0xff] +\n this.lut[d3 >> 24 & 0xff];\n }\n}\n","import { AfterContentChecked, AfterViewInit, ChangeDetectionStrategy, Component, ElementRef, Injector, OnDestroy, OnInit, Renderer2, ViewContainerRef } from '@angular/core';\nimport { ComponentBase, ComponentMixins, IComponentBase, setValue } from 'src/core-lib/angular/util';\nimport { PspButton } from 'src/core-lib/ej2/components/buttons/psp-button/PspButton';\n\n// properties declared here can be changed by the user in the storyboard UI\nexport const propertyArgTypes = {\n textPosition: { control: { type: 'radio', options: ['center', 'left', 'right', 'top', 'bottom'] } },\n iconPosition: { control: { type: 'radio', options: ['left', 'right'] } },\n spinnerPosition: { control: { type: 'radio', options: ['left', 'right'] } },\n isDisabled: { control: 'boolean' },\n showSpinner: { control: 'boolean' },\n content: { control: 'text' },\n customIconCss: { control: 'text' },\n tooltipContent: { control: 'text' },\n tooltipPosition: { control: { type: 'select', options: ['TopLeft', 'TopCenter', 'TopRight', 'BottomLeft', 'BottomCenter', 'BottomRight', 'LeftTop', 'LeftCenter', 'LeftBottom', 'RightTop', 'RightCenter', 'RightBottom'] } },\n cssClass: { control: 'text', description: 'Try \"e-primary\", \"e-bigger\", \"e-small\" or \"psp-flat\".' },\n};\n\n// prevent storybook from updating these properties\nconst changeIgnoredProperties: string[] = [];\n\n// declare some properties as bindable angular outputs\nconst outputBindings = [\n 'createdEvent',\n 'destroyedEvent'\n];\n\n@Component({\n selector: '[psp-button]',\n template: '',\n inputs: [\n 'cssClass',\n 'textPosition',\n 'iconPosition',\n 'spinnerPosition',\n 'isDisabled',\n 'showSpinner',\n 'content',\n 'customIconCss',\n 'tooltipContent',\n 'tooltipPosition',\n 'cssClass',\n ],\n outputs: outputBindings,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\n@ComponentMixins([ComponentBase])\nexport class PspButtonComponent extends PspButton implements IComponentBase, OnInit, OnDestroy, AfterViewInit, AfterContentChecked\n{\n /** @ignore */\n public tagObjects: any = [];\n\n /** @ignore */\n public context : any;\n\n /** @ignore */\n public tags: string[] = [];\n\n protected changeIgnoredPropertyMap: { [propertyName: string]: boolean };\n\n public constructor(\n private ngEle: ElementRef,\n private srenderer: Renderer2,\n private viewContainerRef: ViewContainerRef,\n private injector: Injector\n )\n {\n super();\n\n this.element = this.ngEle.nativeElement;\n\n this.changeIgnoredPropertyMap = {};\n changeIgnoredProperties.forEach(prop => this.changeIgnoredPropertyMap[prop] = true);\n\n this.registerEvents(outputBindings);\n this.addTwoWay.call(this, []);\n setValue('currentInstance', this, viewContainerRef);\n this.context = new ComponentBase();\n }\n\n /** @ignore */\n public ngOnInit(): void\n {\n this.context.ngOnInit(this);\n }\n\n /** @ignore */\n public ngAfterViewInit(): void\n {\n this.context.ngAfterViewInit(this);\n }\n\n /** @ignore */\n public ngOnDestroy(): void\n {\n this.context.ngOnDestroy(this);\n }\n\n /** @ignore */\n public ngAfterContentChecked(): void\n {\n this.context.ngAfterContentChecked(this);\n }\n\n /** @ignore */\n public registerEvents: (eventList: string[]) => void;\n\n /** @ignore */\n public addTwoWay: (propList: string[]) => void;\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { AggregatorDataService } from 'src/app/core/AggregatorDataService';\n\n@Component({\n selector: 'app-help-icon',\n templateUrl: './help-icon.component.html',\n styleUrls: ['./help-icon.component.scss']\n})\nexport class HelpIconComponent implements OnInit {\n\n @Input() hinweisId: string;\n\n text: string;\n\n constructor(private aggregatorDataService: AggregatorDataService) { }\n\n ngOnInit(): void {\n\n try {\n this.text = this.aggregatorDataService.aggregatorData.Tables.TooltipRows.find(x => x.TooltipId == this.hinweisId).TooltipContentHtmlLoc;\n } catch (error) {\n console.log(this.hinweisId)\n }\n }\n\n}\n","
\n \n \n
\n","import { Ajax } from '@syncfusion/ej2-base';\nimport { log } from 'src/core-lib/logging';\nimport { environment } from 'src/environments/environment';\nimport { IIdentityPermission, IRuntimeInfo } from './IRuntimeInfo';\nimport { PimStatic } from '../utils/PimStatic';\nimport { ServiceStatic } from '../utils/ServiceStatic';\n\nexport interface IIdentityInfo\n{\n identityId?: string;\n identityIdHashed?: string;\n permissionIds?: { [permissionId: string]: boolean };\n groupIds: { [groupId: string]: boolean };\n eMail: string;\n firstName: string;\n lastName: string;\n avatarUrl: string;\n tags: string[];\n defaultLocale: string;\n}\n\nexport class RuntimeService\n{\n private static cachedRuntimeInfo: IRuntimeInfo;\n private static runtimeInfoRefreshPromise: Promise;\n\n public get isRuntimeInfoLoaded(): boolean\n {\n return RuntimeService.cachedRuntimeInfo !== undefined;\n }\n\n public get runtimeInfo(): IRuntimeInfo | undefined\n {\n return RuntimeService.cachedRuntimeInfo;\n }\n\n /**\n * Downloads a runtime info from the server if it's not available yet. If a download is already running\n * returns a promise which resolves when it is completed. The promise resolves right away if a runtime\n * info is already available.\n */\n public ensureRuntimeInfo(): Promise\n {\n if (!this.runtimeInfo)\n return this.refreshRuntimeInfo();\n else\n return Promise.resolve();\n }\n\n public refreshRuntimeInfo(): Promise\n {\n if (RuntimeService.runtimeInfoRefreshPromise)\n return RuntimeService.runtimeInfoRefreshPromise;\n\n const endpoint = environment.backendRootUrl + ServiceStatic.runtimeInfoEndpoint;\n const request = new Ajax(endpoint, 'GET');\n request.beforeSend = () =>\n request.httpRequest.setRequestHeader(PimStatic.identityRequestHeader, PimStatic.pspPrivilegedSystemIdentity);\n\n RuntimeService.runtimeInfoRefreshPromise = request.send()\n .then((responseData: any) =>\n {\n RuntimeService.cachedRuntimeInfo = this.parseRuntimeData(responseData);\n delete RuntimeService.runtimeInfoRefreshPromise;\n })\n .catch((error: Error) =>\n {\n log.fatal({ endpoint, error: error.message }, 'Failed to receive runtime information from backend.');\n return Promise.reject(error);\n });\n\n return RuntimeService.runtimeInfoRefreshPromise;\n }\n\n /**\n * Returns the value of a configuration setting that has been published by the backend.\n *\n * @param defaultValue Setting this to undefined will throw an error if the config setting is not set. Otherwise will return this value.\n */\n public getConfigValue(settingKey: string, defaultValue: any = undefined): any\n {\n this.throwIfRuntimeInfoMissing();\n\n const configValue = this.runtimeInfo.Config[settingKey];\n if (configValue === undefined)\n {\n if (defaultValue === undefined)\n throw new Error(`Config setting \"${settingKey}\" from backend is not set.`);\n\n return defaultValue;\n }\n\n return configValue;\n }\n\n private throwIfRuntimeInfoMissing()\n {\n if (!this.runtimeInfo)\n throw new Error('The runtime information object has not been retrieved from the backend yet.');\n }\n\n private parseRuntimeData(rawData: string): IRuntimeInfo\n {\n try\n {\n return JSON.parse(rawData);\n }\n catch (error)\n {\n throw new Error('Failed to parse json runtime data received from backend.');\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { HotWaterDemandComponent } from './hot-water-demand.component';\n\n\n\n@NgModule({\n declarations: [\n HotWaterDemandComponent\n ],\n imports: [\n CommonModule,\n SharedModule\n ]\n})\nexport class HotWaterDemandModule { }\n","import { InjectionToken } from '@angular/core';\n\nexport const COMPONENT_CONTEXT = new InjectionToken('COMPONENT_CONTEXT');\n","import {\n Component,\n OnInit,\n Input,\n EventEmitter,\n Output,\n Host,\n HostListener\n} from '@angular/core';\n\nexport interface IMobileMenuStateChanged {\n newMenuState: boolean;\n}\n\nexport type PageTitleMode = 'desktop-only' | 'mobile-only' | 'always' | 'never';\nexport type ForceMode = 'desktop' | 'mobile' | false;\n\n/**\n * Represents a default two-row viega header supporting both desktop and mobile modes.\n *\n * This component supports content injection by using the following special attributes on the content elements:\n * [menu-items] - An element which may act as a container for a set of menu items which should be displayed in the top right\n * section of the header. Use
    and
  • tags for auto styling. Visible in desktop mode only.\n * [content] - Injected as the primary content of the header.\n * [mobile-panel-content] - Injected as the primary content of the mobile menu. Visible in mobile mode only.\n * [mobile-panel-bottom] - Injected at the bottom of the mobile menu usually representing a list of menu items.\n * Use
      and
    • tags for auto styling. Visible in mobile mode only.\n */\n@Component({\n selector: 'viega-header',\n templateUrl: './header.component.html',\n styleUrls: ['./header.component.scss']\n})\nexport class HeaderComponent implements OnInit {\n @Input()\n public titleHref: string = '/';\n\n /**\n * The application title which is shown in the top left position of the header.\n * However, most applications use the default title \"Viega Deutschland\" here instead.\n */\n @Input()\n public appTitle: string;\n\n @Input()\n public pageTitle: string;\n\n /**\n * Configures when @see pageTitle should be visible.\n */\n @Input()\n public pageTitleMode: PageTitleMode = 'mobile-only';\n\n @Input()\n public disableBurgerMenu: boolean;\n\n /**\n * Whether a certain display mode should be enforced. By default the design of the header will\n * automatically switch between desktop and mobile view depending on the page's resolution.\n */\n @Input()\n public forceMode: ForceMode = false;\n\n public isMobileMenuExpanded: boolean;\n\n @Output()\n public logoClicked = new EventEmitter();\n\n @Output()\n public mobileMenuStateChanged = new EventEmitter();\n\n public isMobile: boolean;\n\n @HostListener('window:resize')\n onResize() {\n if (window.innerWidth < 800) {\n this.isMobile = true;\n } else {\n this.isMobile = false;\n }\n }\n\n ngOnInit() {\n this.onResize();\n }\n\n public logo_clicked() {\n this.logoClicked.emit();\n }\n\n public setSidebarStatus(newStatus: boolean) {\n this.isMobileMenuExpanded = newStatus;\n this.mobileMenuStateChanged.emit({ newMenuState: newStatus });\n }\n}\n","\n \n\n\n\n
      \n \n {{appTitle}}\n {{appTitle}}\n \n
      \n \n
      \n
      \n\n \n \n \n
      \n \n {{ pageTitle }}\n \n
      \n \n
      \n \n
      \n\n\n\n \n \n \n \n
      \n \n {{ pageTitle }}\n \n
      \n \n
      \n \n
      \n \n \n
      \n\n\n
      \n \n \n {{ pageTitle }}\n \n
      \n
      \n \n
      \n\n\n\n","import { Component, Inject, Output, ViewChild, EventEmitter, OnInit } from \"@angular/core\";\nimport { Validators } from \"@angular/forms\";\nimport { DialogComponent } from \"@syncfusion/ej2-angular-popups\";\nimport { AggregatorDataService } from \"src/app/core/AggregatorDataService\";\nimport { FreieZapfstelle } from \"src/app/core/BackendApi/freiezapfstelle.complex\";\nimport { VordefinierteZapfstelle } from \"src/app/core/BackendApi/vordefiniertezapfstelle.complex\";\nimport { Vdi6003FacilityRow } from \"src/app/core/DteufcAggregatorServiceApi/vdi6003facilityrow.complex\";\nimport { Komfortstufe } from \"src/app/core/Enums\";\nimport { ValueFormatterService } from \"src/app/core/ValueFormatterService\";\nimport { PspFormField } from \"src/core-lib/angular/components/forms/PspFormField\";\nimport { PspFormFieldGroup } from \"src/core-lib/angular/components/forms/PspFormFieldGroup\";\nimport { LangService } from \"src/core-lib/ej2/services/LangService\";\n\n@Component({\n selector: 'app-zapfstellen-dialog-data',\n templateUrl: './zapfstellen-dialog-data.component.html',\n styleUrls: ['./zapfstellen-dialog-data.component.scss'],\n providers: [{ provide: 'facilities', useValue: []}]\n})\n\nexport class ZapfstellenDialogData implements OnInit {\n\n //Outputs\n @Output() saveNewZapfstelle = new EventEmitter();\n @Output() editZapfstelle = new EventEmitter();\n\n invalidFieldsDialogButtons = [{\n 'click': this.onCloseInvalidFieldsDialog.bind(this),\n buttonModel: {\n content: this.langService.getString('InvalidDialogUeberpruefenBtn_T'),\n isPrimary: false,\n cssClass: 'e-primary'\n }\n }]\n\n @ViewChild(DialogComponent) public editZapfstelleDialog: DialogComponent;\n @ViewChild('invalidFieldsDialog') public invalidFieldsDialog: DialogComponent;\n\n // Config Variables\n public readonly typeFormFieldsConfig = { text: \"DisplayNameLoc\", value: \"VdiFacilityId\" }\n public readonly comfortValuesConfig = { text: \"Label\", value: \"Key\" }\n public readonly typeFormFields: PspFormFieldGroup;\n public readonly comfortFormFields: PspFormFieldGroup;\n public readonly freeFormFields: PspFormFieldGroup;\n public readonly comfortValues = [\n { Key: Komfortstufe.Stufe1, Label: this.langService.getString('Komfortstufen.Stufe1_T')},\n { Key: Komfortstufe.Stufe2, Label: this.langService.getString('Komfortstufen.Stufe2_T')},\n { Key: Komfortstufe.Stufe3, Label: this.langService.getString('Komfortstufen.Stufe3_T')}\n ]\n public facilities: Vdi6003FacilityRow[];\n public allFacilities: Vdi6003FacilityRow[];\n public editingItemIsFree: boolean;\n public editingItemIndex: number;\n\n // Item Data Variables\n public currentComfort: Komfortstufe;\n public currentlyFree: boolean;\n public currentCount: number;\n public currentFlow: number;\n public currentName: string;\n public currentType: string;\n public currentSum: number;\n public helpTextComfort: string;\n public dialogHeader: string = this.langService.getString('DialogsHeaderNeueEntnahmestelle_T');\n\n // Constructors\n constructor(\n private langService: LangService,\n protected formatterService: ValueFormatterService,\n protected aggregatorDataService: AggregatorDataService,\n ){\n // Init forms\n this.typeFormFields = new PspFormFieldGroup([\n new PspFormField({\n fieldName: 'Auswahl',\n displayName: this.langService.getString('FormFields.Auswahl_T'),\n formState: {\n value: null,\n disabled: false\n },\n displayAsRequired: true,\n validatorOrOpts: Validators.required,\n })\n ]);\n this.comfortFormFields = new PspFormFieldGroup([\n new PspFormField(\n {\n fieldName: 'Komfort',\n displayName: this.langService.getString('FormFields.Komfort_T'),\n formState: {\n value: null,\n disabled: false\n },\n displayAsRequired: true,\n validatorOrOpts: Validators.required,\n helpMessageHtml: this.helpTextComfort,\n })\n ]);\n this.freeFormFields = new PspFormFieldGroup([\n new PspFormField(\n {\n fieldName: 'Bezeichnung',\n displayName: this.langService.getString('FormFields.Bezeichnung_T'),\n formState: {\n value: null,\n disabled: false\n },\n displayAsRequired: true,\n validatorOrOpts: [Validators.required, Validators.pattern(\"[\\\\w\\\\d\\-\\.()/\\\\!\\\"'+?*~#_°^=%$§€@äöüÄÖÜß:;,<>& ]*\"), Validators.minLength(1),Validators.maxLength(50)],\n })\n ]);\n }\n\n public ngOnInit(): void {\n this.facilities = this.aggregatorDataService.aggregatorData.Tables.Vdi6003FacilityRows.concat([\n {VdiFacilityId: 'Manual', DisplayNameLoc: this.langService.getString('ExaktTypRadio.DialogDropDownManuelleEingabe_T')}\n ]);\n }\n\n // Methods\n public zapfstellenTypeHasChanged(): boolean {\n return this.editingItemIsFree == null\n || (this.editingItemIsFree == false && this.currentType == 'Manual')\n || (this.editingItemIsFree == true && this.currentType != 'Manual');\n }\n \n public isAboveNormParameters(): boolean {\n return true;\n }\n public isSaveValid(): boolean {\n switch(this.currentType){\n case null: return false;\n case 'Manual': return this.freeFormFields.group.valid;\n default: return this.comfortFormFields.group.valid;\n }\n }\n public getResultItemFrei(): FreieZapfstelle {\n return {\n BerechnungsflussSummeLiterSek: this.currentSum,\n BerechnungsflussLiterSek: this.currentFlow,\n Bezeichnung: this.currentName,\n Anzahl: this.currentCount\n }\n }\n public getResultItemVordefiniert(): VordefinierteZapfstelle {\n return {\n BerechnungsflussSummeLiterSek: this.currentSum,\n BerechnungsflussLiterSek: this.currentFlow,\n Komfortstufe: this.currentComfort,\n Anzahl: this.currentCount,\n Typ: this.currentType\n }\n }\n public reset(): void {\n this.editingItemIsFree = null;\n this.editingItemIndex = null;\n this.currentlyFree = false;\n this.currentComfort = null;\n this.currentCount = null;\n this.currentName = null;\n this.currentType = null;\n this.currentFlow = 0;\n this.currentSum = 0;\n\n this.comfortFormFields.group.reset();\n this.freeFormFields.group.reset();\n this.typeFormFields.group.reset();\n }\n public selectFreeItem(item: FreieZapfstelle, index: number): void {\n this.comfortFormFields.group.reset();\n this.typeFormFields.group.reset({ Auswahl: 'Manual' });\n this.freeFormFields.group.reset({ Bezeichnung: item.Bezeichnung });\n\n this.editingItemIsFree = true;\n this.editingItemIndex = index;\n\n this.currentlyFree = true;\n this.currentCount = item.Anzahl;\n this.currentFlow = item.BerechnungsflussLiterSek;\n\n this.recalculate();\n }\n public selectVordefiniertItem(item: VordefinierteZapfstelle, index: number): void {\n this.freeFormFields.group.reset();\n this.typeFormFields.group.reset({ Auswahl: item.Typ });\n this.comfortFormFields.group.reset({ Komfort: item.Komfortstufe });\n\n this.editingItemIsFree = false;\n this.editingItemIndex = index;\n\n this.currentlyFree = false;\n this.currentCount = item.Anzahl;\n this.currentComfort = item.Komfortstufe;\n this.currentType = item.Typ;\n this.currentFlow = item.BerechnungsflussLiterSek;\n\n this.recalculate();\n }\n public recalculate() : void {\n // Fix numbers being stored as strings\n if(this.currentCount)\n this.currentCount = Number(this.currentCount);\n if(this.currentFlow)\n this.currentFlow = Number(this.currentFlow);\n\n // Calculate\n if(this.currentlyFree){\n this.calculateFree();\n } else {\n this.calculateVorgegeben();\n }\n }\n private calculateVorgegeben(): void {\n if(this.currentComfort != null && this.currentCount != null && this.currentType != null) {\n let facilityInfo = this.facilities.find(f => f.VdiFacilityId == this.currentType);\n switch(this.currentComfort){\n case Komfortstufe.Stufe1: this.currentFlow = facilityInfo.BerechnungsdurchflussKS1; break;\n case Komfortstufe.Stufe2: this.currentFlow = facilityInfo.BerechnungsdurchflussKS2; break;\n case Komfortstufe.Stufe3: this.currentFlow = facilityInfo.BerechnungsdurchflussKS3; break;\n }\n this.currentSum = this.currentCount * this.currentFlow;\n } else {\n this.currentSum = 0;\n }\n }\n private calculateFree(): void {\n if(this.currentCount != null && this.currentFlow != null){\n this.currentSum = this.currentCount * this.currentFlow;\n } else {\n this.currentSum = 0;\n }\n }\n\n public formatBerechnungsdurchfluss(fluss: number): string {\n if(fluss == null)\n return \"\";\n else\n return this.formatterService.formatNumber(fluss, 'LiterPerSecond', { maximumFractionDigits: 2, minimumFractionDigits: 2 })\n }\n\n // Change events\n public onTypeChanged() {\n this.currentlyFree = this.currentType == 'Manual';\n this.recalculate();\n }\n public onStufeChange(): void {\n this.recalculate();\n } \n\n public open(): void {\n this.editZapfstelleDialog.show();\n }\n\n public close(): void {\n this.editZapfstelleDialog.hide();\n }\n\n public onEditDialogBackdropClick(): void {\n this.editZapfstelleDialog.hide();\n }\n\n public onCloseInvalidFieldsDialog(): void {\n this.invalidFieldsDialog.hide();\n }\n\n //Event Emitters\n public onZapfstelleSave(): void {\n // Validate\n if(!this.isSaveValid()){\n this.typeFormFields.group.markAllAsTouched();\n this.comfortFormFields.group.markAllAsTouched();\n this.freeFormFields.group.markAllAsTouched();\n this.invalidFieldsDialog.show();\n return;\n }\n\n // Decide wether to save a new or edit an existing item\n if(this.editingItemIndex != null) {\n let result = this.editingItemIsFree ? this.getResultItemFrei() : this.getResultItemVordefiniert();\n console.log(result);\n console.log(this.zapfstellenTypeHasChanged())\n this.editZapfstelleDialog.hide();\n this.editZapfstelle.emit(result);\n \n } else {\n if(this.currentlyFree){\n this.saveNewZapfstelle.emit(this.getResultItemFrei());\n this.editZapfstelleDialog.hide();\n } \n else {\n this.saveNewZapfstelle.emit(this.getResultItemVordefiniert());\n this.editZapfstelleDialog.hide();\n }\n }\n }\n}\n","\n \n
      \n
      \n
      \n
      \n \n \n \n
      \n
      \n
      \n
      \n \n \n \n
      \n
      \n
      \n
      \n \n \n \n
      \n
      \n
      \n\n
      \n
      \n {{'ExaktTypRadio.DialogHeadlineBerechnungsfluss_T' | translate}}\n \n \n
      \n
      \n \n {{formatBerechnungsdurchfluss(currentFlow)}}\n \n
      \n
      \n
      \n \n
      \n
      \n
      \n
      \n \n
      \n
      \n \n {{'ExaktTypRadio.DialogWarningBerechnugsdurchfluss_SD' | translate}}\n \n
      \n
      \n
      \n\n
      \n {{'ExaktTypRadio.DialogHeadlineAnzahl_T' | translate}}\n
      \n \n
      \n
      \n
      \n\n {{'ExaktTypRadio.DialogHeadkineBerechnungsflussGesamt_T' | translate}}\n\n
      \n \n {{formatBerechnungsdurchfluss(currentSum)}}\n \n
      \n
      \n
      \n
      \n
      \n
      \n \n\n\n\n\n \n
      \n {{'ExaktTypRadio.InvalidDialogContent_SD' | translate}}\n
      \n
      \n","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { DialogComponent, PositionDataModel } from '@syncfusion/ej2-angular-popups';\nimport { AggregatorDataService } from 'src/app/core/AggregatorDataService';\nimport { OtherBuilding } from 'src/app/core/BackendApi/otherbuilding.complex';\nimport { ResidentialBuilding } from 'src/app/core/BackendApi/residentialbuilding.complex';\nimport { BuildingTypeRow } from 'src/app/core/DteufcAggregatorServiceApi/buildingtyperow.complex';\nimport { IStructureData } from 'src/app/core/project-interfaces';\nimport { provideContext } from 'src/core-lib/angular/context-util';\n\n@Component({\n selector: 'app-structure-dialog',\n templateUrl: './structure-dialog.component.html',\n styleUrls: ['./structure-dialog.component.scss'],\n providers: [provideContext('StructureDialog')]\n})\nexport class StructureDialogComponent implements OnInit {\n\n @ViewChild('dialog') public dialog: DialogComponent;\n\n @Input() target: string;\n @Input() buttons: any; //Typ???\n @Input() headerText: string;\n @Input() projectName: string;\n\n structures: BuildingTypeRow[];\n\n _selectedStructuresOther: OtherBuilding[];\n @Input() selectedStructuresOther: OtherBuilding[];\n @Output() selectedStructuresOtherChange = new EventEmitter();\n\n _selectedStructureResidential: ResidentialBuilding;\n @Input() selectedStructureResidential: ResidentialBuilding;\n @Output() selectedStructureResidentialChange = new EventEmitter();\n\n @Output() closedCompletely = new EventEmitter();\n isClosedWithoutSave: boolean = true;\n canBeClosed: boolean = false;\n\n @Output() dialogPristine = new EventEmitter()\n\n\n dialogWidth: string = \"55%\"; //Immer gleich???\n dialogHeight: string = \"90vh\"; //Immer gleich???\n dialogPosition: PositionDataModel = {X: 'center', Y: 'center'}\n\n @Input() changeWarning: string;\n\n\n\n constructor(private aggregatorDataService: AggregatorDataService) { }\n\n ngOnInit(): void {\n this.resetDialog();\n\n this.structures = this.aggregatorDataService.aggregatorData.Tables.BuildingTypeRows;\n }\n\n checkIfChecked(structureTitle: string): boolean{\n if (structureTitle == 'Wohngebäude') {\n return this._selectedStructureResidential ? true : false;\n }\n else{\n // return this._selectedStructures.some(s => s.id === structureTitle);\n return this._selectedStructuresOther.some(s => s.BuildingType == structureTitle);\n }\n }\n\n\n\n onChangeStructures(id: string, name: string){\n if (id == 'Wohngebäude') {\n if (!this._selectedStructureResidential) {\n this._selectedStructureResidential = {\n BuildingType: id,\n }\n }\n else{\n this._selectedStructureResidential = null;\n }\n }\n else{\n if(!this._selectedStructuresOther.some(s => s.BuildingType === id)){\n this._selectedStructuresOther.push(\n {\n BuildingType: id,\n }\n );\n }\n else{\n var index = this._selectedStructuresOther.map(function(e) {return e.BuildingType}).indexOf(id);\n this._selectedStructuresOther.splice(index, 1)\n }\n\n }\n\n }\n\n emitSelectedStructures(){\n if (this._selectedStructureResidential) {\n this.selectedStructureResidential = JSON.parse(JSON.stringify(this._selectedStructureResidential));\n this.selectedStructureResidentialChange.emit(this.selectedStructureResidential);\n }\n\n if (this._selectedStructuresOther && this._selectedStructuresOther.length > 0) {\n this.selectedStructuresOther = this._selectedStructuresOther.slice();\n this.selectedStructuresOtherChange.emit(this.selectedStructuresOther);\n }\n }\n\n onOverlayClick(){\n this.dialog.hide();\n }\n\n onCloseDialog(){\n if(this.isClosedWithoutSave){\n this.closedCompletely.emit();\n this.resetDialog();\n }\n }\n\n onBeforeClose(event){\n if(this.target == 'app-overview'){\n if(this.isClosedWithoutSave){\n if(!this.canBeClosed){ //TODO ! oder nicht\n event.cancel = true;\n this.dialogPristine.emit();\n }\n }\n }\n else{\n if(this.isClosedWithoutSave){\n if(!this.canBeClosed && !this.checkIfPristine()){ //TODO ! oder nicht\n event.cancel = true;\n this.dialogPristine.emit();\n }\n }\n }\n }\n\n resetDialog(){\n if(!this.selectedStructuresOther){\n this._selectedStructuresOther = [];\n } else {\n this._selectedStructuresOther = this.selectedStructuresOther.slice();\n }\n if(!this.selectedStructureResidential){\n this._selectedStructureResidential = null;\n } else {\n this._selectedStructureResidential = JSON.parse(JSON.stringify(this.selectedStructureResidential));\n }\n }\n\n checkIfPristine(): boolean{\n if (this.selectedStructureResidential && !this._selectedStructureResidential\n || this._selectedStructureResidential && !this.selectedStructureResidential) {\n return false;\n }\n\n\n if(this._selectedStructuresOther.some(_s => !this.selectedStructuresOther.some(s => s.BuildingType == _s.BuildingType )) ||\n this.selectedStructuresOther.some(s => !this._selectedStructuresOther.some(_s => _s.BuildingType == s.BuildingType ))){\n return false;\n }\n else{\n return true;\n }\n\n }\n\n}\n","\n \n
      \n {{headerText}}\n \n
      \n
      \n \n
      \n {{'Content_SD' | translate: projectName}}\n
      \n
      \n \n \n \n
      \n
      \n

      {{'ErrorGebaeudetyp_SD' | translate}}

      \n
      \n \n

       

      \n
      \n
      \n

      \n \n {{changeWarning}}\n

      \n
      \n
      \n
      ","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { FileDownloadService } from 'src/core-lib/ej2/services/FileDownloadService';\nimport { ODataHttpService } from 'src/core-lib/ej2/services/ODataHttpService';\nimport { IODataQueryResponse } from 'src/core-lib/ej2/utils/IODataQueryResponse';\nimport { environment } from 'src/environments/environment';\nimport { UserService } from './UserService';\nimport { GenerateReportDto } from './BackendApi/generatereportdto.complex';\nimport { ProjectEntity } from './BackendApi/projectentity.entity';\nimport { ProjectMetadataEntity } from './BackendApi/projectmetadataentity.entity';\nimport { LangService } from 'src/core-lib/ej2/services/LangService';\nimport { GlobalizationService } from 'src/core-lib/ej2/services/GlobalizationService';\nimport { Subscription } from 'rxjs';\n\nexport type DimensioningSchematicType = 'WholeProject' | 'Dte' | 'DteUfc' | 'Ufc';\n\n@Injectable()\nexport class ProjectService\n{\n private invalidFileNameCharsRegex = new RegExp('[^A-Za-z0-9öäüß\\-]');\n private _currentProject: ProjectEntity = null;\n private responseData: Blob | string = null;\n\n public get currentProject(): ProjectEntity\n {\n return this._currentProject;\n }\n\n constructor(\n private langService: LangService,\n private globalizationService: GlobalizationService,\n private odataHttpService: ODataHttpService,\n private httpClient: HttpClient,\n private userService: UserService,\n private fileDownloadService: FileDownloadService\n ) {}\n\n /**\n * Loads a project from the server and sets it as current project.\n */\n public async listProjectMetadata(): Promise\n {\n const endpoint = this.projectMetadataCollectionEndpoint();\n const queryResponse: IODataQueryResponse =\n await this.odataHttpService.query(endpoint, {}, await this.authorizationHeader());\n\n return queryResponse.value.map(metadataEntity =>\n {\n this.normalizeBackendProjectData(metadataEntity);\n return metadataEntity;\n });\n }\n\n /**\n * Loads a project from the server and sets it as current project.\n */\n public async openProject(projectId: string): Promise\n {\n const endpoint = this.singleProjectEndpoint(projectId);\n this._currentProject = await this.odataHttpService.getJson(endpoint, await this.authorizationHeader()) as ProjectEntity;\n this.normalizeBackendProjectData(this._currentProject);\n\n return this._currentProject;\n }\n\n /**\n * Writes the current project to the backend.\n */\n public async saveProject(): Promise\n {\n if (!this.currentProject)\n throw new Error('There is currently no project loaded.');\n\n const endpoint = this.singleProjectEndpoint(this.currentProject.ProjectId);\n // the backend will return the saved project with some additional assigned properties such as last modified date etc.\n this._currentProject = await this.odataHttpService.putJson(endpoint, JSON.stringify(this.currentProject), await this.authorizationHeader()) as ProjectEntity;\n return this._currentProject;\n }\n\n public async saveTempProject(project: ProjectEntity): Promise\n {\n if (!project)\n throw new Error('No project to save provided');\n\n const endpoint = this.singleProjectEndpoint(this.currentProject.ProjectId);\n this._currentProject = await this.odataHttpService.putJson(endpoint, JSON.stringify(project), await this.authorizationHeader()) as ProjectEntity;\n return this._currentProject;\n }\n\n /**\n * Adds a new project and sets it as the current project.\n */\n public async addNewProject(project: ProjectEntity): Promise\n {\n const endpoint = this.projectCollectionEndpoint();\n\n // the backend will return the saved project with some additional assigned properties such as projectId, creation date etc.\n this._currentProject = await this.odataHttpService.postJson(endpoint, JSON.stringify(project), await this.authorizationHeader()) as ProjectEntity;\n this.normalizeBackendProjectData(this._currentProject);\n\n return this._currentProject;\n }\n\n /**\n * Delets an existing project.\n */\n public async deleteProject(projectId: string): Promise\n {\n const endpoint = this.singleProjectEndpoint(projectId);\n await this.odataHttpService.deleteJson(endpoint, projectId, await this.authorizationHeader());\n }\n\n /**\n * Gets an xml+svg schematic for the current project from the backend.\n */\n public async getSchematic(schematicType: DimensioningSchematicType, locale: string): Promise\n {\n if (!this.currentProject)\n throw new Error('There is currently no project loaded.'); //TODO wenn Datenmodell fertig\n\n const endpoint = `${this.singleProjectEndpoint(this.currentProject.ProjectId)}/GetSchematic(SchematicType='${encodeURIComponent(schematicType)}', Locale='${encodeURIComponent(locale)}')`; //TODO wenn Datenmodell fertig\n const headers = { 'Accept': 'image/svg+xml' };\n const authorizationHeader: string | null = await this.authorizationHeader();\n if (authorizationHeader !== null)\n headers['Authorization'] = authorizationHeader;\n\n return await this.httpClient.get(endpoint, { headers, responseType: 'text' }).toPromise();\n }\n\n /**\n * Generates a zip report for the current project using the backend.\n */\n public async generateReport(\n locale: string,\n attachmentsToInclude: string[],\n includeSpecificationTexts: boolean,\n containsAllAttachments: boolean,\n cancellation: { isCancellationRequested: boolean }\n ): Promise<[boolean, Blob | string]>\n {\n if (!this.currentProject)\n throw new Error('There is currently no project loaded.');\n\n const projectNameSanitized = (this.currentProject.ProjectName || 'project').replace(this.invalidFileNameCharsRegex, '_');\n const projectDateTimeString = this.globalizationService.dateToHumanReadableString(this.currentProject.LastUpdatedUtc, 'dateTime')\n .replace(/\\./g, '-').replace(/, /g, '_').replace(/:/g, '_');\n const contentDescriptionString = this.langService.getString('ZipReport.' + (containsAllAttachments ? 'FullZipFileName_Substr' : 'PartZipFileName_Substr'));\n\n const pdfFileName = this.langService.getString('ZipReport.PdfFileNameFormat_T', undefined, projectNameSanitized, projectDateTimeString);\n const zipFileName = this.langService.getString('ZipReport.ZipFileNameFormat_T', undefined, projectNameSanitized, projectDateTimeString, contentDescriptionString);\n const body: GenerateReportDto =\n {\n Locale: locale,\n AttachmentsToInclude: attachmentsToInclude,\n IncludeSpecificationTexts: includeSpecificationTexts,\n PdfFileName: pdfFileName,\n };\n\n const endpoint = `${this.singleProjectEndpoint(this.currentProject.ProjectId)}/GenerateReport`;\n const headers = { 'Accept': 'application/*' };\n const authorizationHeader: string | null = await this.authorizationHeader();\n if (authorizationHeader !== null)\n headers['Authorization'] = authorizationHeader;\n\n // Post generation request and keep the overvable\n let state: 'Running' | 'Done' | 'Error' = 'Running';\n let error: any;\n let requestObservable: Subscription;\n try{\n console.log(\"Sending generation request\");\n requestObservable = this.httpClient.post(endpoint, body, { headers, responseType: 'blob' })\n .subscribe(responseData => {\n console.log(`Received request response file type: ${responseData?.type}`)\n let downloadFileName: string;\n\n if (responseData?.type === 'application/pdf')\n downloadFileName = pdfFileName;\n else if (responseData?.type === 'application/zip')\n downloadFileName = zipFileName;\n else {\n throw new Error('Backend returned unexpected file type.');\n }\n\n this.responseData = responseData;\n // this.fileDownloadService.issueDownload(responseData, downloadFileName);\n state = 'Done';\n });\n }\n catch(e){\n error = e;\n state = 'Error';\n console.error(e);\n }\n \n if(!requestObservable) {\n console.error(\"requestObservable is null\");\n return new Promise((_, reject) => reject(new Error(\"Could not send POST request\")));\n }\n\n // Return a promise checking if the request has finished or should be canceled\n return new Promise<[boolean, Blob | string]>((resolve, reject) => {\n const interval = setInterval(() => { // Check the request state in setInterval() to avoid blocking the thread with a while loop\n if(state == 'Done') {\n console.log(`Resolving generation proimse: ${state}`);\n clearInterval(interval);\n resolve([true, this.responseData]);\n } else if(cancellation.isCancellationRequested == true) {\n console.log(\"Request canceled by user\");\n requestObservable.unsubscribe(); // Unsubscribing will cause the request to cancel and trigger the backend's CancellationToken\n clearInterval(interval);\n resolve([false, null]);\n } else if(state == null || state == 'Error' || requestObservable == null || (requestObservable.closed && state == 'Running')) {\n console.log(\"Rejecting generation proimse\");\n reject(error != null ? error : new Error(\"Encountered an unhandled error during generation\"));\n }\n }, 250);\n });\n }\n\n getDownloadFileName(fileType: string, containsAllAttachments: boolean):string{\n const projectNameSanitized = (this.currentProject.ProjectName || 'project').replace(this.invalidFileNameCharsRegex, '_');\n const projectDateTimeString = this.globalizationService.dateToHumanReadableString(this.currentProject.LastUpdatedUtc, 'dateTime')\n .replace(/\\./g, '-').replace(/, /g, '_').replace(/:/g, '_');\n const contentDescriptionString = this.langService.getString(containsAllAttachments ? 'ZipReport.FullZipFileName_Substr' : 'ZipReport.PartZipFileName_Substr');\n\n const pdfFileName = this.langService.getString('ZipReport.PdfFileNameFormat_T', undefined, projectNameSanitized, projectDateTimeString);\n const zipFileName = this.langService.getString('ZipReport.ZipFileNameFormat_T', undefined, projectNameSanitized, projectDateTimeString, contentDescriptionString);\n\n let downloadFileName: string;\n if (fileType === 'application/pdf')\n downloadFileName = pdfFileName;\n else if (fileType === 'application/zip')\n downloadFileName = zipFileName;\n else\n throw new Error('Backend returned unexpected file type.');\n\n return downloadFileName;\n }\n\n /**\n * Sets the current project to null.\n */\n public closeProject(): void\n {\n this._currentProject = null;\n }\n\n private normalizeBackendProjectData(projectData: ProjectEntity | ProjectMetadataEntity)\n {\n projectData.CreatedUtc = this.globalizationService.dateTimeOffsetToDate(projectData.CreatedUtc as any, false);\n projectData.LastUpdatedUtc = this.globalizationService.dateTimeOffsetToDate(projectData.LastUpdatedUtc as any, false);\n }\n\n private singleProjectEndpoint(projectId: string): string\n {\n return `${this.projectCollectionEndpoint()}('${encodeURIComponent(projectId)}')`;\n }\n\n private projectCollectionEndpoint(): string\n {\n return `${this.apiRootUrl()}/Projects`;\n }\n\n private projectMetadataCollectionEndpoint(): string\n {\n return `${this.apiRootUrl()}/ProjectMetadata`;\n }\n\n private apiRootUrl(): string\n {\n return `${environment.backendRootUrl}api/v1`;\n }\n\n private async authorizationHeader(): Promise\n {\n const token: string = await this.userService.getToken();\n if (!token)\n return null;\n\n return 'Bearer ' + token;\n }\n}\n","export const events = {\n startSearch: 'startSearchEvent',\n change: 'changeEvent',\n beforeOpen: 'beforeOpenEvent',\n open: 'openEvent',\n close: 'closeEvent',\n blur: 'blurEvent',\n focus: 'focusEvent',\n actionBegin: 'actionBeginEvent',\n actionComplete: 'actionCompletedEvent',\n actionFailure: 'actionFailureEvent',\n select: 'selectEvent',\n dataBound: 'dataBoundEvent',\n filtering: 'filteringEvent',\n created: 'createdEvent',\n destroyed: 'destroyedEvent',\n};\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { StartPageComponent } from './start-page.component';\n\n@NgModule({\n imports: [\n CommonModule\n ],\n declarations: [\n StartPageComponent\n ],\n exports: [\n StartPageComponent\n ]\n})\nexport class StartPageModule { }\n","export { CollapsiblePanelModule } from './collapsible-panel.module';\nexport {\n CollapsiblePanelComponent,\n} from './collapsible-panel.component';\n","import { NgModule } from '@angular/core';\nimport { PspHelpNotifyIconComponent } from './psp-help-notify-icon.component';\n\n@NgModule(\n{\n declarations:\n [\n PspHelpNotifyIconComponent,\n ],\n exports:\n [\n PspHelpNotifyIconComponent,\n ],\n})\nexport class PspHelpNotifyIconModule {}\n","import './arrayExt';\n","// this will usually be an angular injector, but can also be any other\nexport interface IInjector {\n get(token: any, notFoundValue?: any): any;\n}\n\nexport class ServiceLocator\n{\n private static injector: IInjector;\n\n public static get(token: any): T\n {\n if (!this.injector)\n throw new Error('The injector service has not been configured yet.');\n\n const result: any = ServiceLocator.injector.get(token);\n if (!result)\n throw new Error(`Failed to inject service for token \"${token}\".`);\n\n return result;\n }\n\n public static setInjector(injector: IInjector)\n {\n ServiceLocator.injector = injector;\n }\n}\n","import { saveAs } from 'file-saver';\n\n/**\n * Exposes methods helping with issuing direct downloads of files in the user's\n * browser.\n */\nexport class FileDownloadService\n{\n public issueDownload(fileUrlOrBlob: string | Blob, fileName?: string): void\n {\n saveAs(fileUrlOrBlob, fileName);\n }\n}\n","export const events = {\n created: 'createdEvent',\n destroyed: 'destroyedEvent',\n};","import { Position, Tooltip } from '@syncfusion/ej2-angular-popups';\nimport { Event, EmitType, EventHandler, Component, INotifyPropertyChanged, Property, addClass, removeClass, select } from '@syncfusion/ej2-base';\nimport { events } from './events';\nimport { IPspContextualHelpModel } from './IPspContextualHelpModel';\nimport { L10n } from '@syncfusion/ej2-base';\nimport { localization } from './localization';\n\nL10n.load(localization);\n\nexport class PspContextualHelp extends Component implements INotifyPropertyChanged\n{\n private tooltip: Tooltip;\n private isTooltipOpen: boolean = false;\n\n /** All scroll event handlers registered in the parent tree of this component. */\n private scrollEventHandlers: { el: HTMLElement, handler: any }[];\n\n /** @ignore */\n public l10n: L10n;\n\n @Property()\n public tooltipTextHtml: string;\n\n @Property()\n public documentationHref?: string;\n\n @Property(null)\n public documentationLinkName?: string;\n\n @Property('TopRight')\n public tooltipPosition?: Position;\n\n @Property()\n public cssClass: string;\n\n constructor(options?: IPspContextualHelpModel, element?: string | HTMLElement)\n {\n super(options, element);\n this.l10n = new L10n('psp-contextual-help', localization, this.locale);\n }\n\n /** @ignore */\n public getModuleName(): string\n {\n return 'psp-contextual-help';\n }\n\n protected preRender(): void\n {\n // NOP\n }\n\n protected render(): void\n {\n this.element.tabIndex = 0;\n addClass([this.element], ['pspc-contextual-help', 'icon-help-with-circle']);\n if (this.cssClass)\n addClass([this.element], this.cssClass.split(' '));\n\n this.tooltip = new Tooltip(\n {\n content: this.getTooltipContent(),\n position: this.tooltipPosition,\n openDelay: 0,\n opensOn: 'Custom',\n cssClass: 'pspc-contextual-help-tooltip',\n offsetX: this.tooltipPosition === 'TopRight' ? -8 : 0,\n afterClose: () => this.isTooltipOpen = false,\n }, this.element);\n\n this.wireEvents();\n this.trigger(events.created, {});\n }\n\n protected wireEvents(): void\n {\n EventHandler.add(this.element, 'click', this.element_click, this);\n EventHandler.add(this.element, 'blur', this.element_blur, this);\n\n this.scrollEventHandlers = [];\n let currentParent = this.element.parentElement;\n while (currentParent)\n {\n const handler = this.closeTooltip.bind(this);\n currentParent.addEventListener('scroll', handler);\n\n this.scrollEventHandlers.push({ el: currentParent, handler });\n\n currentParent = currentParent.parentElement;\n };\n }\n\n protected unwireEvents(): void\n {\n EventHandler.remove(this.element, 'click', this.element_click);\n EventHandler.remove(this.element, 'focus', this.element_focus);\n EventHandler.remove(this.element, 'blur', this.element_blur);\n\n this.scrollEventHandlers.forEach(eh =>\n eh.el.removeEventListener('scroll', eh.handler));\n delete this.scrollEventHandlers;\n }\n\n private element_click(): void\n {\n this.openTooltip();\n }\n\n private element_focus(): void\n {\n this.openTooltip();\n }\n\n private element_blur(): void\n {\n this.closeTooltip();\n }\n\n private openTooltip(): void\n {\n if (this.isTooltipOpen)\n return;\n\n addClass([this.element], 'pspc-contextual-help--focus');\n this.tooltip.open();\n this.isTooltipOpen = true;\n }\n\n private closeTooltip(): void\n {\n if (!this.isTooltipOpen)\n return;\n\n removeClass([this.element], 'pspc-contextual-help--focus');\n this.tooltip.close();\n this.isTooltipOpen = false;\n }\n\n /** @ignore */\n public onPropertyChanged(newProp: IPspContextualHelpModel, oldProp: IPspContextualHelpModel): void\n {\n for (const propertyName of Object.keys(newProp))\n {\n const oldValue = oldProp[propertyName];\n const newValue = newProp[propertyName];\n\n switch (propertyName)\n {\n case 'tooltipTextHtml':\n case 'documentationHref':\n case 'documentationLinkName':\n case 'tooltipPosition':\n this.updateTooltip();\n break;\n\n case 'cssClass':\n if (oldValue)\n removeClass([this.element], oldValue.split(' '));\n if (newValue)\n addClass([this.element], newValue.split(' '));\n\n break;\n }\n }\n }\n\n private updateTooltip(): void\n {\n this.tooltip.content = this.getTooltipContent();\n this.tooltip.position = this.tooltipPosition;\n this.tooltip.offsetX = this.tooltipPosition === 'TopRight' ? -8 : 0;\n }\n\n private getTooltipContent(): string\n {\n let tooltipContent = this.tooltipTextHtml;\n\n if (this.documentationHref)\n {\n const linkName = this.documentationLinkName || this.l10n.getConstant('DocumentationLink');\n tooltipContent += `\n

      \n \n \n ${linkName}\n \n

      `;\n }\n\n return tooltipContent;\n }\n\n protected getPersistData(): string\n {\n return '';\n }\n\n public destroy(): void\n {\n this.unwireEvents();\n this.tooltip?.destroy();\n\n this.trigger(events.destroyed, {});\n super.destroy();\n }\n}\n","import { addClass, Component, INotifyPropertyChanged, Property, removeClass } from '@syncfusion/ej2-base';\nimport { createSpinner, hideSpinner, showSpinner } from '@syncfusion/ej2-popups';\nimport { events } from './events';\nimport { DisplayStyle, IPspLoadingSpinnerModel, LoadingSpinnerSize } from './IPspLoadingSpinnerModel';\n\nexport class PspLoadingSpinner extends Component implements INotifyPropertyChanged\n{\n private spinnerEl: HTMLElement;\n\n /**\n * Configures size of the loading spinner.\n */\n @Property()\n public size?: LoadingSpinnerSize;\n\n /**\n * Optimizes the spinner's appearance for dark or light backgrounds.\n */\n @Property()\n public displayStyle?: DisplayStyle;\n\n /**\n * Additional css class names to be added to the element.\n */\n @Property()\n public cssClass?: string;\n\n constructor(options?: IPspLoadingSpinnerModel, element?: string | HTMLElement)\n {\n super(options, element);\n }\n\n /** @ignore */\n public getModuleName(): string\n {\n return 'psp-loading-spinner';\n }\n\n protected preRender(): void\n {\n // NOP\n }\n\n protected render(): void\n {\n this.element.classList.add('pspc-loading-spinner');\n if (this.cssClass)\n addClass([this.element], this.cssClass.split(' '));\n\n this.createSpinnerElement();\n showSpinner(this.element);\n this.updateDisplayStyle();\n\n this.trigger(events.created, {});\n }\n\n private createSpinnerElement() {\n this.spinnerEl = this.createElement('span', { className: 'e-spinner' });\n this.element.appendChild(this.spinnerEl);\n\n let spinnerSize = 16;\n if (this.size === 'medium')\n spinnerSize = 32;\n else if (this.size === 'large')\n spinnerSize = 64;\n\n createSpinner(\n {\n target: this.spinnerEl,\n width: spinnerSize,\n type: 'Material'\n },\n this.createElement\n );\n }\n\n /** @ignore */\n public onPropertyChanged(newProp: IPspLoadingSpinnerModel, oldProp: IPspLoadingSpinnerModel): void\n {\n for (const propertyName of Object.keys(newProp)) {\n switch (propertyName) {\n case 'cssClass':\n if (oldProp.cssClass)\n removeClass([this.element], oldProp.cssClass.split(' '));\n if (newProp.cssClass)\n addClass([this.element], newProp.cssClass.split(' '));\n\n break;\n case 'displayStyle':\n this.updateDisplayStyle();\n\n break;\n case 'size':\n hideSpinner(this.element);\n this.spinnerEl.parentElement.removeChild(this.spinnerEl);\n\n this.createSpinnerElement();\n showSpinner(this.element);\n\n break;\n\n }\n }\n }\n\n private updateDisplayStyle()\n {\n removeClass([this.element], ['pspc-loading-spinner--light', 'pspc-loading-spinner--dark']);\n if (this.displayStyle === 'light')\n addClass([this.element], 'pspc-loading-spinner--light');\n else\n addClass([this.element], 'pspc-loading-spinner--dark');\n }\n\n protected getPersistData(): string\n {\n return '';\n }\n\n public destroy(): void\n {\n this.trigger(events.destroyed, {});\n super.destroy();\n }\n}\n","export const events = {\n beforeOpen: 'beforeOpenEvent',\n open: 'openEvent',\n close: 'closeEvent',\n click: 'clickEvent',\n select: 'selectEvent',\n change: 'changeEvent',\n filtering: 'filteringEvent',\n actionBegin: 'actionBeginEvent',\n actionComplete: 'actionCompleteEvent',\n actionFailure: 'actionFailureEvent',\n dataBound: 'dataBoundEvent',\n created: 'createdEvent',\n destroyed: 'destroyedEvent',\n};\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { LangService } from 'src/core-lib/ej2/services/LangService';\nimport { RuntimeService } from 'src/core-lib/ej2/services/RuntimeService';\nimport { log } from 'src/core-lib/logging';\nimport { DataModelFile } from './DteufcAggregatorServiceApi/datamodelfile.complex';\nimport { ImageAssetRow } from './DteufcAggregatorServiceApi/imageassetrow.complex';\n\n@Injectable()\nexport class AggregatorDataService\n{\n private _cachedAggregatorData: DataModelFile;\n private _cachedImageMap: { [assetId: string]: ImageAssetRow };\n\n public get aggregatorData(): DataModelFile\n {\n return this._cachedAggregatorData;\n }\n\n public get imageMap(): { [assetId: string]: ImageAssetRow }\n {\n return this._cachedImageMap;\n }\n\n constructor(\n private langService: LangService,\n private runtimeService: RuntimeService,\n private httpClient: HttpClient\n ) {}\n\n /**\n * Sets the current name of the application tab in the application shell.\n */\n public async refreshDataModel(): Promise\n {\n const urlRaw: string = this.runtimeService.getConfigValue(\"AggregatorDataService:DatabaseUrlFormat\");\n const desiredLocale: string = this.langService.currentLocale;\n const dbUrlForLocale: string = urlRaw.replace('{Locale}', desiredLocale);\n log.verbose({ fromUrl: dbUrlForLocale, forLocale: desiredLocale }, `Retrieving data model.`);\n\n this._cachedAggregatorData = await this.httpClient.get(dbUrlForLocale).toPromise();\n\n this._cachedImageMap = {};\n this._cachedAggregatorData.Tables.ImageAssetRows\n .forEach(asset => this._cachedImageMap[asset.ImageId] = asset);\n\n this.extendLabels(this._cachedAggregatorData);\n\n return this._cachedAggregatorData;\n }\n\n /** Extends lang service with the labels received from the aggregator. */\n private extendLabels(aggregatorData: DataModelFile): void\n {\n const labelDataMap: { [labelKey: string]: string } = {};\n aggregatorData.Tables.LabelRows.forEach(row => labelDataMap[row.LabelId] = row.DisplayNameLoc);\n\n this.langService.setLabelData(labelDataMap, this.langService.currentLocale, true, true);\n }\n}\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Component({\n selector: 'viega-panel-header',\n templateUrl: './panel-header.component.html',\n styleUrls: ['./panel-header.component.scss']\n})\nexport class PanelHeaderComponent implements OnInit {\n @Input()\n public stepTitle: string;\n\n @Input()\n public stepText: string;\n\n @Input()\n public stepDescription: string;\n\n @Input()\n public stepDescriptionHelpId: string;\n\n @Input()\n public stepBackLabel: string;\n\n @Input()\n public titleHelpId: string;\n \n // @Input()\n // public maxHeight: string;\n\n @Output()\n public stepBackClicked = new EventEmitter();\n\n constructor() {}\n\n public ngOnInit(): void {}\n\n public stepBack_clicked(event: MouseEvent) {\n this.stepBackClicked.emit(event);\n }\n}\n","\n\n \n {{stepBackLabel}}\n\n\n
      \n

      \n \n
      \n

      \n\n

      \n  \n \n \n \n

      ","import { L10n } from '@syncfusion/ej2-base';\n\n// labels to improve the default localization of the grid\nexport const localization = {\n 'de': {\n grid: {\n EmptyRecord: 'Keine Datensätze verfügbar',\n Item: 'Datensatz',\n Items: 'Datensätze',\n Columnchooser: 'Spalten',\n ChooseColumns: 'Spalten auswählen',\n Search: 'Filtern nach',\n OKButton: 'OK',\n CancelButton: 'Abbrechen',\n SelectAll: 'Alle auswählen',\n True: 'Ja',\n False: 'Nein',\n SortAscending: 'Aufsteigend Sortieren',\n SortDescending: 'Absteigend Sortieren',\n CancelEdit: 'Möchten Sie die Änderungen wirklich verwerfen?',\n NotEqual: 'Ungleich',\n FilterTrue: 'Ja',\n FilterFalse: 'Nein',\n InvalidFilterMessage: 'Ungültiger Filter',\n },\n pager: {\n currentPageInfo: '{0} von {1} Seiten',\n totalItemsInfo: '({0} Datensätze)',\n firstPageTooltip: 'Zur ersten Seite',\n lastPageTooltip: 'Zur letzten Seite',\n nextPageTooltip: 'Zur nächsten Seite',\n previousPageTooltip: 'Zurück zur letzten Seite',\n nextPagerTooltip: 'Zum nächsten Pager',\n previousPagerTooltip: 'Zum vorherigen Pager',\n },\n dialog: {\n close: 'Schließen',\n }\n }\n};\n","import { ChangeDetectionStrategy, Component, ElementRef, Injector, Renderer2, ViewContainerRef } from '@angular/core';\nimport { ComponentBase, ComponentMixins, IComponentBase, setValue } from 'src/core-lib/angular/util';\nimport { PspRoofSiteHeader } from 'src/core-lib/ej2/components/navigation/psp-roof-site-header/PspRoofSiteHeader';\n\n// properties declared here can be changed by the user in the storyboard UI\nexport const propertyArgTypes =\n{\n titleLinkText: { control: 'text' },\n titleLinkHref: { control: 'text' },\n hideOnMobile: { control: 'boolean' },\n cssClass: { control: 'text' },\n};\n\n// declare some properties as bindable angular inputs\nconst inputBindings =\n[\n 'titleLinkText',\n 'titleLinkHref',\n 'links',\n 'hideOnMobile',\n 'cssClass',\n];\n\n// prevent storybook from updating these properties\nconst changeIgnoredProperties: string[] = [];\n\n// declare some properties as bindable angular outputs\nconst outputBindings =\n[\n 'createdEvent',\n 'destroyedEvent',\n];\n\n@Component({\n selector: 'psp-roof-site-header',\n template: '',\n inputs: inputBindings,\n outputs: outputBindings,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\n@ComponentMixins([ComponentBase])\nexport class PspRoofSiteHeaderComponent extends PspRoofSiteHeader implements IComponentBase\n{\n /** @ignore */\n public tagObjects: any = [];\n\n /** @ignore */\n public context : any;\n\n /** @ignore */\n public tags: string[] = [];\n\n protected changeIgnoredPropertyMap: { [propertyName: string]: boolean };\n\n public constructor(\n private ngEle: ElementRef,\n private srenderer: Renderer2,\n private viewContainerRef: ViewContainerRef,\n private injector: Injector\n )\n {\n super();\n\n this.element = this.ngEle.nativeElement;\n\n this.changeIgnoredPropertyMap = {};\n changeIgnoredProperties.forEach(prop => this.changeIgnoredPropertyMap[prop] = true);\n\n this.registerEvents(outputBindings);\n this.addTwoWay.call(this, []);\n setValue('currentInstance', this, viewContainerRef);\n this.context = new ComponentBase();\n }\n\n /** @ignore */\n public ngOnInit(): void\n {\n this.context.ngOnInit(this);\n }\n\n /** @ignore */\n public ngAfterViewInit(): void\n {\n this.context.ngAfterViewInit(this);\n }\n\n /** @ignore */\n public ngOnDestroy(): void\n {\n this.context.ngOnDestroy(this);\n }\n\n /** @ignore */\n public ngAfterContentChecked(): void\n {\n this.context.ngAfterContentChecked(this);\n }\n\n /** @ignore */\n public registerEvents: (eventList: string[]) => void;\n\n /** @ignore */\n public addTwoWay: (propList: string[]) => void;\n}\n","import { AfterContentChecked, AfterViewInit, ChangeDetectionStrategy, OnDestroy, OnInit } from '@angular/core';\nimport { Component, ElementRef, Injector, Renderer2, ViewContainerRef } from '@angular/core';\nimport { setValue } from '@syncfusion/ej2-base';\nimport { ComponentBase, ComponentMixins, IComponentBase } from 'src/core-lib/angular/util';\nimport { PspLoadingSpinner } from 'src/core-lib/ej2/components/utility/psp-loading-spinner/PspLoadingSpinner';\n\n// properties declared here can be changed by the user in the storyboard UI\nexport const propertyArgTypes =\n{\n size: { control: { type: 'radio', options: ['small', 'medium', 'large'] } },\n displayStyle: { control: { type: 'radio', options: ['light', 'dark'] } },\n};\n\n// prevent storybook from updating these properties\nconst changeIgnoredProperties: string[] = [];\n\n// declare some properties as bindable angular outputs\nconst outputBindings =\n[\n 'createdEvent',\n 'destroyedEvent',\n];\n\n@Component({\n selector: 'psp-loading-spinner',\n template: '',\n inputs: [\n 'cssClass',\n 'size',\n 'displayStyle'\n ],\n outputs: outputBindings,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\n@ComponentMixins([ComponentBase])\nexport class PspLoadingSpinnerComponent extends PspLoadingSpinner implements IComponentBase, OnInit, OnDestroy, AfterViewInit, AfterContentChecked\n{\n /** @ignore */\n public tagObjects: any = [];\n\n /** @ignore */\n public context : any;\n\n /** @ignore */\n public tags: string[] = [];\n\n protected changeIgnoredPropertyMap: { [propertyName: string]: boolean };\n\n public constructor(\n private ngEle: ElementRef,\n private srenderer: Renderer2,\n private viewContainerRef: ViewContainerRef,\n private injector: Injector\n )\n {\n super();\n\n this.element = this.ngEle.nativeElement;\n\n this.changeIgnoredPropertyMap = {};\n changeIgnoredProperties.forEach(prop => this.changeIgnoredPropertyMap[prop] = true);\n\n this.registerEvents(outputBindings);\n this.addTwoWay.call(this, []);\n setValue('currentInstance', this, viewContainerRef);\n this.context = new ComponentBase();\n }\n\n /** @ignore */\n public ngOnInit(): void\n {\n this.context.ngOnInit(this);\n }\n\n /** @ignore */\n public ngAfterViewInit(): void\n {\n this.context.ngAfterViewInit(this);\n }\n\n /** @ignore */\n public ngOnDestroy(): void\n {\n this.context.ngOnDestroy(this);\n }\n\n /** @ignore */\n public ngAfterContentChecked(): void\n {\n this.context.ngAfterContentChecked(this);\n }\n\n /** @ignore */\n public registerEvents: (eventList: string[]) => void;\n\n /** @ignore */\n public addTwoWay: (propList: string[]) => void;\n}\n","import { IEnvironment } from './IEnvironment';\n\n// Environment settings for debug environments (team dev and development stages)\nexport const environment: IEnvironment = {\n buildEnvironment: 'Debug',\n serviceName: 'configurators-dteufc',\n backendRootUrl: 'https://public-vpim.azure-api.net/configurators-dteufc/staging/',\n};\n","import { ServiceLocator } from './ServiceLocator';\nimport { LangService } from './LangService';\nimport { RuntimeService } from './RuntimeService';\nimport { Injectable } from '@angular/core';\n\n@Injectable()\nexport class ErrorProtocolService\n{\n private langService: LangService;\n private runtimeService: RuntimeService;\n\n public constructor()\n {\n this.langService = ServiceLocator.get(LangService);\n this.runtimeService = ServiceLocator.get(RuntimeService);\n }\n\n /**\n * Generates a json object containing debug information meant to help developers in\n * discovering issues.\n */\n public generateProtocol(errorDetails: Error | string | object, contextInfo?: Object): string\n {\n if (errorDetails instanceof Error)\n errorDetails = errorDetails.stack.replace(/\\n/g, '
      ');\n\n // remove some info from runtime config\n const runtimeInfoPart = JSON.parse(JSON.stringify(this.runtimeService.runtimeInfo));\n delete runtimeInfoPart.DeclaredPermissions;\n delete runtimeInfoPart.Config;\n\n const protocolObj = {\n Location: location.href,\n ErrorDetails: errorDetails,\n Context: contextInfo,\n Browser: {\n Agent: navigator.userAgent,\n Platform: navigator.platform,\n NavigatorLanguage: navigator.language,\n DeviceMemory: navigator['deviceMemory'],\n DevicePixelRatio: window.devicePixelRatio,\n Orientation: window.orientation,\n InnerWidth: window.innerWidth,\n InnerHeight: window.innerHeight,\n },\n PspLocale: this.langService.currentLocale,\n RuntimeInfo: runtimeInfoPart,\n };\n\n return JSON.stringify(protocolObj, null, 2);\n }\n}\n","import { COMPONENT_CONTEXT } from './constants';\nimport { LangService } from '../ej2/services/LangService';\nimport { UserStorageService } from '../ej2/services/UserStorageService';\n\nexport function provideContext(contextKey: string)\n{\n return [\n { provide: COMPONENT_CONTEXT, useValue: contextKey },\n LangService,\n UserStorageService,\n ];\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { PipelineComponent } from './pipeline.component';\nimport { SharedModule } from 'src/app/shared/shared.module';\n\n\n\n@NgModule({\n declarations: [\n PipelineComponent\n ],\n imports: [\n CommonModule,\n SharedModule\n ]\n})\nexport class PipelineModule { }\n","import { environment } from 'src/environments/environment';\nimport { ExecutionEnvironment } from './ej2/services/IRuntimeInfo';\nimport { ODataHttpService } from './ej2/services/ODataHttpService';\nimport { executeHttpRequest } from './ej2/utils/httpUtils';\n\nexport type LogLevel = 'Verbose' | 'Debug' | 'Info' | 'Warn' | 'Error' | 'Fatal';\n\nlet currentLogLevel: number = 10;\n\nconst serverLogEndpoint = environment.backendRootUrl + 'writelog';\n\nexport function setLogLevel(newLogLevel: LogLevel)\n{\n if (newLogLevel === 'Fatal')\n currentLogLevel = 60;\n else if (newLogLevel === 'Error')\n currentLogLevel = 50;\n else if (newLogLevel === 'Warn')\n currentLogLevel = 40;\n else if (newLogLevel === 'Info')\n currentLogLevel = 30;\n else if (newLogLevel === 'Debug')\n currentLogLevel = 20;\n else if (newLogLevel === 'Verbose')\n currentLogLevel = 10;\n else\n throw new Error(`Unrecognized log level \"${newLogLevel}\".`);\n}\n\n/**\n * Returns a log level commonly used in the given execution environment of the application.\n */\nexport function logLevelFromExecEnv(execEnvironment: ExecutionEnvironment): LogLevel\n{\n if (execEnvironment === 'Release')\n return 'Warn';\n else\n return 'Debug';\n}\n\nexport const log = {\n fatal: logWriteFatal,\n error: logWriteError,\n warning: logWriteWarning,\n information: logWriteInfo,\n debug: logWriteDebug,\n verbose: logWriteVerbose,\n audit: logWriteAudit,\n};\n\n/**\n * Logs a message with fatal severity.\n * @param contextOrMessage Either an object holding attributes with context information or the message to log.\n * @param message The message to log if a context object is given.\n */\nfunction logWriteFatal(contextOrMessage?: {} | string, message?: string, logToBackend: boolean = false)\n{\n logWrite(60, contextOrMessage, message, logToBackend);\n}\n\n/**\n * Logs a message with fatal severity.\n * @param contextOrMessage Either an object holding attributes with context information or the message to log.\n * @param message The message to log if a context object is given.\n */\nfunction logWriteError(contextOrMessage?: {} | string, message?: string, logToBackend: boolean = false)\n{\n logWrite(50, contextOrMessage, message, logToBackend);\n}\n\n/**\n * Logs a message with warning severity.\n * @param contextOrMessage Either an object holding attributes with context information or the message to log.\n * @param message The message to log if a context object is given.\n */\nfunction logWriteWarning(contextOrMessage?: {} | string, message?: string, logToBackend: boolean = false)\n{\n logWrite(40, contextOrMessage, message, logToBackend);\n}\n\n/**\n * Logs a message with information severity.\n * @param contextOrMessage Either an object holding attributes with context information or the message to log.\n * @param message The message to log if a context object is given.\n */\nfunction logWriteInfo(contextOrMessage?: {} | string, message?: string, logToBackend: boolean = false)\n{\n logWrite(30, contextOrMessage, message, logToBackend);\n}\n\n/**\n * Logs a message with debug severity.\n * @param contextOrMessage Either an object holding attributes with context information or the message to log.\n * @param message The message to log if a context object is given.\n */\nfunction logWriteDebug(contextOrMessage?: {} | string, message?: string, logToBackend: boolean = false)\n{\n logWrite(20, contextOrMessage, message, logToBackend);\n}\n\n/**\n * Logs a message with verbose severity.\n * @param contextOrMessage Either an object holding attributes with context information or the message to log.\n * @param message The message to log if a context object is given.\n */\nfunction logWriteVerbose(contextOrMessage?: {} | string, message?: string, logToBackend: boolean = false)\n{\n logWrite(10, contextOrMessage, message, logToBackend);\n}\n\n/**\n * Logs an auditable message with information severity.\n * @param context An object holding attributes with context information or the message to log.\n * @param auditKey A key helping with distinguishing this audit log entry from others.\n * @param message The message to log if a context object is given.\n */\nfunction logWriteAudit(context: {} | string, auditKey: string, message: string, logToBackend: boolean = false)\n{\n context['auditKey'] = auditKey;\n logWrite(30, context, message, logToBackend);\n}\n\nfunction logWrite(logLevel: number, contextOrMessage?: {} | string, message?: string, logToBackend: boolean = false)\n{\n let context: {};\n if (typeof contextOrMessage === 'object')\n context = contextOrMessage;\n else\n message = String(contextOrMessage);\n\n const messageLogLevel = logLevel;\n const allowedLogLevel: number = currentLogLevel;\n if (messageLogLevel < allowedLogLevel)\n return;\n\n const messageString = message;\n let logMethod = 'log'; // Debug, Verbose\n if (messageLogLevel >= 60) // Fatal\n logMethod = 'error';\n else if (messageLogLevel >= 50) // Error\n logMethod = 'error';\n else if (messageLogLevel >= 40) // Warn\n logMethod = 'warn';\n else if (messageLogLevel >= 30) // Info\n logMethod = 'info';\n\n if (context)\n console[logMethod](messageString, context);\n else\n console[logMethod](messageString);\n\n if (logToBackend)\n logWriteToServer(context, messageString, messageLogLevel);\n}\n\n\ninterface IWriteLogEntryDto\n{\n Level: string;\n Message: string;\n Args: string[];\n}\n\nfunction logWriteToServer(context: {} | string, message: string, logLevel: number)\n{\n const severLogLevel: string = numericLogLevelToServerLogLevel(logLevel);\n const postBody: IWriteLogEntryDto =\n {\n Level: severLogLevel,\n Message: message,\n Args: [],\n };\n\n if (context)\n {\n Object.keys(context).forEach(key =>\n {\n postBody.Message += ' ' + key;\n postBody.Args.push(context[key]);\n });\n }\n\n executeHttpRequest({ type: 'POST', url: serverLogEndpoint, data: JSON.stringify(postBody) })\n .catch(error => logWrite(40, { error }, 'Failed to log message to backend.', false));\n}\n\n/**\n * Returns a log level commonly used in the given execution environment of the application.\n */\nfunction numericLogLevelToServerLogLevel(logLevel: number): string\n{\n let logMethod = 'Verbose'; // Debug, Verbose\n if (logLevel >= 60) // Fatal\n logMethod = 'Fatal';\n else if (logLevel >= 50) // Error\n logMethod = 'Error';\n else if (logLevel >= 40) // Warn\n logMethod = 'Warning';\n else if (logLevel >= 30) // Info\n logMethod = 'Information';\n\n return logMethod;\n}\n","import { AfterViewInit, Component, ComponentFactoryResolver, OnInit, ViewChild, ViewContainerRef, ViewRef } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { RadioButtonComponent } from '@syncfusion/ej2-angular-buttons';\nimport { ChangeEventArgs } from '@syncfusion/ej2-angular-inputs';\nimport { columnSelectionComplete } from '@syncfusion/ej2-grids';\nimport { PdfLayoutBreakType } from '@syncfusion/ej2-pdf-export';\nimport * as _ from 'lodash';\nimport { json } from 'odata-query';\nimport { AggregatorDataService } from 'src/app/core/AggregatorDataService';\nimport { ErmittlungZVSVolumenstromDirekt } from 'src/app/core/BackendApi/ermittlungzvsvolumenstromdirekt.complex';\nimport { ProjectEntity } from 'src/app/core/BackendApi/projectentity.entity';\nimport { Zirkulationsvolumenstrom } from 'src/app/core/BackendApi/zirkulationsvolumenstrom.complex';\nimport { DteRow } from 'src/app/core/DteufcAggregatorServiceApi/dterow.complex';\nimport { SectionState, ZirkulationsVSBerechnungstyp, ZirkulationsVSErmittlungstyp, ZVSDirektEinheit } from 'src/app/core/Enums';\nimport { CirculationFlowMath, ICirculationFlowFromPipesParams } from 'src/app/core/math/CirculationFlowMath';\nimport { ProjectDataService } from 'src/app/core/project-data.service';\nimport { CirculationVolumetricFlowMethods, ICirculationVolumetricFlow, IProjectData } from 'src/app/core/project-interfaces';\nimport { UnitTypes, ValueFormatterService } from 'src/app/core/ValueFormatterService';\nimport { RadioComponent } from 'src/app/shared/radio';\nimport { provideContext } from 'src/core-lib/angular/context-util';\nimport { LangService } from 'src/core-lib/ej2/services/LangService';\n\n// Classes/Interfaces\nexport class PipeTableRow {\n description: string;\n resultWatts: number;\n lengthValue: number;\n wattsPerMeter: number;\n sliderMin: number;\n sliderMax: number;\n sliderStep: number;\n}\n\n// Component\n@Component({\n selector: 'app-circulation-volumetric-flow',\n templateUrl: './circulation-volumetric-flow.component.html',\n styleUrls: ['./circulation-volumetric-flow.component.scss'],\n providers: [provideContext(\"CirculationVolumetricFlow\")],\n})\nexport class CirculationVolumetricFlowComponent implements OnInit, AfterViewInit {\n\n // Constants\n public readonly DIRECT_SELECTABLE_UNITS: { label: string, value: ZVSDirektEinheit }[];\n public ZirkulationsVSBerechnungstyp = ZirkulationsVSBerechnungstyp;\n\n // Labels\n public label_description = this.langService.getString('PanelDescription_D');\n public label_stepBack = this.langService.getString('PanelStepBackLabel_T')\n// public label_stepText = this.langService.getString('PanelStepText_T')\n public label_title = this.langService.getString('PanelHeadline_T');\n\n // Variables\n private currentProject: ProjectEntity;\n private dteInfoRows: DteRow[];\n public currentBerechnungstyp: ZirkulationsVSBerechnungstyp;\n public selectedDirectFlowUnit: ZVSDirektEinheit = ZVSDirektEinheit.LiterSekunde;\n public enteredDirectFlow: number = 0;\n public stepDirectFlow: number = 1;\n public maxDirectFlowSlider: number = 30;\n public minDirectFlowSlider: number = 0;\n public maxDirectFlowText: number = 300;\n public minDirectFlowText: number = 0;\n public decimalsDirectFlowText: number = 1;\n\n public enteredDirectWattage: number = 0;\n public decimalsDirectWattageText: number = 0;\n\n public calculatedResultFlow: number = 0;\n public calculatedResultWattage: number = 0;\n public calculateFromPipesRows: PipeTableRow[]\n public availableDtesForConfiguredValues: string[];\n\n // Constructors/Initializers\n constructor(\n private activatedRoute: ActivatedRoute,\n private readonly router: Router,\n private DataService: ProjectDataService,\n private langService: LangService,\n private valueFormatterService: ValueFormatterService,\n private aggregatorService : AggregatorDataService,\n private circulationFlowMath : CirculationFlowMath\n ){\n this.DIRECT_SELECTABLE_UNITS = [\n { label: 'l/min', value: ZVSDirektEinheit.LiterMinute },\n { label: 'l/s', value: ZVSDirektEinheit.LiterSekunde },\n { label: 'kg/min', value: ZVSDirektEinheit.KgMinute },\n { label: 'kg/h', value: ZVSDirektEinheit.KgStunde }\n ]\n }\n ngAfterViewInit(): void {\n if(this.currentProject.ProjectValues.Zirkulationsvolumenstrom?.ZirkulationsvolumenstromBerechnetLMin) {\n this.loadValuesFromProject(this.currentProject.ProjectValues.Zirkulationsvolumenstrom);\n }\n\n this.calculateResult();\n }\n ngOnInit(): void {\n // Configure pipe rows\n this.calculateFromPipesRows = [\n {\n description: this.langService.getString('RadioDVGW553.Table.DescriptionKeller_T', undefined, this.valueFormatterService.formatNumber(11, 'WattsPerMinute')),\n wattsPerMeter: 11,\n lengthValue: 0,\n resultWatts: 0,\n sliderMin: 0,\n sliderMax: 10000,\n sliderStep: 2.5\n },\n {\n description: this.langService.getString('RadioDVGW553.Table.DescriptionSchacht_T', undefined, this.valueFormatterService.formatNumber(7, 'WattsPerMinute')),\n wattsPerMeter: 7,\n lengthValue: 0,\n resultWatts: 0 ,\n sliderMin: 0,\n sliderMax: 10000,\n sliderStep: 2.5\n },\n {\n description: this.langService.getString('RadioDVGW553.Table.DescriptionNutzbereich_T', undefined, this.valueFormatterService.formatNumber(7, 'WattsPerMinute')),\n wattsPerMeter: 7,\n lengthValue: 0,\n resultWatts: 0 ,\n sliderMin: 0,\n sliderMax: 10000,\n sliderStep: 5\n }\n ]\n\n // Set default unit\n this.selectedDirectFlowUnit = ZVSDirektEinheit.LiterMinute;\n\n // Get dte info\n this.dteInfoRows = this.aggregatorService.aggregatorData.Tables.DteRows;\n\n // Load data from project\n this.currentProject = this.activatedRoute.snapshot.data['project'];\n\n\n // Calculate result values\n this.calculateResult();\n }\n\n // Shared Methods\n public setBerechnungstyp(art: ZirkulationsVSBerechnungstyp) : void {\n this.currentBerechnungstyp = art;\n this.calculateResult();\n }\n public setDirectEntryUnit(newUnit: ZVSDirektEinheit) : void {\n // Set new unit\n let oldUnit = this.selectedDirectFlowUnit;\n this.selectedDirectFlowUnit = newUnit;\n\n // No need to recalculate if the units did not change\n if(oldUnit == newUnit)\n return;\n\n // Convert entered value and slider range between unit intervals\n switch (newUnit) {\n case ZVSDirektEinheit.LiterSekunde:\n this.maxDirectFlowSlider = 0.5;\n this.maxDirectFlowText = 5;\n this.stepDirectFlow = 0.02;\n this.decimalsDirectFlowText = 2;\n break;\n case ZVSDirektEinheit.LiterMinute:\n this.maxDirectFlowSlider = 30;\n this.maxDirectFlowText = 300;\n this.stepDirectFlow = 1;\n this.decimalsDirectFlowText = 1;\n break;\n case ZVSDirektEinheit.KgMinute:\n this.maxDirectFlowSlider = 30;\n this.maxDirectFlowText = 300;\n this.stepDirectFlow = 1;\n this.decimalsDirectFlowText = 1;\n break;\n case ZVSDirektEinheit.KgStunde:\n this.maxDirectFlowSlider = 1800;\n this.maxDirectFlowText = 18000;\n this.stepDirectFlow = 5;\n this.decimalsDirectFlowText = 0;\n break;\n }\n\n this.enteredDirectFlow = Math.round(this.convertBetweenUnits(this.enteredDirectFlow, oldUnit, newUnit) * 100) / 100; //TODO Runden entfernen wegen Rundungsfehlern? Eingabe wird unschön -> 123,4123...\n\n // Calculate result values\n this.calculateResult();\n }\n\n public calculateResult() : void {\n\n // Calculate result values\n switch(this.currentBerechnungstyp) {\n case ZirkulationsVSBerechnungstyp.VolumenstromDirekt:\n this.enteredDirectFlow = Number(this.enteredDirectFlow);\n this.calculatedResultFlow = this.convertBetweenUnits(this.enteredDirectFlow, this.selectedDirectFlowUnit, ZVSDirektEinheit.LiterMinute);\n var calc = this.convertBetweenUnits(this.enteredDirectFlow, this.selectedDirectFlowUnit, ZVSDirektEinheit.KgStunde);\n this.calculatedResultWattage = this.circulationFlowMath.verlustleistungFromZirkulationsvolumenstrom(calc) * 1000;\n\n break;\n\n case ZirkulationsVSBerechnungstyp.VerlustleistungDirekt:\n this.enteredDirectWattage = Number(this.enteredDirectWattage);\n this.calculatedResultWattage = this.enteredDirectWattage;\n this.calculatedResultFlow = this.circulationFlowMath.zirkulationsvolumenstromFromVerlustleistung(this.enteredDirectWattage / 1000) / 60;\n break;\n\n case ZirkulationsVSBerechnungstyp.DVGW553:\n let calcResult = this.circulationFlowMath.zirkulationsvolumenstromFromLeitungenDVGW553({\n leitungKellerMeter: Number(this.calculateFromPipesRows[0].lengthValue),\n leitungSchachtMeter: Number(this.calculateFromPipesRows[1].lengthValue),\n leitungNutzbereichMeter: Number(this.calculateFromPipesRows[2].lengthValue)\n });\n this.calculateFromPipesRows[0].resultWatts = calcResult.leitungKellerWatt;\n this.calculateFromPipesRows[1].resultWatts = calcResult.leitungSchachtWatt;\n this.calculateFromPipesRows[2].resultWatts = calcResult.leitungNutzbereichWatt;\n this.calculatedResultWattage = calcResult.leitungKellerWatt + calcResult.leitungSchachtWatt + calcResult.leitungNutzbereichWatt;\n this.calculatedResultFlow = calcResult.zirukulationsvolumenstromLiterStunde / 60;\n break;\n\n default:\n this.calculatedResultFlow = 0;\n this.calculatedResultWattage = 0;\n break;\n }\n\n // Determine possible dtes\n this.availableDtesForConfiguredValues = this.circulationFlowMath.compatibleDtes(this.calculatedResultFlow, this.dteInfoRows).map(r => r.Dte);\n }\n\n // Internal Methods\n private loadValuesFromProject(from: Zirkulationsvolumenstrom) : void {\n // Load result values\n this.calculatedResultFlow = from.ZirkulationsvolumenstromBerechnetLMin;\n this.calculatedResultWattage = from.ZirkulationsverlustleistungBerechnetWatt;\n\n // Load berechnungstyp specific values\n this.setBerechnungstyp(from.Berechnungstyp);\n\n switch(from.Berechnungstyp) {\n case ZirkulationsVSBerechnungstyp.VolumenstromDirekt:\n this.setDirectEntryUnit(from.ErmittlungZVSVolumenstromDirekt.Einheit);\n this.enteredDirectFlow = from.ErmittlungZVSVolumenstromDirekt.VolumenstromDirekt;\n break;\n case ZirkulationsVSBerechnungstyp.VerlustleistungDirekt:\n this.enteredDirectWattage = from.ErmittlungZVSVerlustleistungDirekt.VerlustleistungDirekt;\n break;\n case ZirkulationsVSBerechnungstyp.DVGW553:\n this.calculateFromPipesRows[0].lengthValue = from.ErmittlungZVSDVGW553.LeitungKellerMeter;\n this.calculateFromPipesRows[1].lengthValue = from.ErmittlungZVSDVGW553.LeitungSchachtMeter;\n this.calculateFromPipesRows[2].lengthValue = from.ErmittlungZVSDVGW553.LeitungNutzbereichMeter;\n break;\n }\n }\n\n private convertBetweenUnits(value: number, fromUnit: ZVSDirektEinheit, toUnit: ZVSDirektEinheit) : number {\n // Handle trivial case\n if(fromUnit == toUnit){\n return value;\n }\n\n // Convert\n switch(fromUnit) {\n case ZVSDirektEinheit.LiterSekunde:\n switch(toUnit) {\n case ZVSDirektEinheit.LiterMinute: return value * 60;\n case ZVSDirektEinheit.KgStunde: return value * CirculationFlowMath.Dichte * 3600;\n case ZVSDirektEinheit.KgMinute: return value * CirculationFlowMath.Dichte * 60;\n }\n break;\n case ZVSDirektEinheit.LiterMinute:\n switch(toUnit) {\n case ZVSDirektEinheit.LiterSekunde: return value / 60;\n case ZVSDirektEinheit.KgStunde: return value * CirculationFlowMath.Dichte * 60;\n case ZVSDirektEinheit.KgMinute: return value * CirculationFlowMath.Dichte;\n }\n break;\n case ZVSDirektEinheit.KgStunde:\n switch(toUnit) {\n case ZVSDirektEinheit.LiterSekunde: return value / CirculationFlowMath.Dichte / 3600;\n case ZVSDirektEinheit.LiterMinute:return value / CirculationFlowMath.Dichte / 60;\n case ZVSDirektEinheit.KgMinute: return value / 60;\n }\n break;\n case ZVSDirektEinheit.KgMinute:\n switch(toUnit) {\n case ZVSDirektEinheit.LiterSekunde: return value / CirculationFlowMath.Dichte / 60;\n case ZVSDirektEinheit.LiterMinute:return value / CirculationFlowMath.Dichte;\n case ZVSDirektEinheit.KgStunde: return value * 60;\n }\n break;\n }\n\n // Handle error case\n console.error(`Unhandled conversion: ${fromUnit} -> ${toUnit}`);\n return value;\n }\n\n protected clone(entity: any): any {\n return JSON.parse(JSON.stringify(entity));\n }\n // Button/Click Events\n public navigateNext() : void {\n // Prepare save data object\n let saveData: Zirkulationsvolumenstrom = {\n Berechnungstyp: this.currentBerechnungstyp,\n Ermittlungstyp: ZirkulationsVSErmittlungstyp.None //TODO Kay fragen ???\n };\n\n // Set berechnungstyp values\n switch(this.currentBerechnungstyp) {\n case ZirkulationsVSBerechnungstyp.VolumenstromDirekt:\n saveData.ErmittlungZVSVolumenstromDirekt = {\n Einheit: this.selectedDirectFlowUnit,\n VolumenstromDirekt: this.enteredDirectFlow\n };\n break;\n case ZirkulationsVSBerechnungstyp.VerlustleistungDirekt:\n saveData.ErmittlungZVSVerlustleistungDirekt = {\n VerlustleistungDirekt: this.enteredDirectWattage\n }\n break;\n case ZirkulationsVSBerechnungstyp.DVGW553:\n saveData.ErmittlungZVSDVGW553 = {\n LeitungKellerMeter: this.calculateFromPipesRows[0].lengthValue,\n LeitungKellerWatt: this.calculateFromPipesRows[0].resultWatts,\n LeitungSchachtMeter: this.calculateFromPipesRows[1].lengthValue,\n LeitungSchachtWatt: this.calculateFromPipesRows[1].resultWatts,\n LeitungNutzbereichMeter: this.calculateFromPipesRows[2].lengthValue,\n LeitungNutzbereichWatt: this.calculateFromPipesRows[2].resultWatts\n }\n break;\n }\n\n // Set result\n saveData.ZirkulationsvolumenstromBerechnetLMin = this.calculatedResultFlow;\n saveData.ZirkulationsverlustleistungBerechnetWatt = this.calculatedResultWattage;\n\n if (!this.currentProject.ProjectValues) {\n this.currentProject.ProjectValues = { }\n }\n\n let changed = true;\n this.calculateResult();\n if(this.currentProject.ProjectValues.Zirkulationsvolumenstrom && this.currentProject.ProjectValues.Zirkulationsvolumenstrom.Berechnungstyp === saveData.Berechnungstyp){\n let projectData = this.currentProject.ProjectValues.Zirkulationsvolumenstrom;\n switch(saveData.Berechnungstyp){\n case(ZirkulationsVSBerechnungstyp.VolumenstromDirekt):\n if(projectData.ErmittlungZVSVolumenstromDirekt.VolumenstromDirekt === saveData.ErmittlungZVSVolumenstromDirekt.VolumenstromDirekt &&\n projectData.ErmittlungZVSVolumenstromDirekt.Einheit === saveData.ErmittlungZVSVolumenstromDirekt.Einheit)\n changed = false;\n break;\n case(ZirkulationsVSBerechnungstyp.VerlustleistungDirekt):\n if(projectData.ErmittlungZVSVerlustleistungDirekt.VerlustleistungDirekt === saveData.ErmittlungZVSVerlustleistungDirekt.VerlustleistungDirekt)\n changed = false;\n break;\n case(ZirkulationsVSBerechnungstyp.DVGW553):\n if(projectData.ErmittlungZVSDVGW553.LeitungKellerMeter === saveData.ErmittlungZVSDVGW553.LeitungKellerMeter &&\n projectData.ErmittlungZVSDVGW553.LeitungNutzbereichMeter === saveData.ErmittlungZVSDVGW553.LeitungNutzbereichMeter &&\n projectData.ErmittlungZVSDVGW553.LeitungSchachtMeter === saveData.ErmittlungZVSDVGW553.LeitungSchachtMeter)\n changed = false;\n break;\n }\n if(!changed){\n this.currentProject.SectionStates.Zirkulationsvolumenstrom = SectionState.Set;\n this.DataService.saveCurrentProject()\n .then(_ => this.router.navigate([`/project-view/${this.currentProject.ProjectId}`]));\n return;\n }\n }\n\n this.currentProject.ProjectValues.Zirkulationsvolumenstrom = this.clone(saveData);\n this.currentProject.SectionStates.Zirkulationsvolumenstrom = SectionState.Set;\n\n if(this.currentProject.SectionStates.Dte == SectionState.Set)\n this.currentProject.SectionStates.Dte = SectionState.Check;\n\n if (this.currentProject.SectionStates.Rohrauslegung === SectionState.Set) {\n this.currentProject.SectionStates.Rohrauslegung = SectionState.Check;\n }\n\n if(this.currentProject.SectionStates.Ufc == SectionState.Set)\n this.currentProject.SectionStates.Ufc = SectionState.Check;\n\n\n if(this.currentProject.SectionStates.BuildingTypeWarmwasserStates){\n this.currentProject.SectionStates.BuildingTypeWarmwasserStates.forEach(b => {\n if(b.Value == SectionState.Set){\n b.Value = SectionState.Check;\n }\n });\n }\n\n if (this.currentProject.SectionStates.Energiespeicher === SectionState.Set) {\n this.currentProject.SectionStates.Energiespeicher = SectionState.Check;\n }\n\n this.DataService.saveCurrentProject()\n .then(_ => this.router.navigate([`/project-view/${this.currentProject.ProjectId}`]));\n }\n public goBack() : void {\n this.router.navigate([`/project-view/${this.currentProject.ProjectId}`]);\n }\n\n // Display Value Formatters\n public getDisplayResultWattage() : string {\n return this.valueFormatterService.formatNumber(this.calculatedResultWattage, 'Watts', { maximumFractionDigits: 0 });\n }\n public getDisplayResultFlow() : string {\n return this.valueFormatterService.formatNumber(this.calculatedResultFlow, 'LiterPerMinute', { maximumFractionDigits: 1, minimumFractionDigits: 1 });\n }\n\n // Condition Validators\n public isCurrentBerechnungstyp(art: ZirkulationsVSBerechnungstyp) : boolean {\n return this.currentBerechnungstyp && this.currentBerechnungstyp == art;\n }\n public isSaveValid() : boolean {\n if(!this.currentBerechnungstyp){\n return false;\n }\n return this.isAnyDteAvailable();\n }\n public isAnyDteAvailable() : boolean {\n return this.availableDtesForConfiguredValues?.length > 0;\n }\n}\n","\n
      \n \n \n
      \n \n
      \n \n
      \n

      \n  \n

      \n
      \n \n
      \n\n
      \n
      \n \n
      \n
      \n

      {{'NoFittingDteError_SD' | translate}}

      \n
      \n\n
      \n {{'PanelResultHeadline_T' | translate}}\n {{'PanelResultZirkulationsverlustleistung_T' | translate : getDisplayResultWattage()}}\n {{'PanelResultZirkulationsvolumenstrom_T' | translate : getDisplayResultFlow()}}\n \n
      \n
      \n
      \n
      \n\n
      \n
      \n {{'Headline_T' | translate}}\n \n
      \n
      \n
      \n
      \n \n \n
      \n
      \n
      \n
      \n \n
      \n \n
      \n
      \n
      \n
      \n
      \n \n \n
      \n
      \n
      \n\n \n
      \n
      \n
      \n \n \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
      {{'RadioDVGW553.Table.HeadlineLeistung_T' | translate}}{{'RadioDVGW553.Table.HeadlineLänge_T' | translate}}{{'RadioDVGW553.Table.HeadlineVerlustleistung_T' | translate}}
      {{row.description}}\n \n\n {{row.resultWatts}} {{'#Generic.Unit.Watts_T' | translate}}
      \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n\n
      \n
      \n\n","// labels to improve the default localization of dropdowns\nexport const localization = {\n 'de': {\n 'listbox': {\n 'selectAllText': 'Alles auswählen',\n 'unSelectAllText': 'Alles auswählen',\n 'moveUp': 'Nach oben bewegen',\n 'moveDown': 'Nach unten bewegen',\n 'moveTo': 'Verschieben nach',\n 'moveFrom': 'Verschieben von',\n 'moveAllTo': 'Alle verschieben nach',\n 'moveAllFrom': 'Alle verschieben von'\n },\n }\n};\n","import { BrowserModule } from '@angular/platform-browser';\nimport { NgModule } from '@angular/core';\n\nimport { RouterModule } from '@angular/router';\nimport { HomeComponent } from './home.component';\nimport { SharedModule } from 'src/app/shared/shared.module';\n\n@NgModule({\n imports:\n [\n SharedModule,\n ],\n declarations:\n [\n HomeComponent,\n ],\n providers: [],\n})\nexport class HomeModule { }\n","import { Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { TestBed } from '@angular/core/testing';\nimport { ValidatorFn, Validators } from '@angular/forms';\nimport { ButtonComponent } from '@syncfusion/ej2-angular-buttons';\nimport { TabComponent } from '@syncfusion/ej2-angular-navigations';\nimport { DialogComponent, PositionDataModel } from '@syncfusion/ej2-angular-popups';\nimport { AggregatorDataService } from 'src/app/core/AggregatorDataService';\nimport { ProjectEntity } from 'src/app/core/BackendApi/projectentity.entity';\nimport { ProjectDataService } from 'src/app/core/project-data.service';\nimport { IProjectData, ITabData } from 'src/app/core/project-interfaces';\nimport { ProjectService } from 'src/app/core/ProjectService';\nimport { PspFormField } from 'src/core-lib/angular/components/forms/PspFormField';\nimport { PspFormFieldGroup } from 'src/core-lib/angular/components/forms/PspFormFieldGroup';\nimport { provideContext } from 'src/core-lib/angular/context-util';\nimport { LangService } from 'src/core-lib/ej2/services/LangService';\nimport { RuntimeService } from 'src/core-lib/ej2/services/RuntimeService';\n\n\n@Component({\n selector: 'app-base-data-dialog',\n templateUrl: './base-data-dialog.component.html',\n styleUrls: ['./base-data-dialog.component.scss'],\n providers: [provideContext(\"BaseDataDialog\")],\n})\nexport class BaseDataDialogComponent implements OnInit {\n\n @ViewChild('dialog') public dialog: DialogComponent;\n @ViewChild('errorDialog') public errorDialog: DialogComponent;\n @ViewChild('tabs') public tabs: TabComponent;\n\n @Input() target: string;\n @Input() buttons: ButtonComponent[];\n @Input() headerText: string;\n\n tabHeaders: string[] = [\n this.langService.getString('TabHeaders.Standort_T'),\n this.langService.getString('TabHeaders.Bauherr_T'),\n this.langService.getString('TabHeaders.Planer_T'),\n this.langService.getString('TabHeaders.Firma_T')\n ]\n\n inputPlaceholder: string = \"Bitte eingeben...\"\n\n dialogWidth: string = \"55%\";\n dialogHeight: string = \"90vh\";\n dialogPosition: PositionDataModel = {X: 'center', Y: 'center'}\n\n errorDialogWidth = \"40%\"\n errorDialogHeader = this.langService.getString('ErrorDialog.Header_T');\n\n public countryTooltipText: string;\n public projectNameTooltipText: string;\n public nameTooltipText: string;\n public projectIdTooltipText: string;\n public descriptionTooltipText: string;\n\n selectedTabs: number[] = [];\n public tabsAnimation: object = { previous: { effect: '', duration: 0, easing: ''}, next: { effect: '', duration: 0, easing: '' } };\n\n @Input()\n public editingProject: ProjectEntity;\n @Output()\n public projectEdited = new EventEmitter();\n\n @Output() closedCompletely = new EventEmitter()\n isClosedWithoutSave: boolean = true;\n\n canBeClosed: boolean = false;\n\n @Output() dialogPristine = new EventEmitter()\n\n public projectInformationFields: PspFormFieldGroup;\n public projectContactInformationFields: PspFormFieldGroup[];\n\n\n constructor(private langService: LangService,\n private aggregatorDataService: AggregatorDataService,\n private runtimeInfoService: RuntimeService,\n ) { }\n\n\n ngOnInit(): void {\n this.countryTooltipText = this.getHelpTextContent(\"Projektstammdaten.Land\");\n this.projectNameTooltipText = this.getHelpTextContent(\"Projektstammdaten.Projektname\");\n this.nameTooltipText = this.getHelpTextContent(\"Projektstammdaten.Bezeichnung\");\n this.projectIdTooltipText = this.getHelpTextContent(\"Projektstammdaten.Projektnummer\");\n this.descriptionTooltipText = this.getHelpTextContent(\"Projektstammdaten.Bemerkung\");\n\n this.initFields();\n }\n\n emitEditedProject(){\n var informationFields = this.projectInformationFields.group.value;\n var contactFields = [];\n\n for (let i = 0; i < this.projectContactInformationFields.length; i++) {\n const element = this.projectContactInformationFields[i].group.value;\n contactFields.push(element);\n }\n\n var newProjectValues = {\n informationFields: informationFields,\n contactFields: contactFields\n }\n\n this.projectEdited.emit(newProjectValues);\n }\n\n private initFields(): void\n {\n this.projectContactInformationFields = [\n new PspFormFieldGroup(),\n new PspFormFieldGroup(),\n new PspFormFieldGroup(),\n new PspFormFieldGroup(),\n ];\n\n this.projectInformationFields = new PspFormFieldGroup(\n [\n new PspFormField(\n {\n fieldName: 'ProjectName',\n displayName: this.langService.getString('ProjectName_T'),\n formState:{\n value: this.editingProject.ProjectName,\n disabled: false\n },\n helpMessageHtml: this.projectNameTooltipText,\n displayAsRequired: true,\n validatorOrOpts: [Validators.required, Validators.pattern('[\\\\w\\\\d\\-\\.()/\\\\!\"\\'+?*~#_°^=%$§€@äöüÄÖÜß:;,<>& ]+'), Validators.minLength(1), Validators.maxLength(60)]\n }),\n new PspFormField(\n {\n fieldName: 'ConstructionPhase',\n displayName: this.langService.getString('ConstructionPhase_T'),\n formState:{\n value: this.editingProject.ProjectBuildSection,\n disabled: false\n },\n displayAsRequired: false,\n validatorOrOpts: [Validators.pattern('[\\\\w\\\\d\\-\\.()/\\\\!\"\\'+?*~#_°^=%$§€@äöüÄÖÜß:;,<>& ]*'), Validators.minLength(0), Validators.maxLength(60)],\n }),\n new PspFormField(\n {\n fieldName: 'ProjectId',\n displayName: this.langService.getString('ProjectId_T'),\n formState:{\n value: this.editingProject.ProjectNumber,\n disabled: false\n },\n helpMessageHtml: this.projectIdTooltipText,\n displayAsRequired: false,\n validatorOrOpts: [Validators.pattern('[\\\\w\\\\d\\-\\.()/\\\\!\"\\'+?*~#_°^=%$§€@äöüÄÖÜß:;,<>& ]+'), Validators.minLength(1), Validators.maxLength(30)]\n }),\n new PspFormField(\n {\n fieldName: 'Description',\n displayName: this.langService.getString('Description_T'),\n formState:{\n value: this.editingProject.ProjectDescription,\n disabled: false\n },\n helpMessageHtml: this.descriptionTooltipText,\n displayAsRequired: false,\n validatorOrOpts: [Validators.pattern('[\\\\w\\\\d\\\\r\\\\n\\-\\.()/\\\\!\"\\'+?*~#_°^=%$§€@äöüÄÖÜß:;,<>& ]*'), Validators.minLength(0), Validators.maxLength(250)]\n })\n ])\n\n this.addTabsFields(\"Name\", this.langService.getString('TabFields.Name_T'), true, \"Name\",[Validators.pattern('[\\\\w\\\\d\\-\\.()/\\\\!\"\\'+?*~#_°^=%$§€@äöüÄÖÜß:;,<>& ]*'), Validators.minLength(0), Validators.maxLength(40)], [Validators.required]);\n this.addTabsFields(\"Address\", this.langService.getString('TabFields.Address_T'), false, \"Address\", [Validators.pattern('[\\\\w\\\\d\\-\\.()/\\\\!\"\\'+?*~#_°^=%$§€@äöüÄÖÜß:;,<>& ]*'), Validators.minLength(0), Validators.maxLength(45)]);\n this.addTabsFields(\"Country\", this.langService.getString('TabFields.Country_T'), false, \"Country\",[Validators.pattern('[\\\\w\\\\d\\-\\.()/\\\\!\"\\'+?*~#_°^=%$§€@äöüÄÖÜß:;,<>& ]*'), Validators.minLength(0), Validators.maxLength(20)]);\n this.addTabsFields(\"Zip\", this.langService.getString('TabFields.Zip_T'), false, \"Zip\", [Validators.pattern('[\\\\w\\\\d\\-\\.()/\\\\!\"\\'+?*~#_°^=%$§€@äöüÄÖÜß:;,<>& ]*'), Validators.minLength(0), Validators.maxLength(20)]);\n this.addTabsFields(\"City\", this.langService.getString('TabFields.City_T'), false, \"City\", [Validators.pattern('[\\\\w\\\\d\\-\\.()/\\\\!\"\\'+?*~#_°^=%$§€@äöüÄÖÜß:;,<>& ]*'), Validators.minLength(0), Validators.maxLength(40)]);\n this.addTabsFields(\"Phone\", this.langService.getString('TabFields.Phone_T'), false, \"Phone\", [Validators.pattern('[\\\\w\\\\d\\-,;\\.()/\\\\\"\\'#\\+& ]*'), Validators.minLength(0), Validators.maxLength(40)]);\n this.addTabsFields(\"Email\", this.langService.getString('TabFields.EMail_T'), false, \"Email\", [Validators.pattern('[\\\\w\\\\d\\-,;\\._@%äöüÄÖÜß]*'), Validators.minLength(0), Validators.maxLength(60)]);\n\n }\n\n addTabsFields(fieldName: string, displayName: string, required: boolean, property: string,\n validators?: ValidatorFn[], validatorsFirst?: ValidatorFn[]\n ){\n for (let i = 0; i < 4; i++) {\n\n var field = new PspFormField(\n {\n fieldName: fieldName + \"_\" + i.toString(),\n displayName: displayName,\n formState: {\n value: this.editingProject.Contacts[i][property],\n disabled: false\n },\n displayAsRequired: (fieldName == \"Name\" && i === 0 ? true : false),\n validatorOrOpts: (fieldName == \"Name\" && i === 0 ? validatorsFirst : validators),\n helpMessageHtml: i !== 0 ? null : (fieldName == \"Country\" ? this.countryTooltipText : (fieldName == \"Name\" ? this.nameTooltipText : null))\n }\n );\n this.projectContactInformationFields[i].addField(field);\n }\n }\n\n\n onCloseDialog(){\n if(this.isClosedWithoutSave){\n this.closedCompletely.emit();\n this.resetDialog();\n }\n }\n\n onBeforeClose(event){\n if(this.target == 'app-overview'){\n if(this.isClosedWithoutSave){\n if(!this.checkFormsPristine() && !this.canBeClosed){\n event.cancel = true;\n this.dialogPristine.emit();\n }\n }\n }\n else{\n if (this.isClosedWithoutSave) {\n if(!this.checkFormsPristine() && !this.canBeClosed){\n event.cancel = true;\n this.dialogPristine.emit();\n }\n }\n }\n }\n\n public resetDialog(){\n //OverviewComponent\n if(this.target === \"app-overview\"){\n this.projectInformationFields.group.reset();\n\n this.projectContactInformationFields[0].group.reset({Country_0: \"DE\"});\n\n for (let i = 1; i < 4; i++) {\n this.projectContactInformationFields[i].group.reset();\n }\n }\n\n //ProjectViewComponent\n else{\n this.projectInformationFields.group.reset({\n ProjectName: this.editingProject.ProjectName,\n ConstructionPhase: this.editingProject.ProjectBuildSection,\n ProjectId: this.editingProject.ProjectNumber,\n Description: this.editingProject.ProjectDescription\n })\n\n\n for (let i = 0; i < this.editingProject.Contacts.length; i++) {\n this.projectContactInformationFields[i].group.reset({\n [\"Name_\" + i]: this.editingProject.Contacts[i].Name,\n [\"Address_\" + i]: this.editingProject.Contacts[i].Address,\n [\"Country_\" + i]: this.editingProject.Contacts[i].Country,\n [\"Zip_\" + i]: this.editingProject.Contacts[i].Zip,\n [\"City_\" + i]: this.editingProject.Contacts[i].City,\n [\"Phone_\" + i]: this.editingProject.Contacts[i].Phone,\n [\"Email_\" + i]: this.editingProject.Contacts[i].Email,\n })\n }\n\n }\n }\n\n\n tabSelected(args){\n this.addSelectedTab(args.selectedIndex);\n }\n\n addSelectedTab(index: number){\n if(!(this.selectedTabs.indexOf(index) > -1)){\n this.selectedTabs.push(index);\n }\n }\n\n\n\n onOpenDialog(){\n this.isClosedWithoutSave = true\n }\n\n onOverlayClick(){\n this.dialog.hide();\n }\n\n onOverlayClickError(){\n this.errorDialog.hide();\n }\n\n\n checkFormsPristine(): boolean{\n if (this.projectInformationFields.group.pristine &&\n this.projectContactInformationFields[0].group.pristine &&\n this.projectContactInformationFields[1].group.pristine &&\n this.projectContactInformationFields[2].group.pristine &&\n this.projectContactInformationFields[3].group.pristine)\n {\n return true\n\n } else {\n return false;\n }\n }\n\n checkFormsValid(): boolean{\n if (this.projectInformationFields.group.valid &&\n this.projectContactInformationFields[0].group.valid &&\n this.projectContactInformationFields[1].group.valid &&\n this.projectContactInformationFields[2].group.valid &&\n this.projectContactInformationFields[3].group.valid)\n {\n return true\n\n } else {\n return false;\n }\n }\n\n private getHelpTextContent(key: string): string {\n return this.aggregatorDataService.aggregatorData.Tables.TooltipRows\n .find(x => x.TooltipId == key).TooltipContentHtmlLoc;\n }\n}\n","\n \n
      \n {{headerText}}\n \n
      \n
      \n \n
      \n
      \n
      \n
      \n
      \n \n \n \n \n \n \n \n \n \n
      \n
      \n \n \n \n \n
      \n
      \n
      \n
      \n
      \n \n \n \n \n \n
      \n {{tabHeaders[i]}}\n
      \n \n
      \n
      \n \n
      \n
      \n
      \n \n
      \n \n \n \n\n \n \n \n\n
      \n
      \n \n \n\n \n
      \n
      \n \n \n \n
      \n
      \n \n \n \n
      \n
      \n\n \n \n \n\n \n \n \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n\n
      \n
      \n
      \n\n\n \n {{'ErrorDialog.Content_SD' | translate}}\n \n\n\n\n","import { NgModule } from '@angular/core';\nimport { PspRoofSiteHeaderComponent } from './psp-roof-site-header.component';\n\n@NgModule(\n{\n declarations:\n [\n PspRoofSiteHeaderComponent,\n ],\n exports:\n [\n PspRoofSiteHeaderComponent,\n ],\n})\nexport class PspRoofSiteHeaderModule {}\n","import { AfterViewInit, Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { BlurEventArgs, ChangeEventArgs } from '@syncfusion/ej2-inputs/src';\n\n@Component({\n selector: 'app-slider-text-combo',\n templateUrl: './slider-text-combo.component.html',\n styleUrls: [ './slider-text-combo.component.scss' ]\n})\nexport class SliderTextComboComponent implements OnInit, AfterViewInit {\n // Input bindings\n @Input() sliderMin: number;\n @Input() sliderMax: number;\n @Input() sliderStep: number;\n @Input() sliderClass: string;\n @Input() sliderStyle: string;\n\n @Input() textboxMin: number;\n @Input() textboxMax: number;\n @Input() textboxStep: number;\n @Input() textboxClass: string;\n @Input() textboxStyle: string;\n @Input() textboxDecimals: number;\n\n @Input() showLabel: boolean;\n @Input() labelText: string;\n @Input() labelStyle: string;\n @Input() labelClass: string;\n\n // 2-way bindings\n private _value: number;\n @Input() set value(newValue: number) {\n this._value = newValue;\n this.processValueChange();\n }\n @Output() valueChange = new EventEmitter();\n\n // Variables\n public sliderValue: number;\n public textboxValue: number;\n private lastChangeWasSlider: boolean;\n\n // Constructors/Initializers\n constructor() {\n\n }\n ngAfterViewInit(): void {\n // Set value\n this.processValueChange();\n\n // Emit initial change\n this.onChanged();\n }\n ngOnInit(): void {\n // Validate inputs\n if(!this.sliderMin)\n this.sliderMin = 0;\n if(!this.sliderMax)\n this.sliderMax = 100;\n if(!this.sliderStep)\n this.sliderStep = 1;\n if(!this.textboxMin)\n this.textboxMin = 0;\n if(!this.textboxMax)\n this.textboxMax = 100;\n if(!this.textboxStep)\n this.textboxStep = 1;\n if(!this._value)\n this._value = 0;\n this.sliderValue = 0;\n\n\n \n }\n\n \n\n // Events\n public onSliderChanged(args: ChangeEventArgs) {\n if(this.sliderValue == null){\n this.sliderValue = this.sliderMin;\n }\n\n // Handle change\n if(args.isInteracted){\n this.textboxValue = this.sliderValue;\n this.lastChangeWasSlider = true;\n this.onChanged();\n }\n }\n public onTextboxChanged(args: ChangeEventArgs) {\n // Change empty textbox to min value\n if(this.textboxValue == null) {\n this.textboxValue = this.textboxMin;\n }\n\n // Handle change\n if(args.isInteracted){\n this.lastChangeWasSlider = false;\n this.sliderValue = this.textboxValue\n this.onChanged();\n }\n }\n public onTextboxBlur(args: BlurEventArgs) {\n this.onTextboxChanged({ isInteracted: false });\n }\n\n // Internal Methods\n private processValueChange() {\n if(this._value >= this.sliderMin && this._value <= this.sliderMax)\n {\n this.sliderValue = this._value;\n this.textboxValue = this._value;\n this.lastChangeWasSlider = true;\n } else if(this._value <= this.textboxMax) {\n this.sliderValue = this._value;\n this.textboxValue = this._value;\n this.lastChangeWasSlider = false;\n } else {\n this.sliderValue = this.sliderMin;\n this.textboxValue = this.sliderMin;\n this.lastChangeWasSlider = true;\n }\n }\n private onChanged() {\n this._value = this.lastChangeWasSlider ? this.sliderValue : this.textboxValue;\n this.valueChange.emit(this._value);\n }\n}\n","\n\n{{labelText}}","import { executeHttpRequest, IRequestError } from '../utils/httpUtils';\nimport { IODataQueryResponse } from '../utils/IODataQueryResponse';\nimport { Injectable } from '@angular/core';\nimport { log } from 'src/core-lib/logging';\nimport buildQuery, { QueryOptions } from 'odata-query'\nimport { UrlResolverService } from './UrlResolverService';\nimport { ServiceLocator } from './ServiceLocator';\n\n@Injectable()\nexport class ODataHttpService\n{\n private urlResolverService: UrlResolverService;\n\n public constructor()\n {\n this.urlResolverService = ServiceLocator.get(UrlResolverService);\n }\n\n /**\n * Performs a get request against an OData queryable endpoint which returns json data.\n * Use this method to retrieve entity sets.\n *\n * @param queryableEndpoint The endpoint e.g. \"http://localhost:8488/api/v1/Products\"\n * @param query The query parameters. See https://github.com/techniq/odata-query\n */\n public async query(queryableEndpoint: string, query?: Partial>, authorization?: string): Promise>\n {\n queryableEndpoint = this.urlResolverService.resolveServiceUrl(queryableEndpoint);\n const queryString = buildQuery(query);\n if (queryableEndpoint.endsWith('/'))\n queryableEndpoint = queryableEndpoint.substring(0, queryableEndpoint.length - 1);\n\n const url = queryableEndpoint + queryString;\n try\n {\n return await executeHttpRequest({ type: 'GET', url }, authorization);\n }\n catch (error)\n {\n const errorObj = error as IRequestError;\n if (errorObj.request.status === 0)\n log.warning({ endpoint: queryableEndpoint }, 'Failed to query data. Destination was uneachable.');\n else\n log.warning({ endpoint: queryableEndpoint, status: errorObj.request.status, responseText: errorObj.odataErrorMsg }, `Failed to query data. Received ${errorObj.request.status}.`);\n\n throw error;\n }\n }\n\n /**\n * Performs a regular get request against an endpoint which returns json data.\n * Use this method to query singletons or to invoke OData functions.\n *\n * @returns The raw json data.\n */\n public async getJson(endpoint: string, authorization?: string): Promise\n {\n return await this.simpleRequest(endpoint, 'GET', undefined, authorization);\n }\n\n /**\n * Performs a regular post request against an endpoint which returns no data or json data.\n * Use this method to post to collections or to invoke OData actions.\n */\n public async putJson(endpoint: string, requestBody: Object, authorization?: string): Promise\n {\n return await this.simpleRequest(endpoint, 'PUT', requestBody, authorization);\n }\n\n /**\n * Performs a regular post request against an endpoint which returns no data or json data.\n * Use this method to post to collections or to invoke OData actions.\n */\n public async postJson(endpoint: string, requestBody?: Object, authorization?: string): Promise\n {\n return await this.simpleRequest(endpoint, 'POST', requestBody, authorization);\n }\n\n /**\n * Performs a regular post request against an endpoint which returns no data or json data.\n * Use this method to post to collections or to invoke OData actions.\n */\n public async deleteJson(endpoint: string, requestBody?: Object, authorization?: string): Promise\n {\n return await this.simpleRequest(endpoint, 'DELETE', requestBody, authorization);\n }\n\n private async simpleRequest(endpoint: string, method: string, requestBody?: Object, authorization?: string): Promise\n {\n endpoint = this.urlResolverService.resolveServiceUrl(endpoint);\n try\n {\n return await executeHttpRequest({ type: method, url: endpoint, data: requestBody }, authorization);\n }\n catch (error)\n {\n const errorObj = error as IRequestError;\n if (errorObj.request.status === 0)\n log.warning({ endpoint: endpoint }, 'Failed to execute request. Destination was unreachable.');\n else\n log.warning({ endpoint: endpoint, status: errorObj.request.status, responseText: errorObj.odataErrorMsg }, `Failed to execute request. Received ${errorObj.request.status}.`);\n\n throw error;\n }\n }\n}\n","import {\n Component,\n OnInit,\n Input,\n Output,\n EventEmitter,\n HostListener,\n HostBinding,\n} from '@angular/core';\n\n@Component({\n selector: 'viega-card',\n templateUrl: './card.component.html',\n styleUrls: ['./card.component.scss']\n})\nexport class CardComponent implements OnInit {\n @Input()\n public linkUrl: string;\n\n @Input()\n public routerLink: string;\n\n @Input()\n public imgSrc: string;\n\n @Input()\n public imgAlt: string;\n\n @Input()\n public imgOverlayText: string;\n\n /** 'top' or 'bottom' */\n @Input()\n public cardContentPosition: string;\n\n @Input()\n public fixedImgHeight: any;\n\n /**\n * Whether to enable extra buttons and animations for a more advanced touch mode.\n */\n @Input()\n public advancedTouchMode: boolean = false;\n\n /** Always enabled if advancedTouchMode is true. */\n @Input()\n public displayInfoButton: boolean = false;\n\n private _touchActivated: boolean = false;\n\n @Input()\n public get touchActivated(): boolean {\n return this._touchActivated;\n }\n\n public set touchActivated(newValue: boolean) {\n this._touchActivated = newValue;\n this.isHovering = false;\n }\n\n @Input()\n public enlargeInfoButton = false;\n\n @Output()\n public cardClicked = new EventEmitter();\n\n @Output()\n public demandTouchActivation = new EventEmitter();\n\n @Output()\n public selectButtonClicked = new EventEmitter();\n\n @Output()\n public infoButtonClicked = new EventEmitter();\n\n @HostBinding('class.scaled')\n public isScaled: boolean = false;\n\n public isVerticalImage: boolean = false;\n\n public isHovering: boolean = false;\n\n private preventClick: boolean = false;\n\n constructor() {}\n\n public ngOnInit(): void {}\n\n public emitCardClicked(event: MouseEvent) {\n if (this.preventClick) {\n this.preventClick = false;\n return;\n }\n\n if (this.advancedTouchMode && this.touchActivated)\n this.cardClicked.emit(event);\n else\n this.cardClicked.emit(event);\n }\n\n public emitSelectButtonClicked(event: MouseEvent) {\n this.selectButtonClicked.emit(event);\n event.stopImmediatePropagation();\n }\n\n public emitInfoButtonClicked(event: MouseEvent) {\n this.infoButtonClicked.emit(event);\n event.stopImmediatePropagation();\n }\n\n @HostListener('touchend', ['$event'])\n public onTouchEnd(event: any) {\n this.preventClick = false;\n\n if (this.advancedTouchMode && !this._touchActivated) {\n const touchEvent = event as TouchEvent; // do not use TouchEvent for the 'event' parameter. it wouldn't work in firefox\n this.demandTouchActivation.emit(event);\n this.preventClick = true; // two touches are required to actually trigger a \"click\" when in advanced touch mode\n this.isScaled = false;\n }\n }\n\n public linkMouseDown(event: MouseEvent) {\n this.isScaled = true;\n }\n\n public linkMouseUp(event: MouseEvent) {\n this.isScaled = false;\n }\n\n // NOTE: do NOT use :hover to replace isHovering - it will cause issues with the touch handling.\n public linkMouseOver(event: MouseEvent) {\n this.isHovering = true;\n }\n\n public linkMouseOut(event: MouseEvent) {\n this.isScaled = false;\n this.isHovering = false;\n }\n\n public linkTouchStart(event: TouchEvent) {\n this.isScaled = true;\n }\n\n public linkTouchEnd(event: TouchEvent) {\n this.isScaled = false;\n }\n}\n","
      \n \n
      \n\n
      \n \n
      \n {{ imgOverlayText }}\n \n\n \n \n \n \n \n\n \n \n \n \n \n
      \n\n
      \n \n
      \n","import { AfterViewInit, ApplicationRef, Component, OnInit, ViewChild } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { RadioButtonComponent } from '@syncfusion/ej2-angular-buttons';\nimport { DdtChangeEventArgs, DropDownListComponent } from '@syncfusion/ej2-angular-dropdowns';\nimport { ChangeEventArgs } from '@syncfusion/ej2-angular-inputs';\nimport { AggregatorDataService } from 'src/app/core/AggregatorDataService';\nimport { ProjectEntity } from 'src/app/core/BackendApi/projectentity.entity';\nimport { Warmwasser } from 'src/app/core/BackendApi/warmwasser.complex';\nimport { DailyNeedEn12831UsageRow } from 'src/app/core/DteufcAggregatorServiceApi/dailyneeden12831usagerow.complex';\nimport { DailyNeedEn12831UsageTypeRow } from 'src/app/core/DteufcAggregatorServiceApi/dailyneeden12831usagetyperow.complex';\nimport { WarmwasserErmittlungstyp, WarmwasserExaktErmittlungstyp, WwBerechnungValuesBerechnungstyp } from 'src/app/core/Enums';\nimport { HotWaterMath } from 'src/app/core/math/HotWaterMath';\nimport { ProjectDataService } from 'src/app/core/project-data.service';\nimport { ValueFormatterService } from 'src/app/core/ValueFormatterService';\nimport { provideContext } from 'src/core-lib/angular/context-util';\nimport { LangService } from 'src/core-lib/ej2/services/LangService';\n\n@Component({\n selector: 'app-hot-water-demand',\n templateUrl: './hot-water-demand.component.html',\n styleUrls: ['./hot-water-demand.component.scss'],\n providers: [provideContext(\"HotWaterDemand\")],\n})\nexport class HotWaterDemandComponent implements OnInit,AfterViewInit {\n @ViewChild('hotWaterManual')\n public HotWaterManualRadio: RadioButtonComponent;\n\n @ViewChild('hotWaterCalculate')\n public HotWaterCalculateRadio: RadioButtonComponent;\n\n @ViewChild('structureDetailsDataDDL')\n public dropdownNutzung: DropDownListComponent;\n\n @ViewChild('structureDataDDL')\n public dropdownNutzungsart: DropDownListComponent;\n\n stepText = this.langService.getString('PanelStepText_T');\n stepBack = this.langService.getString('PanelStepBackLabel_T');\n stepTitle = this.langService.getString('PanelHeadline_T');\n stepDescription: string = this.langService.getString('PanelDescription_D');\n\n SliderDescriptionLiterPerDay = this.langService.getString('#Generic.Unit.Liter_T');\n SliderDescriptionDegreeCelsius = this.valueFormatterService.formatNumber(60, 'DegreeCelsius');\n\n DescriptionNutzungsabhaengigLiterPerDay = this.valueFormatterService.formatNumber(160, 'LiterPerDay'); //!!!\n DescriptionNutzungsabhaengigNumber = this.DescriptionNutzungsabhaengigLiterPerDay.substring(0,3);\n DescriptionNutzungsabhaengigUnit = this.DescriptionNutzungsabhaengigLiterPerDay.substring(4, 9);\n DescriptionNutzungsabhaengigDegreeCelsius = this.valueFormatterService.formatNumber(60, 'DegreeCelsius');\n\n DescriptionFlaechenbezogenLiterPerDay = this.valueFormatterService.formatNumber(120, 'LiterPerDay'); //!!!\n DescriptionFlaechenbezogenNumber = this.DescriptionFlaechenbezogenLiterPerDay.substring(0,3);\n DescriptionFlaechenbezogenUnit = this.DescriptionFlaechenbezogenLiterPerDay.substring(4, 9);\n DescriptionFlaechenbezogenDegreeCelsius = this.valueFormatterService.formatNumber(60, 'DegreeCelsius');\n\n hotWaterManualChecked: boolean = false;\n manualValue: number = 0;\n\n\n selectedProject: ProjectEntity;\n editData: Warmwasser;\n selectedStructure: string;\n\n WarmwasserExaktErmittlungstyp = WarmwasserExaktErmittlungstyp;\n WwBerechnungValuesBerechnungstyp = WwBerechnungValuesBerechnungstyp;\n\n continueDisabled = true;\n\n calculationTypeData = [\"Nutzungsabhängig\", \"Flächenbezogen\"];\n calculationTypeDataPreselect = \"Nutzungsabhängig\";\n isAreaSelected = false;\n\n nutzungsarten: DailyNeedEn12831UsageTypeRow[];\n nutzungen: DailyNeedEn12831UsageRow[];\n selectedNutzung: DailyNeedEn12831UsageRow;\n selectedNutzungsart: DailyNeedEn12831UsageTypeRow;\n\n warmwasserTemp = 0;\n nutzungTemp = 0;\n flaechenTemp = 0;\n\n\n constructor(\n private activatedRoute: ActivatedRoute,\n private readonly router: Router,\n private langService: LangService,\n private valueFormatterService: ValueFormatterService,\n private dataService: ProjectDataService,\n protected aggregatorDataService: AggregatorDataService,\n private hotWaterMath: HotWaterMath,\n private appRef: ApplicationRef\n ) { }\n ngAfterViewInit(): void {\n if(this.HotWaterManualRadio.checked){\n\n this.editData.ErmittlungWarmwasserExakt.ErmittlungDirekt.WarmwasserDirekt = this.warmwasserTemp;\n }\n if(this.HotWaterCalculateRadio.checked){\n this.editData.ErmittlungWarmwasserExakt.ExaktDinValues.FlaechenbezogenQMeter = this.flaechenTemp;\n this.editData.ErmittlungWarmwasserExakt.ExaktDinValues.Nutzungsabhaengig = this.nutzungTemp;\n }\n this.calculateValues();\n\n //Initialgröße \"Nutzungsart\"-Dropdown\n var width = this.getTextWidth(this.selectedNutzungsart.DisplayNameLoc, \"bold 14px viega-thin\");\n\n this.dropdownNutzung.element.style.width = width + 120 + \"px\";\n\n //Initialgröße \"Nutzung\"-Dropdown\n var width = this.getTextWidth(this.selectedNutzung.DisplayNameLoc, \"bold 14px viega-thin\");\n\n this.dropdownNutzung.element.style.width = width + 120 + \"px\";\n }\n\n onChangeManualSlider(args: ChangeEventArgs){\n this.calculateValues();\n }\n\n calculateValues(){\n switch (this.editData.ErmittlungWarmwasserExakt.Ermittlungstyp) {\n case WarmwasserExaktErmittlungstyp.Direkt:\n this.editData.WarmwasserErgebnisLTag = Number(this.editData.ErmittlungWarmwasserExakt.ErmittlungDirekt.WarmwasserDirekt);\n break;\n case WarmwasserExaktErmittlungstyp.DIN12831:\n if (!this.selectedNutzung.SpezifischerBedarfFlaecheLiterTag) {\n this.editData.WarmwasserErgebnisLTag = this.hotWaterMath.warmwassertagesbedarfFromNutzungDinEn12831({\n nutzung: this.selectedNutzung,\n nutzungsabhaengigAnzahl: this.editData.ErmittlungWarmwasserExakt.ExaktDinValues.Nutzungsabhaengig\n })\n }\n else{\n switch (this.editData.ErmittlungWarmwasserExakt.ExaktDinValues.Berechnungstyp) {\n case WwBerechnungValuesBerechnungstyp.Nutzungsabhaengig:\n this.editData.WarmwasserErgebnisLTag = this.hotWaterMath.warmwassertagesbedarfFromNutzungDinEn12831({\n nutzung: this.selectedNutzung,\n nutzungsabhaengigAnzahl: this.editData.ErmittlungWarmwasserExakt.ExaktDinValues.Nutzungsabhaengig\n })\n\n break;\n case WwBerechnungValuesBerechnungstyp.Flaechenbezogen:\n this.editData.WarmwasserErgebnisLTag = this.hotWaterMath.warmwassertagesbedarfFromNutzungDinEn12831({\n nutzung: this.selectedNutzung,\n nutzungsabhaengigAnzahl: null,\n flaechenbezogenAnzahl: this.editData.ErmittlungWarmwasserExakt.ExaktDinValues.FlaechenbezogenQMeter\n })\n break;\n default:\n break;\n }\n }\n\n break;\n default:\n this.editData.WarmwasserErgebnisLTag = 0;\n break;\n }\n\n }\n\n onChangeErmittlung(typ: WarmwasserExaktErmittlungstyp){\n\n this.editData.ErmittlungWarmwasserExakt.Ermittlungstyp = typ;\n\n this.editData.ErmittlungWarmwasserExakt.ExaktDinValues.Nutzungsabhaengig\n this.editData.ErmittlungWarmwasserExakt.ExaktDinValues.FlaechenbezogenQMeter\n\n\n this.calculateValues();\n }\n\n onChangeBerechnung(typ: WwBerechnungValuesBerechnungstyp){\n\n this.editData.ErmittlungWarmwasserExakt.ExaktDinValues.Berechnungstyp = typ;\n\n\n this.calculateValues();\n }\n\n\n onChangeCalculationTypeData(args: DdtChangeEventArgs){\n if(String(args.value) == \"Flächenbezogen\"){\n this.isAreaSelected = true;\n }\n else{\n this.isAreaSelected = false;\n }\n }\n\n onChangeNutzungsart(args: ChangeEventArgs){\n\n this.selectedNutzungsart = this.nutzungsarten\n .find(n => n.DailyNeedUsageTypeId == this.editData.ErmittlungWarmwasserExakt.ExaktDinValues.Nutzungsart);\n \n\n if (args.isInteracted) {\n this.nutzungen = this.aggregatorDataService.aggregatorData.Tables.DailyNeedEn12831UsageRows\n .filter(r => r.DailyNeedUsageTypeId == this.editData.ErmittlungWarmwasserExakt.ExaktDinValues.Nutzungsart)\n\n this.editData.ErmittlungWarmwasserExakt.ExaktDinValues.Nutzung = this.nutzungen[0].DailyNeedUsageId;\n console.log(this.editData.ErmittlungWarmwasserExakt.ExaktDinValues.Nutzung);\n }\n\n this.calculateValues();\n }\n\n onChangeNutzung(args: ChangeEventArgs){\n this.selectedNutzung = this.aggregatorDataService.aggregatorData.Tables.DailyNeedEn12831UsageRows\n .find(r => r.DailyNeedUsageId == this.editData.ErmittlungWarmwasserExakt.ExaktDinValues.Nutzung)\n\n this.editData.ErmittlungWarmwasserExakt.ExaktDinValues.Nutzungsabhaengig = 0;\n this.editData.ErmittlungWarmwasserExakt.ExaktDinValues.FlaechenbezogenQMeter = 0;\n\n var width = this.getTextWidth(this.selectedNutzung.DisplayNameLoc, \"bold 14px viega-thin\");\n\n this.dropdownNutzung.element.style.width = width + 120 + \"px\";\n\n console.log(this.selectedNutzung);\n this.calculateValues();\n }\n\n ngOnInit(): void {\n let urlProject = this.activatedRoute.snapshot.data['project'];\n this.dataService.setTempProject(urlProject);\n this.selectedProject = this.dataService.TempProject;\n if(!this.selectedProject){\n if(urlProject){\n this.router.navigate([`/project-view/${urlProject.ProjectId}`]);\n } else {\n this.router.navigate([`/home`]);\n }\n return;\n }\n\n this.selectedStructure = this.activatedRoute.snapshot.data['buildingType'];\n if(!this.selectedStructure || (this.selectedProject.ResidentialBuilding?.BuildingType != this.selectedStructure\n && !this.selectedProject.OtherBuildings?.some(b => b.BuildingType == this.selectedStructure))\n ){\n this.router.navigate([`/project-view/${this.selectedProject.ProjectId}`])\n }\n\n\n\n\n if (this.selectedStructure == this.selectedProject.ResidentialBuilding?.BuildingType) {\n if(!this.selectedProject.ResidentialBuilding.Warmwasser){\n this.selectedProject.ResidentialBuilding.Warmwasser = {\n Ermittlungstyp: WarmwasserErmittlungstyp.Exakt\n }\n }\n this.editData = this.selectedProject.ResidentialBuilding.Warmwasser;\n\n }\n else{\n if(!this.selectedProject.OtherBuildings.find(x => x.BuildingType == this.selectedStructure).Warmwasser){\n this.selectedProject.OtherBuildings.find(x => x.BuildingType == this.selectedStructure).Warmwasser = {\n Ermittlungstyp: WarmwasserErmittlungstyp.Exakt\n }\n }\n this.editData = this.selectedProject.OtherBuildings\n .find(x => x.BuildingType == this.selectedStructure).Warmwasser;\n }\n\n if (!this.editData.ErmittlungWarmwasserExakt) {\n this.editData.ErmittlungWarmwasserExakt = {\n ExaktDinValues: {\n Berechnungstyp: WwBerechnungValuesBerechnungstyp.Nutzungsabhaengig,\n },\n ErmittlungDirekt: {}\n }\n }\n\n\n let nutzungsIdStandard = this.aggregatorDataService.aggregatorData.Tables.BuildingTypeRows\n .find(r => r.BuildingId == this.selectedStructure).VorauswahlDailyNeedUsageId;\n\n this.selectedNutzung = this.aggregatorDataService.aggregatorData.Tables.DailyNeedEn12831UsageRows\n .find(r => r.DailyNeedUsageId == nutzungsIdStandard)\n\n this.nutzungsarten = this.aggregatorDataService.aggregatorData.Tables.DailyNeedEn12831UsageTypeRows\n .filter(r => r.ForBuildingTypeIds.some(b => b == this.selectedStructure));\n\n if(!this.editData.ErmittlungWarmwasserExakt.ExaktDinValues.Nutzungsart){\n\n this.editData.ErmittlungWarmwasserExakt.ExaktDinValues.Nutzungsart = this.selectedNutzung.DailyNeedUsageTypeId;\n }\n\n this.selectedNutzungsart = this.nutzungsarten.find(a => a.DailyNeedUsageTypeId == this.selectedNutzung.DailyNeedUsageTypeId);\n\n this.nutzungen = this.aggregatorDataService.aggregatorData.Tables.DailyNeedEn12831UsageRows\n .filter(r => r.DailyNeedUsageTypeId == this.editData.ErmittlungWarmwasserExakt.ExaktDinValues.Nutzungsart)\n\n if(!this.editData.ErmittlungWarmwasserExakt.ExaktDinValues.Nutzung){\n this.editData.ErmittlungWarmwasserExakt.ExaktDinValues.Nutzung = this.selectedNutzung.DailyNeedUsageId;\n \n }\n this.selectedNutzung = this.aggregatorDataService.aggregatorData.Tables.DailyNeedEn12831UsageRows\n .find(r => r.DailyNeedUsageId == this.editData.ErmittlungWarmwasserExakt.ExaktDinValues.Nutzung);\n console.log(this.selectedNutzung);\n\n\n\n this.warmwasserTemp = this.editData.ErmittlungWarmwasserExakt.ErmittlungDirekt.WarmwasserDirekt;\n this.nutzungTemp = this.editData.ErmittlungWarmwasserExakt.ExaktDinValues.Nutzungsabhaengig;\n this.flaechenTemp = this.editData.ErmittlungWarmwasserExakt.ExaktDinValues.FlaechenbezogenQMeter;\n this.calculateValues()\n this.editData.ErmittlungWarmwasserExakt.ErmittlungDirekt.WarmwasserDirekt = 0;\n this.editData.ErmittlungWarmwasserExakt.ExaktDinValues.Nutzungsabhaengig = 0;\n this.editData.ErmittlungWarmwasserExakt.ExaktDinValues.FlaechenbezogenQMeter = 0;\n\n }\n\n getWarmwasserLTag(){\n if (!this.editData.WarmwasserErgebnisLTag) {\n return \"-\";\n }\n return this.valueFormatterService.formatNumber(this.editData.WarmwasserErgebnisLTag, 'Liter', {maximumFractionDigits: 0}, false)\n }\n\n public onSelectDropdownNutzungsart(args) {\n // var multiObject = document.getElementById(id).parentElement;\n var width = this.getTextWidth(args.itemData.DisplayNameLoc, \"bold 14px viega-thin\");\n\n // 20px added for dropdownIcon width\n this.dropdownNutzung.element.style.width = width + 120 + \"px\";\n }\n\n public onSelectDropdownNutzung(args) {\n // var multiObject = document.getElementById(id).parentElement;\n var width = this.getTextWidth(args.itemData.DisplayNameLoc, \"bold 14px viega-thin\");\n\n // 20px added for dropdownIcon width\n this.dropdownNutzung.element.style.width = width + 120 + \"px\";\n }\n\ngetTextWidth(text, font) {\n // re-use canvas object for better performance\n var canvas =\n (this.getTextWidth as any).canvas ||\n ((this.getTextWidth as any).canvas = document.createElement(\"canvas\"));\n var context = canvas.getContext(\"2d\");\n context.font = font;\n var metrics = context.measureText(text);\n return metrics.width;\n}\n\ngetPopupWidth(){\n var longest = this.nutzungen.reduce(\n function (a, b) {\n return a.DisplayNameLoc.length > b.DisplayNameLoc.length ? a : b;\n }\n );\n\n var canvas =\n (this.getTextWidth as any).canvas ||\n ((this.getTextWidth as any).canvas = document.createElement(\"canvas\"));\n var context = canvas.getContext(\"2d\");\n context.font = \"bold 14px viega-thin\";\n var metrics = context.measureText(longest.DisplayNameLoc);\n return metrics.width + 80 + \"px\";\n}\n\n\n goBack() {\n this.router.navigate([`/project-view/${this.selectedProject.ProjectId}`]);\n }\n\n navigateNext(){\n if (this.selectedProject.ResidentialBuilding?.BuildingType == this.selectedStructure) {\n this.selectedProject.ResidentialBuilding.Warmwasser = this.editData;\n }\n else {\n this.selectedProject.OtherBuildings.find(x => x.BuildingType == this.selectedStructure).Warmwasser = this.editData;\n }\n\n this.router.navigate([`/daily-load-profile/${this.selectedProject.ProjectId}/${this.selectedStructure}`]);\n }\n\n}\n","\n
      \n \n \n\n
      \n \n
      \n \n
      \n

      \n  \n

      \n
      \n \n
      \n\n
      \n
      \n \n
      \n
      \n
      \n {{'PanelResultHeadline_T' | translate}}\n \n
      \n {{'PanelResultWarmwassertagesbedarf_T' | translate}} {{getWarmwasserLTag()}}\n \n
      \n
      \n
      \n
      \n\n
      \n
      \n {{'Headline_T' | translate}}\n \n
      \n
      \n
      \n \n
      \n
      \n
      \n \n \n {{'RadioManuell.SliderDescription_T' | translate : SliderDescriptionLiterPerDay : SliderDescriptionDegreeCelsius}}\n
      \n
      \n
      \n \n \n
      \n\n
      \n
      \n {{'RadioDinEn12831.Headline_T' | translate}}\n
      \n {{'RadioDinEn12831.DropdownNutzungsart_T' | translate}}\n \n
      \n\n\n\n
      \n {{'RadioDinEn12831.DropdownNutzung_T' | translate}}\n
      \n \n
      \n
      \n\n
      \n
      \n \n
      \n
      \n
      \n
      \n
      \n \n \n {{selectedNutzung.SpezifischeNutzungEinheitLoc}}\n
      \n \n
      \n
      \n
      \n\n
      \n \n
      \n
      \n
      \n
      \n
      \n \n \n
      \n {{selectedNutzung.SpezNutzungFlaecheEinheitLoc}}\n
      \n
      \n \n
      \n
      \n
      \n
      \n\n
      \n
      \n
      \n {{'SpezifischerBedarfHeadline_T' | translate}}\n
      \n \n \n {{selectedNutzung.SpezifischeNutzungEinheitLoc}}\n
      \n \n\n
      \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n\n","import { AfterViewInit, Component, Inject, OnInit, ViewChild } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { DropDownListComponent } from '@syncfusion/ej2-angular-dropdowns';\nimport { GridComponent } from '@syncfusion/ej2-angular-grids';\nimport { DialogComponent } from '@syncfusion/ej2-angular-popups/src/dialog/dialog.component';\nimport * as _ from 'lodash';\nimport { AggregatorDataService } from 'src/app/core/AggregatorDataService';\nimport { BedarfsvolumenstromOther } from 'src/app/core/BackendApi/bedarfsvolumenstromother.complex';\nimport { FreieZapfstelle } from 'src/app/core/BackendApi/freiezapfstelle.complex';\nimport { KeyValueInt } from 'src/app/core/BackendApi/keyvalueint.complex';\nimport { VordefinierteZapfstelle } from 'src/app/core/BackendApi/vordefiniertezapfstelle.complex';\nimport { DemandVolumetricFlowBaseComponent } from 'src/app/core/DemandVolumetricFlowBaseComponent';\nimport { BuildingTypeRow } from 'src/app/core/DteufcAggregatorServiceApi/buildingtyperow.complex';\nimport { Din1988SimultaneityRow } from 'src/app/core/DteufcAggregatorServiceApi/din1988simultaneityrow.complex';\nimport { FacilityGroupRow } from 'src/app/core/DteufcAggregatorServiceApi/facilitygrouprow.complex';\nimport { Vdi6003FacilityRow } from 'src/app/core/DteufcAggregatorServiceApi/vdi6003facilityrow.complex';\nimport { Komfortstufe, BedarfsvolumenstromErmittlungstypOther, SectionState } from 'src/app/core/Enums';\nimport { ITappingPointParam, VolumetricFlowRateMath } from 'src/app/core/math/VolumetricFlowRateMath';\nimport { ProjectDataService } from 'src/app/core/project-data.service';\nimport { ValueFormatterService } from 'src/app/core/ValueFormatterService';\nimport { provideContext } from 'src/core-lib/angular/context-util';\nimport { LangService } from 'src/core-lib/ej2/services/LangService';\nimport { ZapfstellenDialogData } from 'src/app/shared/zapfstellen-dialog-data/zapfstellen-dialog-data.component';\n\n@Component({\n selector: 'app-demand-volumetric-flow-other',\n templateUrl: './demand-volumetric-flow-other.component.html',\n styleUrls: ['./demand-volumetric-flow-other.component.scss'],\n providers: [provideContext('DemandVolumetricFlowOther')]\n})\nexport class DemandVolumetricFlowOtherComponent extends DemandVolumetricFlowBaseComponent implements OnInit, AfterViewInit {\n // Viewchilds\n @ViewChild('gridVordefiniert') public gridVordefinierteZapfstelle: GridComponent;\n @ViewChild('gridFree') public gridFreieZapfstelle: GridComponent;\n @ViewChild('editDialog') public dialogData: ZapfstellenDialogData;\n @ViewChild('invalidFieldsDialog') public invalidFieldsDialog: DialogComponent;\n @ViewChild('deleteDialog') public deleteDialog: DialogComponent;\n @ViewChild(\"exaktGleichzeitigkeitDropdown\") public ddlObj: DropDownListComponent;\n\n // Button bindings\n editDialogButtons = [{\n 'click': this.onZapfstelleAdd.bind(this),\n buttonModel: {\n content: this.langService.getString('EditDialogUebernehmenBtn_T'),\n isPrimary: false,\n cssClass: 'e-primary'\n }\n }]\n\n deleteDialogButtons = [{\n 'click': this.onZapfstelleDelete.bind(this),\n buttonModel: {\n content: this.langService.getString('DeleteDialogUebernehmenBtn_T'),\n isPrimary: false,\n cssClass: 'e-primary'\n }\n }]\n\n stepBack = this.langService.getString('StepBack_T');\n stepDescription = this.langService.getString('StepDescription_D');\n\n // Public Variables\n public stepTitle:string;\n public gebaeudetyp : string;\n public gleichzeitigkeitDropdownFields = { text: \"DisplayNameLoc\", value: \"SimultaneityId\" };\n public gleichzeitigkeitRows: Din1988SimultaneityRow[];\n public editingData: BedarfsvolumenstromOther;\n public facilityGroups: FacilityGroupRow[];\n public currentBuildingType: string;\n public currentType: string;\n public deleteIsFree: boolean;\n public deleteIndex: number;\n public bedarfTemp = 0;\n public bedarfGrobTemp: KeyValueInt[];\n public bedarfExaktTemp = 0;\n public bedarfExaktTableTemp;\n\n // Internal Variables\n private buildingTypeInfo: BuildingTypeRow;\n private allFacilities: Vdi6003FacilityRow[];\n private editingItemIsFree: boolean;\n private editingItemIndex: number;\n\n // Constructors/Initializers\n constructor(\n private activatedRoute: ActivatedRoute,\n protected readonly router: Router,\n protected DataService: ProjectDataService,\n protected formatterService: ValueFormatterService,\n protected aggregatorDataService: AggregatorDataService,\n private langService: LangService,\n @Inject(VolumetricFlowRateMath) private bvsMath: VolumetricFlowRateMath\n ) {\n super(router, DataService, formatterService, aggregatorDataService);\n }\n ngAfterViewInit(): void {\n\n if(this.bedarfTemp && this.bedarfTemp != 0){\n\n this.editingData.ErmittlungBvsDirekt.Bedarfsvolumenstrom = this.bedarfTemp;\n }\n if(this.bedarfGrobTemp && this.bedarfGrobTemp && this.editingData.ErmittlungOtherGrob){\n\n this.editingData.ErmittlungOtherGrob.WohneinheitenAbnehmerAnzahl = this.clone(this.bedarfGrobTemp);\n }\n console.log(this.editingData.ErmittlungsTyp)\n if( this.editingData.ErmittlungOtherExakt && this.editingData.ErmittlungsTyp == this.ErmittlungsTypOther.Exakt){\n this.editingData.ErmittlungOtherExakt =this.clone(this.bedarfExaktTableTemp);\n this.editingData.ErmittlungOtherExakt.gleichzeitigkeitLinear = this.bedarfExaktTemp;\n }\n if(this.editingData.ErmittlungsTyp == this.ErmittlungsTypOther.Grob){\n this.editingData.ErmittlungOtherExakt.gleichzeitigkeitLinear = 0;\n this.editingData.ErmittlungBvsDirekt.Bedarfsvolumenstrom = 0;\n }\n if(this.editingData.ErmittlungsTyp == this.ErmittlungsTypOther.Exakt){\n this.editingData.ErmittlungOtherGrob.WohneinheitenAbnehmerAnzahl.forEach(x => x.Value = 0);\n this.editingData.ErmittlungBvsDirekt.Bedarfsvolumenstrom = 0;\n }\n if(this.editingData.ErmittlungsTyp == this.ErmittlungsTypOther.BvsDirekt){ \n this.editingData.ErmittlungOtherExakt.gleichzeitigkeitLinear = 0;\n this.editingData.ErmittlungOtherGrob.WohneinheitenAbnehmerAnzahl.forEach(x => x.Value = 0);\n }\n //this.dialogData = new ZapfstellenDialogData(this.langService, this.formatterService, this.allFacilities);\n let helpTextComfort = this.aggregatorDataService.aggregatorData.Tables.TooltipRows\n .find(x => x.TooltipId == \"Bedarfsvolumenstrom.AndereGebäude.Komfortstufe\").TooltipContentHtmlLoc\n this.dialogData.helpTextComfort = helpTextComfort;\n // Calculate\n this.calculateBvs();\n }\n ngOnInit(): void {\n // Init project\n this.currentProject = this.activatedRoute.snapshot.data['project'];\n this.currentBuildingType = this.activatedRoute.snapshot.data['buildingType'];\n if(!this.currentBuildingType || (this.currentProject.ResidentialBuilding?.BuildingType != this.currentBuildingType\n && !this.currentProject.OtherBuildings?.some(b => b.BuildingType == this.currentBuildingType))\n ){\n this.router.navigate([`/project-view/${this.currentProject.ProjectId}`])\n }\n\n // Init table data\n this.facilityGroups = this.aggregatorDataService.aggregatorData.Tables.FacilityGroupRows.filter(r => r.BuildingTypeId == this.currentBuildingType);\n this.buildingTypeInfo = this.aggregatorDataService.aggregatorData.Tables.BuildingTypeRows.find(b => b.BuildingId == this.currentBuildingType);\n this.allFacilities = this.aggregatorDataService.aggregatorData.Tables.Vdi6003FacilityRows;\n this.gleichzeitigkeitRows = this.aggregatorDataService.aggregatorData.Tables.Din1988SimultaneityRows;\n if (!this.gleichzeitigkeitRows.some(x => x.SimultaneityId == \"Manuell\")) {\n this.gleichzeitigkeitRows.push({ DisplayNameLoc: this.langService.getString('ExaktTypRadio.DialogDropDownManuelleEingabe_T'), SimultaneityId: \"Manuell\", Din1988KonstanteA: 0, Din1988KonstanteB: 0, Din1988KonstanteC: 0 })\n }\n\n // Init dialog data\n this,this.gebaeudetyp = `${this.buildingTypeInfo.DisplayNameLoc}`\n this.stepTitle = this.langService.getString('StepTitle', undefined, this.gebaeudetyp);\n\n // Load/Init data\n var building = this.currentProject.OtherBuildings.find(b => b.BuildingType == this.currentBuildingType);\n if (building.Bedarfsvolumenstrom) {\n this.editingData = this.clone(building.Bedarfsvolumenstrom);\n }\n else {\n this.editingData = { \n ErmittlungsTyp: BedarfsvolumenstromErmittlungstypOther.None,\n ErmittlungBvsDirekt: {}\n };\n }\n\n if(this.editingData.ErmittlungBvsDirekt){\n\n this.bedarfTemp = this.editingData.ErmittlungBvsDirekt.Bedarfsvolumenstrom;\n }\n if(this.editingData.ErmittlungOtherGrob){\n\n this.bedarfGrobTemp = this.clone(this.editingData.ErmittlungOtherGrob.WohneinheitenAbnehmerAnzahl);\n }\n if(this.editingData.ErmittlungOtherExakt){\n\n this.bedarfExaktTemp = this.editingData.ErmittlungOtherExakt.gleichzeitigkeitLinear;\n this.bedarfExaktTableTemp = this.clone(this.editingData.ErmittlungOtherExakt);\n }\n\n this.editingData.ErmittlungBvsDirekt.Bedarfsvolumenstrom = 0;\n this.editingData.ErmittlungOtherGrob = {\n WohneinheitenAbnehmerAnzahl: this.facilityGroups.map(g => { return { Key: g.FacilityGroupId, Value: 0 }})\n }\n this.editingData.ErmittlungOtherExakt = {\n ZapfstellenFrei: [],\n ZapfstellenVordefiniert: [],\n gleichzeitigkeitLinear: 0\n }\n\n }\n\n // Shared Methods\n public calculateBvs(): void {\n switch(this.editingData.ErmittlungsTyp){\n case BedarfsvolumenstromErmittlungstypOther.BvsDirekt:\n this.editingData.ErmittlungBvsDirekt.Bedarfsvolumenstrom = Number(this.editingData.ErmittlungBvsDirekt.Bedarfsvolumenstrom);\n this.editingData.BedarfsvolumenstromErgebnisLMin = this.editingData.ErmittlungBvsDirekt.Bedarfsvolumenstrom;\n break;\n case BedarfsvolumenstromErmittlungstypOther.Grob:\n this.calculateBvsGrob();\n break;\n case BedarfsvolumenstromErmittlungstypOther.Exakt:\n this.calculateBvsExact();\n break;\n default: this.resetResult(); break;\n }\n }\n public getUnitRow(unitId: string): FacilityGroupRow {\n return this.facilityGroups.find(p => p.FacilityGroupId == unitId);\n }\n\n // Internal Methods\n protected getBuildingType(): string {\n return this.currentBuildingType;\n }\n\n private resetResult(): void {\n this.editingData.BedarfsvolumenstromErgebnisLMin = 0;\n }\n\n private calculateBvsGrob(): void {\n if(!this.editingData.ErmittlungOtherGrob.WohneinheitenAbnehmerAnzahl.some(w => w.Value > 0))\n {\n this.resetResult();\n return;\n }\n\n // Determine gleichzeitigkeit to use\n var gleichzeitigkeitType: Din1988SimultaneityRow = null;\n var gleichzeitigkeitLinear = this.buildingTypeInfo.LineareGleichzeitigkeitFaktor;\n if(this.buildingTypeInfo.VorauswahlSimultaneityId){\n gleichzeitigkeitType = this.gleichzeitigkeitRows.find(g => g.SimultaneityId == this.buildingTypeInfo.VorauswahlSimultaneityId)\n }\n\n // Get facilities from groups\n this.editingData.ErmittlungOtherGrob.Zapfstellen = this.editingData.ErmittlungOtherGrob.WohneinheitenAbnehmerAnzahl.map(wa => {\n return this.aggregatorDataService.aggregatorData.Tables.FacilityGroupItemRows.filter(gi => gi.FacilityGroupId == wa.Key).map(gi => {\n let berechnungsdurchflussLSek: number;\n let count = wa.Value * gi.Count;\n let stufe: Komfortstufe;\n switch (gi.Stufe) {\n case \"S1\":\n berechnungsdurchflussLSek = this.allFacilities.find(d => d.VdiFacilityId == gi.VdiFacilityId).BerechnungsdurchflussKS1\n stufe = Komfortstufe.Stufe1;\n break;\n case \"S2\":\n berechnungsdurchflussLSek = this.allFacilities.find(d => d.VdiFacilityId == gi.VdiFacilityId).BerechnungsdurchflussKS2\n stufe = Komfortstufe.Stufe2;\n break;\n case \"S3\":\n berechnungsdurchflussLSek = this.allFacilities.find(d => d.VdiFacilityId == gi.VdiFacilityId).BerechnungsdurchflussKS3\n stufe = Komfortstufe.Stufe3;\n break;\n }\n return {\n Typ: gi.VdiFacilityId,\n Komfortstufe: stufe,\n Anzahl: count,\n BerechnungsflussLiterSek: berechnungsdurchflussLSek,\n BerechnungsflussSummeLiterSek: count * berechnungsdurchflussLSek\n } as VordefinierteZapfstelle\n });\n }).reduce((a,b) => a.concat(b));\n\n // Calculate result\n this.editingData.BedarfsvolumenstromErgebnisLMin = this.bvsMath.bedarfsvolumenstromFromEntnahmestellen({\n gleichzeitigkeitLinearFactor: gleichzeitigkeitLinear,\n gleichzeitigkeitType: gleichzeitigkeitType,\n entnahmestellen: this.editingData.ErmittlungOtherGrob.Zapfstellen.map(z => { return {\n berechnungsdurchflussLSek: z.BerechnungsflussLiterSek,\n anzahl: z.Anzahl\n }})\n });\n }\n\n private calculateBvsExact(): void {\n // make sure that the linear factor is input as a number\n this.editingData.ErmittlungOtherExakt.gleichzeitigkeitLinear = Number(this.editingData.ErmittlungOtherExakt.gleichzeitigkeitLinear);\n\n // Reset results if no zapfstellen are configured\n if(this.isEntnahmestelleErrorShown())\n {\n this.resetResult();\n return;\n }\n\n // Determine gleichzeitigkeit to use\n let gleichzeitigkeitTypeRow = this.gleichzeitigkeitRows.find(g => g.SimultaneityId == this.editingData.ErmittlungOtherExakt.Gleichzeitigkeit)\n\n // Get zapfstellen\n let zapfstellen: ITappingPointParam[] = [];\n if(this.editingData.ErmittlungOtherExakt.ZapfstellenVordefiniert){\n zapfstellen = zapfstellen.concat(this.editingData.ErmittlungOtherExakt.ZapfstellenVordefiniert.map(z => { return{\n anzahl: z.Anzahl,\n berechnungsdurchflussLSek: z.BerechnungsflussLiterSek\n }}));\n }\n if(this.editingData.ErmittlungOtherExakt.ZapfstellenFrei){\n zapfstellen = zapfstellen.concat(this.editingData.ErmittlungOtherExakt.ZapfstellenFrei.map(z => { return{\n anzahl: z.Anzahl,\n berechnungsdurchflussLSek: z.BerechnungsflussLiterSek\n }}));\n }\n\n // Calculate result\n this.editingData.BedarfsvolumenstromErgebnisLMin = this.bvsMath.bedarfsvolumenstromFromEntnahmestellen({\n gleichzeitigkeitLinearFactor: this.editingData.ErmittlungOtherExakt.Gleichzeitigkeit == 'Manuell' ? this.editingData.ErmittlungOtherExakt.gleichzeitigkeitLinear : null,\n gleichzeitigkeitType: gleichzeitigkeitTypeRow,\n entnahmestellen: zapfstellen\n });\n }\n\n public sort_stringify(obj){\n var sortedKeys = Object.keys(obj).sort();\n var arr = [];\n for(var i=0;i b.BuildingType == this.currentBuildingType).Bedarfsvolumenstrom;\n //set non-selected values to null and round necessary results\n if(projectBedarf && this.editingData.ErmittlungsTyp === projectBedarf.ErmittlungsTyp){\n let changed = true;\n switch(this.editingData.ErmittlungsTyp){\n case(this.ErmittlungsTypOther.BvsDirekt):\n if(projectBedarf.ErmittlungBvsDirekt.Bedarfsvolumenstrom === this.editingData.ErmittlungBvsDirekt.Bedarfsvolumenstrom)\n changed = false;\n break;\n case(this.ErmittlungsTypOther.Exakt):\n if(this.editingData.ErmittlungOtherExakt.gleichzeitigkeitLinear === projectBedarf.ErmittlungOtherExakt.gleichzeitigkeitLinear &&\n this.editingData.ErmittlungOtherExakt.Gleichzeitigkeit === projectBedarf.ErmittlungOtherExakt.Gleichzeitigkeit)\n {\n if(JSON.stringify(this.editingData.ErmittlungOtherExakt.ZapfstellenFrei) === JSON.stringify(projectBedarf.ErmittlungOtherExakt.ZapfstellenFrei) &&\n JSON.stringify(this.editingData.ErmittlungOtherExakt.ZapfstellenVordefiniert) === JSON.stringify(projectBedarf.ErmittlungOtherExakt.ZapfstellenVordefiniert))\n changed = false;\n }\n break;\n case(this.ErmittlungsTypOther.Grob):\n if(JSON.stringify(this.editingData.ErmittlungOtherGrob.WohneinheitenAbnehmerAnzahl) === JSON.stringify(projectBedarf.ErmittlungOtherGrob.WohneinheitenAbnehmerAnzahl))\n changed = false;\n break;\n }\n if(!changed){\n this.currentProject.SectionStates.BuildingTypeBedarfsvolumenstromStates\n .find(s => s.Key == this.getBuildingType()).Value = SectionState.Set;\n \n this.DataService.saveCurrentProject()\n .then(_ => this.router.navigate([`/project-view/${this.currentProject.ProjectId}`]));\n return;\n }\n }\n \n // Overwrite BVS object in project entity with the new version\n this.currentProject.OtherBuildings.find(b => b.BuildingType == this.currentBuildingType).Bedarfsvolumenstrom = this.clone(this.editingData);\n\n // Call base implementation\n this.onClickSaveBase();\n }\n public onClickEditZapfstelleVordefiniert(zapfstelle: VordefinierteZapfstelle, index: number): void {\n this.editingItemIsFree = false;\n this.editingItemIndex = index;\n this.currentType = 'Vordefiniert';\n this.dialogData.reset();\n this.dialogData.selectVordefiniertItem(zapfstelle, Number(index));\n this.dialogData.open();\n }\n public onClickDeleteZapfstelleVordefiniert(index: number): void {\n this.deleteIsFree = false;\n this.deleteIndex = index;\n this.deleteDialog.show();\n }\n public onClickEditZapfstelleFrei(zapfstelle: FreieZapfstelle, index: number): void {\n this.editingItemIsFree = true;\n this.editingItemIndex = index;\n this.currentType = 'Manual';\n this.dialogData.reset();\n this.dialogData.selectFreeItem(zapfstelle, Number(index));\n this.dialogData.open();\n }\n public onClickDeleteZapfstelleFrei(index: number): void {\n this.deleteIsFree = true;\n this.deleteIndex = index;\n this.deleteDialog.show();\n }\n public onClickAddNewZapfstelle(): void {\n this.dialogData.reset();\n this.dialogData.open();\n }\n\n public zapfstellenTypeHasChanged(): boolean {\n return this.editingItemIsFree == null\n || (this.editingItemIsFree == false && this.currentType == 'Manual')\n || (this.editingItemIsFree == true && this.currentType != 'Manual');\n }\n\n // Change Events\n public onSelect(args) {\n // var multiObject = document.getElementById(id).parentElement;\n var width = this.getTextWidth(args.itemData.DisplayNameLoc, \"bold 22px viega-thin\");\n\n // 20px added for dropdownIcon width\n this.ddlObj.element.style.width = width + 20 + \"px\";\n }\n getTextWidth(text, font) {\n // re-use canvas object for better performance\n var canvas =\n (this.getTextWidth as any).canvas ||\n ((this.getTextWidth as any).canvas = document.createElement(\"canvas\"));\n var context = canvas.getContext(\"2d\");\n context.font = font;\n var metrics = context.measureText(text);\n return metrics.width;\n }\n public onChangeErmittlungstyp(typ: BedarfsvolumenstromErmittlungstypOther): void {\n // Set type\n this.editingData.ErmittlungsTyp = typ;\n\n // Init type field object\n switch(typ){\n case BedarfsvolumenstromErmittlungstypOther.BvsDirekt:\n if(this.editingData.ErmittlungBvsDirekt == null){\n this.editingData.ErmittlungBvsDirekt = {\n Bedarfsvolumenstrom: 0\n }\n }\n break;\n case BedarfsvolumenstromErmittlungstypOther.Grob:\n if(this.editingData.ErmittlungOtherGrob == null){\n this.editingData.ErmittlungOtherGrob = {\n WohneinheitenAbnehmerAnzahl: this.facilityGroups.map(g => { return { Key: g.FacilityGroupId, Value: 0 }})\n }\n }\n break;\n case BedarfsvolumenstromErmittlungstypOther.Exakt:\n if(this.editingData.ErmittlungOtherExakt == null){\n this.editingData.ErmittlungOtherExakt = {\n ZapfstellenFrei: [],\n ZapfstellenVordefiniert: [],\n gleichzeitigkeitLinear: 0\n }\n }\n if(this.buildingTypeInfo.LineareGleichzeitigkeitFaktor){\n\n this.editingData.ErmittlungOtherExakt.Gleichzeitigkeit = 'Manuell';\n this.editingData.ErmittlungOtherExakt.gleichzeitigkeitLinear = this.buildingTypeInfo.LineareGleichzeitigkeitFaktor;\n }\n break;\n }\n\n // Recalculate\n this.calculateBvs();\n }\n\n // Dialog events\n public onZapfstelleAdd($event): void {\n\n // Decide wether to save a new or edit an existing item\n if(this.dialogData.currentlyFree){\n this.editingData.ErmittlungOtherExakt.ZapfstellenFrei.push($event);\n this.dialogData.close();\n } else {\n this.editingData.ErmittlungOtherExakt.ZapfstellenVordefiniert.push($event);\n this.dialogData.close();\n }\n\n // Update grid\n this.gridFreieZapfstelle.refresh();\n this.gridVordefinierteZapfstelle.refresh();\n\n // Recalculate\n this.calculateBvs();\n }\n public onCloseInvalidFieldsDialog(): void {\n this.invalidFieldsDialog.hide();\n }\n public onZapfstelleEdit($event): void {\n if(this.zapfstellenTypeHasChanged()){\n if(this.editingItemIsFree){\n this.editingData.ErmittlungOtherExakt.ZapfstellenFrei.splice(this.editingItemIndex, 1);\n this.editingData.ErmittlungOtherExakt.ZapfstellenVordefiniert.push($event);\n } else {\n this.editingData.ErmittlungOtherExakt.ZapfstellenVordefiniert.splice(this.editingItemIndex, 1);\n this.editingData.ErmittlungOtherExakt.ZapfstellenFrei.push($event);\n }\n } else {\n if(this.editingItemIsFree){\n this.editingData.ErmittlungOtherExakt.ZapfstellenFrei.splice(\n this.editingItemIndex, 1, $event\n );\n } else {\n this.editingData.ErmittlungOtherExakt.ZapfstellenVordefiniert.splice(\n this.editingItemIndex, 1, $event\n );\n }\n }\n\n //Update Grid\n this.gridFreieZapfstelle.refresh();\n this.gridVordefinierteZapfstelle.refresh();\n\n // Recalculate\n this.calculateBvs();\n }\n\n public onZapfstelleDelete(): void {\n // Delete item\n if(this.deleteIsFree){\n this.editingData.ErmittlungOtherExakt.ZapfstellenFrei.splice(this.deleteIndex, 1);\n } else {\n this.editingData.ErmittlungOtherExakt.ZapfstellenVordefiniert.splice(this.deleteIndex, 1);\n }\n\n // Reset values\n this.deleteIsFree = null;\n this.deleteIndex = null;\n\n // Update grid\n this.gridFreieZapfstelle.refresh();\n this.gridVordefinierteZapfstelle.refresh();\n this.deleteDialog.hide();\n\n // Recalculate\n this.calculateBvs();\n }\n\n // Formatters\n public formatErgebnisBvs(): string {\n return this.formatterService.formatNumber(this.editingData.BedarfsvolumenstromErgebnisLMin, 'LiterPerMinute', { maximumFractionDigits: 0 })\n }\n public getVordefinierteZapfstelleTypeName(zapfstelle: VordefinierteZapfstelle): string {\n return this.allFacilities.find(f => f.VdiFacilityId == zapfstelle.Typ).DisplayNameLoc;\n }\n public formatBerechnungsdurchfluss(fluss: number): string {\n if(fluss == null)\n return \"\";\n else\n return this.formatterService.formatNumber(fluss, 'LiterPerSecond', { maximumFractionDigits: 2, minimumFractionDigits: 2 })\n }\n\n // Condition Validators\n public isSaveValid(): boolean {\n return this.editingData.BedarfsvolumenstromErgebnisLMin > 0\n && this.editingData.BedarfsvolumenstromErgebnisLMin <= 140\n }\n public isEntnahmestelleErrorShown(): boolean {\n return this.editingData.ErmittlungsTyp == BedarfsvolumenstromErmittlungstypOther.Exakt &&\n (this.editingData.ErmittlungOtherExakt.ZapfstellenFrei == null || this.editingData.ErmittlungOtherExakt.ZapfstellenFrei.length <= 0)\n && (this.editingData.ErmittlungOtherExakt.ZapfstellenVordefiniert == null || this.editingData.ErmittlungOtherExakt.ZapfstellenVordefiniert.length <= 0);\n }\n public isToHighVolumeShown(): boolean{\n return this.editingData.BedarfsvolumenstromErgebnisLMin > 140;\n }\n public isToLowVolumeShown(): boolean{\n return this.editingData.BedarfsvolumenstromErgebnisLMin < 4;\n }\n\n}\n","\n\n\n \n
      \n \n \n
      \n \n
      \n \n
      \n

      \n  \n

      \n
      \n
      \n \n
      \n
      \n

      {{'ErrorEntnahmestelle_SD' | translate}}

      \n
      \n
      \n \n

      {{'ErrorKeineDte_SD' | translate}}

      \n
      \n
      \n \n

      {{'ErrorMinBedarfsvolumenstrom_SD' | translate}}

      \n
      \n
      \n {{'Result_T' | translate}}\n {{'ResultBedarfsvolumenstrom_T' | translate: formatErgebnisBvs()}}\n \n
      \n
      \n
      \n
      \n\n \n
      \n
      \n {{'Headline_T' | translate}}\n \n
      \n
      \n \n
      \n \n
      \n
      \n
      \n \n {{'#Generic.Unit.LiterPerMinute_T' | translate}}\n
      \n
      \n\n \n
      \n
      \n \n \n
      \n
      \n
      \n
      \n
      \n
      \n \n
      \n
      \n \n
      \n
      \n
      \n
      \n\n \n
      \n
      \n \n \n
      \n
      \n
      \n
      \n
      \n {{'ExaktTypRadio.HeadlineGleichzeitigkeit_T' | translate}}\n \n
      \n \n
      \n
      \n
      \n {{'ExaktTypRadio.SliderNameLinear_T' | translate}}\n
      \n \n {{'#Generic.Unit.Percent_T' | translate}}\n
      \n
      \n
      \n
      \n
      \n
      \n \n \n\n \n \n
      \n {{getVordefinierteZapfstelleTypeName(data)}}\n
      \n
      \n
      \n\n \n \n
      \n {{formatBerechnungsdurchfluss(data.BerechnungsflussLiterSek)}}\n
      \n
      \n
      \n\n \n \n
      \n {{formatBerechnungsdurchfluss(data.BerechnungsflussSummeLiterSek)}}\n
      \n
      \n
      \n \n \n
      \n {{data.Komfortstufe + 1}}\n
      \n
      \n
      \n \n \n
      \n \n \n
      \n
      \n
      \n
      \n \n
      \n
      \n
      \n
      \n
      \n {{'ExaktTypRadio.HeadlineNorm_T' | translate}}\n
      \n \n \n \n \n \n
      \n {{formatBerechnungsdurchfluss(data.BerechnungsflussLiterSek)}}\n
      \n
      \n
      \n \n \n
      \n {{formatBerechnungsdurchfluss(data.BerechnungsflussSummeLiterSek)}}\n
      \n
      \n
      \n \n \n \n \n \n
      \n \n \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n
      140\">\n \n

      {{'ExaktTypRadio.ErrorBerechnungsdurchfluss_SD' | translate}}

      \n
      \n
      \n
      \n \n
      \n
      \n
      \n
      \n
      \n\n\n\n\n\n\n \n
      \n {{'ExaktTypRadio.DeleteDialogContent_SD' | translate}}\n
      \n
      \n","export { LogoModule } from './logo.module';\nexport { LogoComponent } from './logo.component';\n","import { Injectable } from \"@angular/core\";\nimport { ActivatedRouteSnapshot, Resolve, Router } from \"@angular/router\";\nimport { ProjectEntity } from \"./BackendApi/projectentity.entity\";\nimport { ProjectDataService } from \"./project-data.service\";\n\n@Injectable({providedIn: 'root'})\nexport class BuildingTypeResolver implements Resolve {\n // Constructors\n constructor(\n private readonly router: Router\n ){ } \n \n // Methods\n public resolve(ars: ActivatedRouteSnapshot): string {\n return ars.paramMap.get('buildingType');\n }\n}","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { DropDownListComponent } from '@syncfusion/ej2-angular-dropdowns';\nimport { GridComponent } from '@syncfusion/ej2-angular-grids';\nimport { ChangeEventArgs, SliderComponent } from '@syncfusion/ej2-angular-inputs';\nimport { DialogComponent, PositionDataModel } from '@syncfusion/ej2-angular-popups';\nimport { AggregatorDataService } from 'src/app/core/AggregatorDataService';\nimport { ProjectEntity } from 'src/app/core/BackendApi/projectentity.entity';\nimport { Wärmeerzeuger } from 'src/app/core/BackendApi/wärmeerzeuger.complex';\nimport { HeatGeneratorRow } from 'src/app/core/DteufcAggregatorServiceApi/heatgeneratorrow.complex';\nimport { Energielabel, EnergiespeicherErmittlungstyp } from 'src/app/core/Enums';\nimport { ProjectDataService } from 'src/app/core/project-data.service';\nimport { ValueFormatterService } from 'src/app/core/ValueFormatterService';\nimport { provideContext } from 'src/core-lib/angular/context-util';\nimport { LangService } from 'src/core-lib/ej2/services/LangService';\n\n@Component({\n selector: 'app-heat-generating-types',\n templateUrl: './heat-generating-types.component.html',\n styleUrls: ['./heat-generating-types.component.scss'],\n providers: [provideContext(\"HeatGeneratingTypes\")],\n})\nexport class HeatGeneratingTypesComponent implements OnInit {\n\n @ViewChild('addDataDialog')\n public AddDataDialog: DialogComponent;\n\n\n @ViewChild(\"delete\") public DeleteDialog: DialogComponent;\n\n @ViewChild('editDataDialog')\n public EditDataDialog: DialogComponent;\n\n @ViewChild('errorRequiredDialog')\n public ErrorRequiredDialog: DialogComponent;\n\n @ViewChild('errorMaxTypesDialog')\n public ErrorMaxTypesDialog: DialogComponent;\n\n @ViewChild('typeDropdownAdd')\n public TypeDropdownAdd: DropDownListComponent;\n\n @ViewChild('typeDropdownEdit')\n public TypeDropdownEdit: DropDownListComponent;\n\n @ViewChild('grid')\n public Grid: GridComponent;\n\n @ViewChild('slider')\n public Slider: SliderComponent;\n\n stepText = this.langService.getString('PanelStepText_T');\n stepBack = this.langService.getString('PanelStepBackLabel_T');\n stepTitle = this.langService.getString('PanelHeadline_T');\n stepDescription = this.langService.getString('PanelDescription_D');\n energyLabels = this.aggregatorDataService.aggregatorData.Tables.StorageEnergyEfficiencyCategoryRows;\n\n addOrEditDataDialogHeader = this.langService.getString('AddDataDialog.Headline_T');\n errorDialogHeader = this.langService.getString('ErrorRequiredDialog.Headline_T');\n\n addOrEditDataDialogWidth = \"40rem\"\n errorRequiredDialogWidth = \"30%\"\n errorMaxTypesDialogWidth = \"40em\";\n deleteDialogWidth = \"40%\";\n errorDialogHeight = \"65em\"\n\n dialogPosition: PositionDataModel = {X: 'center', Y: 'center'}\n dialogTarget = \"app-heat-generating-types\";\n dialogWidth = \"50%\";\n dialogHeight = \"65em\";\n\n public gridData: any[] = [];\n\n public heatGeneratorData: any[];\n fields = { text:\"DisplayNameLoc\", value:\"HeatGeneratorId\" }\n\n constructor(\n private activatedRoute: ActivatedRoute,\n private readonly router: Router,\n private aggregatorDataService: AggregatorDataService,\n private langService: LangService,\n private dataService: ProjectDataService,\n private formatter: ValueFormatterService\n ) { }\n\n currentGenerator: Wärmeerzeuger;\n selectedProject: ProjectEntity;\n _power: number = 0;\n _delay: number = 0;\n\n _editPower: number = 0;\n _editDelay: number = 0;\n\n _index: number;\n\n\n\n ngOnInit(): void {\n\n let urlProject = this.activatedRoute.snapshot.data['project'];\n if(!this.dataService.TempProject){\n this.dataService.setTempProject(urlProject);\n }\n\n this.selectedProject = this.dataService.TempProject;\n\n if (!this.selectedProject) {\n if (urlProject) {\n this.router.navigate([`/project-view/${urlProject.ProjectId}`]);\n } else {\n this.router.navigate([`/home`]);\n }\n return;\n }\n\n this.currentGenerator = {};\n\n if(this.selectedProject.ProjectValues.Energiespeicher){\n //DEBUG, falls alte Projekte mit Grob bearbeitet werden\n if(this.selectedProject.ProjectValues.Energiespeicher.Ermittlungstyp != EnergiespeicherErmittlungstyp.Exakt){\n this.selectedProject.ProjectValues.Energiespeicher.Ermittlungstyp = EnergiespeicherErmittlungstyp.Exakt;\n }\n\n if(this.selectedProject.ProjectValues.Energiespeicher.Wärmeerzeuger && this.selectedProject.ProjectValues.Energiespeicher.Ermittlungstyp == EnergiespeicherErmittlungstyp.Exakt){\n this.gridData = this.selectedProject.ProjectValues.Energiespeicher.Wärmeerzeuger;\n }\n else{\n this.selectedProject.ProjectValues.Energiespeicher.Wärmeerzeuger = [];\n }\n }\n else{\n this.selectedProject.ProjectValues.Energiespeicher = {\n Ermittlungstyp: EnergiespeicherErmittlungstyp.Exakt,\n Energielabel: null,\n MinutenwerteEnergiebedarf: null,\n MinutenwerteEnergiebedarfAbgesenkt: null,\n MinutenwerteQStoOn: null,\n MinutenwerteQStoOnAbgesenkt: null,\n MinutenwerteVersorgung: null,\n MinutenwerteVersorgungAbgesenkt: null\n }\n }\n\n\n\n this.heatGeneratorData = this.aggregatorDataService.aggregatorData.Tables.HeatGeneratorRows\n .filter(g => g.HeatGeneratorId !== 'Grobauslegung');\n\n\n }\n\n onOverlayClick(){\n this.AddDataDialog.hide();\n this.EditDataDialog.hide();\n this.resetTempVars();\n }\n\n public getErzeugerDisplayName(id: string): string {\n return this.heatGeneratorData.find(g => g.HeatGeneratorId == id).DisplayNameLoc;\n }\n\n getZirkuStrom(): string{\n return this.formatter.formatNumber(this.selectedProject.ProjectValues.Zirkulationsvolumenstrom.ZirkulationsvolumenstromBerechnetLMin, 'LiterPerMinute', {maximumFractionDigits: 1, minimumFractionDigits: 1})\n }\n\n getZirkuVerlust(): string{\n return this.formatter.formatNumber(Number(this.selectedProject.ProjectValues.Zirkulationsvolumenstrom.ZirkulationsverlustleistungBerechnetWatt), 'Watts', {maximumFractionDigits: 1, minimumFractionDigits: 1})\n }\n\n openAddDataDialog = (): void => {\n this.AddDataDialog.show();\n }\n\n openEditDataDialog = (): void => {\n this.EditDataDialog.show();\n }\n\n closeEditDataDialog = (): void => {\n this.EditDataDialog.hide();\n\n }\n\n\n onChangeDropdown(args){\n\n if(args.itemData && args.isInteracted){\n\n this.currentGenerator = {\n ErzeugerArt: args.value,\n LeistungWarmwasserBereitungKw: args.itemData.LeistungWWBereitungKw,\n VerzoegerungNachheizungMin: args.itemData.VerzoegerungNachheizungMin\n }\n\n this._power = args.itemData.LeistungWWBereitungKw;\n this._delay = args.itemData.VerzoegerungNachheizungMin;\n this._editPower = args.itemData.LeistungWWBereitungKw;\n this._editDelay = args.itemData.VerzoegerungNachheizungMin;\n }\n\n }\n\n\n\n goBack() {\n this.router.navigate([`/project-view/${this.selectedProject.ProjectId}`]);\n }\n\n navigateNext(){\n\n this.selectedProject.ProjectValues.Energiespeicher.Ermittlungstyp = EnergiespeicherErmittlungstyp.Exakt;\n if(!this.selectedProject.ProjectValues.Energiespeicher.ErmittlungsESExakt){\n this.selectedProject.ProjectValues.Energiespeicher.ErmittlungsESExakt = { };\n }\n\n if(this.gridData.length > 0){\n this.selectedProject.ProjectValues.Energiespeicher.Wärmeerzeuger = this.gridData;\n }\n\n this.router.navigate([`/result/${this.selectedProject.ProjectId}`]);\n }\n\n showIndex(index: number): number{\n return Number(index) + 1;\n }\n\n addHeatType(): void{\n if(this.TypeDropdownAdd.value){\n\n var newEntry = {\n ErzeugerArt: this.currentGenerator.ErzeugerArt,\n LeistungWarmwasserBereitungKw: this._power,\n VerzoegerungNachheizungMin: this._delay\n }\n\n if(this.gridData.length <= 3){\n this.gridData.push(newEntry);\n this.Grid.refresh();\n this.AddDataDialog.hide();\n }\n else{\n this.ErrorMaxTypesDialog.show(); // ??? Wird erst beim Übernehmen gezeigt? Testen!\n this.AddDataDialog.hide();\n }\n this.resetTempVars();\n\n }\n else{\n this.ErrorRequiredDialog.show();\n }\n\n\n }\n\n saveHeattype(): void{\n\n var editedEntry = {\n ErzeugerArt: this.currentGenerator.ErzeugerArt,\n LeistungWarmwasserBereitungKw: this._editPower,\n VerzoegerungNachheizungMin: this._editDelay\n }\n\n this.gridData[this._index] = editedEntry;\n\n this.Grid.refresh();\n this.closeEditDataDialog();\n\n this.resetTempVars();\n }\n\n\n deleteHeatType(data: any): void{\n this._index = data.index;\n this.openDeleteDialog();\n }\n\n openDeleteDialog = (): void => {\n this.DeleteDialog.show();\n }\n\n closeDeleteDialog = (): void => {\n this.DeleteDialog.hide();\n }\n\n confirmDeleteObject = (): void => {\n this.gridData.splice(this._index, 1);\n this.Grid.refresh();\n this.closeDeleteDialog();\n }\n\n copyHeatType(data: any): void{\n var newEntry = {\n ErzeugerArt: data.ErzeugerArt,\n LeistungWarmwasserBereitungKw: data.LeistungWarmwasserBereitungKw,\n VerzoegerungNachheizungMin: data.VerzoegerungNachheizungMin\n }\n\n if(this.gridData.length <= 3){\n this.gridData.push(newEntry);\n this.Grid.refresh();\n }\n else{\n this.ErrorMaxTypesDialog.show(); // ??? Wird erst beim Übernehmen gezeigt? Testen!\n }\n\n this._index = data.index;\n }\n\n editHeatType(data: any): void{\n this._index = data.index;\n\n\n this.currentGenerator = {\n ErzeugerArt: data.ErzeugerArt,\n LeistungWarmwasserBereitungKw: data.LeistungWarmwasserBereitungKw,\n VerzoegerungNachheizungMin: data.VerzoegerungNachheizungMin\n }\n\n\n this.TypeDropdownEdit.value = data.ErzeugerArt;\n this._editPower = data.LeistungWarmwasserBereitungKw;\n this._editDelay = data.VerzoegerungNachheizungMin;\n\n this.openEditDataDialog();\n }\n\n resetTempVars(){\n\n this._power = 0;\n this._delay = 0;\n this._editPower = 0;\n this._editDelay = 0;\n\n this.TypeDropdownAdd.value = null;\n this.TypeDropdownEdit.value = null;\n }\n\n\n\ncheckContinue(){\n return this.gridData.length > 0 && this.selectedProject.ProjectValues.Energiespeicher.Energielabel != null;\n}\n\nchangeOption(id: string){\n var label = 0;\n switch(id){\n case(\"APlus\"):\n label = 0;\n break;\n case(\"A\"):\n label = 1;\n break;\n case(\"B\"):\n label = 2;\n break;\n case(\"C\"):\n label = 3;\n break;\n }\n this.selectedProject.ProjectValues.Energiespeicher.Energielabel = label;\n}\n\ncheckOptions(label: string){\n switch(label) {\n case(\"APlus\"):\n return this.selectedProject.ProjectValues.Energiespeicher?.Energielabel === Energielabel.APlus;\n case(\"A\"):\n return this.selectedProject.ProjectValues.Energiespeicher?.Energielabel === Energielabel.A;\n case(\"B\"):\n return this.selectedProject.ProjectValues.Energiespeicher?.Energielabel === Energielabel.B;\n case(\"C\"):\n return this.selectedProject.ProjectValues.Energiespeicher?.Energielabel === Energielabel.C;\n default: return false;\n }\n}\n\ncancelAddDataDialog(){\n this.AddDataDialog.hide();\n}\n\ncancelEditDataDialog(){\n this.EditDataDialog.hide();\n}\n\naddDataButtons = [\n {\n 'click': this.cancelAddDataDialog.bind(this),\n buttonModel: {\n content: this.langService.getString('AddDataDialog.AbbrechenBtn_T'),\n }\n },\n {\n 'click': this.addHeatType.bind(this),\n buttonModel:{\n content: this.langService.getString('AddDataDialog.UebernehmenBtn_T'),\n isPrimary: false,\n cssClass: 'e-primary'\n }\n} ];\n\neditDataButtons = [\n {\n 'click': this.cancelEditDataDialog.bind(this),\n buttonModel: {\n content: this.langService.getString('EditDataDialog.AbbrechenBtn_T'),\n }\n },\n {\n 'click': this.saveHeattype.bind(this),\n buttonModel:{\n content: this.langService.getString('EditDataDialog.UebernehmenBtn_T'),\n isPrimary: false,\n cssClass: 'e-primary'\n }\n} ];\n\ndeleteButtons = [ {\n 'click': this.closeDeleteDialog.bind(this),\n buttonModel:{\n content: this.langService.getString('DeleteDialog.AbbrechenBtn_T'),\n isPrimary: false\n }\n },\n {\n 'click': this.confirmDeleteObject.bind(this),\n buttonModel:{\n content: this.langService.getString('DeleteDialog.LoeschenBtn_T'),\n isPrimary: false,\n cssClass: 'e-primary'\n }\n }];\n\n}\n","\n
      \n \n \n
      \n \n
      \n \n
      \n

      \n  \n

      \n
      \n \n
      \n\n
      \n
      \n \n
      \n
      \n \n \n
      \n\n \n
      \n
      \n
      \n\n
      \n
      \n {{'Headline_T' | translate}}\n \n
      \n
      \n
      \n
      \n
      \n {{'HeadlineWärmeerzeugertypen_T' | translate}}\n \n
      \n
      \n \n \n \n \n
      \n Typ {{showIndex(data.index)}}\n {{getErzeugerDisplayName(data.ErzeugerArt)}}\n
      \n
      \n
      \n \n \n {{data.LeistungWarmwasserBereitungKw}} kW\n \n \n \n \n {{data.VerzoegerungNachheizungMin}} min\n \n \n \n \n
      \n \n \n \n
      \n
      \n
      \n
      \n
      \n \n
      \n
      \n
      \n
      \n\n
      \n
      \n {{'HeadlineEnergielabel_T' | translate}}\n \n
      \n
      \n \n \n
      \n\n
      \n
      \n
      \n\n\n\n\n\n \n
      \n {{addOrEditDataDialogHeader}}\n \n
      \n
      \n
      \n
      \n {{'AddDataDialog.HeadlineDropdown_T' | translate}}\n \n
      \n
      \n \n
      \n
      \n {{'AddDataDialog.HeadlineSliderLeistung_T' | translate}}\n \n
      \n
      \n \n \n {{'#Generic.Unit.KiloWatts_T' | translate}}\n
      \n
      \n {{'AddDataDialog.HeadlineSliderVerzoegerung_T' | translate}}\n \n
      \n
      \n \n \n {{'#Generic.Unit.Minutes_T' | translate}}\n
      \n
      \n
      \n\n\n\n \n
      \n {{addOrEditDataDialogHeader}}\n \n
      \n
      \n
      \n
      \n {{'EditDataDialog.HeadlineDropdown_T' | translate}}\n \n
      \n
      \n \n
      \n
      \n {{'EditDataDialog.HeadlineSliderLeistung_T' | translate}}\n \n
      \n
      \n \n \n {{'#Generic.Unit.KiloWatts_T' | translate}}\n
      \n
      \n {{'EditDataDialog.HeadlineSliderVerzoegerung_T' | translate}}\n \n
      \n
      \n \n \n {{'#Generic.Unit.Minutes_T' | translate}}\n
      \n
      \n
      \n\n\n\n \n
      \n

      {{'DeleteDialog.Description_SD' | translate}}

      \n
      \n
      \n
      \n\n\n \n
      \n

      {{'ErrorRequiredDialog.Description_SD' | translate}}

      \n
      \n
      \n
      \n\n\n \n
      \n

      {{'ErrorMaxTypesDialog.DescriptionNichtMehr_SD' | translate}}

      \n\n

      {{'ErrorMaxTypesDialog.DescriptionBitteLoeschen_D' | translate}}

      \n
      \n
      \n
      ","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { provideContext } from 'src/core-lib/angular/context-util';\nimport { LangService } from 'src/core-lib/ej2/services/LangService';\n\n@Component({\n selector: 'app-selection-item-radio',\n templateUrl: './selection-item-radio.component.html',\n styleUrls: ['./selection-item-radio.component.scss'],\n providers: [provideContext('SelectionItemRadio')]\n})\nexport class SelectionItemRadioComponent implements OnInit {\n\n @Input() itemIndex: number;\n @Input() itemTitle: string;\n @Input() imgSrc: string;\n @Input() itemChecked: boolean;\n @Input() description: string;\n @Input() optionGroup: string;\n\n @Output() stateChanged = new EventEmitter();\n\n\n constructor(private langService: LangService) { }\n\n ngOnInit(): void {\n\n }\n\n\n onChange(){\n this.stateChanged.emit();\n}\n}\n","
      \n
      \n \n
      \n
      \n
      \n \n
      \n
      \n {{description}}\n
      \n
      \n\n
      \n","import { NgModule } from '@angular/core';\nimport { PspNotifyIconComponent } from './psp-notify-icon.component';\n\n@NgModule(\n{\n declarations:\n [\n PspNotifyIconComponent,\n ],\n exports:\n [\n PspNotifyIconComponent,\n ],\n})\nexport class PspNotifyIconModule {}\n","import { Injectable } from '@angular/core';\nimport { DteRow } from '../DteufcAggregatorServiceApi/dterow.complex';\nimport { UfcRow } from '../DteufcAggregatorServiceApi/ufcrow.complex';\nimport { DteMath } from './DteMath';\nimport { MathLogger } from './MathLogger';\n\nexport interface ICirculationFlowFromPipesParams\n{\n leitungKellerMeter: number;\n leitungSchachtMeter: number;\n leitungNutzbereichMeter: number;\n}\n\nexport interface ICirculationFlowFromPipesResult\n{\n leitungKellerWatt: number;\n leitungSchachtWatt: number;\n leitungNutzbereichWatt: number;\n zirukulationsvolumenstromLiterStunde: number;\n}\n\n/**\n * Circulation flow (Zirkulationsvolumenstrom) related mathematic functions.\n *\n * Sources of mathematical formulas:\n * - 210716-V1.0 Erfassungsbogen_DTE-UFC-Speicher.xlsm\n * - 211221-KR Schema Auswahl DTE V1.2.xlsx\n *\n * rauch@klaus-rauch.de\n */\n@Injectable()\nexport class CirculationFlowMath\n{\n private static readonly LeitungKellerWattMeter = 11;\n private static readonly LeitungSchachtWattMeter = 7;\n private static readonly LeitungNutzbereichWattMeter = 7;\n public static readonly Dichte = 0.985; // kg/l\n private static readonly KapazitätWasser = 1.163; //Wh/kgK\n\n /**\n * Result in liter/hour.\n */\n public zirkulationsvolumenstromFromVerlustleistung(verlustleistungKiloWatt: number): number\n {\n const logger = new MathLogger('ZirkulationsvolumenstromFromVerlustleistung');\n logger.logInputs(\n {\n verlustleistungKiloWatt,\n temperaturspreizungPwhPwhc: DteMath.TemperaturspreizungPwhPwhc,\n kapazitätWasser: CirculationFlowMath.KapazitätWasser,\n dichte: CirculationFlowMath.Dichte,\n });\n\n const result = verlustleistungKiloWatt * 1000 / (CirculationFlowMath.KapazitätWasser * DteMath.TemperaturspreizungPwhPwhc * CirculationFlowMath.Dichte);\n logger.logResult({ zirkulationsvolumenstrom: result });\n\n return result;\n }\n\n /**\n * Result in kilowatt.\n */\n public verlustleistungFromZirkulationsvolumenstrom(zirkulationsvolumenstromLMin: number): number\n {\n const logger = new MathLogger('VerlustleistungFromZirkulationsvolumenstrom');\n logger.logInputs(\n {\n zirkulationsvolumenstromLMin,\n emperaturspreizungPwhPwhc: DteMath.TemperaturspreizungPwhPwhc,\n kapazitätWasser: CirculationFlowMath.KapazitätWasser,\n });\n\n const result = zirkulationsvolumenstromLMin * (CirculationFlowMath.KapazitätWasser * DteMath.TemperaturspreizungPwhPwhc) / 1000;\n logger.logResult({ verlustleistungKiloWatt: result });\n\n return result;\n }\n\n /**\n * Result in Watt.\n */\n public verlustleistungAbgesenktFromVerlustleistung(pwhStandardbetrieb: number, pwhCAbgesenkt: number, verlustleistungStandardbetriebWatt: number): number\n {\n const logger = new MathLogger('VerlustleistungAbgesenktFromVerlustleistung');\n logger.logInputs(\n {\n pwhStandardbetrieb,\n pwhCAbgesenkt,\n temperaturspreizungPwhPwhc: DteMath.TemperaturspreizungPwhPwhc,\n umgebungstemperatur: DteMath.Umgebungstemperatur,\n verlustleistungStandardbetriebWatt: verlustleistungStandardbetriebWatt,\n });\n\n const reduzierteVerlustleistungFactor = (pwhCAbgesenkt - DteMath.Umgebungstemperatur) / (pwhStandardbetrieb - DteMath.TemperaturspreizungPwhPwhc - DteMath.Umgebungstemperatur);\n const result = verlustleistungStandardbetriebWatt * reduzierteVerlustleistungFactor;\n logger.logResult({ reduzierteVerlustleistungFactor, verlustleistungAbgesenktKiloWatt: result });\n\n return result;\n }\n\n /**\n * Result in liter/minute.\n */\n public zirkulationsvolumenstromFromMassenstrom(massenstromKgMin: number): number\n {\n const logger = new MathLogger('ZirkulationsvolumenstromFromMassenstrom');\n logger.logInputs({ massenstromKgMin });\n\n const result = massenstromKgMin / CirculationFlowMath.Dichte;\n logger.logResult({ zirkulationsvolumenstromLMin: result });\n\n return result;\n }\n\n /**\n * Result in kg/min.\n */\n public massenstromFromZirkulationsvolumenstrom(zirkulationsvolumenstromLMin: number): number\n {\n const logger = new MathLogger('MassenstromFromZirkulationsvolumenstrom');\n logger.logInputs({ zirkulationsvolumenstromLMin });\n\n const result = zirkulationsvolumenstromLMin * CirculationFlowMath.Dichte;\n logger.logResult({ massenstromKgMin: result });\n\n return result;\n }\n\n /**\n * Result in liter/hour.\n */\n public zirkulationsvolumenstromFromLeitungenDVGW553(params: ICirculationFlowFromPipesParams): ICirculationFlowFromPipesResult\n {\n const logger = new MathLogger('ZirkulationsvolumenstromFromLeitungenDVGW553');\n logger.logInputs(Object.assign({}, params,\n {\n emperaturspreizungPwhPwhc: DteMath.TemperaturspreizungPwhPwhc,\n kapazitätWasser: CirculationFlowMath.KapazitätWasser,\n dichte: CirculationFlowMath.Dichte\n }));\n\n const leitungKellerWatt = params.leitungKellerMeter * CirculationFlowMath.LeitungKellerWattMeter;\n const leitungSchachtWatt = params.leitungSchachtMeter * CirculationFlowMath.LeitungSchachtWattMeter;\n const leitungNutzbereichWatt = params.leitungNutzbereichMeter * CirculationFlowMath.LeitungNutzbereichWattMeter;\n const gesamtWatt = leitungKellerWatt + leitungSchachtWatt + leitungNutzbereichWatt;\n\n logger.logIntermediateResult(\n {\n leitungKellerWatt,\n leitungSchachtWatt,\n leitungNutzbereichWatt,\n gesamtWatt,\n });\n\n const result: ICirculationFlowFromPipesResult =\n {\n leitungKellerWatt: leitungKellerWatt,\n leitungSchachtWatt: leitungSchachtWatt,\n leitungNutzbereichWatt: leitungNutzbereichWatt,\n zirukulationsvolumenstromLiterStunde: gesamtWatt / (CirculationFlowMath.KapazitätWasser * DteMath.TemperaturspreizungPwhPwhc * CirculationFlowMath.Dichte),\n };\n logger.logResult(result);\n\n return result;\n }\n\n /**\n * Requires a dte / ufc to be chosen in order to be calculated properly.\n * Result in liter/minute.\n */\n public filtervolumenstromFromZirkulationsvolumenstrom(zirkulationsvolumenstromLMin: number, ufc: UfcRow)\n {\n const logger = new MathLogger('FiltervolumenstromFromZirkulationsvolumenstrom');\n logger.logInputs({ zirkulationsvolumenstrom: zirkulationsvolumenstromLMin });\n\n const filtervolumenstrom = Math.max(zirkulationsvolumenstromLMin * 0.27, ufc.MinFiltervolumenstromLMin);\n logger.logResult({ filtervolumenstrom: filtervolumenstrom });\n\n return filtervolumenstrom;\n }\n\n /**\n * If this method returns an empty array, we can't let the user progress with the configured zirkulationsvolumenstrom.\n */\n public compatibleDtes(zirkulationsvolumenstromLMin: number, dteRows: DteRow[]): DteRow[]\n {\n return dteRows.filter(dte =>\n zirkulationsvolumenstromLMin >= dte.MinZirkulationsvolumenstromLMin &&\n zirkulationsvolumenstromLMin <= dte.MaxZirkulationsvolumenstromLMin\n );\n }\n}\n","import { log } from 'src/core-lib/logging';\n\n/**\n * To enable the logger type this in the dev console of the browser:\n * mathLogging = true\n */\nexport class MathLogger\n{\n private static instanceCounter: number = 1;\n\n private readonly instanceNo: number;\n\n public static get isLoggingEnabled(): boolean\n {\n return window['mathLogging'] === true;\n }\n\n public constructor(private calculationName: string)\n {\n this.instanceNo = MathLogger.instanceCounter++;\n }\n\n public logInputs(value: any)\n {\n if (MathLogger.isLoggingEnabled)\n log.verbose(value, `[CALC ${this.calculationName} ${this.instanceNo}] Inputs`);\n }\n\n public logIntermediateResult(value: any)\n {\n if (MathLogger.isLoggingEnabled)\n log.verbose(value, `[CALC ${this.calculationName} ${this.instanceNo}] Intermediate Results`);\n }\n\n public logResult(value: any)\n {\n if (MathLogger.isLoggingEnabled)\n log.verbose(value, `[CALC ${this.calculationName} ${this.instanceNo}] Results`);\n }\n\n public logWarning(message: string)\n {\n if (MathLogger.isLoggingEnabled)\n log.warning(`[CALC ${this.calculationName} ${message}]`);\n }\n}\n","export const events = {\n logoClick: 'logoClickEvent',\n created: 'createdEvent',\n destroyed: 'destroyedEvent',\n};\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RouterModule } from '@angular/router';\n\nimport { HeaderComponent } from './header.component';\nimport { LogoModule } from '../logo/logo.module';\n\n@NgModule({\n imports: [\n CommonModule,\n RouterModule,\n LogoModule,\n ],\n declarations: [\n HeaderComponent\n ],\n exports: [\n HeaderComponent\n ]\n})\nexport class HeaderModule { }\n","Array.prototype['count'] = function count(this: T[], predicate?: (item: T, index: number, array: T[]) => boolean): number\n{\n if (!predicate)\n return this.length;\n\n return this.reduce((previous: number, item: T, index: number, array: T[]) =>\n previous + (predicate(item, index, array) as any), 0);\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({name: 'stringReplace'})\nexport class StringReplacePipe implements PipeTransform\n{\n public transform(value: string, replaceRegex: string, withString: string): string\n {\n const regex = new RegExp(replaceRegex, 'g');\n return value.replace(regex, withString);\n }\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-example-page',\n templateUrl: './example-page.component.html',\n styleUrls: ['./example-page.component.scss']\n})\nexport class ExamplePageComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n goBack() {\n window.history.back();\n // this.router.navigate([`/project-view/${this.selectedProject.ProjectId}`]);\n }\n\n navigateNext(){\n }\n\n}\n","\n
      \n
      \n \n \n
      \n
      \n
      \n \n
      \n
      \n
      \n\n
      \n Titel der Seite\n\n
      \n
      ","import { ChangeDetectionStrategy, Component, ContentChild, ElementRef, Injector, Renderer2, ViewContainerRef } from '@angular/core';\nimport { ComponentBase, ComponentMixins, IComponentBase, setValue, Template } from 'src/core-lib/angular/util';\nimport { PspHelpNotifyIcon } from 'src/core-lib/ej2/components/navigation/psp-help-notify-icon/PspHelpNotifyIcon';\n\n// properties declared here can be changed by the user in the storyboard UI\nexport const propertyArgTypes =\n{\n hintType: { control: { type: 'radio', options: ['None', 'Unread', 'Urgent'] } },\n iconTooltip: { control: 'text' },\n iconCssClass: { control: 'text' },\n dropDownCssClass: { control: 'text' },\n cssClass: { control: 'text' },\n popupWidth: { control: 'text' },\n popupHeight: { control: 'text' },\n\n headerText: { control: 'text' },\n subheaderText: { control: 'text' },\n buttonText: { control: 'text' },\n buttonCssClass: { control: 'text' },\n buttonIconCssClass: { control: 'text' },\n};\n\n// declare some properties as bindable angular inputs\nconst inputBindings =\n[\n 'headerText',\n 'subheaderText',\n 'buttonText',\n 'buttonCssClass',\n 'buttonIconCssClass',\n 'itemDataSource',\n 'iconTooltip',\n 'iconCssClass',\n 'dropDownCssClass',\n 'cssClass',\n 'hintType',\n 'headerTemplate',\n 'itemTemplate',\n 'footerTemplate',\n 'actionFailureTemplate',\n 'noRecordsTemplate',\n 'popupWidth',\n 'popupHeight',\n];\n\n// prevent storybook from updating these properties\nconst changeIgnoredProperties: string[] = [];\n\n// declare some properties as bindable angular outputs\nconst outputBindings =\n[\n 'beforeOpenEvent',\n 'openEvent',\n 'closeEvent',\n 'clickEvent',\n 'selectEvent',\n 'createdEvent',\n 'destroyedEvent',\n 'buttonClickEvent',\n];\n\n@Component({\n selector: 'psp-help-notify-icon',\n template: '',\n inputs: inputBindings,\n outputs: outputBindings,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\n@ComponentMixins([ComponentBase])\nexport class PspHelpNotifyIconComponent extends PspHelpNotifyIcon implements IComponentBase\n{\n /** @ignore */\n public tagObjects: any = [];\n\n /** @ignore */\n public context : any;\n\n /** @ignore */\n public tags: string[] = [];\n\n /**\n * Accepts the template design and assigns it to the footer container of the popup list.\n * > For more details about the available template options refer to [`Template`](../../drop-down-list/templates) documentation.\n * @default null\n */\n @ContentChild('itemTemplate')\n @Template()\n public itemTemplate: any;\n\n /**\n * Accepts the template design and assigns it to the header container of the popup list.\n * > For more details about the available template options refer to [`Template`](../../drop-down-list/templates) documentation.\n * @default null\n */\n @ContentChild('headerTemplate')\n @Template()\n public headerTemplate: any;\n\n /**\n * Accepts the template design and assigns it to the header container of the popup list.\n * > For more details about the available template options refer to [`Template`](../../drop-down-list/templates) documentation.\n * @default null\n */\n @ContentChild('footerTemplate')\n @Template()\n public footerTemplate: any;\n\n protected changeIgnoredPropertyMap: { [propertyName: string]: boolean };\n\n public constructor(\n private ngEle: ElementRef,\n private srenderer: Renderer2,\n private viewContainerRef: ViewContainerRef,\n private injector: Injector\n )\n {\n super();\n\n this.element = this.ngEle.nativeElement;\n\n this.changeIgnoredPropertyMap = {};\n changeIgnoredProperties.forEach(prop => this.changeIgnoredPropertyMap[prop] = true);\n\n this.registerEvents(outputBindings);\n this.addTwoWay.call(this, []);\n setValue('currentInstance', this, viewContainerRef);\n this.context = new ComponentBase();\n }\n\n /** @ignore */\n public ngOnInit(): void\n {\n this.context.ngOnInit(this);\n }\n\n /** @ignore */\n public ngAfterViewInit(): void\n {\n this.context.ngAfterViewInit(this);\n }\n\n /** @ignore */\n public ngOnDestroy(): void\n {\n this.context.ngOnDestroy(this);\n }\n\n /** @ignore */\n public ngAfterContentChecked(): void\n {\n this.context.ngAfterContentChecked(this);\n }\n\n /** @ignore */\n public registerEvents: (eventList: string[]) => void;\n\n /** @ignore */\n public addTwoWay: (propList: string[]) => void;\n}\n","import { ChangeDetectionStrategy, Component, ContentChild, ElementRef, Injector, Renderer2, ViewContainerRef } from '@angular/core';\nimport { ComponentBase, ComponentMixins, IComponentBase, setValue, Template } from 'src/core-lib/angular/util';\nimport { PspUserNotifyIcon } from 'src/core-lib/ej2/components/navigation/psp-user-notify-icon/PspUserNotifyIcon';\n\n// properties declared here can be changed by the user in the storyboard UI\nexport const propertyArgTypes =\n{\n hintType: { control: { type: 'radio', options: ['None', 'Unread', 'Urgent'] } },\n iconTooltip: { control: 'text' },\n iconCssClass: { control: 'text' },\n dropDownCssClass: { control: 'text' },\n cssClass: { control: 'text' },\n popupWidth: { control: 'text' },\n popupHeight: { control: 'text' },\n\n headerText: { control: 'text' },\n subheaderText: { control: 'text' },\n buttonText: { control: 'text' },\n buttonCssClass: { control: 'text' },\n buttonIconCssClass: { control: 'text' },\n};\n\n// declare some properties as bindable angular inputs\nconst inputBindings =\n[\n 'headerText',\n 'subheaderText',\n 'buttonText',\n 'buttonCssClass',\n 'buttonIconCssClass',\n 'itemDataSource',\n 'iconTooltip',\n 'iconCssClass',\n 'dropDownCssClass',\n 'cssClass',\n 'hintType',\n 'headerTemplate',\n 'itemTemplate',\n 'footerTemplate',\n 'actionFailureTemplate',\n 'noRecordsTemplate',\n 'popupWidth',\n 'popupHeight',\n];\n\n// prevent storybook from updating these properties\nconst changeIgnoredProperties: string[] = [];\n\n// declare some properties as bindable angular outputs\nconst outputBindings =\n[\n 'beforeOpenEvent',\n 'openEvent',\n 'closeEvent',\n 'clickEvent',\n 'selectEvent',\n 'createdEvent',\n 'destroyedEvent',\n 'buttonClickEvent',\n];\n\n@Component({\n selector: 'psp-user-notify-icon',\n template: '',\n inputs: inputBindings,\n outputs: outputBindings,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\n@ComponentMixins([ComponentBase])\nexport class PspUserNotifyIconComponent extends PspUserNotifyIcon implements IComponentBase\n{\n /** @ignore */\n public tagObjects: any = [];\n\n /** @ignore */\n public context : any;\n\n /** @ignore */\n public tags: string[] = [];\n\n /**\n * Accepts the template design and assigns it to the footer container of the popup list.\n * > For more details about the available template options refer to [`Template`](../../drop-down-list/templates) documentation.\n * @default null\n */\n @ContentChild('itemTemplate')\n @Template()\n public itemTemplate: any;\n\n /**\n * Accepts the template design and assigns it to the header container of the popup list.\n * > For more details about the available template options refer to [`Template`](../../drop-down-list/templates) documentation.\n * @default null\n */\n @ContentChild('headerTemplate')\n @Template()\n public headerTemplate: any;\n\n /**\n * Accepts the template design and assigns it to the header container of the popup list.\n * > For more details about the available template options refer to [`Template`](../../drop-down-list/templates) documentation.\n * @default null\n */\n @ContentChild('footerTemplate')\n @Template()\n public footerTemplate: any;\n\n protected changeIgnoredPropertyMap: { [propertyName: string]: boolean };\n\n public constructor(\n private ngEle: ElementRef,\n private srenderer: Renderer2,\n private viewContainerRef: ViewContainerRef,\n private injector: Injector\n )\n {\n super();\n\n this.element = this.ngEle.nativeElement;\n\n this.changeIgnoredPropertyMap = {};\n changeIgnoredProperties.forEach(prop => this.changeIgnoredPropertyMap[prop] = true);\n\n this.registerEvents(outputBindings);\n this.addTwoWay.call(this, []);\n setValue('currentInstance', this, viewContainerRef);\n this.context = new ComponentBase();\n }\n\n /** @ignore */\n public ngOnInit(): void\n {\n this.context.ngOnInit(this);\n }\n\n /** @ignore */\n public ngAfterViewInit(): void\n {\n this.context.ngAfterViewInit(this);\n }\n\n /** @ignore */\n public ngOnDestroy(): void\n {\n this.context.ngOnDestroy(this);\n }\n\n /** @ignore */\n public ngAfterContentChecked(): void\n {\n this.context.ngAfterContentChecked(this);\n }\n\n /** @ignore */\n public registerEvents: (eventList: string[]) => void;\n\n /** @ignore */\n public addTwoWay: (propList: string[]) => void;\n}\n","import { Event, EmitType, EventHandler, Component, INotifyPropertyChanged, Property, addClass, removeClass, select } from '@syncfusion/ej2-base';\nimport { PopupEventArgs, SelectEventArgs } from '@syncfusion/ej2-dropdowns';\nimport { events } from './events';\nimport { PspButton } from '../../buttons/psp-button/PspButton';\nimport { PspNotifyIcon } from '../psp-notify-icon/PspNotifyIcon';\nimport { IPspUserNotifyIconModel } from './IPspUserNotifyIconModel';\n\nexport class PspUserNotifyIcon extends PspNotifyIcon implements INotifyPropertyChanged\n{\n private static readonly defaultHeaderTemplate = '


      ';\n private static readonly defaultFooterTemplate = '
      \n \n \n \n \n
      \n {{'Headline_T' | translate}}\n
      \n
      \n {{'DropDownHeadline_T' | translate}}\n \n
      \n \n
      \n
      \n
      \n \n
      \n
      \n {{description}}\n
      \n
      \n\n
      \n \n \n
      \n
      \n \n \n \n \n \n \n\n
      \n
      \n \n \n \n \n \n \n \n
      \n
      {{'HeadlineRohrlaengen_T' | translate}}\n
      \n \n
      \n
      \n
      {{'HeadlineAnzahlBoegen_T' | translate}}
      \n
      {{'HeadlineZusaetzlicherDruckverlust_T' | translate}}\n
      \n \n
      \n
      \n
      {{row.nameLoc}}\n
      \n \n \n \n
      \n
      \n
      \n \n \n \n
      \n
      \n
      \n \n \n \n
      \n
      \n
      \n
      \n\n","import { IHeatGeneratorParam, IStorageValuesResult, IStorageValuesParams, IMinuteValuesEnergyDemandParams, IMinuteValuesEnergyDemandResults, StorageMath } from 'src/app/core/math/StorageMath';\nimport { Energielabel, EnergiespeicherErmittlungstyp, SectionState } from 'src/app/core/Enums';\nimport { ProjectEntity } from 'src/app/core/BackendApi/projectentity.entity';\nimport { AggregatorDataService } from 'src/app/core/AggregatorDataService';\nimport { ValueFormatterService } from 'src/app/core/ValueFormatterService';\nimport { ProjectDataService } from 'src/app/core/project-data.service';\nimport { HotWaterMath } from 'src/app/core/math/HotWaterMath';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { AfterViewInit, Component, OnInit } from '@angular/core';\nimport { HeatGeneratorRow } from 'src/app/core/DteufcAggregatorServiceApi/heatgeneratorrow.complex';\nimport { provideContext } from 'src/core-lib/angular/context-util';\nimport { LangService } from 'src/core-lib/ej2/services/LangService';\n\n// Classes\nexport class SumLineChartValue {\n public Minute: number;\n public Energy: number;\n}\n\nexport class GaphData {\n // Config\n legendSettings: object;\n primaryYAxis: object;\n primaryXAxis: object;\n animation: object;\n palette: string[];\n\n // Data\n public chartDataDemand: SumLineChartValue[];\n public chartDataQsto: SumLineChartValue[];\n public chartDataSupply: SumLineChartValue[];\n public chartDataDemandAbgesenkt: SumLineChartValue[];\n public chartDataQstoAbgesenkt: SumLineChartValue[];\n public chartDataSupplyAbgesenkt: SumLineChartValue[];\n\n // Constructor\n constructor(private langService: LangService) {\n // Set config\n this.primaryYAxis = {\n minimum: 0,\n maximum: 250,\n interval: 50,\n title: this.langService.getString('YAxisName_T', undefined, this.langService.getString('#Generic.Unit.KiloWattsPerHour_T'))\n };\n this.primaryXAxis = {\n minimum: 0,\n maximum: 24,\n interval: 1,\n title: this.langService.getString('XAxisName_T')\n };\n this.palette = [\"#199D3B\", \"#ed8332\", \"#5181e8\", \"#5e5e5e\", \"#5e5e5e\", \"#5e5e5e\"];\n this.legendSettings = { visible: true, alignment: 'Center', shapeWidth: 40 };\n\n // Set default data\n this.chartDataDemand = [];\n this.chartDataQsto = [];\n this.chartDataSupply = [];\n\n this.chartDataDemandAbgesenkt = [];\n this.chartDataQstoAbgesenkt = [];\n this.chartDataSupplyAbgesenkt = [];\n }\n\n // Methods\n public setDemandData(result: IMinuteValuesEnergyDemandResults, abgesenkt: boolean): void {\n let demand = result.minutenwerteEnergiebedarf.map((v,i) => { return { Energy: v, Minute: i/60 }});\n if(abgesenkt){\n this.chartDataDemandAbgesenkt = demand;\n } else {\n this.chartDataDemand = demand;\n }\n }\n public setVersorgungsData(result: IStorageValuesResult, abgesenkt: boolean): void {\n let supply = result.minutenwerteVersorgungskennlinie.map((v,i) => { return { Energy: v, Minute: i/60 }});\n let qsto = result.minutenwerteQstoOn.map((v,i) => { return { Energy: v, Minute: i/60 }});\n if(abgesenkt){\n this.chartDataSupplyAbgesenkt = supply;\n this.chartDataQstoAbgesenkt = qsto;\n } else {\n this.chartDataSupply = supply;\n this.chartDataQsto = qsto;\n }\n\n // Adjust graph scale\n let maxValue = Math.round(Math.max.apply(Math, supply.map(s => s.Energy)) + 25);\n maxValue = Math.round(maxValue/5) * 5; // Round to next multiple of 5\n this.primaryYAxis = {\n minimum: 0,\n maximum: maxValue,\n interval: maxValue / 5,\n title: this.langService.getString('YAxisName_T', undefined, this.langService.getString('#Generic.Unit.KiloWattsPerHour_T'))\n };\n }\n}\n\n@Component({\n selector: 'app-result',\n templateUrl: './result.component.html',\n styleUrls: ['./result.component.scss'],\n providers: [provideContext('Result')]\n})\nexport class ResultComponent implements OnInit,AfterViewInit {\n\n stepText = this.langService.getString('StepText_T');\n stepTitle = this.langService.getString('StepTitle_T');\n stepBack = this.langService.getString('StepBack_T');\n stepDescription = this.langService.getString('StepDescription_D');\n\n // Enum provider\n public EnergiespeicherErmittlungstyp = EnergiespeicherErmittlungstyp;\n\n // Variables\n private defaultHeater: HeatGeneratorRow;\n private heaterRows: HeatGeneratorRow[];\n public selectedProject: ProjectEntity;\n public graphData: GaphData;\n\n /** false when the blue line is below the green line */\n public isEnoughVersogung: boolean;\n\n private valuesChanged: boolean;\n private lastDemandResultsPwh: IMinuteValuesEnergyDemandResults;\n private lastDemandResultsPwhAbgesenkt: IMinuteValuesEnergyDemandResults;\n private lastStorageResultsPwh: IStorageValuesResult;\n private lastStorageResultsAbgesenkt: IStorageValuesResult;\n\n tempDirekteingabe: number;\n tempAnteil: number;\n\n public get isAbsenkung(): boolean\n {\n return this.selectedProject.ConfigurationData.Konfiguration_DTE_Temperaturabsenkung;\n }\n\n // Constructors/Initializers\n constructor(\n private activatedRoute: ActivatedRoute,\n private readonly router: Router,\n private DataService: ProjectDataService,\n private StorageMath: StorageMath,\n private aggregatorService: AggregatorDataService,\n private formatterServer: ValueFormatterService,\n private HotWaterMath: HotWaterMath,\n private langService: LangService\n ) {\n this.valuesChanged = false;\n }\n ngAfterViewInit(): void {\n // Set initial Energiespeichervolumen slider\n\n this.selectedProject.ProjectValues.Energiespeicher.ErmittlungsESExakt.VolumenDirekteingabeLiter = this.tempDirekteingabe ?? this.selectedProject.ProjectValues.Energiespeicher.ErgebnisDin12831LiterAbgesenkt ?? this.selectedProject.ProjectValues.Energiespeicher.ErgebnisDin12831Liter;\n\n\n // Prepare values\n\n this.selectedProject.ProjectValues.Energiespeicher.AnteilBereitschaftsvolumenProzent = this.tempAnteil ?? this.defaultHeater.AnteilBereitschaftsvolumenProzent;\n\n\n // Perform initial calculation\n this.valuesChanged = true;\n this.calculateValues();\n\n // Register update method\n setInterval(()=> { this.updateGraph() }, 1000 / 4); // update graph {4} times per second\n }\n ngOnInit(): void {\n // Get & Validate Project\n let urlProject = this.activatedRoute.snapshot.data['project'];\n this.selectedProject = this.DataService.TempProject;\n if (!this.selectedProject) {\n if (urlProject) {\n this.router.navigate([`/project-view/${urlProject.ProjectId}`]);\n } else {\n this.router.navigate([`/home`]);\n }\n return;\n }\n\n // Init graph data\n this.graphData = new GaphData(this.langService);\n\n // Get default heater values\n this.heaterRows = this.aggregatorService.aggregatorData.Tables.HeatGeneratorRows;\n this.defaultHeater = this.heaterRows.find(h => h.HeatGeneratorId == 'Grobauslegung');\n\n // Prepare values\n this.tempAnteil = this.selectedProject.ProjectValues.Energiespeicher.AnteilBereitschaftsvolumenProzent;\n this.selectedProject.ProjectValues.Energiespeicher.AnteilBereitschaftsvolumenProzent = 0;\n\n\n // Set initial Energiespeichervolumen slider\n this.tempDirekteingabe = this.selectedProject.ProjectValues.Energiespeicher.ErmittlungsESExakt.VolumenDirekteingabeLiter;\n this.selectedProject.ProjectValues.Energiespeicher.ErmittlungsESExakt.VolumenDirekteingabeLiter = 0;\n\n };\n\n // Button click events\n public onClickSave(): void {\n if(this.valuesChanged){\n return;\n }\n\n this.selectedProject.SectionStates.Energiespeicher = SectionState.Set;\n this.DataService.saveTempProject()\n .then(_ => this.router.navigate([`/project-view/${this.selectedProject.ProjectId}`]));\n }\n public goBack(): void {\n this.router.navigate([`/heat-generating-types/${this.selectedProject.ProjectId}`]);\n }\n public calculateValues(): void {\n // Fix value types\n if(this.selectedProject.ProjectValues.Energiespeicher.AnteilBereitschaftsvolumenProzent) {\n this.selectedProject.ProjectValues.Energiespeicher.AnteilBereitschaftsvolumenProzent = Number(this.selectedProject.ProjectValues.Energiespeicher.AnteilBereitschaftsvolumenProzent);\n }\n if(this.selectedProject.ProjectValues.Energiespeicher.ErmittlungsESExakt?.VolumenDirekteingabeLiter){\n this.selectedProject.ProjectValues.Energiespeicher.ErmittlungsESExakt.VolumenDirekteingabeLiter = Number(this.selectedProject.ProjectValues.Energiespeicher.ErmittlungsESExakt.VolumenDirekteingabeLiter);\n }\n\n // Energiebedarf Normalbetrieb\n this.lastDemandResultsPwh = this.calculateEnergiebedarf(this.selectedProject.ProjectValues.Dte.PwhTemperatur);\n this.selectedProject.ProjectValues.Energiespeicher.MinutenwerteEnergiebedarf = this.lastDemandResultsPwh.minutenwerteEnergiebedarf;\n\n // Versorgungswerte Normalbetrieb\n this.lastStorageResultsPwh = this.calculateStorageValues(this.selectedProject.ProjectValues.Dte.VorlauftemperaturInput, this.lastDemandResultsPwh, this.selectedProject.ProjectValues.Zirkulationsvolumenstrom.ZirkulationsverlustleistungBerechnetWatt);\n this.selectedProject.ProjectValues.Energiespeicher.MinutenwerteVersorgung = this.lastStorageResultsPwh.minutenwerteVersorgungskennlinie;\n this.selectedProject.ProjectValues.Energiespeicher.MinutenwerteQStoOn = this.lastStorageResultsPwh.minutenwerteQstoOn;\n this.selectedProject.ProjectValues.Energiespeicher.ErgebnisDin12831Liter = this.lastStorageResultsPwh.energiespeicherVolumenLiterDin;\n\n if(this.selectedProject.ConfigurationData.Konfiguration_DTE_Temperaturabsenkung){\n // Energiebedarf Abgesenkt\n this.lastDemandResultsPwhAbgesenkt = this.lastDemandResultsPwh;\n this.selectedProject.ProjectValues.Energiespeicher.MinutenwerteEnergiebedarfAbgesenkt = this.lastDemandResultsPwh.minutenwerteEnergiebedarf;\n\n // Versorgungswerte Abgesenkt\n this.lastStorageResultsAbgesenkt = this.calculateStorageValues(this.selectedProject.ProjectValues.VorlauftemperaturEffektiv, this.lastDemandResultsPwhAbgesenkt, this.selectedProject.ProjectValues.Dte.ZirkulationsverlustleistungBerechnetAbgesenktWatt);\n this.selectedProject.ProjectValues.Energiespeicher.MinutenwerteVersorgungAbgesenkt = this.lastStorageResultsAbgesenkt.minutenwerteVersorgungskennlinie;\n this.selectedProject.ProjectValues.Energiespeicher.MinutenwerteQStoOnAbgesenkt = this.lastStorageResultsAbgesenkt.minutenwerteQstoOn;\n\n // Set result values Abgesenkt\n this.selectedProject.ProjectValues.Energiespeicher.LeistungWärmeerzeugerKw = this.lastStorageResultsAbgesenkt.gesamtleistungWaermeerzeugerKw;\n this.selectedProject.ProjectValues.Energiespeicher.ErgebnisDin12831LiterAbgesenkt = this.lastStorageResultsAbgesenkt.energiespeicherVolumenLiterDin;\n this.selectedProject.ProjectValues.Energiespeicher.VolumenErgebnisLiter = this.lastStorageResultsAbgesenkt.energiespeicherVolumenLiter;\n\n const minutenwerteBedarf = this.lastDemandResultsPwh.minutenwerteEnergiebedarf;\n const minutenwerteBedarfAbgesenkt = this.lastDemandResultsPwh.minutenwerteEnergiebedarf;\n const minutenwerteVersorgung = this.selectedProject.ProjectValues.Energiespeicher.MinutenwerteVersorgung;\n const minutenwerteVersorgungAbgesenkt = this.selectedProject.ProjectValues.Energiespeicher.MinutenwerteVersorgungAbgesenkt;\n this.isEnoughVersogung =\n this.checkEnoughVersorgung(minutenwerteBedarf, minutenwerteVersorgung) &&\n this.checkEnoughVersorgung(minutenwerteBedarfAbgesenkt, minutenwerteVersorgungAbgesenkt);\n } else {\n // Set result values Normalbetrieb\n this.selectedProject.ProjectValues.Energiespeicher.LeistungWärmeerzeugerKw = this.lastStorageResultsPwh.gesamtleistungWaermeerzeugerKw;\n this.selectedProject.ProjectValues.Energiespeicher.VolumenErgebnisLiter = this.lastStorageResultsPwh.energiespeicherVolumenLiter;\n\n // Set result values Abgesenkt to default\n this.selectedProject.ProjectValues.Energiespeicher.MinutenwerteEnergiebedarfAbgesenkt = [];\n this.selectedProject.ProjectValues.Energiespeicher.MinutenwerteVersorgungAbgesenkt = [];\n this.selectedProject.ProjectValues.Energiespeicher.MinutenwerteQStoOnAbgesenkt = [];\n\n const minutenwerteBedarf = this.lastDemandResultsPwh.minutenwerteEnergiebedarf;\n const minutenwerteVersorgung = this.selectedProject.ProjectValues.Energiespeicher.MinutenwerteVersorgung;\n this.isEnoughVersogung = this.checkEnoughVersorgung(minutenwerteBedarf, minutenwerteVersorgung);\n }\n\n // Mark values as changed\n this.valuesChanged = true;\n }\n\n private checkEnoughVersorgung(minutenwerteBedarf: number[], minutenwerteVersorgung: number[]): boolean\n {\n if (minutenwerteBedarf.length !== minutenwerteVersorgung.length)\n throw new Error('Array lengths must be equal.');\n\n // \"the blue line must always be above the green line\"\n if (minutenwerteBedarf.some((bedarf, i) => minutenwerteVersorgung[i] < bedarf))\n return false;\n\n return true;\n }\n\n // Value formatters\n public getDisplayValue(variable: string): string {\n switch (variable) {\n case (\"Pwh\"): return this.formatterServer.formatNumber(this.selectedProject.ProjectValues.Dte.PwhTemperatur, \"DegreeCelsius\", { maximumFractionDigits: 0 });\n case (\"Vorlauf\"): return this.formatterServer.formatNumber(Math.ceil(this.selectedProject.ProjectValues.Dte.VorlauftemperaturInput), \"DegreeCelsius\", { maximumFractionDigits: 0 });\n case (\"VorlaufAbgesenkt\"): return this.formatterServer.formatNumber(Math.ceil(this.selectedProject.ProjectValues.Dte.VorlauftemperaturAbgesenkt), \"DegreeCelsius\", { maximumFractionDigits: 0 });\n case (\"Zirkulationsverlust\"): return this.formatterServer.formatNumber(this.selectedProject.ProjectValues.Zirkulationsvolumenstrom.ZirkulationsverlustleistungBerechnetWatt, \"Watts\", { maximumFractionDigits: 0 });\n case (\"ZirkulationsverlustAbgesenkt\"): return this.formatterServer.formatNumber(this.selectedProject.ProjectValues.Dte.ZirkulationsverlustleistungBerechnetAbgesenktWatt, \"Watts\", { maximumFractionDigits: 0 });\n case (\"Warmwasser\"): return this.formatterServer.formatNumber(this.selectedProject.ProjectValues.WarmwasserErgebnisLtag, \"Liter\", { maximumFractionDigits: 0 });\n case (\"Temperatur\"): return this.formatterServer.formatNumber(this.selectedProject.ProjectValues.Dte.PwhTemperatur, \"DegreeCelsius\", { maximumFractionDigits: 0 });\n case (\"TemperaturAbgesenkt\"): return this.formatterServer.formatNumber(this.selectedProject.ProjectValues.Dte.PwhTemperaturAbgesenkt, \"DegreeCelsius\", { maximumFractionDigits: 0 });\n case (\"PwhEffektiv\"):\n if (this.selectedProject.ConfigurationData.Konfiguration_DTE_Temperaturabsenkung)\n return this.getDisplayValue('TemperaturAbgesenkt');\n else\n return this.getDisplayValue('Temperatur');\n case (\"VorlaufEffektiv\"): return this.formatterServer.formatNumber(Math.ceil(this.selectedProject.ProjectValues.VorlauftemperaturEffektiv), \"DegreeCelsius\", { maximumFractionDigits: 0 });\n case (\"LeistungFuerWW\"):\n if(this.selectedProject.ProjectValues.Energiespeicher.LeistungWärmeerzeugerKw)\n return this.formatterServer.formatNumber(Number(this.selectedProject.ProjectValues.Energiespeicher.LeistungWärmeerzeugerKw), 'KiloWatts', { maximumFractionDigits: 0 });\n else\n return \"-\";\n case (\"ValueDin12831\"):\n if(this.selectedProject.ProjectValues.Energiespeicher.ErgebnisDin12831Liter)\n return this.formatterServer.formatNumber(Number(this.selectedProject.ProjectValues.Energiespeicher.ErgebnisDin12831Liter), 'Liter', { maximumFractionDigits: 0 });\n else\n return \"-\";\n case (\"ValueDin12831Abgesenkt\"):\n if(this.selectedProject.ProjectValues.Energiespeicher.ErgebnisDin12831LiterAbgesenkt)\n return this.formatterServer.formatNumber(Number(this.selectedProject.ProjectValues.Energiespeicher.ErgebnisDin12831LiterAbgesenkt), 'Liter', { maximumFractionDigits: 0 });\n else\n return \"-\";\n case (\"ErgebnisLiter\"):\n if(this.selectedProject.ProjectValues.Energiespeicher.VolumenErgebnisLiter)\n return this.formatterServer.formatNumber(Number(this.selectedProject.ProjectValues.Energiespeicher.VolumenErgebnisLiter), 'Liter', { maximumFractionDigits: 0 });\n else\n return \"-\";\n default: return \"\";\n }\n }\n\n // Validation methods\n public isSaveInvalid(): boolean {\n return this.valuesChanged === true || (this.selectedProject.ConfigurationData.Konfiguration_DTE_Temperaturabsenkung &&\n (this.selectedProject.ProjectValues.Energiespeicher.VolumenErgebnisLiter == null\n || this.selectedProject.ProjectValues.Energiespeicher.VolumenErgebnisLiter <= 0));\n }\n\n // Internal helper methods\n private updateGraph(): void {\n if(this.valuesChanged == true){\n // Update Abgesenkt\n if(this.selectedProject.ConfigurationData.Konfiguration_DTE_Temperaturabsenkung) {\n this.graphData.setDemandData(this.lastDemandResultsPwhAbgesenkt, true);\n this.graphData.setVersorgungsData(this.lastStorageResultsAbgesenkt, true);\n }\n\n // Update PWH\n this.graphData.setDemandData(this.lastDemandResultsPwh, false);\n this.graphData.setVersorgungsData(this.lastStorageResultsPwh, false);\n\n // Reset change state\n this.valuesChanged = false;\n }\n }\n private calculateEnergiebedarf(temperature: number): IMinuteValuesEnergyDemandResults {\n // Prepare calculation parameters\n var energiebedarfParams: IMinuteValuesEnergyDemandParams = { demands: [] };\n\n // Get other building values\n if(this.selectedProject.OtherBuildings) {\n energiebedarfParams.demands = this.selectedProject.OtherBuildings\n .filter(b => b.Warmwasser != null)\n .map(b => { return {\n summeEnergiebedarfKwProTag: this.HotWaterMath.energiebedarfProTag(b.Warmwasser.WarmwasserErgebnisLTag, temperature),\n tageslastgangAnteile: b.Warmwasser.Tageslastgang.Anteile\n }});\n }\n\n // Get residential values\n if(this.selectedProject.ResidentialBuilding?.Warmwasser) {\n energiebedarfParams.demands.push({\n tageslastgangAnteile: this.selectedProject.ResidentialBuilding.Warmwasser.Tageslastgang.Anteile,\n summeEnergiebedarfKwProTag: this.HotWaterMath.energiebedarfProTag(this.selectedProject.ResidentialBuilding?.Warmwasser.WarmwasserErgebnisLTag, temperature)\n });\n }\n\n // Calculate\n return this.StorageMath.minutenwerteEnergiebedarf(energiebedarfParams);\n }\n private calculateStorageValues(\n temperature: number,\n energyResult: IMinuteValuesEnergyDemandResults,\n zirkulationsverlustleistungWatt: number\n ): IStorageValuesResult {\n // Get heat generators\n var generators: IHeatGeneratorParam[] = this.selectedProject.ProjectValues.Energiespeicher.Wärmeerzeuger.map(x => {\n return { leistungWWBereitungKiloWatt: x.LeistungWarmwasserBereitungKw, verzoegerungNachheizungMinuten: x.VerzoegerungNachheizungMin }\n });\n\n // Prepare parameters\n let params: IStorageValuesParams = {\n vorlauftemperatur: temperature,\n storageEnergyEfficiency: this.aggregatorService.aggregatorData.Tables.StorageEnergyEfficiencyCategoryRows\n .find(x => x.EfficiencyCategoryId == this.getEnergieLabelString(this.selectedProject.ProjectValues.Energiespeicher.Energielabel)),\n energiebedarf: energyResult,\n waermeerzeuger: generators,\n anteilBereitschaftsvolumenPerecentage: this.selectedProject.ProjectValues.Energiespeicher.AnteilBereitschaftsvolumenProzent,\n zirkulationsverlustleistungWatt: zirkulationsverlustleistungWatt,\n energiespeicherVolumenLiterDirekteingabe: this.selectedProject.ProjectValues.Energiespeicher.Ermittlungstyp == EnergiespeicherErmittlungstyp.Exakt\n ? this.selectedProject.ProjectValues.Energiespeicher.ErmittlungsESExakt.VolumenDirekteingabeLiter : null\n };\n\n // Calculate\n return this.StorageMath.speicherwerteFromEnergiebedarf(params);\n }\n private getEnergieLabelString(value: Energielabel): string {\n switch (value) {\n case Energielabel.APlus: return \"APlus\";\n case Energielabel.A: return \"A\";\n case Energielabel.B: return \"B\";\n case Energielabel.C: return \"C\";\n default: throw new Error(`Unknown energy label type encountered: ${value}`);\n }\n }\n}\n","\n
      \n\n \n \n
      \n \n
      \n \n
      \n

      \n  \n

      \n
      \n \n
      \n
      \n
      \n {{'Warmwasser_T' | translate}}\n
      \n
      \n {{getDisplayValue(\"Warmwasser\")}}\n
      \n
      \n
      \n
      \n {{'WwBereitung_T' | translate}}\n
      \n
      \n {{getDisplayValue(\"LeistungFuerWW\")}}\n
      \n
      \n\n
      \n
      \n {{'PanelHeadline60Pwh_T' | translate}}\n \n
      \n
      \n
      \n
      \n {{'Energiespeicher_T' | translate}} \n
      \n
      \n {{getDisplayValue(\"Vorlauf\")}}\n
      \n
      \n
      \n
      \n {{'Pwh_T' | translate}}\n
      \n
      \n {{getDisplayValue(\"Pwh\")}}\n
      \n
      \n
      \n
      \n {{'Zirkulationsverlust_T' | translate}}\n
      \n
      \n {{getDisplayValue(\"Zirkulationsverlust\")}}\n
      \n
      \n
      \n
      \n {{'BerechneterWert_T' | translate}}\n
      \n
      \n {{getDisplayValue(\"ValueDin12831\")}}\n
      \n
      \n\n \n
      \n
      \n {{'PanelHeadlinePwhAbgesenkt_T' | translate: getDisplayValue(\"PwhEffektiv\")}}\n \n
      \n
      \n
      \n
      \n {{'VorlaufAbgesenkt_T' | translate}} \n
      \n
      \n {{getDisplayValue(\"VorlaufEffektiv\")}}\n
      \n
      \n
      \n
      \n {{'PwhAbgesenkt_T' | translate}}\n
      \n
      \n {{getDisplayValue(\"PwhEffektiv\")}}\n
      \n
      \n
      \n
      \n {{'ZirkulationsverlustAbgesenkt_T' | translate}}\n
      \n
      \n {{getDisplayValue(\"ZirkulationsverlustAbgesenkt\")}}\n
      \n
      \n
      \n
      \n {{'BerechneterWertAbgesenkt_T' | translate}}\n
      \n
      \n {{getDisplayValue(\"ValueDin12831Abgesenkt\")}}\n
      \n
      \n
      \n
      \n
      \n \n
      \n
      \n \n

      {{'ErrorGeringeVorlauftemperatur_D' | translate}}

      \n
      \n
      \n {{'Result_T' | translate}}\n \n {{'EnergiespeichervolumenGewählt_T' | translate : getDisplayValue(\"ErgebnisLiter\")}}\n \n \n
      \n
      \n
      \n\n
      \n
      \n
      \n {{'Headline_T' | translate}}\n \n
      \n
      \n\n \n
      \n
      \n {{'ExactSliderTitle_T' | translate}}\n \n
      \n\n
      \n
      \n
      \n \n \n {{'#Generic.Unit.Liter_T' | translate}}\n
      \n
      \n {{'AnteilBereitschaftsvolumen_T' | translate}}\n \n
      \n
      \n \n \n {{'#Generic.Unit.Percent_T' | translate}}\n
      \n
      \n
      \n
      \n\n \n
      \n
      \n {{'Summenliniendiagramm_T' | translate: getDisplayValue(\"Vorlauf\"): getDisplayValue(\"Temperatur\")}}\n \n
      \n
      \n
      \n \n \n \n \n \n \n \n
      \n\n \n
      \n
      \n {{'SummenliniendiagrammAbgesenkt_T' | translate: getDisplayValue(\"VorlaufAbgesenkt\"): getDisplayValue(\"TemperaturAbgesenkt\")}}\n \n
      \n \n \n \n \n \n \n \n
      \n
      \n
      \n\n
      \n","\n\n\n
      \n\n
      \n

      \n \n

      \n Datenschutzrichtlinie\n
      \n\n \n
      \n \n {{ 'StartButton_T' | translate}}\n \n \n
      \n
      \n \n

      {{ 'LoginHint_SD' | translate}}

      \n\n \n {{ 'LoginButton_T' | translate}}\n \n
      \n
      \n
      \n

      \n {{'PanelMobilDescription_D' | translate}}\n

      \n

      {{'PanelMobilVollstaendigeVersion_D' | translate}}

      \n
      \n\n\n\n","import { Component, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { AggregatorDataService } from 'src/app/core/AggregatorDataService';\nimport { ProjectDataService } from 'src/app/core/project-data.service';\nimport { UserService } from 'src/app/core/UserService';\nimport { WebTrekkService } from 'src/app/core/WebTrekkService';\nimport { provideContext } from 'src/core-lib/angular/context-util';\nimport { LangService } from 'src/core-lib/ej2/services/LangService';\n\n@Component({\n selector: 'app-home',\n templateUrl: './home.component.html',\n styleUrls: ['./home.component.scss'],\n providers: [provideContext(\"Home\")],\n})\nexport class HomeComponent implements OnInit\n{\n headlineText = \"\";\n subHeadlineText = \"\";\n backgroundUrl;\n description = this.langService.getString('Description_D')\n\n constructor(\n private readonly router: Router,\n public userService: UserService,\n private langService: LangService,\n private dataService: ProjectDataService,\n private aggregator: AggregatorDataService,\n private tracker: WebTrekkService\n ) { }\n\n public ngOnInit(): void {\n this.backgroundUrl = this.aggregator.aggregatorData.Tables.ImageAssetRows.find(r => r.ImageId == \"Startseite.Hintergrund\").ImageUrlLoc\n this.headlineText = this.langService.getString('Headline_T');\n this.dataService.resetTempProject();\n this.tracker.initTracker();\n this.tracker.trackPage(\"start\", this.userService.userInfo.UserId, this.userService.isAuthenticated, null, null);\n }\n\n public startButton_clicked(): void\n {\n this.router.navigate(['/overview']);\n }\n\n public async loginButton_clicked(): Promise\n {\n await this.userService.login();\n this.router.navigate(['/overview']);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { PspUserNotifyIconComponent } from './psp-user-notify-icon.component';\n\n@NgModule(\n{\n declarations:\n [\n PspUserNotifyIconComponent,\n ],\n exports:\n [\n PspUserNotifyIconComponent,\n ],\n})\nexport class PspUserNotifyIconModule {}\n","import { AfterContentChecked, AfterViewInit, ChangeDetectionStrategy, Component, ContentChild, ElementRef, Injector, OnDestroy, OnInit, Renderer2, ViewContainerRef } from '@angular/core';\nimport { ComponentBase, ComponentMixins, IComponentBase, setValue, Template } from 'src/core-lib/angular/util';\nimport { events } from 'src/core-lib/ej2/components/search/psp-search-box/events';\nimport { PspSearchBox } from 'src/core-lib/ej2/components/search/psp-search-box/PspSearchBox';\n\n// properties declared here can be changed by the user in the storyboard UI\nexport const propertyArgTypes =\n{\n theme: { control: { type: 'radio', options: ['light', 'dark'] } },\n placeholder: { control: 'text' },\n minLength: { control: 'number' },\n showPopupButton: { control: 'boolean' },\n showClearButton: { control: 'boolean' },\n openOnFocus: { control: 'boolean' },\n startSearchIconCss: { control: 'text' },\n enableAutocomplete: { control: 'boolean' },\n width: { control: 'text' },\n\n popupHeight: { control: 'text' },\n popupWidth: { control: 'text' },\n zIndex: { control: 'number' },\n\n readonly: { control: 'boolean' },\n enabled: { control: 'boolean' },\n text: { control: 'text' },\n value: { control: 'text' },\n\n allowFiltering: { control: 'boolean' },\n filterType: { control: { type: 'radio', options: ['StartsWith', 'EndsWith', 'Contains'] } },\n autofill: { control: 'boolean' },\n highlight: { control: 'boolean' },\n suggestionCount: { control: 'number' },\n ignoreCase: { control: 'boolean' },\n sortOrder: { control: { type: 'radio', options: ['None', 'Ascending', 'Descending'] } },\n ignoreAccent: { control: 'boolean' },\n enableRtl: { control: 'boolean' },\n};\n\n// prevent storybook from updating these properties\nconst changeIgnoredProperties: string[] = [];\n\n// declare some properties as bindable angular outputs\nconst outputBindings =\n[\n 'startSearchEvent',\n 'changeEvent',\n 'beforeOpenEvent',\n 'openEvent',\n 'closeEvent',\n 'blurEvent',\n 'focusEvent',\n 'actionBeginEvent',\n 'actionCompletedEvent',\n 'actionFailureEvent',\n 'selectEvent',\n 'dataBoundEvent',\n 'filteringEvent',\n 'createdEvent',\n 'destroyedEvent',\n];\n\n@Component({\n selector: 'psp-search-box',\n template: '',\n inputs:\n [\n 'quickSearchDataSource',\n 'startSearchIconCss',\n 'enableAutocomplete',\n 'fields',\n 'headerTemplate',\n 'itemTemplate',\n 'footerTemplate',\n 'groupTemplate',\n 'noRecordsTemplate',\n 'actionFailureTemplate',\n 'query',\n 'width',\n 'cssClass',\n 'theme',\n 'placeholder',\n 'minLength',\n 'showPopupButton',\n 'showClearButton',\n 'openOnFocus',\n 'width',\n 'popupHeight',\n 'popupWidth',\n 'zIndex',\n 'readonly',\n 'enabled',\n 'text',\n 'value',\n 'allowFiltering',\n 'filterType',\n 'autofill',\n 'highlight',\n 'suggestionCount',\n 'ignoreCase',\n 'sortOrder',\n 'ignoreAccent',\n 'enableRtl',\n ],\n outputs: outputBindings,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\n@ComponentMixins([ComponentBase])\nexport class PspSearchBoxComponent extends PspSearchBox implements IComponentBase, OnInit, OnDestroy, AfterViewInit, AfterContentChecked\n{\n /** @ignore */\n public tagObjects: any = [];\n\n /** @ignore */\n public context : any;\n\n /** @ignore */\n public tags: string[] = [];\n\n /**\n * Accepts the template design and assigns it to the footer container of the popup list.\n * > For more details about the available template options refer to [`Template`](../../drop-down-list/templates) documentation.\n * @default null\n * @deprecated\n */\n @ContentChild('footerTemplate')\n @Template()\n public footerTemplate: any;\n\n /**\n * Accepts the template design and assigns it to the header container of the popup list.\n * > For more details about the available template options refer to [`Template`](../../drop-down-list/templates) documentation.\n * @default null\n */\n @ContentChild('headerTemplate')\n @Template()\n public headerTemplate: any;\n\n /**\n * Accepts the template design and assigns it to the group headers present in the popup list.\n * @default null\n */\n @ContentChild('groupTemplate')\n @Template()\n public groupTemplate: any;\n\n /**\n * Accepts the template design and assigns it to each list item present in the popup.\n * We have built-in `template engine`\n *\n * which provides options to compile template string into a executable function.\n * For EX: We have expression evolution as like ES6 expression string literals.\n * @default null\n */\n @ContentChild('itemTemplate')\n @Template()\n public itemTemplate: any;\n\n @ContentChild('noRecordsTemplate')\n @Template('No records found')\n public noRecordsTemplate: any;\n\n @ContentChild('actionFailureTemplate')\n @Template('Request failed')\n public actionFailureTemplate: any;\n\n protected changeIgnoredPropertyMap: { [propertyName: string]: boolean };\n\n public constructor(\n private ngEle: ElementRef,\n private srenderer: Renderer2,\n private viewContainerRef: ViewContainerRef,\n private injector: Injector\n )\n {\n super();\n\n this.element = this.ngEle.nativeElement;\n\n this.changeIgnoredPropertyMap = {};\n changeIgnoredProperties.forEach(prop => this.changeIgnoredPropertyMap[prop] = true);\n\n this.registerEvents(outputBindings);\n this.addTwoWay.call(this, ['value', 'text']);\n setValue('currentInstance', this, viewContainerRef);\n this.context = new ComponentBase();\n }\n\n /** @ignore */\n public ngOnInit(): void\n {\n this.context.ngOnInit(this);\n }\n\n /** @ignore */\n public ngAfterViewInit(): void\n {\n this.context.ngAfterViewInit(this);\n }\n\n /** @ignore */\n public ngOnDestroy(): void\n {\n this.context.ngOnDestroy(this);\n }\n\n /** @ignore */\n public ngAfterContentChecked(): void\n {\n this.context.ngAfterContentChecked(this);\n }\n\n /** @ignore */\n public registerEvents: (eventList: string[]) => void;\n\n /** @ignore */\n public addTwoWay: (propList: string[]) => void;\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { CardComponent } from './card.component';\n\n\n@NgModule({\n imports: [\n CommonModule,\n ],\n declarations: [\n CardComponent\n ],\n exports: [\n CardComponent\n ]\n})\nexport class CardModule { }\n","export {SliderViegaModule,} from './slider.module';\nexport {\n ISliderValueChangeEvent,\n SliderComponent,\n} from './slider.component';\n","import { Component, Injector, NgZone, OnInit, ViewChild } from '@angular/core';\nimport { NavigationStart, Router } from '@angular/router';\nimport { SegmentsDirective } from '@syncfusion/ej2-angular-charts';\nimport { highlightSearch, SelectEventArgs } from '@syncfusion/ej2-dropdowns';\nimport { PspUserNotifyIconComponent } from 'src/core-lib/angular/components/navigation/psp-user-notify-icon/psp-user-notify-icon.component';\nimport { provideContext } from 'src/core-lib/angular/context-util';\nimport { LangService } from 'src/core-lib/ej2/services/LangService';\nimport { UserService } from './core/UserService';\nimport { StepBarComponent } from './shared/step-bar';\nimport { IHeaderLink } from 'src/core-lib/ej2/components/navigation/psp-roof-site-header/IPspRoofSiteHeaderModel';\n\n// CMP variables\ndeclare const _satellite: any;\ndeclare const UC_UI: any;\ndeclare const uc: any;\n\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.scss'],\n providers: [provideContext('Header')]\n})\nexport class AppComponent implements OnInit\n{\n public roofHeaderLinks: IHeaderLink[] = [];\n \n _segments = [];\n _index;\n activeIndex;\n currentIndex;\n skipAllowedIndex;\n\n angemeldet = this.langService.getString('UserIconAngemeldet_T');\n abmelden = this.langService.getString('UserIconAbmeldenBtn_T');\n anmelden = this.langService.getString('UserIconAnmeldenBtn_T');\n bearbeiten = this.langService.getString('UserIconBenutzerBearbeiten_T');\n\n _ufcRouted = false;\n\n public userNotifyIconHeaderTemplate = '


      ';\n\n @ViewChild(PspUserNotifyIconComponent)\n public userNotifyIcon: PspUserNotifyIconComponent;\n\n public get userNotifyIconHeaderText(): string\n {\n if (!this.userService.isAuthenticated)\n return this.langService.getString('UserIconNichtAngemeldet_T');\n\n const fullName = `${this.userService.userInfo.GivenName} ${this.userService.userInfo.FamilyName}`;\n return fullName;\n }\n\n public constructor(\n private router: Router,\n private zone: NgZone,\n public userService: UserService,\n private langService: LangService\n )\n {\n router.events.forEach((event) => {\n if(event instanceof NavigationStart) {\n if(this._segments.length >= 7){\n this._segments.splice(0, 1);\n }\n switch(event.url){\n case('/home'):\n this._segments = [];\n this._ufcRouted = false;\n break;\n case('/project-view'):\n this._segments = [];\n this._ufcRouted = false;\n break;\n case('/overview'):\n this._segments = [];\n this._ufcRouted = false;\n break;\n case('/structure-selection'):\n if (this._segments.length <= 2){\n this._segments = [{label: 'Musterprojekt', route: '/project-view'}, {label: 'Gebäude auswählen', route: '/structure-selection'}];\n }\n this._index = 1;\n break;\n case('/demand-indicator'):\n this._segments = [{label: 'Musterprojekt', route: '/project-view'}, {label: 'Gebäude auswählen', route: '/structure-selection'}, {label: 'Bedarfskennzahl ermitteln', route: '/demand-indicator'}, {label: 'Auswahl Gleichzeitigkeit', route: '/select-calculation'}];;\n this._index = 2;\n break;\n case('/demand-volumetric-flow'):\n this._segments = [{label: 'Musterprojekt', route: '/project-view'}, {label: 'Gebäude auswählen', route: '/structure-selection'}, {label: 'Bedarfsvolumenstrom ermitteln', route: '/demand-volumetric-flow'}];\n this._index = 2;\n break;\n case('/select-calculation'):\n this._segments = [{label: 'Musterprojekt', route: '/project-view'}, {label: 'Gebäude auswählen', route: '/structure-selection'}, {label: 'Bedarfskennzahl ermitteln', route: '/demand-indicator'}, {label: 'Auswahl Gleichzeitigkeit', route: '/select-calculation'}];\n this._index = 3;\n break;\n case('/circulation-volumetric-flow'):\n this._segments = [{label: 'Musterprojekt', route: '/project-view'}, {label: 'Zirkulationsvolumenstrom', route: '/circulation-volumetric-flow'}];\n this._ufcRouted = true;\n this._index = 1;\n break;\n case('/dte-temperature'):\n if(this._ufcRouted){\n this._index = 2;\n }\n else{\n this._segments = [{label: 'Musterprojekt', route: '/project-view'},{label: 'Auslegung DTE', route: '/dte-temperature'}];\n this._index = 1;\n }\n break;\n case('/dte'):\n if(this._ufcRouted){\n this._index = 2;\n }\n else{\n this._segments = [{label: 'Musterprojekt', route: '/project-view'},{label: 'Auslegung DTE', route: '/dte'}];\n this._index = 1;\n }\n break;\n case('/pipeline'):\n this._segments = [{label: 'Musterprojekt', route: '/project-view'},{label: 'Auslegung Rohrleitung', route: '/pipeline'}];\n this._index = 1;\n break;\n case('/select-calculation-ufc'):\n this._segments = [{label: 'Musterprojekt', route: '/project-view'},{label: 'Auslegung UFC', route: '/select-calculation-ufc'}];\n this._index = 1;\n break;\n case('/circulation-flow-ufc'):\n this._segments = [{label: 'Musterprojekt', route: '/project-view'},{label: 'Auslegung UFC', route: '/select-calculation-ufc'}, {label: 'Genaue Ermittlung', route: '/circulation-flow-ufc'}];\n this._index = 2;\n break;\n case('/select-calculation-reservoir'):\n this._segments = [{label: 'Musterprojekt', route: '/project-view'},{label: 'Auslegung Energiespeicher', route: '/select-calculation-reservoir'}];\n this._index = 1;\n break;\n // case('/structure-selection-reservoir'):\n // this._segments = [{label: 'Musterprojekt', route: '/project-view'},{label: 'Auslegung Energiespeicher', route: '/select-calculation-reservoir'},{label: 'Gebäude auswählen', route: '/structure-selection-reservoir'}];\n // this._index = 2;\n // break;\n case('/residential-power-volume'):\n this._segments = [{label: 'Musterprojekt', route: '/project-view'},{label: 'Auslegung Energiespeicher', route: '/select-calculation-reservoir'},{label: 'Energiespeichervolumen', route: '/residential-power-volume'}];\n this._index = 2;\n break;\n case('/other-power-volume'):\n this._segments = [{label: 'Musterprojekt', route: '/project-view'},{label: 'Auslegung Energiespeicher', route: '/select-calculation-reservoir'},{label: 'Energiespeichervolumen', route: '/other-power-volume'}];\n this._index = 2;\n break;\n case('/hot-water-demand'):\n this._segments = [{label: 'Musterprojekt', route: '/project-view'},{label: 'Auslegung Energiespeicher', route: '/select-calculation-reservoir'},{label: 'Warmwassermenge', route: '/hot-water-demand'}];\n this._index = 2;\n break;\n case('/daily-load-profile'):\n this._segments = [{label: 'Musterprojekt', route: '/project-view'},{label: 'Auslegung Energiespeicher', route: '/select-calculation-reservoir'},{label: 'Warmwassermenge', route: '/hot-water-demand'}, {label: 'Tageslastgang', route: '/daily-load-profile'}];\n this._index = 3;\n break;\n\n case('/heat-generaing-types'):\n this._segments = [{label: 'Musterprojekt', route: '/project-view'},{label: 'Auslegung Energiespeicher', route: '/select-calculation-reservoir'},{label: 'Warmwassermenge', route: '/hot-water-demand'}, {label: 'Tageslastgang', route: '/daily-load-profile'}, {label: 'Weiter Angaben', route: '/heat-generaing-types'}];\n this._index = 4;\n break;\n case('/result'):\n this._segments = [{label: 'Musterprojekt', route: '/project-view'},{label: 'Auslegung Energiespeicher', route: '/select-calculation-reservoir'},{label: 'Warmwassermenge', route: '/hot-water-demand'}, {label: 'Tageslastgang', route: '/daily-load-profile'}, {label: 'Weiter Angaben', route: '/heat-generaing-types'}, {label: 'Summenliniendiagramm', route: '/result'}];\n this._index = 5;\n break;\n }\n }\n });\n }\n\n public async ngOnInit(): Promise {\n // Inject CMP scripts\n await this.injectScript(\"https://privacy-proxy.usercentrics.eu/latest/uc-block.bundle.js\", \"usercentrics block bundle\");\n uc.deactivateBlocking(['f6nkjdUL', 'dwkRM0PG', 'BJz7qNsdj-7']);\n\n await this.injectScript(\"https://assets.adobedtm.com/4bd80a146c61/6d524a6a684d/launch-f7dfda337657.min.js\", \"adobe launch\");\n _satellite.pageBottom();\n\n // Add consent change event listener\n window.addEventListener(\"UC_SDK_EVENT\", (args: any) => { \n if(args.detail.event === 'consent_status' && args.detail.action !== 'onInitialPageLoad') {\n window.location.reload();\n }\n });\n\n this.roofHeaderLinks =\n [\n {\n text: this.langService.getString('ImpressTitle_T'),\n href: this.langService.getString('ImpressTitleHref_URL'),\n },\n {\n text: this.langService.getString('PrivacyPolicy_T'),\n href: this.langService.getString('PrivacyPolicyHref_URL'),\n },\n {\n text: this.langService.getString('Legal_T'),\n href: this.langService.getString('LegalHref_URL'),\n },\n {\n text: this.langService.getString('ViegaInternational_T'),\n href: this.langService.getString('ViegaInternationalHref_URL'),\n },\n {\n text: this.langService.getString('ViegaCookies_T'),\n click: () => UC_UI.showSecondLayer(),\n href: undefined,\n },\n ];\n }\n\n private async injectScript(src: string, name: string): Promise {\n try{\n // Initialize the script element\n const script: HTMLScriptElement = document.createElement('script');\n script.src = src;\n\n // Set up the script load promise\n const promise = new Promise((resolve, reject) => {\n script.addEventListener('load', () => { setTimeout(resolve, 10); });\n script.addEventListener('error', error => { reject(error); });\n });\n\n // Append the script to the DOM head outside the angular zone\n this.zone.runOutsideAngular(() => { document.head.appendChild(script); });\n\n await promise;\n\n console.log(`script ${name} injected`);\n } catch(err) {\n console.error(`An error occured while attempting to inject the ${name} script`, err);\n }\n }\n\n navigateToHomePage(){\n this.router.navigate(['home']);\n }\n\n sendToHelp(){\n window.open(\"https://viega.de/av-dteufc-planer-onlinehilfe\", \"_blank\")\n }\n\n navigateToSegment(event: any){\n this.router.navigate([event.newRoute]);\n }\n\n public userNotifyIcon_select(event: SelectEventArgs): void\n {\n this.userService.redirectToAccountManagement();\n }\n\n public userNotifyIcon_buttonClick(): void\n {\n if (this.userService.isAuthenticated)\n this.userService.logout();\n else\n this.userService.login();\n\n this.userNotifyIcon.closePopup();\n }\n\n public onClickChangeCookieSettings(): void {\n UC_UI.showSecondLayer()\n }\n\n public header_logoClick() {\n this.router.navigate(['home']);\n }\n}\n","\n\n\n
      \n \n\n \n
      \n\n\n\n\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { LogoComponent } from './logo.component';\n\n@NgModule({\n imports: [\n CommonModule\n ],\n declarations: [\n LogoComponent,\n ],\n exports: [\n LogoComponent\n ]\n})\nexport class LogoModule { }\n","import { Injectable } from '@angular/core';\nimport { Internationalization } from '@syncfusion/ej2-base';\nimport { LangService } from './LangService';\n\n@Injectable()\nexport class GlobalizationService\n{\n // Syncfusion conform format string for ISO date time representations\n // note that the time zone indicator 'Z' is constant though\n private static DateTimeOffsetFormat = \"yyyy-MM-dd'T'HH:mm:ss'Z'\";\n\n private _globalize: Internationalization;\n private get globalize(): Internationalization\n {\n let syncfusionLocale = this.langService.currentLocale;\n if (syncfusionLocale === 'de-DE')\n syncfusionLocale = 'de';\n\n return this._globalize || new Internationalization(syncfusionLocale);\n }\n\n public constructor(\n private langService: LangService\n ) {}\n\n /**\n * Converts a DateTimeOffset value representation in the format, as it is usually received\n * from service backends, to a JavaScript Date object.\n *\n * @param dateTimeOffset A date time offset in the format yyyy-MM-dd'T'HH:mm:ss'Z'\n * @param asUniversalTime true to take the date time as is, false to convert it to the local time zone of the user.\n */\n public dateTimeOffsetToDate(dateTimeOffset: string, asUniversalTime: boolean = false): Date\n {\n const result: Date = this.globalize.parseDate(dateTimeOffset, { format: GlobalizationService.DateTimeOffsetFormat });\n if (result === null)\n throw new Error(`Parsing iso date '${dateTimeOffset}' has failed.`);\n\n if (asUniversalTime)\n return result;\n\n return new Date(+result - (result.getTimezoneOffset() * 60 * 1000));\n // return new Date(+result - (new Date().getTimezoneOffset() * 3600000));\n }\n\n /**\n * Takes a Javascript date object and converts it into a ISO UTC date string in the format yyyy-MM-dd'T'HH:mm:ss'Z'\n * to be processed by backend services.\n */\n public dateToUtcDateTimeOffset(date: Date): string\n {\n return date.getUTCFullYear() +\n '-' + GlobalizationService.paddedNumber(date.getUTCMonth() + 1) +\n '-' + GlobalizationService.paddedNumber(date.getUTCDate()) +\n 'T' + GlobalizationService.paddedNumber(date.getUTCHours()) +\n ':' + GlobalizationService.paddedNumber(date.getUTCMinutes()) +\n ':' + GlobalizationService.paddedNumber(date.getUTCSeconds()) +\n 'Z';\n }\n\n /**\n * Converts a Date object to a human readable psp standard representation.\n */\n public dateToHumanReadableString(date: Date, type: 'date' | 'time' | 'dateTime'): string\n {\n return this.globalize.formatDate(date, { type, skeleton: 'short' });\n }\n\n private static paddedNumber(number: number): string\n {\n if (number < 10)\n return '0' + number;\n\n return number.toString();\n }\n}\n","\n
      \n
      \n \n \n
      \n\n
      \n\n\n
      \n \n
      \n
      \n\n\n
      \n
      \n
      \n {{'Headline_T' | translate}}\n \n
      \n
      \n \n
      \n
      \n\n
      \n
      \n \n \n \n \n
      \n {{data.ProjectName}}\n
      \n
      \n
      \n \n \n {{data.ProjectBuildSection}}\n \n \n \n \n \n \n \n
      \n \n \n
      \n
      \n
      \n \n \n
      \n \n \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n\n\n\n\n\n\n\n\n\n\n\n\n \n \n \n\n\n\n \n \n \n\n\n\n {{'CloseDialog.Description_D_Html' | translate}}\n\n\n","import { Component, ElementRef, Input, OnInit, QueryList, ViewChild, ViewChildren } from '@angular/core';\nimport { GenericDialogService } from 'src/core-lib/ej2/services/GenericDialogService';\nimport { ButtonPropsModel, DialogComponent, PositionDataModel } from '@syncfusion/ej2-angular-popups';\nimport { CellSelectEventArgs, ColumnSelectEventArgs, GridComponent, RowSelectEventArgs } from '@syncfusion/ej2-angular-grids';\nimport { Router } from '@angular/router';\nimport { ProjectDataService } from 'src/app/core/project-data.service';\nimport { TextBoxComponent } from '@syncfusion/ej2-angular-inputs';\nimport { DatePipe } from '@angular/common';\nimport { isNull } from '@angular/compiler/src/output/output_ast';\nimport { ProjectConfigurationItemComponent } from '../project-configuration-item/project-configuration-item.component';\nimport { CheckboxComponent } from 'src/app/shared/checkbox';\nimport { CheckBoxComponent } from '@syncfusion/ej2-angular-buttons';\nimport { IProjectData, IStructureData, ITabData } from 'src/app/core/project-interfaces';\nimport { inputs } from '@syncfusion/ej2-angular-charts/src/chart/chart.component';\nimport { TabComponent } from '@syncfusion/ej2-angular-navigations';\nimport { BaseDataDialogComponent } from '../base-data-dialog/base-data-dialog.component';\nimport { StructureDialogComponent } from '../structure-dialog/structure-dialog.component';\nimport { ConfigDteDialogComponent } from '../config-dte-dialog/config-dte-dialog.component';\nimport { ConfigDetailsDialogComponent } from '../config-details-dialog/config-details-dialog.component';\nimport { provideContext } from 'src/core-lib/angular/context-util';\nimport { LangService } from 'src/core-lib/ej2/services/LangService';\nimport { OtherBuilding } from 'src/app/core/BackendApi/otherbuilding.complex';\nimport { ResidentialBuilding } from 'src/app/core/BackendApi/residentialbuilding.complex';\nimport { ProjectEntity } from 'src/app/core/BackendApi/projectentity.entity';\nimport { ContactData } from 'src/app/core/BackendApi/contactdata.complex';\nimport { Guid } from '@syncfusion/ej2-pdf-export';\nimport { HotWaterMath } from 'src/app/core/math/HotWaterMath';\nimport { ProjectMetadataEntity } from 'src/app/core/BackendApi/projectmetadataentity.entity';\nimport { SectionState } from 'src/app/core/Enums';\nimport { TechnicalAnalysis } from '@syncfusion/ej2-charts/src/chart/technical-indicators/indicator-base';\nimport { WebTrekkService } from 'src/app/core/WebTrekkService';\nimport { UserService } from 'src/app/core/UserService';\nimport { RuntimeService } from 'src/core-lib/ej2/services/RuntimeService';\n\n\n@Component({\n selector: 'app-overview',\n templateUrl: './overview.component.html',\n styleUrls: ['./overview.component.scss'],\n providers: [provideContext(\"Overview\")],\n})\nexport class OverviewComponent implements OnInit\n{\n private readonly MAX_PROJECT_COUNT: number = 100;\n\n @ViewChild('baseDataDialog') public BaseDataDialog: BaseDataDialogComponent;\n @ViewChild('structureDialog') public StructureDialog: StructureDialogComponent;\n @ViewChild(\"configDteDialog\") public ConfigDteDialog: ConfigDteDialogComponent;\n @ViewChild(\"configDetailsDialog\") public ConfigDetailsDialog: ConfigDetailsDialogComponent;\n @ViewChild(\"deleteProject\") public DeleteProjectDialog: DialogComponent;\n @ViewChild(\"copyProject\") public CopyProjectDialog: DialogComponent;\n @ViewChild(\"closeDialog\") public CloseDialogDialog: DialogComponent;\n\n @ViewChild(\"structureDialog\") public StructureOutDialog: StructureDialogComponent;\n\n @ViewChild('grid') public grid: GridComponent;\n @ViewChild('baseDataTab') public Tab: TabComponent;\n\n\n @ViewChild('TempProject') public TempProject: ProjectConfigurationItemComponent;\n @ViewChild('PipeProject') public PipeProject: ProjectConfigurationItemComponent;\n @ViewChild('EnergyProject') public EnergyProject: ProjectConfigurationItemComponent;\n\n selectedProjectId: string = null;\n selectedTabs: number[] = [];\n\n title = this.langService.getString('PanelHeadline_T');\n description = this.langService.getString('PanelDescription_D');\n dialogWidth = \"40%\"\n dialogHeight = \"65em\"\n dialogPosition: PositionDataModel = {X: 'center', Y: 'center'}\n target = \"app-overview\";\n\n baseDataHeader = this.langService.getString('BaseDataHeader_T');\n\n structureHeader = this.langService.getString('StructureHeader_T');\n\n selectedStructuresOther: OtherBuilding[];\n selectedStructureResidential: ResidentialBuilding;\n\n configDteHeader = this.langService.getString('ConfigDteHeader_T');\n isConfigDteSelected = false;\n\n configDetailsHeader = this.langService.getString('ConfigDetailsHeader_T');\n\n gridSortOptions = { columns: [{field: 'LastUpdatedUtc', direction: 'Descending'}]};\n gridToolbarOptions = ['Search'];\n searchSettings = { ignoreCase: true, operator: 'cotnains' }\n data: ProjectMetadataEntity[];\n\n newProject: ProjectEntity;\n project: ProjectEntity;\n\n\n emptyTabsData: ContactData[] = //\n [\n { Name: null },\n { Name: null },\n { Name: null },\n { Name: null }\n ];\n\n isDteUfcChecked: boolean;\n isTemperatureChecked: boolean;\n isPipeChecked: boolean;\n isEnergyChecked: boolean;\n\n constructor(\n private readonly router: Router,\n private DataService: ProjectDataService,\n private langService: LangService,\n private tracker: WebTrekkService,\n private userService: UserService,\n private dialogService: GenericDialogService,\n private runtimeServive: RuntimeService\n ){\n\n }\n\n public ngOnInit(): void {\n this.DataService.listProjects().then(projects => this.data = projects);\n this.newProject = {\n ProjectId: Guid.getNewGuidString(),\n CreatedUtc: null,\n LastUpdatedUtc: null,\n ReportVersion: 1,\n SectionStates: {\n BuildingTypeBedarfsvolumenstromStates: [],\n BuildingTypeWarmwasserStates: [],\n Dte: SectionState.Empty,\n Energiespeicher: SectionState.Empty,\n Rohrauslegung: SectionState.Empty,\n Zirkulationsvolumenstrom: SectionState.Empty,\n Ufc: SectionState.Empty\n },\n Contacts: [\n { Name: null, Country: \"DE\" },\n { Name: null },\n { Name: null },\n { Name: null },\n ],\n ProjectValues: { KaltwasserTemperaturGrad: HotWaterMath.Pwc }\n };\n this.tracker.trackPage(\"projectlist\", this.userService.userInfo.UserId, this.userService.isAuthenticated, this.newProject.ProjectId, this.newProject.Contacts ? {Zip: this.newProject.Contacts[0].Zip, Country: this.newProject.Contacts[0].Country, City: this.newProject.Contacts[0].City, Address: this.newProject.Contacts[0].Address} : null);\n }\n\n dataBound(e){\n // for (var i = 0; i < this.grid.getHeaderTable().querySelectorAll('.e-headercell').length; i++) {\n // var margin = (this.grid.getHeaderTable().querySelectorAll('.e-headercell')[i]).offsetWidth - (42+((this.grid.getHeaderTable().querySelectorAll('.e-headertext')[i]).offsetWidth ) + 10); // 42 - headerText padding & 10 is used for adjustment purpose\n\n // (this.grid.getHeaderTable().querySelectorAll('.e-sortfilterdiv')[i]).style.marginRight = margin + \"px\";\n // }\n }\n\n gridCreated(){\n document.getElementById(this.grid.element.id + \"_searchbar\").addEventListener('keyup', () => {\n this.grid.search((event.target as HTMLInputElement).value)\n });\n var gridElement = this.grid.element;\n var span = document.createElement(\"span\");\n span.className = \"e-clear-icon\";\n span.id = gridElement.id + \"clear\";\n span.onclick = this.cancelBtnClick.bind(this);\n gridElement.querySelector(\".e-toolbar-item .e-input-group\").appendChild(span);\n }\n\n public cancelBtnClick(args) {\n this.grid.searchSettings.key = \"\";\n (this.grid.element.querySelector(\".e-input-group.e-search .e-input\") as any).value = \"\";\n }\n\n resetDialogs(args){\n this.BaseDataDialog.resetDialog();\n this.ConfigDteDialog.resetDialog();\n this.ConfigDetailsDialog.resetDialog();\n this.StructureDialog.resetDialog();\n }\n\n removeElement(projectId: string){\n this.selectedProjectId = projectId;\n this.openDeleteProjectDialog();\n }\n\n copyElement(projectId: string){\n this.selectedProjectId = projectId;\n this.openCopyProjectDialog();\n }\n\n openBaseDialog = (): void => {\n if(this.data.length >= this.MAX_PROJECT_COUNT) {\n this.showMaxProjectsError();\n return;\n }\n\n // this.newProject = new IProjectData();\n this.resetVariables();\n this.BaseDataDialog.dialog.show();\n // this.addSelectedTab(0);\n this.tracker.trackAction(\"projectlist\", \"step1\", this.userService.userInfo.UserId, this.userService.isAuthenticated, this.newProject.ProjectId, this.newProject.Contacts ? {Zip: this.newProject.Contacts[0].Zip, Country: this.newProject.Contacts[0].Country, City: this.newProject.Contacts[0].City, Address: this.newProject.Contacts[0].Address} : null);\n }\n\n closeBaseDialog = (): void => {\n this.BaseDataDialog.dialog.hide();\n }\n\n dialogBackStructureToBase = (): void => {\n this.StructureDialog.isClosedWithoutSave = false;\n this.StructureDialog.dialog.hide();\n this.BaseDataDialog.dialog.show();\n this.Tab.refresh();\n this.tracker.trackAction(\"projectlist\", \"step1\", this.userService.userInfo.UserId, this.userService.isAuthenticated, this.newProject.ProjectId, this.newProject.Contacts ? {Zip: this.newProject.Contacts[0].Zip, Country: this.newProject.Contacts[0].Country, City: this.newProject.Contacts[0].City, Address: this.newProject.Contacts[0].Address} : null);\n }\n\n dialogBackConfigDteToStructure = (): void => {\n this.ConfigDteDialog.isClosedWithoutSave = false;\n this.ConfigDteDialog.dialog.hide();\n this.StructureDialog.dialog.show();\n this.tracker.trackAction(\"projectlist\", \"step2\", this.userService.userInfo.UserId, this.userService.isAuthenticated, this.newProject.ProjectId, this.newProject.Contacts ? {Zip: this.newProject.Contacts[0].Zip, Country: this.newProject.Contacts[0].Country, City: this.newProject.Contacts[0].City, Address: this.newProject.Contacts[0].Address} : null);\n }\n\n dialogBackConfigDetailsToConfigDte = (): void => {\n this.ConfigDetailsDialog.isClosedWithoutSave = false;\n this.ConfigDetailsDialog.dialog.hide();\n this.ConfigDteDialog.dialog.show();\n this.tracker.trackAction(\"projectlist\", \"step3\", this.userService.userInfo.UserId, this.userService.isAuthenticated, this.newProject.ProjectId, this.newProject.Contacts ? {Zip: this.newProject.Contacts[0].Zip, Country: this.newProject.Contacts[0].Country, City: this.newProject.Contacts[0].City, Address: this.newProject.Contacts[0].Address} : null);\n }\n\n\n\n dialogNextBaseToStructure(){\n this.BaseDataDialog.isClosedWithoutSave = false;\n this.BaseDataDialog.emitEditedProject();\n\n // Mit Forms-Funktionalität:\n if(this.BaseDataDialog.checkFormsValid()){\n this.BaseDataDialog.dialog.hide();\n this.StructureDialog.dialog.show();\n this.tracker.trackAction(\"projectlist\", \"step2\", this.userService.userInfo.UserId, this.userService.isAuthenticated, this.newProject.ProjectId, this.newProject.Contacts ? {Zip: this.newProject.Contacts[0].Zip, Country: this.newProject.Contacts[0].Country, City: this.newProject.Contacts[0].City, Address: this.newProject.Contacts[0].Address} : null);\n\n }\n else{\n this.BaseDataDialog.errorDialog.show();\n }\n\n\n }\n\n\n\n dialogNextStructureToConfigDte = (): void => {\n this.StructureDialog.isClosedWithoutSave = false;\n this.StructureOutDialog.emitSelectedStructures();\n if(this.StructureDialog.selectedStructureResidential || (this.StructureDialog._selectedStructuresOther && this.StructureDialog.selectedStructuresOther.length > 0)){\n this.StructureDialog.dialog.hide();\n this.ConfigDteDialog.dialog.show();\n this.tracker.trackAction(\"projectlist\", \"step3\", this.userService.userInfo.UserId, this.userService.isAuthenticated, this.newProject.ProjectId, this.newProject.Contacts ? {Zip: this.newProject.Contacts[0].Zip, Country: this.newProject.Contacts[0].Country, City: this.newProject.Contacts[0].City, Address: this.newProject.Contacts[0].Address} : null);\n }\n\n }\n\n\n\n dialogNextConfigDteToConfigDetails = (): void => {\n this.ConfigDteDialog.isClosedWithoutSave = false;\n\n this.ConfigDteDialog.dialog.hide();\n\n this.isTemperatureChecked = this.isDteUfcChecked; //Später an allen Stellen durch Überprüfung von DteUfc ersetzen\n\n this.ConfigDetailsDialog.dialog.show();\n this.tracker.trackAction(\"projectlist\", \"step4\", this.userService.userInfo.UserId, this.userService.isAuthenticated, this.newProject.ProjectId, this.newProject.Contacts ? {Zip: this.newProject.Contacts[0].Zip, Country: this.newProject.Contacts[0].Country, City: this.newProject.Contacts[0].City, Address: this.newProject.Contacts[0].Address} : null);\n\n }\n\n navigateNext = (): void => {\n this.ConfigDetailsDialog.emitChecked();\n this.ConfigDteDialog.emitChange();\n\n if (this.selectedStructuresOther && this.selectedStructuresOther.length > 0) {\n this.newProject.OtherBuildings = this.selectedStructuresOther;\n\n this.selectedStructuresOther.forEach(o =>\n this.newProject.SectionStates.BuildingTypeBedarfsvolumenstromStates.push(\n { Key: o.BuildingType, Value: SectionState.Empty }\n )\n );\n\n this.selectedStructuresOther.forEach(o =>\n this.newProject.SectionStates.BuildingTypeWarmwasserStates.push(\n { Key: o.BuildingType, Value: SectionState.Empty }\n )\n );\n }\n\n if(this.selectedStructureResidential){\n this.newProject.ResidentialBuilding = this.selectedStructureResidential;\n\n this.newProject.SectionStates.BuildingTypeBedarfsvolumenstromStates.push(\n { Key: this.selectedStructureResidential.BuildingType, Value: SectionState.Empty }\n );\n\n this.newProject.SectionStates.BuildingTypeWarmwasserStates.push(\n { Key: this.selectedStructureResidential.BuildingType, Value: SectionState.Empty }\n );\n }\n\n this.newProject.ConfigurationData = {\n Konfiguration_DTE_Temperaturabsenkung: this.isDteUfcChecked,\n Konfiguration_DTE_AuslegungRohrleitung: this.isPipeChecked,\n Konfiguration_Energiespeicher: this.isEnergyChecked\n }\n\n this.newProject.CreatedUtc = new Date();\n this.newProject.LastUpdatedUtc = new Date();\n var projectAmount = 0;\n if(this.newProject.ResidentialBuilding){\n projectAmount = 1;\n }\n if(this.newProject.OtherBuildings){\n projectAmount = projectAmount + this.newProject.OtherBuildings.count();\n }\n this.tracker.trackActionCustom(\"projectlist\", \"stepsFinished\",\n {\n userId: this.userService.userInfo.UserId,\n intern: this.userService.isAuthenticated,\n projectId: this.newProject.ProjectId,\n projectSite: this.newProject.Contacts ? {Zip: this.newProject.Contacts[0].Zip, Country: this.newProject.Contacts[0].Country, City: this.newProject.Contacts[0].City, Address: this.newProject.Contacts[0].Address} : null,\n buildingAmount: projectAmount,\n selectedDte: this.newProject.ConfigurationData.Konfiguration_DTE_Temperaturabsenkung ? \"DTE Standardbetrieb\" : \"DTE Temperaturabsenkung\",\n energySelected: this.newProject.ConfigurationData.Konfiguration_Energiespeicher ? \"True\" : \"False\",\n pipeSelected: this.newProject.ConfigurationData.Konfiguration_DTE_AuslegungRohrleitung ? \"True\" : \"False\"\n });\n this.DataService.addAndSelectNewProject(this.newProject)\n .then(project => {\n this.ConfigDetailsDialog.dialog.hide();\n this.router.navigate([`/project-view/${project.ProjectId}`]);\n }).catch(e => {\n console.error(e);\n if(e.responseStatus === 403 && e.odataErrorMsg?.code === \"MaxUserProjectCountException\") {\n this.showMaxProjectsError();\n } else {\n this.dialogService.showErrorDetailsDialog(\n JSON.stringify(e, undefined, 2),\n \"max(40vw, 35em)\",\n \"app-overview\"\n );\n }\n });\n }\n\n private showMaxProjectsError(): void {\n this.dialogService.showSimpleDialog(\n this.langService.getString(\"MaxProjectsError.Title_T\"),\n this.langService.getString(\"MaxProjectsError.Description_T\"),\n [ this.langService.getString(\"MaxProjectsError.Button_T\") ],\n \"max(40vw, 35em)\",\n \"app-overview\"\n );\n }\n\n setSelectedProjectValues(args){ //ProjectName = undefined???\n var newProjectData = args;\n\n this.newProject.ProjectName = newProjectData.informationFields.ProjectName;\n this.newProject.ProjectBuildSection = newProjectData.informationFields.ConstructionPhase;\n this.newProject.ProjectNumber = newProjectData.informationFields.ProjectId;\n this.newProject.ProjectDescription = newProjectData.informationFields.Description;\n\n for (let j = 0; j < 4; j++) {\n this.newProject.Contacts[j].Name = newProjectData.contactFields[j][\"Name_\" + j];\n this.newProject.Contacts[j].Address = newProjectData.contactFields[j][\"Address_\" + j];\n this.newProject.Contacts[j].Country = newProjectData.contactFields[j][\"Country_\" + j];\n this.newProject.Contacts[j].Zip = newProjectData.contactFields[j][\"Zip_\" + j];\n this.newProject.Contacts[j].City = newProjectData.contactFields[j][\"City_\" + j];\n this.newProject.Contacts[j].Phone = newProjectData.contactFields[j][\"Phone_\" + j];\n this.newProject.Contacts[j].Email = newProjectData.contactFields[j][\"Email_\" + j];\n }\n\n\n\n }\n\n openDeleteProjectDialog = (): void => {\n this.DeleteProjectDialog.show();\n }\n\n closeDeleteProjectDialog = (): void => {\n this.DeleteProjectDialog.hide();\n this.grid.hideScroll();\n\n }\n\n\n openCopyProjectDialog = (): void => {\n this.CopyProjectDialog.show();\n }\n\n closeCopyProjectDialog = (): void => {\n this.CopyProjectDialog.hide();\n }\n\n confirmDeleteObject = (): void => {\n this.tracker.trackAction(\"projectlist\", \"deleteProject\", this.userService.userInfo.UserId, this.userService.isAuthenticated, this.selectedProjectId, this.newProject.Contacts ? {Zip: this.newProject.Contacts[0].Zip, Country: this.newProject.Contacts[0].Country, City: this.newProject.Contacts[0].City, Address: this.newProject.Contacts[0].Address} : null);\n var toDelete = this.data.find(p => p.ProjectId == this.selectedProjectId);\n var index = this.data.indexOf(toDelete);\n this.data.splice(index, 1);\n this.grid.refresh();\n\n\n\n this.DataService.deleteProject(this.selectedProjectId)\n .then(_ => this.closeDeleteProjectDialog());\n }\n\n confirmCopyObject(){\n this.tracker.trackAction(\"projectlist\", \"copyProject\", this.userService.userInfo.UserId, this.userService.isAuthenticated, this.selectedProjectId, this.newProject.Contacts ? {Zip: this.newProject.Contacts[0].Zip, Country: this.newProject.Contacts[0].Country, City: this.newProject.Contacts[0].City, Address: this.newProject.Contacts[0].Address} : null);\n\n this.DataService.cloneProject(this.selectedProjectId)\n .then(project => {\n this.data.push(project)\n this.closeCopyProjectDialog();\n this.grid.refresh();\n });\n }\n\n async rowSelected(data: ProjectMetadataEntity){\n this.DataService.selectProject(data.ProjectId)\n .then(_ => this.router.navigate([`/project-view/${data.ProjectId}`]));\n }\n\n confirmCloseDialog(){// TODO nicht so elegant gelöst\n this.BaseDataDialog.canBeClosed = true;\n this.StructureDialog.canBeClosed = true;\n this.ConfigDteDialog.canBeClosed = true;\n this.ConfigDetailsDialog.canBeClosed = true;\n\n this.CloseDialogDialog.hide();\n this.BaseDataDialog.dialog.hide();\n this.StructureDialog.dialog.hide();\n this.ConfigDteDialog.dialog.hide();\n this.ConfigDetailsDialog.dialog.hide();\n\n this.BaseDataDialog.canBeClosed = false;\n this.StructureDialog.canBeClosed = false;\n this.ConfigDteDialog.canBeClosed = false;\n this.ConfigDetailsDialog.canBeClosed = false;\n }\n\n cancelCloseDialog(){\n this.CloseDialogDialog.hide();\n }\n\n baseDataButtons = [\n {\n 'click': this.closeBaseDialog.bind(this),\n buttonModel:{\n content: this.langService.getString('BaseDataAbbrechenBtn_T'),\n isPrimary: false,\n }\n },\n {\n 'click': this.dialogNextBaseToStructure.bind(this),\n buttonModel:{\n content: this.langService.getString('BaseDataWeiterBtn_T') + '  ',\n isPrimary: false,\n cssClass: 'e-primary'\n }\n }];\n\n structureButtons = [\n {\n 'click': this.dialogBackStructureToBase.bind(this),\n buttonModel:{\n content: '  ' + this.langService.getString('StructureZurueckBtn_T'), //Icon\n isPrimary: false,\n\n }\n },\n {\n 'click': this.dialogNextStructureToConfigDte.bind(this),\n buttonModel:{\n content: this.langService.getString('StructureWeiterBtn_T') + '  ',\n isPrimary: false,\n cssClass: 'e-primary'\n }\n },\n ];\n\n configDteButtons = [\n {\n 'click': this.dialogBackConfigDteToStructure.bind(this),\n buttonModel:{\n content: '  ' + this.langService.getString('ConfigDteZurueckBtn_T'), //Icon\n isPrimary: false\n }\n },\n {\n 'click': this.dialogNextConfigDteToConfigDetails.bind(this),\n buttonModel:{\n content: this.langService.getString('ConfigDteWeiterBtn_T') + '   ',\n isPrimary: false,\n cssClass: 'e-primary'\n }\n } ];\n\n configDetailsButtons = [\n {\n 'click': this.dialogBackConfigDetailsToConfigDte.bind(this),\n buttonModel:{\n content: '  ' + this.langService.getString('ConfigDetailsZurueckBtn_T'), //Icon\n isPrimary: false\n }\n },\n {\n 'click': this.navigateNext.bind(this),\n buttonModel:{\n content: this.langService.getString('ConfigDetailsProjektAnlegenBtn_T') + '  ',\n isPrimary: false,\n cssClass: 'e-primary'\n }\n } ];\n\n\n deleteProjectButtons = [ {\n 'click': this.closeDeleteProjectDialog.bind(this),\n buttonModel:{\n content: this.langService.getString('DeleteProjectAbbrechenBtn_T'),\n isPrimary: false\n }\n },\n {\n 'click': this.confirmDeleteObject.bind(this),\n buttonModel:{\n content: this.langService.getString('DeleteProjectLoeschenBtn_T'),\n isPrimary: false,\n cssClass: 'e-primary'\n }\n }];\n\n copyProjectButtons = [ {\n 'click': this.closeCopyProjectDialog.bind(this),\n buttonModel:{\n content: this.langService.getString('CopyProjectAbbrechenBtn_T'),\n isPrimary: false\n }\n },\n {\n 'click': this.confirmCopyObject.bind(this),\n buttonModel:{\n content: this.langService.getString('CopyProjectKopierenBtn_T'),\n isPrimary: false,\n cssClass: 'e-primary'\n }\n }];\n\n closeDialogButtons: ButtonPropsModel[] = [\n {\n 'click': this.cancelCloseDialog.bind(this),\n buttonModel: {\n content: this.langService.getString('CloseDialogAbbrechenBtn_T'),\n }\n },\n {\n 'click': this.confirmCloseDialog.bind(this),\n buttonModel: {\n content: this.langService.getString('CloseDialogVerwerfenBtn_T'),\n isPrimary: false,\n cssClass: 'e-primary'\n }\n }\n ]\n\n\n checkDialogsPristine(){\n if(!this.BaseDataDialog.checkFormsPristine())\n {\n this.CloseDialogDialog.show();\n }\n }\n\n resetVariables(){\n this.isDteUfcChecked = false;\n\n this.isEnergyChecked = true;\n this.isPipeChecked = true;\n }\n\n}\n","import { Component, Input } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { GuidService } from 'src/core-lib/ej2/services/GuidService';\nimport { PspFormField } from '../PspFormField';\n\n@Component({\n selector: 'psp-form-field',\n templateUrl: './psp-form-field.component.html',\n styleUrls: ['./psp-form-field.component.scss']\n})\nexport class FormFieldComponent\n{\n /**\n * The id of the html element referenced by the label element.\n * If unset defaults to formField.fieldName.\n */\n @Input()\n public forId?: string;\n\n @Input()\n public formField: PspFormField;\n\n @Input()\n public reserveLabelSpace: boolean = true;\n\n public isError(): boolean\n {\n return this.formField.control.invalid && (this.formField.control.dirty || this.formField.control.touched);\n }\n}\n","\n \n \n \n\n\n\n \n\n","import { Injectable } from '@angular/core';\nimport { DteRow } from '../DteufcAggregatorServiceApi/dterow.complex';\nimport { MathLogger } from './MathLogger';\n\nexport interface IDtesFromTemperaturesParams\n{\n dteRows: DteRow[];\n}\n\nexport interface IRecommendedDteParams\n{\n /** Usually 60 °C or abgesenkte temperatur */\n bedarfstemperaturPwh: number;\n\n bedarfsvolumenStromLMin: number;\n\n dteRows: DteRow[];\n}\n\nexport interface IFlowTemperatureFromVsParams\n{\n bedarfsvolumenstromLMin: number;\n bedarfstemperaturPwh: number;\n dteRow: DteRow;\n}\n\nexport interface IDteResult\n{\n dte: '40' | '70' | '100';\n\n /**\n * The mimum bedarfsvolumenstrom that this dte can provide under the given circumstances.\n */\n minBedarfsvolumenstromLMin: number;\n\n /**\n * The maximum bedarfsvolumenstrom that this dte can provide under the given circumstances.\n */\n maxBedarfsvolumenstromLMin: number;\n}\n\nexport interface IVsIntermediateResult\n{\n /**\n * If interpolation between two precalculated bedarfsvolumenströmen is required, this value as the facotr in the multiplication.\n */\n interpolationsSchrittwert: number;\n bedarfsvolumenstrom: number;\n}\n\n/**\n * Cached data for one DTE / pwh combination.\n */\nexport interface IDtePwhParams\n{\n dteRow: DteRow;\n\n /**\n * Normally all dte's support all vorlautemperaturen, however the max. volumetric flow rate\n * defined for a dte defines a cap where increasing the flow rate has no more effect.\n */\n maxEffectiveVorlauftemperatur: number;\n minEffectiveVorlauftemperatur: number;\n minEffectiveBedarfsvolumenstrom: number;\n\n /**\n * A map containing all bedarfsvolumenstroms for each relevant heizungsvorlauftemperatur.\n */\n heizungsvorlaufVsMap: { [heizungsvorlaufTemp: number]: number };\n}\n\n/**\n * Dte (Druchflusstrinkwasser-Erwärmer) related mathematic functions.\n *\n * Sources of mathematical formulas:\n * - 201126-KR Schema Auswahl DTE V1.1.xlsx\n * - 211117-KR Schema Auswahl DTE V1.2.xlsx\n *\n * rauch@klaus-rauch.de\n *\n * How to draw a DTE performance chart using methods of this class:\n * - Values on the X-Axis: min, max and step size can be taken from DteRow\n * - Values on the Y-Axis: min, max and step size can be taken from DteRow\n * - Points in the diagram:\n * - volauftemperaturenMesspunkteFromDte() provides the \"y\" values. dteVsMaxFromBedarfstemp() will calculate the \"x\" value for each \"y\".\n * - for DTE in Standardbetrieb (PWH 60 °C) you want to pass a \"Bedarfstemperatur\" of DteMath.pwh to dteVsMaxFromBedarfstemp()\n * - for DTE in abgesenktem Betrieb (PWH X °C) you want to pass X as the \"Bedarfstemperatur\". Where X is determined ßby pwhAbgesenktFromPwhC()\n * - The diagram may contain up to two \"Betriebspunkte\" (a special point in the diagram visually highlighted by extra lines on the x and y axis)\n * - for DTE in Standardbetrieb (PWH 60 °C) you can pass the configured \"Vorlauftemperatur\" which is the y value to dteVsMaxFromBedarfstemp() again to get x\n * - for DTE in abgesenktem Betrieb (PWH X °C) you have to caluclate the x value first using bedarfsvolumenstromAbgesenktFromBedarfsvolumenstrom() and then use this in benoetigteVorlauftemperaturFromBedarfsvolumenstrom() to determine y\n *\n * To know which DTEs are available / work with the given setup at all use dtesFromBedarfsvolumenstrom()\n */\n@Injectable()\nexport class DteMath\n{\n private static readonly allDteTypes = Object.freeze(['40', '70', '100']);\n\n /** PWH - Bedarfstemperatur */\n public static readonly pwh = 60;\n\n /** PWH-C bei 60 °C (DTE im Standardbetrieb) */\n public static readonly pwhc60 = 55;\n\n /** PWC (Kaltwasser) */\n public static readonly pwc = 10;\n\n public static readonly TemperaturspreizungPwhPwhc = 5; // K\n public static readonly Umgebungstemperatur = 23; // °C\n\n /**\n * We often determine DTEs by using the same bedarfstemperatur and vorlauftemperatur, so we can cache the results.\n */\n private dteTemperaturesVsCache: { [key: string]: IDteResult[] } = {};\n\n private cachedDteParams: { [dtePwh: string]: IDtePwhParams } = {};\n\n /**\n * We can cache some of the intermediate results for further calculations.\n */\n private dteCachedVsMap:\n {\n [dte: string]:\n {\n [heizungsvorlaufTemperatur: number]:\n {\n [pwh: number]: IVsIntermediateResult\n }\n }\n } = {};\n\n public bedarfsvolumenstromAbgesenktFromBedarfsvolumenstrom(bedarfsvolumenStromLMin: number, pwhAbgesenkt: number)\n {\n return bedarfsvolumenStromLMin * (60 - DteMath.pwc) / (pwhAbgesenkt - DteMath.pwc);\n }\n\n /**\n * Abgesenkte Bedarfstemperatur from PWH-C (Zirkulationstemperatur) abgesenkt.\n */\n public pwhAbgesenktFromPwhC(pwhCAbgesenktTemperatur: number): number\n {\n const logger = new MathLogger('PwhAbgesenktFromPwhC');\n logger.logInputs(\n {\n pwhCAbgesenktTemperatur,\n temperaturspreizungPwhPwhc: DteMath.TemperaturspreizungPwhPwhc,\n umgebungTemp: DteMath.Umgebungstemperatur\n });\n\n const reducedVerlustleistungFactor: number = (pwhCAbgesenktTemperatur - DteMath.Umgebungstemperatur) / (DteMath.pwh - DteMath.TemperaturspreizungPwhPwhc - DteMath.Umgebungstemperatur);\n const temperaturSpreizungAbgesenkt: number = DteMath.TemperaturspreizungPwhPwhc * reducedVerlustleistungFactor;\n const pwhAbgesenkt: number = pwhCAbgesenktTemperatur + temperaturSpreizungAbgesenkt;\n\n logger.logResult({ pwhAbgesenkt });\n return pwhAbgesenkt;\n }\n\n /**\n * This is should always return a dte unless no dte works with the configured bedarfsvolumenstrom at all.\n * The recommended dte should be the default selection in the GUI.\n */\n public recommendedDte(params: IRecommendedDteParams): DteRow | undefined\n {\n const maxDesiredVorlauftemperatur = 75; // normwert\n const possibleDtes: DteRow[] = this.dtesFromBedarfsvolumenstrom(params.bedarfsvolumenStromLMin, params)\n .map(dteResult => params.dteRows.find(dteRow => dteRow.Dte === dteResult.dte))\n .sort((a, b) => a.MinBedarfsvolumenstromLMin - b.MinBedarfsvolumenstromLMin);\n\n return possibleDtes.filter(dte =>\n this.benoetigteVorlauftemperaturFromBedarfsvolumenstrom({ bedarfsvolumenstromLMin: params.bedarfsvolumenStromLMin, dteRow: dte, bedarfstemperaturPwh: params.bedarfstemperaturPwh }) < maxDesiredVorlauftemperatur)\n [0] || possibleDtes[possibleDtes.length - 1];\n }\n\n /**\n * This is should always return a dte unless no dte works with the configured bedarfsvolumenstrom at all.\n * The recommended dte should be the default selection in the GUI.\n */\n public recommendedDteForAbgesenkt(params: IRecommendedDteParams): DteRow | undefined\n {\n const maxDesiredVorlauftemperatur = 75; // normwert\n const possibleDtes: DteRow[] = this.dtesFromBedarfsvolumenstromForAbgesenkt(params.bedarfsvolumenStromLMin, params)\n .map(dteResult => params.dteRows.find(dteRow => dteRow.Dte === dteResult.dte))\n .sort((a, b) => a.MinBedarfsvolumenstromLMin - b.MinBedarfsvolumenstromLMin);\n\n return possibleDtes.filter(dte =>\n this.benoetigteVorlauftemperaturFromBedarfsvolumenstrom({ bedarfsvolumenstromLMin: params.bedarfsvolumenStromLMin, dteRow: dte, bedarfstemperaturPwh: params.bedarfstemperaturPwh }) < maxDesiredVorlauftemperatur)\n [0] || possibleDtes[possibleDtes.length - 1];\n }\n\n /** Determine available DTEs for temperaturabsenkung. */\n public dtesFromBedarfsvolumenstromForAbgesenkt(bedarfsvolumenStromLMin: number, temperatureParams: IDtesFromTemperaturesParams): IDteResult[]\n {\n const dtesForStandardbetrieb: IDteResult[] = this.dtesFromBedarfsvolumenstrom(bedarfsvolumenStromLMin, temperatureParams);\n const highestAbgesenktPwhc = 54;\n const pwhAbgesenktMax = this.pwhAbgesenktFromPwhC(highestAbgesenktPwhc);\n const bedarfsvolumenstromAbgesenktMin = this.bedarfsvolumenstromAbgesenktFromBedarfsvolumenstrom(bedarfsvolumenStromLMin, pwhAbgesenktMax);\n const dtesForAbgesenktBetrieb: IDteResult[] = dtesForStandardbetrieb.filter(dte =>\n bedarfsvolumenstromAbgesenktMin <= dte.maxBedarfsvolumenstromLMin);\n\n return dtesForAbgesenktBetrieb;\n }\n\n /**\n * Determines the lowest possible PWH-C value to operate this dte with.\n */\n public optimalPwhC(dteRow: DteRow, bedarfsvolumenstromLMin: number): number\n {\n const lowestAbgesenktPwhc = 45;\n const highestAbgesenktPwhc = 54;\n\n let pwhcOptimal = undefined;\n for (let i = lowestAbgesenktPwhc; i <= highestAbgesenktPwhc; i++)\n {\n const bedarfstemperaturPwh = this.pwhAbgesenktFromPwhC(i);\n const bedarfsvolumenstromAbgesenktLMin = this.bedarfsvolumenstromAbgesenktFromBedarfsvolumenstrom(bedarfsvolumenstromLMin, bedarfstemperaturPwh);\n if (bedarfsvolumenstromAbgesenktLMin <= dteRow.MaxBedarfsvolumenstromLMin)\n {\n pwhcOptimal = i;\n break;\n }\n }\n return pwhcOptimal;\n }\n\n public dtesFromBedarfsvolumenstrom(bedarfsvolumenStromLMin: number, temperatureParams: IDtesFromTemperaturesParams): IDteResult[]\n {\n const logger = new MathLogger('PassendeDtesFuerBedarfsvolumenstrom');\n logger.logInputs({\n bedarfsvolumenStromLMin,\n });\n\n const dteRowMap: { [dte: string]: DteRow } = {};\n temperatureParams.dteRows.forEach(row => dteRowMap[row.Dte] = row);\n\n const resultDtes: IDteResult[] = DteMath.allDteTypes\n .map(dte =>\n {\n const dteRow: DteRow = dteRowMap[dte];\n if (!dteRow)\n throw new Error(`Expected table row for dte \"${dte}\" to exists.`);\n\n return {\n dte,\n minBedarfsvolumenstromLMin: dteRow.MinBedarfsvolumenstromLMin,\n maxBedarfsvolumenstromLMin: dteRow.MaxBedarfsvolumenstromLMin\n } as IDteResult;\n }).filter(resultDte =>\n bedarfsvolumenStromLMin <= resultDte.maxBedarfsvolumenstromLMin &&\n bedarfsvolumenStromLMin >= resultDte.minBedarfsvolumenstromLMin);\n\n logger.logResult({ dtes: resultDtes });\n return resultDtes;\n }\n\n /**\n * Calculates the maximum bedarfsvolumenstrom a dte can support with the given heizungsvorlaufTemperatur.\n * In DTE performance charts, this is the value of x for a given heizungsvorlaufTemperatur y.\n */\n private dteVsFromBedarfstempInternal(\n dteRow: DteRow,\n heizungsvorlaufTemperatur: number,\n bedarfstemperaturPwh: number\n ): number\n {\n const dteVsMap = this.getVsMap(dteRow.Dte as any, heizungsvorlaufTemperatur);\n if (dteVsMap[bedarfstemperaturPwh])\n return dteVsMap[bedarfstemperaturPwh].bedarfsvolumenstrom;\n else\n {\n // if we have no precalculated value available, we will interpolate between the existing values\n const nextKnownBedarfstemperatur: number = Object.keys(dteVsMap)\n .map(pwhString => parseInt(pwhString, 10))\n .filter(pwh => pwh < bedarfstemperaturPwh)\n .sort((a, b) => b - a)[0];\n\n if (!nextKnownBedarfstemperatur)\n throw new Error('Can not interpolate because there are no formulas defined for bedarfstemperatur ' + bedarfstemperaturPwh);\n\n const pwhDelta = bedarfstemperaturPwh - nextKnownBedarfstemperatur;\n return dteVsMap[nextKnownBedarfstemperatur].bedarfsvolumenstrom + (dteVsMap[nextKnownBedarfstemperatur].interpolationsSchrittwert * pwhDelta);\n }\n }\n\n /**\n * Use this to calculate the druckverlust values. Pass either DteRow.KvsSecondary or DteRow.KvsCirculationFlow to calculate both values.\n */\n public dteDruckverlust(bedarfsvolumenstrom: number, kvsValue: number): number\n {\n const logger = new MathLogger('DteDruckverlust');\n logger.logInputs({ bedarfsvolumenstrom, kvsValue });\n\n const druckverlustHPa = Math.pow(bedarfsvolumenstrom * (60 / 1000 / kvsValue), 2) * 1000;\n logger.logResult({ druckverlustHPa });\n return druckverlustHPa;\n }\n\n /**\n * Gets the maximum bedarfsvolumenstrom a dte can support with the given heizungsvorlaufTemperatur.\n * In DTE performance charts, this is the value of x for a given heizungsvorlaufTemperatur y.\n */\n public dteVsFromBedarfstemp(\n dteRow: DteRow,\n heizungsvorlaufTemperatur: number,\n bedarfstemperaturPwh: number\n ): number\n {\n const dteParams: IDtePwhParams = this.getDtePwhParams(dteRow, bedarfstemperaturPwh);\n if (heizungsvorlaufTemperatur > dteParams.maxEffectiveVorlauftemperatur)\n heizungsvorlaufTemperatur = dteParams.maxEffectiveVorlauftemperatur;\n\n let vs: number;\n if (dteParams.heizungsvorlaufVsMap[heizungsvorlaufTemperatur])\n vs = dteParams.heizungsvorlaufVsMap[heizungsvorlaufTemperatur];\n else\n vs = this.dteVsFromBedarfstempInternal(dteRow, heizungsvorlaufTemperatur, bedarfstemperaturPwh);\n\n return Math.max(Math.min(vs, dteRow.MaxBedarfsvolumenstromLMin), dteParams.minEffectiveBedarfsvolumenstrom);\n }\n\n public benoetigteVorlauftemperaturFromBedarfsvolumenstrom(params: IFlowTemperatureFromVsParams): number\n {\n const logger = new MathLogger('BenoetigteVorlauftemperaturFromBedarfsvolumenstrom');\n logger.logInputs(params);\n\n const dteParams: IDtePwhParams = this.getDtePwhParams(params.dteRow, params.bedarfstemperaturPwh);\n const vsMap = dteParams.heizungsvorlaufVsMap;\n\n const maxVsPoints = Object.keys(vsMap).map(vorlauftemperatur => ({ vs: vsMap[vorlauftemperatur], vorlauftemperatur: parseFloat(vorlauftemperatur) }));\n\n const pointIdx = maxVsPoints.findIndex(p => params.bedarfsvolumenstromLMin <= p.vs);\n const point = maxVsPoints[pointIdx];\n // if bedarfsvolumenstrom is greater than the dte can support\n if (pointIdx === -1)\n {\n return this.benoetigteVorlauftemperaturFromBedarfsvolumenstrom(\n {\n bedarfstemperaturPwh: params.bedarfstemperaturPwh,\n bedarfsvolumenstromLMin: params.dteRow.MaxBedarfsvolumenstromLMin,\n dteRow: params.dteRow\n });\n }\n // if bedarfsvolumenstrom would result in less than minEffectiveVorlauftemperatur\n if (pointIdx === 0)\n return dteParams.minEffectiveVorlauftemperatur;\n\n if (point.vs === params.bedarfsvolumenstromLMin)\n {\n logger.logResult({ benoetigteVorlauftemperatur: point.vorlauftemperatur });\n return point.vorlauftemperatur;\n }\n else\n {\n const prevPoint = maxVsPoints[pointIdx - 1];\n const vsDiff = point.vs - params.bedarfsvolumenstromLMin;\n const vsPointsDiff = point.vs - prevPoint.vs;\n const factor = (vsDiff / vsPointsDiff);\n const temperatureDiff = point.vorlauftemperatur - prevPoint.vorlauftemperatur;\n const result = point.vorlauftemperatur - temperatureDiff * factor;\n\n logger.logIntermediateResult({ prevPoint, factor, tempDelta: temperatureDiff, result });\n\n logger.logResult({ benoetigteVorlauftemperatur: result });\n\n return result;\n }\n }\n\n public getDtePwhParams(dteRow: DteRow, bedarfstemperaturPwh: number): IDtePwhParams\n {\n const cacheKey = dteRow.Dte + bedarfstemperaturPwh;\n if (this.cachedDteParams[cacheKey])\n return this.cachedDteParams[cacheKey];\n\n const relevanteVorlauftemperaturen: number[] = this.volauftemperaturenMesspunkteFromDte(dteRow, bedarfstemperaturPwh);\n const heizungsvorlaufVsMap: { [heizungsvorlaufTemp: number]: number } = {};\n let maxEffectiveVorlauftemperatur = 0;\n let previousVs = 0;\n relevanteVorlauftemperaturen.forEach(vorlaufTemp =>\n {\n const vs = this.dteVsFromBedarfstempInternal(dteRow, vorlaufTemp, bedarfstemperaturPwh);\n if (vs > dteRow.MaxBedarfsvolumenstromLMin && maxEffectiveVorlauftemperatur === 0)\n {\n const vsDiff = vs - previousVs;\n const relDiff = vs - dteRow.MaxBedarfsvolumenstromLMin;\n const interpolationFactor = -(relDiff / vsDiff);\n const interpolationTemperature = 0.5 * interpolationFactor;\n\n maxEffectiveVorlauftemperatur = vorlaufTemp + interpolationTemperature;\n }\n heizungsvorlaufVsMap[vorlaufTemp] = Math.min(vs, dteRow.MaxBedarfsvolumenstromLMin);\n previousVs = vs;\n });\n\n const lowestTemperature = relevanteVorlauftemperaturen[0];\n heizungsvorlaufVsMap[lowestTemperature];\n\n const dteParams: IDtePwhParams = {\n dteRow,\n maxEffectiveVorlauftemperatur,\n minEffectiveVorlauftemperatur: lowestTemperature,\n minEffectiveBedarfsvolumenstrom: heizungsvorlaufVsMap[lowestTemperature],\n heizungsvorlaufVsMap\n };\n return this.cachedDteParams[cacheKey] = dteParams;\n }\n\n /**\n * Calculates the vorlauftemperaturen for that we draw points in dte performance charts.\n * Vorlauftemperaturen resemble the y components of the points in the performance chart.\n */\n public volauftemperaturenMesspunkteFromDte(dte: DteRow, bedarfstemperaturPwh: number): number[]\n {\n // the precision of the graph in the diagram representations\n const step: number = 0.5;\n const pwhHvlDifference: number = 5;\n\n const min: number = bedarfstemperaturPwh + pwhHvlDifference;\n const max: number = dte.DiagramEndVorlauftemperatur + 5;\n\n const results: number[] = [];\n for (let i = min; i < (max + step); i += step)\n results.push(i);\n\n return results;\n }\n\n private getVsMap(dte: '40' | '70' | '100', heizungsvorlaufTemperatur: number): { [pwh: string]: IVsIntermediateResult }\n {\n let cacheMap: { [heizungsvorlaufTemperatur: number]: { [pwh: string]: IVsIntermediateResult } };\n cacheMap = this.dteCachedVsMap[dte] || (this.dteCachedVsMap[dte] = {});\n\n const logger = new MathLogger('DteBedarfsvolumenstromMaximalwerte');\n logger.logInputs({\n Dte: dte,\n HeizungsvorlaufTemperatur: heizungsvorlaufTemperatur,\n });\n\n let result: { [pwh: string]: IVsIntermediateResult };\n if (cacheMap[heizungsvorlaufTemperatur])\n result = cacheMap[heizungsvorlaufTemperatur];\n else\n result = cacheMap[heizungsvorlaufTemperatur] = this.calculateVsMap(dte, heizungsvorlaufTemperatur);\n\n logger.logResult({ maximalwerte: result });\n return result;\n }\n\n // formulas to caclulate the bedarfsvolumenstrom are predefined. source: 201126-KR Schema Auswahl DTE V1.1.xlsx\n // we simply interpolate between each formula\n private calculateVsMap(dte: '40' | '70' | '100', heizungsvorlaufTemperatur: number): { [pwh: string]: IVsIntermediateResult }\n {\n let vsPwh60: number = 0;\n let vsPwh55: number = 0;\n let vsPwh50: number = 0;\n let vsPwh48: number = 0;\n\n if (dte === '40')\n {\n vsPwh60 =\n 0.0000026484 * Math.pow(heizungsvorlaufTemperatur, 4) -\n 0.0007876027 * Math.pow(heizungsvorlaufTemperatur, 3) +\n 0.0783145120 * Math.pow(heizungsvorlaufTemperatur, 2) -\n 1.9315716343 * Math.pow(heizungsvorlaufTemperatur, 1) -\n 0.0000034876;\n\n vsPwh55 =\n 0.0000222355 * Math.pow(heizungsvorlaufTemperatur, 4) -\n 0.0065356749 * Math.pow(heizungsvorlaufTemperatur, 3) +\n 0.7095239180 * Math.pow(heizungsvorlaufTemperatur, 2) -\n 32.710368183 * Math.pow(heizungsvorlaufTemperatur, 1) +\n 569.874234371;\n\n vsPwh50 =\n 0.0001330580 * Math.pow(heizungsvorlaufTemperatur, 3) -\n 0.0307657840 * Math.pow(heizungsvorlaufTemperatur, 2) +\n 3.4275573636 * Math.pow(heizungsvorlaufTemperatur, 1) -\n 78.6210466186;\n\n vsPwh48 =\n 0.0000137401 * Math.pow(heizungsvorlaufTemperatur, 4) -\n 0.0028822628 * Math.pow(heizungsvorlaufTemperatur, 3) +\n 0.2044846751 * Math.pow(heizungsvorlaufTemperatur, 2) -\n 4.0524921094 * Math.pow(heizungsvorlaufTemperatur, 1) +\n 0.000019622;\n }\n else if (dte === '70')\n {\n vsPwh60 =\n 0.00002359670 * Math.pow(heizungsvorlaufTemperatur, 4) -\n 0.00628730560 * Math.pow(heizungsvorlaufTemperatur, 3) +\n 0.56070671160 * Math.pow(heizungsvorlaufTemperatur, 2) -\n 15.2383250091 * Math.pow(heizungsvorlaufTemperatur, 1) -\n 0.0000295289;\n\n vsPwh55 =\n 0.00057971000 * Math.pow(heizungsvorlaufTemperatur, 3) -\n 0.16567287780 * Math.pow(heizungsvorlaufTemperatur, 2) +\n 17.4010351967 * Math.pow(heizungsvorlaufTemperatur, 1) -\n 496.7246376814;\n\n vsPwh50 =\n 0.0006666667 * Math.pow(heizungsvorlaufTemperatur, 3) -\n 0.1814285714 * Math.pow(heizungsvorlaufTemperatur, 2) +\n 17.919047619 * Math.pow(heizungsvorlaufTemperatur, 1) -\n 468.7142857143;\n\n vsPwh48 =\n -0.0021514905 * Math.pow(heizungsvorlaufTemperatur, 3) +\n 0.28741837190 * Math.pow(heizungsvorlaufTemperatur, 2) -\n 7.75025285410 * Math.pow(heizungsvorlaufTemperatur, 1) -\n 0.000234901;\n }\n else if (dte === '100')\n {\n vsPwh60 =\n -0.00000237910 * Math.pow(heizungsvorlaufTemperatur, 5) +\n 0.000866584600 * Math.pow(heizungsvorlaufTemperatur, 4) -\n 0.114520072900 * Math.pow(heizungsvorlaufTemperatur, 3) +\n 6.576614856700 * Math.pow(heizungsvorlaufTemperatur, 2) -\n 137.6798019409 * Math.pow(heizungsvorlaufTemperatur, 1) +\n 0.005174294;\n\n vsPwh55 =\n -0.00016445740 * Math.pow(heizungsvorlaufTemperatur, 4) +\n 0.052248572700 * Math.pow(heizungsvorlaufTemperatur, 3) -\n 6.175618244200 * Math.pow(heizungsvorlaufTemperatur, 2) +\n 324.3973607553 * Math.pow(heizungsvorlaufTemperatur, 1) -\n 6287.9257361156;\n\n vsPwh50 =\n 0.00394202900 * Math.pow(heizungsvorlaufTemperatur, 3) -\n 0.84770186340 * Math.pow(heizungsvorlaufTemperatur, 2) +\n 62.7455486543 * Math.pow(heizungsvorlaufTemperatur, 1) -\n 1442.5590062124;\n\n vsPwh48 =\n 0.00771546030 * Math.pow(heizungsvorlaufTemperatur, 3) -\n 1.48313799260 * Math.pow(heizungsvorlaufTemperatur, 2) +\n 97.8258216701 * Math.pow(heizungsvorlaufTemperatur, 1) -\n 2066.2739251174;\n }\n else\n throw new Error(`No formula for dte ${dte}`);\n\n return {\n 60: {\n bedarfsvolumenstrom: vsPwh60,\n interpolationsSchrittwert: 0\n },\n 55: {\n bedarfsvolumenstrom: vsPwh55,\n interpolationsSchrittwert: (vsPwh60 - vsPwh55) / 5\n },\n 50: {\n bedarfsvolumenstrom: vsPwh50,\n interpolationsSchrittwert: (vsPwh55 - vsPwh50) / 5\n },\n 48: {\n bedarfsvolumenstrom: vsPwh48,\n interpolationsSchrittwert: (vsPwh50 - vsPwh48) / 2\n },\n };\n }\n}\n","import { NgModule } from '@angular/core';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { ConfigDteDialogComponent } from '../config-dte-dialog/config-dte-dialog.component';\nimport { ProjectConfigurationItemComponent } from '../project-configuration-item/project-configuration-item.component';\nimport { ProjectConfigurationItemModule } from '../project-configuration-item/project-configuration-item.module';\nimport { ConfigDetailsDialogComponent } from './config-details-dialog.component';\n\n\n@NgModule({\n imports:\n [\n SharedModule,\n ProjectConfigurationItemModule\n ],\n declarations:\n [\n ConfigDetailsDialogComponent\n\n ],\n exports:\n [\n ConfigDetailsDialogComponent\n\n ]\n\n\n})\nexport class ConfigDetailsDialogModule { }","import { Component, OnInit, Input } from '@angular/core';\n\n@Component({\n selector: 'viega-logo',\n templateUrl: './logo.component.html',\n styleUrls: ['./logo.component.scss'],\n})\nexport class LogoComponent {\n\n @Input()\n public disableShadow: boolean;\n}\n","","// labels to improve the default localization of dropdowns\nexport const localization = {\n 'de': {\n 'psp-publication-status': {\n 'isPmApproved': 'PM-Freigabe erteilt',\n 'isPmApprovedShort': 'PM',\n 'isPmApprovedTooltip': 'Freigabe durch Produktmanagement wurde erteilt.',\n 'isNonPmApproved': 'PM-Freigabe nicht erteilt',\n 'isNonPmApprovedShort': 'PM',\n 'isNonPmApprovedTooltip': 'Freigabe durch Produktmanagement wurde noch nicht erteilt.',\n 'isOem': 'OEM',\n 'isOemShort': 'OEM',\n 'isOemTooltip': '',\n 'isDeleted': 'Gelöscht',\n 'isDeletedTooltip': 'Das \"Gelöscht\" Kennzeichen ist gesetzt.',\n 'isConfidential': 'Geheim',\n 'isConfidentialTooltip': 'Nicht veröffentlichtes Produkt. Daten nur für internen Gebrauch!',\n },\n 'psp-assortment-status': {\n 'assortmentCountSingle': '1 Element im Sortiment',\n 'assortmentCount': '{0} Elemente im Sortiment',\n 'manageAssortments': 'Sortimente verwalten',\n 'resetCurrentAssortment': 'Aktuelles Sortiment zurücksetzen',\n\n 'modelsAddedTooltip': '{0} Modelle hinzugefügt',\n 'singleModelAddedTooltip': '1 Modell hinzugefügt',\n 'modelsRemovedTooltip': '{0} Modelle entfernt',\n 'singleModelRemovedTooltip': '1 Modell entfernt',\n 'articlesAddedTooltip': '{0} Artikel hinzugefügt',\n 'singleArticleAddedTooltip': '1 Artikel hinzugefügt',\n 'articlesRemovedTooltip': '{0} Artikel entfernt',\n 'singleArticleRemovedTooltip': '1 Artikel entfernt',\n 'productGroupsAddedTooltip': '{0} Produktgruppen hinzugefügt',\n 'singleProductGroupAddedTooltip': '1 Produktgruppe hinzugefügt',\n 'productGroupsRemovedTooltip': '{0} Produktgruppen entfernt',\n 'singleProductGroupRemovedTooltip': '1 Produktgruppe entfernt',\n\n 'dataPackageCountSingle': '1 Element im Datenpaket',\n 'dataPackageCount': '{0} Elemente im Datenpaket',\n 'manageDataPackages': 'Datenpakete verwalten',\n 'resetCurrentDataPackage': 'Aktuelles Datenpaket zurücksetzen',\n 'filesAddedTooltip': '{0} Dateien hinzugefügt',\n 'singleFileAddedTooltip': '1 Datei hinzugefügt',\n 'filesRemovedTooltip': '{0} Dateien entfernt',\n 'singleFileRemovedTooltip': '1 Datei entfernt',\n }\n },\n 'en-US': {\n 'psp-publication-status': {\n 'isPmApproved': 'PM-Approved',\n 'isPmApprovedShort': 'PM',\n 'isPmApprovedTooltip': 'Approval through the product management is given.',\n 'isNonPmApproved': 'Not PM-Approved',\n 'isNonPmApprovedShort': 'PM',\n 'isNonPmApprovedTooltip': 'Approval through the product management is not given.',\n 'isOem': 'OEM',\n 'isOemShort': 'OEM',\n 'isOemTooltip': '',\n 'isDeleted': 'Deleted',\n 'isDeletedTooltip': 'The \"Deleted\" flag is set.',\n 'isConfidential': 'Confidential',\n 'isConfidentialTooltip': 'Unreleased product. Data for internal use only!',\n },\n 'psp-assortment-status': {\n 'assortmentCountSingle': '1 Element in Assortment',\n 'assortmentCount': '{0} Elements in Assortment',\n 'manageAssortments': 'Manage Assortments',\n 'resetCurrentAssortment': 'Reset Current Assortment',\n\n 'modelsAddedTooltip': '{0} Models Added',\n 'singleModelAddedTooltip': '1 Model Added',\n 'modelsRemovedTooltip': '{0} Models Removed',\n 'singleModelRemovedTooltip': '1 Model Removed',\n 'articlesAddedTooltip': '{0} Articles Added',\n 'singleArticleAddedTooltip': '1 Article Added',\n 'articlesRemovedTooltip': '{0} Articles Removed',\n 'singleArticleRemovedTooltip': '1 Article Removed',\n 'productGroupsAddedTooltip': '{0} Product Groups Added',\n 'singleProductGroupAddedTooltip': '1 Product Group Added',\n 'productGroupsRemovedTooltip': '{0} Product Groups Removed',\n 'singleProductGroupRemovedTooltip': '1 Product Group Removed',\n\n 'dataPackageCountSingle': '1 Element in Data Package',\n 'dataPackageCount': '{0} Elements in Data Package',\n 'manageDataPackages': 'Manage Data Packages',\n 'resetCurrentDataPackage': 'Reset Current Data Package',\n 'filesAddedTooltip': '{0} Files Added',\n 'singleFileAddedTooltip': '1 File Added',\n 'filesRemovedTooltip': '{0} Files Removed',\n 'singleFileRemovedTooltip': '1 File Removed',\n }\n },\n 'en-GB': {\n 'psp-publication-status': {\n 'isPmApproved': 'PM-Approved',\n 'isPmApprovedShort': 'PM',\n 'isPmApprovedTooltip': 'Approval through the product management is given.',\n 'isNonPmApproved': 'Not PM-Approved',\n 'isNonPmApprovedShort': 'PM',\n 'isNonPmApprovedTooltip': 'Approval through the product management is not given.',\n 'isOem': 'OEM',\n 'isOemShort': 'OEM',\n 'isOemTooltip': '',\n 'isDeleted': 'Deleted',\n 'isDeletedTooltip': 'The \"Deleted\" flag is set.',\n 'isConfidential': 'Confidential',\n 'isConfidentialTooltip': 'Unreleased product. Data for internal use only!',\n },\n 'psp-assortment-status': {\n 'assortmentCountSingle': '1 Element in Assortment',\n 'assortmentCount': '{0} Elements in Assortment',\n 'manageAssortments': 'Manage Assortments',\n 'resetCurrentAssortment': 'Reset Current Assortment',\n\n 'modelsAddedTooltip': '{0} Models Added',\n 'singleModelAddedTooltip': '1 Model Added',\n 'modelsRemovedTooltip': '{0} Models Removed',\n 'singleModelRemovedTooltip': '1 Model Removed',\n 'articlesAddedTooltip': '{0} Articles Added',\n 'singleArticleAddedTooltip': '1 Article Added',\n 'articlesRemovedTooltip': '{0} Articles Removed',\n 'singleArticleRemovedTooltip': '1 Article Removed',\n 'productGroupsAddedTooltip': '{0} Product Groups Added',\n 'singleProductGroupAddedTooltip': '1 Product Group Added',\n 'productGroupsRemovedTooltip': '{0} Product Groups Removed',\n 'singleProductGroupRemovedTooltip': '1 Product Group Removed',\n\n 'dataPackageCountSingle': '1 Element in Data Package',\n 'dataPackageCount': '{0} Elements in Data Package',\n 'manageDataPackages': 'Manage Data Packages',\n 'resetCurrentDataPackage': 'Reset Current Data Package',\n 'filesAddedTooltip': '{0} Files Added',\n 'singleFileAddedTooltip': '1 File Added',\n 'filesRemovedTooltip': '{0} Files Removed',\n 'singleFileRemovedTooltip': '1 File Removed',\n }\n }\n};\n","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { templateAnimate } from '@syncfusion/ej2-charts';\nimport { AggregatorDataService } from 'src/app/core/AggregatorDataService';\nimport { Messpunkt } from 'src/app/core/BackendApi/messpunkt.complex';\nimport { ProjectEntity } from 'src/app/core/BackendApi/projectentity.entity';\nimport { DteRow } from 'src/app/core/DteufcAggregatorServiceApi/dterow.complex';\nimport { SectionState } from 'src/app/core/Enums';\nimport { DteMath, IDtePwhParams, IDteResult } from 'src/app/core/math/DteMath';\nimport { ProjectDataService } from 'src/app/core/project-data.service';\nimport { ValueFormatterService } from 'src/app/core/ValueFormatterService';\nimport { provideContext } from 'src/core-lib/angular/context-util';\nimport { LangService } from 'src/core-lib/ej2/services/LangService';\n\n@Component({\n selector: 'app-dte',\n templateUrl: './dte.component.html',\n styleUrls: ['./dte.component.scss'],\n providers: [provideContext(\"Dte\")],\n})\nexport class DteComponent implements OnInit {\n\n stepText = this.langService.getString('PanelStepText_T');\n stepTitle = this.langService.getString('PanelHeadline_T');\n stepBack = this.langService.getString('PanelStepBackLabel_T');\n stepDescription = this.langService.getString('PanelDescription_D');\n temperaturWert;\n\n\n // Graph Variables\n public primaryYAxis: object;\n public primaryXAxis: object;\n public chartDataBedarfsvolumenstrom: Messpunkt[];\n public chartDataPWH60: Messpunkt[];\n public chartDataBetriebspunkt: Messpunkt[];\n public tooltipBetriebspunkt: Object = { enable: true, header: 'Betriebspunkt' };\n public tooltipformatBetriebspunkt: string = this.langService.getString('TooltipformatBetriebspunkt_T_Html', undefined, this.langService.getString('#Generic.Unit.LiterPerMinute_T'), this.langService.getString('#Generic.Unit.DegreeCelsius_T'));\n public legendSettings: Object;\n public animation: object;\n public palette: string[];\n\n // General Project/Table Variables\n private readonly pwh: number = DteMath.pwh;\n private selectedProject: ProjectEntity;\n public bedarfsvolumenstrom : number;\n private dteRows: DteRow[];\n\n // Sidebar Values\n minPWHTemperatur : number;\n druckverlustStrecke : number;\n druckverlustGesamt : number;\n druckverlustHpa: number;\n\n // Bindings/Calculation Values\n public betriebspunkt: Messpunkt;\n public selectedDTE : \"40\" | \"70\" | \"100\";\n public vorlauftemperatur: number = 65;\n public vorlauftemperaturSliderMin: number = 45;\n public benoetigteVorlauftemperatur: number;\n private recommendedDTE: DteRow;\n private DTEAvailable: IDteResult[];\n public loadedDteIsInvalid: boolean;\n private bedarfsvolumenstromEffective: number;\n\n // Constructors/Initializers\n constructor(\n private activatedRoute: ActivatedRoute,\n private readonly router: Router,\n private DataService: ProjectDataService,\n private langService: LangService,\n private formatter: ValueFormatterService,\n private aggregatorService: AggregatorDataService,\n private dteMath: DteMath,\n private valueFormatterService: ValueFormatterService\n ) { }\n\n ngOnInit(): void {\n // load current project\n this.selectedProject = this.activatedRoute.snapshot.data['project'];\n if (this.selectedProject.ProjectValues.BedarfsvolumenstromErgebnisLMin || !(this.selectedProject.ProjectValues.BedarfsvolumenstromErgebnisLMin > 0)) {\n this.bedarfsvolumenstrom = this.selectedProject.ProjectValues.BedarfsvolumenstromErgebnisLMin;\n } else {\n this.bedarfsvolumenstrom = 55; // DEBUG value\n }\n\n if (this.selectedProject.ProjectValues.Dte && this.selectedProject.ProjectValues.Dte.VorlauftemperaturInput) {\n this.vorlauftemperatur = this.selectedProject.ProjectValues.Dte.VorlauftemperaturInput;\n }\n\n // Set initial values\n this.dteRows = this.aggregatorService.aggregatorData.Tables.DteRows;\n this.minPWHTemperatur = this.pwh;\n this.animation = { enable: false };\n this.palette = [\"#5181e8\", \"#5181e8\", \"#000000\"];\n this.legendSettings = { visible: true, alignment: 'Center', shapeWidth: 40 };\n\n\n\n // Execute initial calculations\n this.onChangeVorlauftemperatur();\n\n // Override recommended dte value with loaded when if available\n if(this.selectedProject.ProjectValues.Dte){\n this.DTEAvailable = this.dteMath.dtesFromBedarfsvolumenstrom(this.bedarfsvolumenstrom, { dteRows: this.dteRows })\n this.loadedDteIsInvalid = !this.dteMath.dtesFromBedarfsvolumenstrom(this.bedarfsvolumenstrom, { dteRows: this.dteRows })\n \t .some(d => d.dte == this.selectedProject.ProjectValues.Dte.Ergebnis.toString());\n\n if (!this.loadedDteIsInvalid) {\n this.selectDte(this.selectedProject.ProjectValues.Dte.Ergebnis.toString() as \"40\" | \"70\" | \"100\", false);\n } else {\n this.selectRecommendedDte();\n this.calculateValues();\n }\n }\n else {\n this.loadedDteIsInvalid = false;\n this.selectRecommendedDte();\n this.calculateValues();\n }\n }\n\n // Internal Methods\n private calculateValues() : void {\n // Get current dte info\n let dteInfo = this.dteRows.find(d => d.Dte == this.selectedDTE);\n if(dteInfo){\n // Get graph axis config\n this.primaryYAxis = {\n minimum: dteInfo.DiagramStartVorlauftemperatur, maximum: dteInfo.DiagramEndVorlauftemperatur, interval: dteInfo.DiagramStepVorlauftemperaturLMin,\n title: this.langService.getString('LeistungsdiagrammYAxis_T', undefined, this.langService.getString('#Generic.Unit.DegreeCelsius_T'))\n };\n this.primaryXAxis = {\n minimum: dteInfo.DiagramStartBedarfsvolumenstromLMin, maximum: dteInfo.DiagramEndBedarfsvolumenstromLMin, interval: dteInfo.DiagramStepBedarfsvolumenstromLMin,\n title: this.langService.getString('LeistungsdiagrammXAxis_T', undefined, this.langService.getString('#Generic.Unit.LiterPerMinute_T'))\n };\n\n // Get sidebar values\n this.druckverlustHpa = this.dteMath.dteDruckverlust(this.bedarfsvolumenstrom, dteInfo.KvsSecondary);\n this.druckverlustStrecke = this.dteMath.dteDruckverlust(this.bedarfsvolumenstrom, dteInfo.KvsCirculationFlow);\n this.druckverlustGesamt = this.druckverlustHpa;\n\n // Get graph values\n var yValues = this.dteMath.volauftemperaturenMesspunkteFromDte(dteInfo, this.pwh);\n this.chartDataPWH60 = yValues.map(v => ({ Vorlauftemperatur: v, Bedarfsvolumenstrom: this.dteMath.dteVsFromBedarfstemp(dteInfo, v, this.pwh) }));\n this.createBetriebspunkte();\n } else {\n // Reset sidebar values\n this.druckverlustGesamt = 0;\n this.druckverlustStrecke = 0;\n this.druckverlustHpa = 0;\n }\n\n // Set dte button classes\n switch (this.selectedDTE) {\n case '40': this.selectDte40(); break;\n case '70': this.selectDte70(); break;\n case '100': this.selectDte100(); break;\n default: this.selectDteNone(); break;\n }\n }\n private createBetriebspunkte() : void {\n // note that some of these values MUST be rounded to two digits, or the graphical representation will be invalid\n let dteInfo = this.dteRows.find(d => d.Dte == this.selectedDTE);\n const x = Math.round(this.dteMath.dteVsFromBedarfstemp(dteInfo, Number(this.vorlauftemperatur), this.pwh) * 100) / 100;\n const y = Math.round(this.vorlauftemperatur * 100) / 100;\n this.betriebspunkt = { Bedarfsvolumenstrom: x, Vorlauftemperatur: y }\n this.chartDataBetriebspunkt = [\n { Bedarfsvolumenstrom: 0, Vorlauftemperatur: y },\n { Bedarfsvolumenstrom: x, Vorlauftemperatur: y },\n { Bedarfsvolumenstrom: x, Vorlauftemperatur: 0 }\n ];\n }\n private deselectDTE() : void {\n this.resetGraph();\n this.selectedDTE = null;\n this.vorlauftemperatur = 0;\n }\n private resetGraph() : void {\n this.primaryYAxis = {\n minimum: 50, maximum: 90, interval: 5,\n title: this.langService.getString('LeistungsdiagrammYAxis_T', undefined, this.langService.getString('#Generic.Unit.DegreeCelsius_T'))\n };\n this.primaryXAxis = {\n minimum: 40, maximum: 120, interval: 5,\n title: this.langService.getString('LeistungsdiagrammXAxis_T', undefined, this.langService.getString('#Generic.Unit.LiterPerMinute_T'))\n };\n this.chartDataPWH60 = [{ Vorlauftemperatur: 0, Bedarfsvolumenstrom: 0 }];\n this.chartDataBetriebspunkt = [{ Bedarfsvolumenstrom: 0, Vorlauftemperatur: 0 }]\n }\n\n // Button/Click Events\n public selectDte(type: \"40\" | \"70\" | \"100\", autoOptimizeSettings: boolean): void {\n if(this.selectedDTE != type){\n this.loadedDteIsInvalid = false;\n this.selectedDTE = type;\n\n const dteRow: DteRow = this.dteRows.find(d => d.Dte === this.selectedDTE);\n this.benoetigteVorlauftemperatur = this.dteMath.benoetigteVorlauftemperaturFromBedarfsvolumenstrom({\n dteRow,\n bedarfstemperaturPwh: 60,\n bedarfsvolumenstromLMin: this.bedarfsvolumenstrom,\n });\n\n if (autoOptimizeSettings)\n this.setOptimalDteValues();\n\n this.vorlauftemperaturSliderMin = Math.ceil(this.benoetigteVorlauftemperatur);\n this.calculateValues();\n\n const dteParams: IDtePwhParams = this.dteMath.getDtePwhParams(dteRow, 60);\n this.bedarfsvolumenstromEffective = this.bedarfsvolumenstrom;\n this.chartDataBedarfsvolumenstrom = [\n { Vorlauftemperatur: 50, Bedarfsvolumenstrom: this.bedarfsvolumenstromEffective },\n { Vorlauftemperatur: 90, Bedarfsvolumenstrom: this.bedarfsvolumenstromEffective }\n ];\n }\n\n\n }\n public goBack() : void {\n this.router.navigate([`/project-view/${this.selectedProject.ProjectId}`]);\n }\n public navigateNext() : void {\n if(this.selectedProject.ProjectValues.Dte){\n if(this.selectedProject.SectionStates.Dte == SectionState.Set && this.selectedProject.ProjectValues.Dte.VorlauftemperaturInput === this.vorlauftemperatur && this.selectedProject.ProjectValues.Dte.Ergebnis == Number(this.selectedDTE)){\n this.selectedProject.SectionStates.Dte = SectionState.Set;\n this.selectedProject.ProjectValues.Dte.Vorlauftemperatur = this.vorlauftemperatur;\n this.DataService.saveCurrentProject()\n .then(_ => this.router.navigate([`/project-view/${this.selectedProject.ProjectId}`]));\n return;\n }\n this.selectedProject.ProjectValues.Dte.Vorlauftemperatur = this.dteMath.benoetigteVorlauftemperaturFromBedarfsvolumenstrom({\n bedarfsvolumenstromLMin: this.bedarfsvolumenstrom,\n bedarfstemperaturPwh: this.pwh,\n dteRow: this.dteRows.find(d => d.Dte == this.selectedDTE)\n });\n this.selectedProject.ProjectValues.Dte.VorlauftemperaturInput = this.vorlauftemperatur;\n this.selectedProject.ProjectValues.Dte.PwhTemperatur = this.pwh;\n this.selectedProject.ProjectValues.Dte.DruckverlustHpa = this.druckverlustHpa;\n this.selectedProject.ProjectValues.Dte.DruckverlustZirkulationsstreckeHpa = this.druckverlustStrecke;\n this.selectedProject.ProjectValues.Dte.DruckverlustGesamtHpa = this.druckverlustGesamt;\n this.selectedProject.ProjectValues.Dte.Ergebnis = Number(this.selectedDTE);\n this.selectedProject.ProjectValues.Dte.MesspunktePwh60 = this.chartDataPWH60;\n this.selectedProject.ProjectValues.Dte.BetriebspunktPwh60 = this.betriebspunkt;\n this.selectedProject.ProjectValues.Dte.GraphBedarfsvolumenstromEffektiv = this.bedarfsvolumenstromEffective;\n }\n else {\n this.selectedProject.ProjectValues.Dte = {\n Vorlauftemperatur: this.dteMath.benoetigteVorlauftemperaturFromBedarfsvolumenstrom({\n bedarfsvolumenstromLMin: this.bedarfsvolumenstrom,\n bedarfstemperaturPwh: this.pwh,\n dteRow: this.dteRows.find(d => d.Dte == this.selectedDTE)\n }),\n VorlauftemperaturInput: this.vorlauftemperatur,\n PwhTemperatur: this.pwh,\n DruckverlustHpa: this.druckverlustHpa,\n DruckverlustZirkulationsstreckeHpa: this.druckverlustStrecke,\n DruckverlustGesamtHpa: this.druckverlustGesamt,\n Ergebnis: Number(this.selectedDTE),\n MesspunktePwh60: this.chartDataPWH60,\n BetriebspunktPwh60: this.betriebspunkt,\n GraphBedarfsvolumenstromEffektiv: this.bedarfsvolumenstromEffective\n };\n }\n\n this.selectedProject.ProjectValues.BedarfsvolumenstromEffektivLMin = this.selectedProject.ProjectValues.BedarfsvolumenstromErgebnisLMin;\n this.selectedProject.ProjectValues.VorlauftemperaturEffektiv = this.selectedProject.ProjectValues.Dte.Vorlauftemperatur;\n this.selectedProject.ProjectValues.BedarfstemperaturGrad = this.pwh;\n\n this.selectedProject.SectionStates.Dte = SectionState.Set;\n\n if (this.selectedProject.SectionStates.Rohrauslegung === SectionState.Set) {\n this.selectedProject.SectionStates.Rohrauslegung = SectionState.Check;\n }\n\n if(this.selectedProject.SectionStates.Ufc == SectionState.Set)\n this.selectedProject.SectionStates.Ufc = SectionState.Check;\n\n\n if(this.selectedProject.SectionStates.BuildingTypeWarmwasserStates){\n this.selectedProject.SectionStates.BuildingTypeWarmwasserStates.forEach(b => {\n if(b.Value == SectionState.Set){\n b.Value = SectionState.Check;\n }\n });\n }\n\n if (this.selectedProject.SectionStates.Energiespeicher === SectionState.Set) {\n this.selectedProject.SectionStates.Energiespeicher = SectionState.Check;\n }\n\n if(this.vorlauftemperatur > this.selectedProject.ProjectValues.Dte.Vorlauftemperatur){\n this.selectedProject.ProjectValues.Dte.Vorlauftemperatur = this.vorlauftemperatur;\n }\n\n this.DataService.saveCurrentProject()\n .then(_ => this.router.navigate([`/project-view/${this.selectedProject.ProjectId}`]));\n }\n\n // Change Events\n public onChangeVorlauftemperatur(): void {\n // Recalculate\n this.calculateValues();\n }\n\n private selectRecommendedDte(): void\n {\n // Get available DTEs for configuration\n this.DTEAvailable = this.dteMath.dtesFromBedarfsvolumenstrom(this.bedarfsvolumenstrom, { dteRows: this.dteRows })\n if (this.DTEAvailable && this.DTEAvailable.length > 0) {\n // Get recommended DTE\n this.recommendedDTE = this.dteMath.recommendedDte({\n bedarfstemperaturPwh: this.pwh,\n bedarfsvolumenStromLMin: this.bedarfsvolumenstrom,\n dteRows: this.dteRows\n })\n\n // Select recommended DTE if available\n if (this.recommendedDTE) {\n this.selectDte(this.recommendedDTE.Dte as \"40\" | \"70\" | \"100\", true)\n }\n else {\n this.deselectDTE();\n }\n } else {\n this.deselectDTE();\n }\n }\n\n private setOptimalDteValues(): void\n {\n this.vorlauftemperatur = Math.ceil(this.benoetigteVorlauftemperatur);\n }\n\n // Validation Methods\n public isDteDisabled(dte: string) : boolean {\n if (this.DTEAvailable && this.DTEAvailable.length > 0) {\n return !this.DTEAvailable.some(x => x.dte == dte)\n }\n return true;\n }\n\n // Value Formatters\n public getDteName() : string {\n return this.formatter.formatDteName(this.selectedDTE);\n }\n public getVorlauftemperatur() : string {\n return this.formatter.formatNumber(this.vorlauftemperatur, 'DegreeCelsius')\n }\n public getBedarfsvolumenstrom() : string {\n return this.formatter.formatNumber(Number(this.bedarfsvolumenstrom), 'LiterPerMinute', {maximumFractionDigits: 0})\n }\n public getVorlaufErgebnis(){\n return this.formatter.formatNumber(Math.ceil(Number(this.benoetigteVorlauftemperatur)), 'DegreeCelsius', { maximumFractionDigits: 0 });\n }\n public getMinPwhTemperatur() : string {\n return this.valueFormatterService.formatNumber(this.minPWHTemperatur, 'DegreeCelsius');\n }\n public getDruckverlustStrecke() : string {\n return this.valueFormatterService.formatNumber(this.druckverlustStrecke, 'HektopascalInBar', { maximumFractionDigits: 0 });\n }\n public getDruckverlustGesamt() : string {\n return this.valueFormatterService.formatNumber(this.druckverlustGesamt, 'HektopascalInBar', { maximumFractionDigits: 0 });\n }\n public getBedarfsvolumenstromPwh60(): string{\n return this.valueFormatterService.formatNumber(60, 'DegreeCelsius');\n }\n public getDte40Btn(): string{\n return this.valueFormatterService.formatDteName('40')\n }\n public getDte70Btn(): string{\n return this.valueFormatterService.formatDteName('70')\n }\n public getDte100Btn(): string{\n return this.valueFormatterService.formatDteName('100')\n }\n public getPwh60(): string{\n return this.formatter.formatNumber(60, 'DegreeCelsius')\n }\n\n\n // DTE Button Style Setter\n private selectDte40() : void {\n var dte40 = document.getElementById('dte40'); //TODO, wenn wieder funktioniert\n var dte70 = document.getElementById('dte70'); //mit ViewChild und switch-case?\n var dte100 = document.getElementById('dte100');\n dte40.classList.add('dteButtonFocused');\n dte70.classList.remove('dteButtonFocused');\n dte100.classList.remove('dteButtonFocused');\n }\n private selectDte70() : void {\n var dte70 = document.getElementById('dte70');\n var dte40 = document.getElementById('dte40');\n var dte100 = document.getElementById('dte100');\n dte70.classList.add('dteButtonFocused');\n dte40.classList.remove('dteButtonFocused');\n dte100.classList.remove('dteButtonFocused');\n }\n private selectDte100() : void {\n var dte100 = document.getElementById('dte100');\n var dte40 = document.getElementById('dte40');\n var dte70 = document.getElementById('dte70');\n dte100.classList.add('dteButtonFocused');\n dte70.classList.remove('dteButtonFocused');\n dte40.classList.remove('dteButtonFocused');\n }\n private selectDteNone() : void {\n var dte100 = document.getElementById('dte100');\n var dte40 = document.getElementById('dte40');\n var dte70 = document.getElementById('dte70');\n dte100.classList.remove('dteButtonFocused');\n dte70.classList.remove('dteButtonFocused');\n dte40.classList.remove('dteButtonFocused');\n }\n}\n","\n
      \n\n \n \n
      \n \n
      \n \n
      \n

      \n  \n

      \n
      \n \n
      \n
      \n
      \n
      \n {{'Temperatur_T' | translate}}\n
      \n
      \n {{getMinPwhTemperatur()}}\n
      \n
      \n
      \n
      \n {{'Bedarfsvolumenstrom_T' | translate}}\n
      \n
      \n {{getBedarfsvolumenstrom()}}\n
      \n
      \n\n
      \n
      \n \n {{'BenoetigteVorlauftemperatur_T' | translate}}\n \n
      \n
      \n \n {{getVorlaufErgebnis()}}\n \n
      \n
      \n\n
      \n
      \n {{'DruckverlustStrecke_T' | translate}}\n
      \n
      \n {{getDruckverlustStrecke()}}\n -\n
      \n
      \n
      \n
      \n {{'DruckverlustGesamt_T' | translate}}\n
      \n
      \n {{getDruckverlustGesamt()}}\n -\n
      \n
      \n
      \n
      \n
      \n \n
      \n
      \n

      \n {{'ErrorGeringeVorlauftemperatur_D' | translate}}

      \n
      \n
      \n {{'Result_T' | translate}}\n {{getDteName()}}\n -\n {{'UebernehmenBtn_T' | translate}}\n
      \n
      \n
      \n
      \n
      \n
      \n
      \n

      {{'Headline_T' | translate}}

      \n \n
      \n
      \n \n
      \n
      \n \n
      \n
      \n {{'VorlauftemperaturSlider_T' | translate}}\n
      \n \n {{'#Generic.Unit.DegreeCelsius_T' | translate}}\n 0\" class=\"radioButtonText\" style=\"margin-left: 1em; white-space:nowrap;\">{{'VorlaufTemperatur_T' | translate: getVorlaufErgebnis()}}\n {{'BenVorlaufTemperaturNull_T' | translate}}\n
      \n
      \n\n
      \n
      \n
      \n {{'AuswahlDteHeadline_T' | translate}}\n \n
      \n
      \n \n \n \n
      \n
      \n
      \n
      \n {{'LeistungsdiagrammHeadline_T' | translate}}\n \n
      \n\n
      \n \n \n \n \n \n \n \n
      \n\n
      \n\n
      \n
      \n","export class ServiceStatic\n{\n /**\n * The name of the request header meant to contain the psp identity for authorization purposes.\n */\n public static readonly runtimeInfoEndpoint = 'health/runtime-info';\n public static readonly labelAssetEndpoint = 'backend-assets/labels.{0}.json';\n}\n","import { Directive, Input, TemplateRef, ViewContainerRef } from '@angular/core';\n\n/**\n * Allows to define context variables within templates, e.g.\n *
      \n * {{myVariable}}\n *
      \n */\n@Directive({\n selector: '[localVar]',\n})\nexport class VarDirective\n{\n @Input()\n set localVar(context: any)\n {\n this.context.$implicit = this.context.localVar = context;\n this.updateView();\n }\n\n public context: any = {};\n\n constructor(private vcRef: ViewContainerRef, private templateRef: TemplateRef) {}\n\n public updateView()\n {\n this.vcRef.clear();\n this.vcRef.createEmbeddedView(this.templateRef, this.context);\n }\n}\n","import { Component, Event, EmitType, INotifyPropertyChanged, Property, addClass, removeClass } from '@syncfusion/ej2-base';\nimport { Button, ButtonModel } from '@syncfusion/ej2-buttons';\nimport { createSpinner, hideSpinner, showSpinner } from '@syncfusion/ej2-popups';\nimport { events } from './events';\nimport { IconPosition, IPspButtonModel, SpinnerPosition, TextPosition } from './IPspButtonModel';\nimport { Position, Tooltip } from '@syncfusion/ej2-popups';\nimport { PimStatic } from 'src/core-lib/ej2/utils/PimStatic';\n\nexport class PspButton extends Component implements INotifyPropertyChanged\n{\n private _wrappedButton: Button;\n private spinnerEl: HTMLElement;\n protected tooltip: Tooltip;\n\n /**\n * The icon position.\n * If no custom icon is specified, the chevron pointing into the respective direction will be used.\n * @default 'right'\n */\n @Property('right')\n public iconPosition?: IconPosition;\n\n @Property('left')\n public textPosition?: TextPosition;\n\n /**\n * Defines class/multiple classes separated by a space of the element.\n * @default ''\n */\n @Property()\n public cssClass?: string;\n\n /**\n * Defines class/multiple classes separated by a space for the Button that is used to include an icon.\n * The icon of the button defaults to a chevron pointing into the direction which is set by iconPosition, specifing a\n * custom icon here will overwrite the chevron.\n * Set to empty string to show no icon at all.\n * @default undefined\n */\n @Property()\n public customIconCss?: string;\n\n /**\n * Specifies a value that indicates whether the Button is `disabled` or not.\n * @default false.\n */\n @Property(false)\n public isDisabled?: boolean;\n\n /**\n * Defines the text content of the Button element.\n * @default ''\n */\n @Property()\n public content?: string;\n\n /**\n * Whether a loading spinner should be displayed. If an icon is configured, it will be hidden while the spinner is shown.\n */\n @Property()\n public showSpinner: boolean;\n\n /**\n * The position of the loading spinner.\n */\n @Property()\n public spinnerPosition: SpinnerPosition;\n\n /**\n * Defines the tooltip text. HTML is supported.\n * @default ''\n */\n @Property(null)\n public tooltipContent?: string;\n\n /**\n * The placement of the tooltip.\n * @default 'TopCenter'\n */\n @Property('TopCenter')\n public tooltipPosition?: Position;\n\n /**\n * Raised when the component has been created and rendered.\n */\n @Event()\n public createdEvent?: EmitType<{}>;\n\n /**\n * Raised when the component has been destroyed.\n */\n @Event()\n public destroyedEvent?: EmitType<{}>;\n\n constructor(options?: IPspButtonModel, element?: string | HTMLButtonElement)\n {\n super(options, element);\n }\n\n /** @ignore */\n public getModuleName(): string\n {\n return 'psp-button';\n }\n\n protected preRender(): void\n {\n // NOP\n }\n\n protected render(): void\n {\n const setup: ButtonModel = {\n iconPosition: this.getIconPosition(),\n cssClass: this.getCssClass(),\n iconCss: this.getIconCssClass(),\n disabled: this.isDisabled,\n content: this.content,\n isPrimary: false,\n enableHtmlSanitizer: false,\n };\n\n this._wrappedButton = new Button(setup, this.element);\n this.createSpinner();\n this.setSpinnerPosition(this.spinnerPosition);\n this.setTextPosition(this.textPosition);\n this.setSpecialClasses();\n this.updateSpinAnimation();\n\n this.setTooltipText(this.tooltipContent);\n\n this.trigger(events.created, {});\n }\n\n private createSpinner(): void\n {\n this.spinnerEl = this.createElement('span', { className: 'e-spinner' });\n\n createSpinner(\n {\n target: this.spinnerEl,\n width: 16,\n type: 'Fabric'\n },\n this.createElement\n );\n }\n\n private setSpinnerPosition(position: SpinnerPosition): void\n {\n if (position === 'left')\n this.element.insertBefore(this.spinnerEl, this.element.firstChild);\n else\n this.element.appendChild(this.spinnerEl);\n }\n\n private setTextPosition(position: TextPosition): void\n {\n removeClass([this.element], [\n 'pspc-button--text-align-left',\n 'pspc-button--text-align-right',\n 'pspc-button--text-align-top',\n 'pspc-button--text-align-bottom',\n ]);\n\n addClass([this.element], 'pspc-button--text-align-' + position);\n }\n\n private setSpecialClasses(): void\n {\n removeClass([this.element], 'pspc-button--no-icon');\n\n if (this.customIconCss !== undefined)\n addClass([this.element], 'pspc-button--no-icon');\n }\n\n private updateSpinAnimation()\n {\n if (this.showSpinner)\n showSpinner(this.element);\n else\n hideSpinner(this.element);\n }\n\n private setTooltipText(tooltipText: string): void\n {\n if (tooltipText)\n {\n if (!this.tooltip)\n {\n this.tooltip = new Tooltip({\n content: tooltipText,\n openDelay: PimStatic.TooltipDelayMs,\n position: this.tooltipPosition,\n showTipPointer: false,\n });\n this.tooltip.appendTo(this.element);\n }\n else\n {\n this.tooltip.content = tooltipText;\n }\n }\n else if (this.tooltip)\n {\n this.tooltip.destroy();\n this.tooltip.element.parentElement.removeChild(this.tooltip.element);\n delete this.tooltip;\n }\n }\n\n private getIconPosition()\n {\n return this.iconPosition === 'left' ? 'Left' : 'Right';\n }\n\n /** @ignore */\n public onPropertyChanged(newProp: IPspButtonModel, oldProp: IPspButtonModel): void\n {\n for (const propertyName of Object.keys(newProp))\n {\n const oldValue = oldProp[propertyName];\n const newValue = newProp[propertyName];\n\n switch (propertyName) {\n // properties to be passed through to the wrapper\n case 'content':\n this._wrappedButton[propertyName as string] = newValue;\n break;\n\n // name remappings\n case 'isDisabled':\n this._wrappedButton.disabled = newValue;\n break;\n\n case 'cssClass':\n this._wrappedButton.cssClass = this.getCssClass();\n break;\n\n case 'spinnerPosition':\n this.setSpinnerPosition(newProp.spinnerPosition);\n this._wrappedButton.cssClass = this.getCssClass();\n break;\n\n case 'textPosition':\n this.setTextPosition(newProp.textPosition);\n this._wrappedButton.cssClass = this.getCssClass();\n break;\n\n case 'iconPosition':\n case 'customIconCss':\n case 'showSpinner':\n this._wrappedButton.cssClass = this.getCssClass();\n this._wrappedButton.iconCss = this.getIconCssClass();\n this._wrappedButton.iconPosition = this.getIconPosition();\n this.setSpecialClasses();\n\n if (propertyName === 'showSpinner')\n this.updateSpinAnimation();\n\n break;\n\n case 'iconTooltip':\n this.setTooltipText(newValue);\n break;\n\n case 'iconTooltipPosition':\n if (this.tooltip)\n this.tooltip.position = newValue;\n\n break;\n }\n }\n }\n\n protected getCssClass(): string\n {\n let cssClass = `pspc-button`;\n if (!this.iconPosition)\n cssClass += ' pspc-button--right';\n else\n cssClass += ` pspc-button--${this.iconPosition}`;\n\n if (this.showSpinner)\n cssClass += ' pspc-button--spinner';\n\n if (this.cssClass)\n cssClass += ' ' + this.cssClass;\n\n if (!this.spinnerPosition)\n cssClass += ' pspc-button--spinner-right';\n else\n cssClass += ` pspc-button--spinner-${this.spinnerPosition}`;\n\n return cssClass;\n }\n\n protected getIconCssClass(): string\n {\n if (this.customIconCss === undefined)\n {\n if (!this.iconPosition)\n return 'icon-chevron-thin-left';\n else\n return `icon-chevron-thin-${this.iconPosition}`;\n }\n\n return this.customIconCss || 'no-icon';\n }\n\n protected getPersistData(): string\n {\n return '';\n }\n\n public destroy(): void\n {\n this.trigger(events.destroyed, {});\n super.destroy();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ButtonPropsModel, Dialog } from '@syncfusion/ej2-angular-popups';\nimport { LangService } from './LangService';\nimport { ServiceLocator } from './ServiceLocator';\n\n@Injectable()\nexport class GenericDialogService\n{\n private langService: LangService;\n\n public constructor()\n {\n this.langService = ServiceLocator.get(LangService);\n }\n\n public showSaveChangesDialog(\n customHeader?: string,\n customDescription?: string,\n dialogWidth?: string | number,\n target?: string | HTMLElement\n ): Promise\n {\n return this.showSimpleYesNoDialog(\n customHeader || this.langService.getString('#Generic.Dialogs.SaveChanges.Header_T'),\n customDescription || this.langService.getString('#Generic.Dialogs.SaveChanges.Description_D_Html'),\n this.langService.getString('#Generic.Dialogs.SaveChanges.SaveBtn_T'),\n this.langService.getString('#Generic.Dialogs.SaveChanges.CancelBtn_T'),\n dialogWidth,\n target\n );\n }\n\n /**\n * @param itemLabel A short string describing the element to remove, e.g. its name or type.\n */\n public showRemoveOneDialog(\n itemLabel: string,\n customHeader?: string,\n customDescription?: string,\n dialogWidth?: string | number,\n target?: string | HTMLElement\n ): Promise\n {\n return this.showSimpleYesNoDialog(\n customHeader || this.langService.getString('#Generic.Dialogs.RemoveOne.Header_T'),\n customDescription || this.langService.getString('#Generic.Dialogs.RemoveOne.Description_D_Html', undefined, itemLabel),\n this.langService.getString('#Generic.Dialogs.RemoveOne.RemoveBtn_T'),\n this.langService.getString('#Generic.Dialogs.RemoveOne.CancelBtn_T'),\n dialogWidth,\n target\n );\n }\n\n public showRemoveAllDialog(\n customHeader?: string,\n customDescription?: string,\n dialogWidth?: string | number,\n target?: string | HTMLElement\n ): Promise\n {\n return this.showSimpleYesNoDialog(\n customHeader || this.langService.getString('#Generic.Dialogs.RemoveAll.Header_T'),\n customDescription || this.langService.getString('#Generic.Dialogs.RemoveAll.Description_D_Html'),\n this.langService.getString('#Generic.Dialogs.RemoveAll.RemoveBtn_T'),\n this.langService.getString('#Generic.Dialogs.RemoveAll.CancelBtn_T'),\n dialogWidth,\n target\n );\n }\n\n public showDiscardChangesDialog(\n customHeader?: string,\n customDescription?: string,\n dialogWidth?: string | number,\n target?: string | HTMLElement\n ): Promise\n {\n return this.showSimpleYesNoDialog(\n customHeader || this.langService.getString('#Generic.Dialogs.DiscardChanges.Header_T'),\n customDescription || this.langService.getString('#Generic.Dialogs.DiscardChanges.Description_D_Html'),\n this.langService.getString('#Generic.Dialogs.DiscardChanges.DiscardBtn_T'),\n this.langService.getString('#Generic.Dialogs.DiscardChanges.CancelBtn_T'),\n dialogWidth,\n target\n );\n }\n\n /**\n * @returns A promise that resolves to true, if overwrite was chosen, otherwise false.\n */\n public showWriteConflictDialog(\n customHeader?: string,\n customDescription?: string,\n dialogWidth?: string | number,\n target?: string | HTMLElement\n ): Promise\n {\n let description = customDescription;\n if (!description)\n {\n description = this.langService.getString('#Generic.Dialogs.ItemWriteConflict.Description_D_Html');\n description += '
      ' + this.langService.getString('#Generic.Dialogs.ItemWriteConflict.TwoWayCallToAction_D_Html');\n }\n\n return this.showSimpleYesNoDialog(\n customHeader || this.langService.getString('#Generic.Dialogs.ItemWriteConflict.Header_T'),\n description,\n this.langService.getString('#Generic.Dialogs.ItemWriteConflict.ReloadBtn_T'),\n this.langService.getString('#Generic.Dialogs.ItemWriteConflict.CancelBtn_T'),\n dialogWidth || '550px',\n target\n );\n }\n\n public showThreeWayWriteConflictDialog(\n customHeader?: string,\n customDescription?: string,\n dialogWidth?: string | number,\n target?: string | HTMLElement\n ): Promise<'reload' | 'overwrite' | 'cancel'>\n {\n let description = customDescription;\n if (!description)\n {\n description = this.langService.getString('#Generic.Dialogs.ItemWriteConflict.Description_D_Html');\n description += '
      ' + this.langService.getString('#Generic.Dialogs.ItemWriteConflict.ThreeWayCallToAction_D_Html');\n }\n\n return this.showSimpleDialog(\n customHeader || this.langService.getString('#Generic.Dialogs.ItemWriteConflict.Header_T'),\n description,\n [\n this.langService.getString('#Generic.Dialogs.ItemWriteConflict.ReloadBtn_T'),\n this.langService.getString('#Generic.Dialogs.ItemWriteConflict.OverwriteBtn_T'),\n this.langService.getString('#Generic.Dialogs.ItemWriteConflict.CancelBtn_T')\n ],\n dialogWidth || '700px',\n target\n ).then((buttonResult: number) =>\n {\n if (buttonResult === 0)\n return 'reload';\n else if (buttonResult === 1)\n return 'overwrite';\n else\n return 'cancel';\n });\n }\n\n public showPermissionMissingDialog(\n customHeader?: string,\n customDescription?: string,\n dialogWidth?: string | number,\n target?: string | HTMLElement\n ): Promise\n {\n return this.showSimpleDialog(\n customHeader || this.langService.getString('#Generic.Dialogs.Unpermitted.Header_T'),\n customDescription || this.langService.getString('#Generic.Dialogs.Unpermitted.Description_D_Html'),\n [this.langService.getString('#Generic.Dialogs.Unpermitted.OkBtn_T')],\n dialogWidth,\n target\n );\n }\n\n public showServerErrorDialog(\n httpStatusCode: number,\n errorDetails: string,\n customHeader?: string,\n customDescription?: string,\n dialogWidth?: string | number,\n target?: string | HTMLElement\n ): Promise\n {\n return this.showSimpleDialog(\n customHeader || this.langService.getString('#Generic.Dialogs.ServerError.Header_T'),\n customDescription || this.langService.getString(\n '#Generic.Dialogs.ServerError.Description_D_Html', undefined, httpStatusCode.toString(), errorDetails),\n [this.langService.getString('#Generic.Dialogs.ServerError.OkBtn_T')],\n dialogWidth,\n target\n );\n }\n\n /**\n * @param itemLabel A short string describing the element to remove, e.g. its name or type.\n */\n public showItemNotFoundDialog(\n itemLabel: string,\n customHeader?: string,\n customDescription?: string,\n dialogWidth?: string | number,\n target?: string | HTMLElement\n ): Promise\n {\n return this.showSimpleDialog(\n customHeader || this.langService.getString('#Generic.Dialogs.ItemNotFound.Header_T'),\n customDescription || this.langService.getString('#Generic.Dialogs.ItemNotFound.Description_D_Html', undefined, itemLabel),\n [this.langService.getString('#Generic.Dialogs.ItemNotFound.OkBtn_T')],\n dialogWidth,\n target\n );\n }\n\n public showSimpleYesNoDialog(\n header: string,\n description: string,\n yesBtnText: string,\n noBtnText: string,\n dialogWidth?: string | number,\n target?: string | HTMLElement\n ): Promise\n {\n return this.showSimpleDialog(\n header,\n description,\n [yesBtnText, noBtnText],\n dialogWidth,\n target\n ).then((buttonResult: number) => buttonResult === 0); // true only if primary button was clicked\n }\n\n public showErrorDetailsDialog(\n errorDetails: string,\n dialogWidth: string | number = '800px',\n target?: string | HTMLElement\n ): Promise\n {\n const description = this.langService.getString('#Generic.Dialogs.ErrorDetails.Description_D_Html');\n\n return this.showSimpleDialog(\n this.langService.getString('#Generic.Dialogs.ErrorDetails.Header_T'),\n `

      ${description}

      ${errorDetails}
      `,\n ['OK'],\n dialogWidth,\n target\n ).then((buttonResult: number) => buttonResult === 0); // true only if primary button was clicked\n }\n\n /**\n * @param buttonNames The display names of the buttons to render. The first button is always primary.\n * @returns A promise which resolves with the index of the button clicked. -1 if no button was clicked.\n */\n public showSimpleDialog(\n header: string,\n description: string,\n buttonNames: string[],\n dialogWidth?: string | number,\n target?: string | HTMLElement\n ): Promise\n {\n let dialogResult: number = -1;\n\n return new Promise((resolve, reject) =>\n {\n const modalDivEl = document.createElement('div');\n document.body.appendChild(modalDivEl);\n\n let dialog: Dialog = new Dialog(\n {\n width: dialogWidth || '450px',\n header: header,\n content: description,\n target: target || document.body,\n isModal: true,\n animationSettings: { effect: 'Fade', duration: 200 },\n buttons: buttonNames.map((buttonName, buttonIdx) =>\n ({\n click: () =>\n {\n dialogResult = buttonIdx;\n dialog.hide();\n },\n buttonModel: { content: buttonName, isPrimary: buttonIdx === buttonNames.length - 1 }\n })),\n overlayClick: () => dialog.hide(),\n close: () =>\n {\n resolve(dialogResult);\n\n dialog.destroy();\n modalDivEl.parentElement.removeChild(modalDivEl);\n }\n }, modalDivEl);\n dialog.show();\n });\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\n@Component({\n selector: 'app-structure-item',\n templateUrl: './structure-item.component.html',\n styleUrls: ['./structure-item.component.scss']\n})\nexport class StructureItemComponent implements OnInit {\n\n @Input() itemTitle: string;\n @Input() imgSrc: string;\n @Input() itemChecked: boolean;\n\n @Output() stateChanged = new EventEmitter();\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n\n onChange(){\n this.stateChanged.emit();\n }\n\n onClick(){\n this.itemChecked = !this.itemChecked;\n this.onChange();\n }\n\n}\n","
      \n
      \n \n
      \n \n
      ","import { Component, EventEmitter, Inject, Output, ViewChild, OnInit } from '@angular/core';\nimport { AggregatorDataService } from 'src/app/core/AggregatorDataService';\nimport { Wohnungsgruppe } from 'src/app/core/BackendApi/wohnungsgruppe.complex';\nimport { ApartmentGroupFacilityRow } from 'src/app/core/DteufcAggregatorServiceApi/apartmentgroupfacilityrow.complex';\nimport { PspFormFieldGroup } from 'src/core-lib/angular/components/forms/PspFormFieldGroup';\nimport { PspFormField } from 'src/core-lib/angular/components/forms/PspFormField';\nimport { Validators } from '@angular/forms';\nimport { ZweitBadTyp } from 'src/app/core/Enums';\nimport { LangService } from 'src/core-lib/ej2/services/LangService';\nimport { DialogComponent } from '@syncfusion/ej2-angular-popups';\nimport { BlurEventArgs, ChangeEventArgs } from '@syncfusion/ej2-inputs/src';\n\n@Component({\n selector: 'app-wohnungsgruppe-dialog-data',\n templateUrl: './wohnungsgruppe-dialog-data.component.html',\n styleUrls: ['./wohnungsgruppe-dialog-data.component.scss'],\n})\nexport class WohnungsgruppeDialogData implements OnInit{\n\n public ngOnInit(): void {\n this.calculateMinBelegungszahl();\n }\n\n invalidFieldsDialogButtons = [{\n 'click': this.onCloseInvalidFieldsDialog.bind(this),\n buttonModel: {\n content: this.langService.getString('InvalidDialogUeberpruefenBtn_T'),\n isPrimary: false,\n cssClass: 'e-primary'\n }\n }]\n\n //Output\n @Output() saveNewEditDialog = new EventEmitter();\n @Output() editItem = new EventEmitter();\n\n //ViewChild\n @ViewChild('invalidFieldsDialog') public invalidFieldsDialog: DialogComponent;\n\n // Config Variables\n public readonly austattungFields: { text: string, value: string };\n public readonly zweitbadTypesFields: { text: string, value: string };\n public readonly formFields: PspFormFieldGroup;\n public readonly zweitbadTypes: { label: string, value: ZweitBadTyp }[];\n\n // Edit Data Variables\n public currentElement: Wohnungsgruppe;\n public currentElementAusstattungsIDs: string[];\n public currentElementZweitbadAusstattungsIDs: string[];\n public editElementIndex: number;\n public calculatedMin: number = 2;\n public maxDefinedRaumZahl: number = 7;\n\n // Internal Variables\n private readonly allAvailableFacilities: ApartmentGroupFacilityRow[];\n public readonly availableErstbadFacilities: ApartmentGroupFacilityRow[];\n public availableZweitbadFacilities: ApartmentGroupFacilityRow[];\n private availableFacilities: ApartmentGroupFacilityRow[];\n private edit: boolean;\n\n @ViewChild(DialogComponent) public dialog: DialogComponent;\n\n // Constructors\n constructor(\n private langService: LangService,\n protected aggregatorDataService: AggregatorDataService\n ){\n this.zweitbadTypes = [\n { label: this.langService.getString('ZweitBadTypes.Keins_T'), value: ZweitBadTyp.None },\n { label: this.langService.getString('ZweitBadTypes.Zwei_T'), value: ZweitBadTyp.ZweitesBad },\n { label: this.langService.getString('ZweitBadTypes.GaesteMit_T'), value: ZweitBadTyp.GästezimmerMitBwUndDu },\n { label: this.langService.getString('ZweitBadTypes.GaesteOhne_T'), value: ZweitBadTyp.GästezimmerOhneBwUndDu }\n ];\n\n this.availableFacilities = this.aggregatorDataService.aggregatorData.Tables.ApartmentGroupFacilityRows;\n\n this.allAvailableFacilities = this.availableFacilities;\n this.availableErstbadFacilities = this.availableFacilities.filter(f => f.ZapfstellenbedarfWVErstbad != null)\n \n this.zweitbadTypesFields = { text: \"label\", value: \"value\" };\n this.austattungFields = { text: \"DisplayNameLoc\", value: \"FacilityId\" };\n \n this.currentElement = {\n Anzahl: 0,\n Bezeichnung: null,\n Ausstattungen: null,\n Belegungszahl: 0,\n IsKleinwohnungen: false,\n Raumzahl: 0,\n ZweitBadTyp: null,\n AusstattungenZweitbad: null\n };\n this.currentElementAusstattungsIDs = null;\n this.currentElementZweitbadAusstattungsIDs = null;\n \n this.formFields = new PspFormFieldGroup([\n new PspFormField(\n {\n fieldName: 'Name',\n displayName: this.langService.getString('FormFields.Name_T'),\n formState: {\n value: this.currentElement.Bezeichnung,\n disabled: false\n },\n displayAsRequired: true,\n validatorOrOpts: [Validators.required, Validators.pattern(\"[\\\\w\\\\d\\-\\.()/\\\\!\\\"'+?*~#_°^=%$§€@äöüÄÖÜß:;,<>& ]*\"), Validators.minLength(1),Validators.maxLength(50)],\n }),\n new PspFormField(\n {\n fieldName: 'groupAmount',\n displayName: \"\",\n formState: {\n value: this.currentElement.Anzahl,\n disabled: false\n },\n displayAsRequired: false,\n validatorOrOpts: Validators.min(1)\n }),\n new PspFormField(\n {\n fieldName: 'groupAmountLabel',\n displayName: this.langService.getString('FormFields.GroupAmount_T'),\n formState: {\n value: this.currentElement.Anzahl,\n disabled: false\n },\n displayAsRequired: true,\n }),\n new PspFormField(\n {\n fieldName: 'groupChecked',\n displayName: ' ',\n formState: {\n value: this.currentElement.IsKleinwohnungen,\n disabled: false\n },\n displayAsRequired: false,\n\n }),\n new PspFormField(\n {\n fieldName: 'roomAmount',\n displayName: this.langService.getString('FormFields.RoomAmount_T'),\n formState: {\n value: this.currentElement.Raumzahl,\n disabled: false\n },\n displayAsRequired: false,\n }),\n new PspFormField(\n {\n fieldName: 'belegAmount',\n displayName: this.langService.getString('FormFields.BelegAmount_T'),\n formState: {\n value: this.currentElement.Belegungszahl,\n disabled: false\n },\n displayAsRequired: false,\n helpMessageHtml: this.aggregatorDataService.aggregatorData.Tables.TooltipRows.find(x => x.TooltipId == \"Bedarfsvolumenstrom.Wohngebäude.Wohnungsgruppen.Belegungszahl\").TooltipContentHtmlLoc\n\n }),\n new PspFormField(\n {\n fieldName: 'groupEquipment',\n displayName: this.langService.getString('FormFields.GroupEquipment_T'),\n formState: {\n value: this.currentElement.Ausstattungen,\n disabled: false\n },\n displayAsRequired: true,\n validatorOrOpts: Validators.required,\n }),\n new PspFormField(\n {\n fieldName: 'groupSecondBath',\n displayName: this.langService.getString('FormFields.GroupSecondBath_T'),\n formState: {\n value: this.currentElement.ZweitBadTyp,\n disabled: false\n },\n displayAsRequired: false,\n helpMessageHtml: this.aggregatorDataService.aggregatorData.Tables.TooltipRows.find(x => x.TooltipId == \"Bedarfsvolumenstrom.Wohngebäude.Wohnungsgruppen.ZweitesBad\").TooltipContentHtmlLoc\n\n }),\n new PspFormField(\n {\n fieldName: 'groupSecondBathEquipment',\n displayName: this.langService.getString('FormFields.GroupSecondBathEquipment_T'),\n formState: {\n value: this.currentElement.AusstattungenZweitbad\n },\n displayAsRequired: false,\n }),\n ]);\n }\n // Methods\n public clearEditElement(){\n \n this.editElementIndex = null;\n this.currentElement = {\n Anzahl : 0,\n Ausstattungen : null,\n AusstattungenZweitbad : null,\n Belegungszahl : 0,\n Bezeichnung : null,\n IsKleinwohnungen : false,\n Raumzahl : 0,\n ZweitBadTyp : 0,\n }\n this.currentElementAusstattungsIDs = null;\n this.currentElementZweitbadAusstattungsIDs = null;\n }\n public editElement(gruppe: Wohnungsgruppe, index: number): void {\n this.editElementIndex = index;\n this.currentElement.Anzahl = gruppe.Anzahl;\n this.currentElement.Ausstattungen = gruppe.Ausstattungen;\n this.currentElement.Belegungszahl = gruppe.Belegungszahl;\n this.currentElement.Bezeichnung = gruppe.Bezeichnung;\n this.currentElement.IsKleinwohnungen = gruppe.IsKleinwohnungen;\n this.currentElement.Raumzahl = gruppe.Raumzahl;\n this.textboxValue = gruppe.Anzahl;\n this.currentElement.ZweitBadTyp = gruppe.ZweitBadTyp;\n this.currentElement.AusstattungenZweitbad = gruppe.AusstattungenZweitbad;\n this.currentElementAusstattungsIDs = gruppe.Ausstattungen != null ? gruppe.Ausstattungen.map(a => a.Typ) : null;\n this.currentElementZweitbadAusstattungsIDs = gruppe.AusstattungenZweitbad != null ? gruppe.AusstattungenZweitbad.map(a => a.Typ) : null;\n switch(this.currentElement.ZweitBadTyp){\n case ZweitBadTyp.ZweitesBad:\n this.availableZweitbadFacilities = this.allAvailableFacilities.filter(f => f.ZapfstellenbedarfWVZweitbad != null)\n break;\n case ZweitBadTyp.GästezimmerMitBwUndDu:\n this.availableZweitbadFacilities = this.allAvailableFacilities.filter(f => f.ZapfstellenbedarfWVGaesteBwDu != null)\n break;\n case ZweitBadTyp.GästezimmerOhneBwUndDu:\n this.availableZweitbadFacilities = this.allAvailableFacilities.filter(f => f.ZapfstellenbedarfWVGaesteOhneBwDu != null)\n break;\n }\n this.edit = true;\n this.dialog.show();\n }\n public getEditedElement(): Wohnungsgruppe {\n // Clone current edit element\n let clone: Wohnungsgruppe = JSON.parse(JSON.stringify(this.currentElement));\n \n // Map selected austattungs ids to their entities\n if(this.currentElementAusstattungsIDs != null){\n clone.Ausstattungen = this.currentElementAusstattungsIDs\n .map(a => this.allAvailableFacilities.find(f => f.FacilityId == a))\n .map(f => { return {\n Typ: f.FacilityId,\n Bedarf: f.ZapfstellenbedarfWVErstbad,\n IsCustom: false\n }});\n }\n \n // Map selected zweitbad austattungs ids to their entities\n if(this.isZweitbadConfigured() && this.currentElementZweitbadAusstattungsIDs != null){\n clone.AusstattungenZweitbad = this.currentElementZweitbadAusstattungsIDs\n .map(a => this.allAvailableFacilities.find(f => f.FacilityId == a))\n .map(f => {\n let bedarf: number;\n switch(clone.ZweitBadTyp){\n case ZweitBadTyp.ZweitesBad: bedarf = f.ZapfstellenbedarfWVZweitbad; break;\n case ZweitBadTyp.GästezimmerMitBwUndDu: bedarf = f.ZapfstellenbedarfWVGaesteBwDu; break;\n case ZweitBadTyp.GästezimmerOhneBwUndDu: bedarf = f.ZapfstellenbedarfWVGaesteOhneBwDu; break;\n }\n return {\n Typ: f.FacilityId,\n Bedarf: bedarf,\n IsCustom: false\n }\n });\n }\n else{\n clone.AusstattungenZweitbad = null;\n }\n \n // Return modified clone\n return clone;\n }\n public isZweitbadConfigured(): boolean {\n return this.currentElement.ZweitBadTyp != null && this.currentElement.ZweitBadTyp != ZweitBadTyp.None;\n }\n \n \n // Change Events\n public onZweitbadTypChanged(): void {\n // Clear current selection\n console.log(this.currentElementZweitbadAusstattungsIDs);\n this.currentElementZweitbadAusstattungsIDs = null;\n \n // Refresh the list of available ausstattungen\n switch(this.currentElement.ZweitBadTyp){\n case ZweitBadTyp.None:\n this.availableZweitbadFacilities = [];\n case ZweitBadTyp.ZweitesBad:\n this.availableZweitbadFacilities = this.allAvailableFacilities.filter(f => f.ZapfstellenbedarfWVZweitbad != null)\n break;\n case ZweitBadTyp.GästezimmerMitBwUndDu:\n this.availableZweitbadFacilities = this.allAvailableFacilities.filter(f => f.ZapfstellenbedarfWVGaesteBwDu != null)\n break;\n case ZweitBadTyp.GästezimmerOhneBwUndDu:\n this.availableZweitbadFacilities = this.allAvailableFacilities.filter(f => f.ZapfstellenbedarfWVGaesteOhneBwDu != null)\n break;\n }\n }\n\n public show(): void {\n // Reset edit values\n this.clearEditElement();\n\n if(this.formFields.fields.some(x => x.control.dirty && x.control.touched)){\n this.formFields.fields.forEach(x => {x.control.reset()});\n }\n this.textboxValue = 0;\n this.sliderValue = 0;\n // update maxDefinedRaumZahl - get from table\n this.maxDefinedRaumZahl = Math.max(...this.aggregatorDataService.aggregatorData.Tables.Din4708ResidentialRoomOccupancyRows.map(o => o.RoomCount));\n this.calculateMinBelegungszahl();\n\n console.log(this.textboxValue, this.sliderValue, this.currentElement.Anzahl)\n this.edit = false;\n this.dialog.show();\n }\n\n public hide(): void {\n this.dialog.hide();\n }\n public onDialogBackdropClick(): void {\n this.dialog.hide();\n }\n \n public getEditDialogHeader(){\n if(this.editElementIndex == null){\n return this.langService.getString('ExaktTypRadio.DialogHeaderNeu_T');\n }\n else{\n return this.langService.getString('ExaktTypRadio.DialogHeader_T')\n }\n }\n\n sliderValue: number = 0;\n sliderMin: number = 0;\n sliderMax: number = 100;\n textboxValue: number = 0;\n lastChangeWasSlider: boolean = false;\n textboxMin: number = 0;\n textboxMax: number = 999;\n \n // Events\n public onSliderChanged(args: ChangeEventArgs) {\n if(this.sliderValue == null){\n this.sliderValue = this.sliderMin;\n }\n this.textboxValue = this.sliderValue;\n this.onChanged();\n }\n\n public onTextboxChanged(args: ChangeEventArgs) {\n // Change empty textbox to min value\n if(this.textboxValue == null) {\n this.textboxValue = this.textboxMin;\n }\n \n // Handle change\n if(args.isInteracted){\n this.lastChangeWasSlider = false;\n this.sliderValue = this.textboxValue\n this.onChanged();\n }\n }\n public onTextboxBlur(args: BlurEventArgs) {\n this.onTextboxChanged({ isInteracted: false });\n }\n\n private onChanged() {\n this.currentElement.Anzahl = this.lastChangeWasSlider ? this.sliderValue : this.textboxValue;\n }\n\n public calculateMinBelegungszahl(){\n console.log(this.currentElement.IsKleinwohnungen)\n if (this.currentElement.Raumzahl > this.maxDefinedRaumZahl) {\n this.calculatedMin = 0;\n } \n else if( this.aggregatorDataService.aggregatorData.Tables.Din4708ResidentialRoomOccupancyRows.find(x => x.RoomCount == this.currentElement.Raumzahl)){\n if (this.currentElement.IsKleinwohnungen) {\n this.calculatedMin = this.aggregatorDataService.aggregatorData.Tables.Din4708ResidentialRoomOccupancyRows.find(x => x.RoomCount == this.currentElement.Raumzahl).BelegungszahlKleinwohnung;\n }\n else {\n this.calculatedMin = this.aggregatorDataService.aggregatorData.Tables.Din4708ResidentialRoomOccupancyRows.find(x => x.RoomCount == this.currentElement.Raumzahl).Belegungszahl;\n }\n }\n else{\n this.calculatedMin = 0;\n }\n }\n\n public raumzahlChanged() {\n var oldMin = this.calculatedMin;\n this.calculateMinBelegungszahl();\n \n // set Belegungszahl to max value\n if (this.calculatedMin === 0 && this.currentElement.Raumzahl > this.maxDefinedRaumZahl) {\n this.currentElement.Belegungszahl = this.aggregatorDataService.aggregatorData.Tables.Din4708ResidentialRoomOccupancyRows.find(x =>\n x.RoomCount == this.maxDefinedRaumZahl).Belegungszahl;\n return;\n }\n else if (this.calculatedMin !== 0 && (this.calculatedMin < oldMin || oldMin === 0)) {\n // adjust Belegungszahl - if you decrease Raumzahl, calculatedMin is getting smaller and so should Belegungszahl \n this.currentElement.Belegungszahl = this.calculatedMin;\n }\n }\n\n public getCalculatedMin(): string {\n // in case there is no norm defined for the Raumzahl\n // https://viega.atlassian.net/browse/PIMVIEOOOO-5453\n if (this.calculatedMin === 0) {\n return \"-\";\n }\n if(!this.currentElement.Belegungszahl ||\n (this.currentElement.Belegungszahl && this.currentElement.Belegungszahl < this.calculatedMin)){\n this.currentElement.Belegungszahl = this.calculatedMin;\n }\n return this.calculatedMin.toString();\n }\n\n public onEditDialogSave(): void {\n // Validate\n if(this.formFields.group.invalid || (this.isZweitbadConfigured() && !this.currentElementZweitbadAusstattungsIDs?.length)) {\n this.formFields.group.markAllAsTouched();\n this.invalidFieldsDialog.show();\n return;\n }\n\n this.currentElement = this.getEditedElement();\n this.dialog.hide();\n console.log(this.currentElement)\n if(this.edit){\n console.log(this.currentElement);\n this.editItem.emit(this.currentElement);\n }\n else{\n this.saveNewEditDialog.emit(this.currentElement);\n }\n }\n\n public onCloseInvalidFieldsDialog(): void {\n this.invalidFieldsDialog.hide();\n }\n}","\n \n
      \n
      \n
      \n
      \n \n \n \n
      \n
      \n
      \n
      \n
      \n \n \n \n
      \n \n \n \n
      \n
      \n
      \n
      \n
      \n \n \n \n \n
      \n
      \n
      \n
      \n
      \n \n \n \n
      \n
      \n
      \n
      \n \n \n \n
      \n
      {{'ExaktTypRadio.DialogBelegungszahlDin_T' | translate: getCalculatedMin()}}
      \n
      \n
      \n
      \n
      \n \n \n \n
      \n
      \n
      \n
      \n \n \n \n
      \n
      \n \n
      \n
      \n
      \n
      \n \n\n\n\n\n \n
      \n {{'ExaktTypRadio.InvalidDialogContent_SD' | translate}}\n
      \n
      \n","export const events = {\n buttonClick: 'buttonClickEvent',\n beforeOpen: 'beforeOpenEvent',\n open: 'openEvent',\n close: 'closeEvent',\n select: 'selectEvent',\n created: 'createdEvent',\n destroyed: 'destroyedEvent',\n};","import { FormGroup } from '@angular/forms';\nimport { LangService } from 'src/core-lib/ej2/services/LangService';\nimport { IODataError } from 'src/core-lib/ej2/utils/IODataError';\nimport { PspFormField } from './PspFormField';\nimport { ServiceLocator } from 'src/core-lib/ej2/services/ServiceLocator';\n\nexport class PspFormFieldGroup\n{\n private langService: LangService;\n\n public group: FormGroup;\n public fields: PspFormField[] = [];\n public fieldMap: { [fieldName: string]: PspFormField } = {};\n\n /**\n * Represents a form-wide error message.\n */\n public formErrorMsg?: string;\n\n /**\n * Error message shown when a field is invalid and has no more specific error\n * messages defined.\n */\n public fieldFallbackErrorMsg?: string;\n\n public constructor(fields: PspFormField[] = [])\n {\n this.langService = ServiceLocator.get(LangService);\n\n this.group = new FormGroup({});\n this.group.statusChanges.subscribe(this.groupStatusChanged.bind(this));\n fields.forEach(field => this.addField(field));\n\n this.fieldFallbackErrorMsg = this.langService.getString('#Generic.Forms.FieldErrors.Fallback_SD', null);\n }\n\n public addField(field: PspFormField): void\n {\n if (this.fieldMap[field.fieldName])\n throw new Error(`A field with name ${field.fieldName} does already exist.`);\n\n this.group.addControl(field.fieldName, field.control);\n this.fieldMap[field.fieldName] = field;\n this.fields.push(field);\n }\n\n /**\n * Applies form and field errors by evaluating a odata error response object.\n */\n public setODataModelError(odataError: IODataError): boolean\n {\n let foundInAnyField = false;\n odataError.details?.forEach(errorDetail =>\n {\n const fieldName = errorDetail.target.toLowerCase();\n const field = this.fields.find(f => f.fieldName.toLowerCase() === fieldName);\n if (field)\n {\n field.control.setErrors({ backend: true });\n this.updateFieldError(field);\n\n foundInAnyField = true;\n }\n });\n\n return foundInAnyField;\n }\n\n public setFieldError(fieldName: string, errorMsg?: string): void\n {\n const field: PspFormField = this.fieldMap[fieldName];\n if (!field)\n throw new Error(`A field with name ${fieldName} does not exist.`);\n\n field.currentErrorMsg = errorMsg;\n field.control.setErrors({ custom: true });\n }\n\n public setFormError(errorMsg?: string): void\n {\n this.formErrorMsg = errorMsg;\n }\n\n public reset(): void\n {\n this.fields.forEach(field =>\n {\n delete field.currentErrorMsg;\n });\n delete this.formErrorMsg;\n }\n\n private groupStatusChanged(newStatus: string): void\n {\n if (newStatus === 'VALID')\n {\n this.reset();\n }\n else if (newStatus === 'INVALID')\n {\n this.fields.forEach((field: PspFormField) => this.updateFieldError(field));\n }\n }\n\n /**\n * Attempts to set an error message depending on the failed form validatiors.\n */\n private updateFieldError(field: PspFormField): void\n {\n if (field.genericErrorMsg)\n {\n field.currentErrorMsg = field.genericErrorMsg;\n return;\n }\n\n let newFieldError;\n if (!field.control.valid)\n {\n newFieldError = field.fallbackErrorMsg || this.fieldFallbackErrorMsg;\n\n if (field.control.errors)\n {\n const errorTypes = Object.keys(field.control.errors);\n if (errorTypes.includes('required'))\n newFieldError = this.langService.getString('#Generic.Forms.FieldErrors.Required_SD');\n }\n }\n\n field.currentErrorMsg = newFieldError;\n }\n}\n","import { CompileShallowModuleMetadata } from '@angular/compiler';\nimport { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { DialogComponent, PositionDataModel } from '@syncfusion/ej2-angular-popups';\nimport { AggregatorDataService } from 'src/app/core/AggregatorDataService';\nimport { ImageAssetRow } from 'src/app/core/DteufcAggregatorServiceApi/imageassetrow.complex';\nimport { provideContext } from 'src/core-lib/angular/context-util';\nimport { ProjectConfigurationItemComponent } from '../project-configuration-item/project-configuration-item.component';\nimport { Button } from '@syncfusion/ej2-buttons';\n\n@Component({\n selector: 'app-config-details-dialog',\n templateUrl: './config-details-dialog.component.html',\n styleUrls: ['./config-details-dialog.component.scss'],\n providers: [provideContext(\"ConfigDetailsDialog\")],\n})\nexport class ConfigDetailsDialogComponent implements OnInit {\n @ViewChild('dialog') public dialog: DialogComponent;\n\n @Input() target: string;\n @Input() buttons: Button[];\n @Input() headerText: string;\n\n dialogWidth: string = \"55%\";\n dialogHeight: string = \"90vh\";\n dialogPosition: PositionDataModel = {X: 'center', Y: 'center'}\n\n @Input() projectName: string;\n\n @Input() isPipeChecked: boolean;\n @Output() isPipeCheckedChange = new EventEmitter();\n _isPipeChecked: boolean;\n\n @Input() isEnergyChecked: boolean ;\n @Output() isEnergyCheckedChange = new EventEmitter();\n _isEnergyChecked: boolean;\n\n @Output() closedCompletely = new EventEmitter()\n isClosedWithoutSave: boolean = true;\n\n canBeClosed: boolean = false;\n\n @Input() isConfigDteDialogPristine: boolean;\n\n @Output() dialogPristine = new EventEmitter()\n\n @Input() changeWarning: string;\n\n imageRohrleitung: string;\n imageSpeicher: string;\n\n constructor(private aggregatorDataService: AggregatorDataService) { }\n\n ngOnInit(): void {\n var images = this.aggregatorDataService.aggregatorData.Tables.ImageAssetRows;\n\n this.imageRohrleitung = images.find(i => i.ImageId == 'Projektkonfiguration.AuslegungRohrleitung').ImageUrlLoc;\n this.imageSpeicher = images.find(i => i.ImageId == 'Projektkonfiguration.AuslegungSpeicher').ImageUrlLoc;\n\n this.resetDialog();\n}\n\n emitChecked(){\n this.isPipeChecked = this._isPipeChecked;\n this.isPipeCheckedChange.emit(this.isPipeChecked);\n this.isEnergyChecked = this._isEnergyChecked;\n this.isEnergyCheckedChange.emit(this.isEnergyChecked);\n }\n\n onOverlayClick(){\n this.dialog.hide();\n }\n\n onCloseDialog(){\n if(this.isClosedWithoutSave){\n this.closedCompletely.emit();\n this.resetDialog();\n }\n }\n\n onBeforeClose(event){\n if(this.target == 'app-overview'){\n if(this.isClosedWithoutSave){\n if(!this.canBeClosed){\n event.cancel = true;\n this.dialogPristine.emit();\n }\n }\n }\n else{\n if(this.isClosedWithoutSave){\n if(!this.canBeClosed && (!this.checkIfPristine() || !this.isConfigDteDialogPristine)){\n event.cancel = true;\n this.dialogPristine.emit();\n }\n }\n }\n }\n\n resetDialog(){\n if (this.target == 'app-overview') {\n this._isPipeChecked = true;\n this._isEnergyChecked = true;\n }\n else{\n this._isEnergyChecked = this.isEnergyChecked;\n this._isPipeChecked = this.isPipeChecked;\n }\n }\n\n onOpenDialog(){\n this.isClosedWithoutSave = true;\n }\n\n checkIfPristine(): boolean{\n if (this._isEnergyChecked != this.isEnergyChecked ||\n this._isPipeChecked != this.isPipeChecked) {\n return false\n }\n else{\n return true;\n }\n }\n\n}\n","\n \n
      \n {{headerText}}\n \n
      \n
      \n \n
      \n {{'Content_SD' | translate: projectName}}\n
      \n
      \n \n \n
      \n
      \n

      \n \n {{changeWarning}}\n

      \n
      \n
      \n
      ","import { Component, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\nimport { DimensioningSchematicComponent } from '../dimensioning-schematic/dimensioning-schematic.component';\n\n/**\n * A special schematic container which allows to update certain values immediately.\n */\n@Component({\n selector: 'app-dte-schematic',\n templateUrl: '../dimensioning-schematic/dimensioning-schematic.component.html',\n styleUrls: ['../dimensioning-schematic/dimensioning-schematic.component.scss'],\n})\nexport class DteSchematicComponent extends DimensioningSchematicComponent implements OnInit, OnChanges\n{\n @Input()\n public dte: string;\n\n @Input()\n public energiespeicherVorlauftemperatur: string;\n\n @Input()\n public bedarfsvolumenstrom: string;\n\n @Input()\n public maxAbgesenkteTemperaturPwhC: string;\n\n public ngOnInit(): void\n {\n this.schematicType = 'DteUfc';\n }\n\n public ngOnChanges(changes: SimpleChanges)\n {\n this.updateTextElements();\n }\n\n protected onImageLoaded(): void\n {\n super.onImageLoaded();\n this.updateTextElements();\n }\n\n private updateTextElements(): void\n {\n if (!this.isImageLoaded)\n return;\n\n this.setTextElementValue('Station_1', this.dte);\n this.setTextElementValue('HVL_1_Grad_1', this.energiespeicherVorlauftemperatur);\n this.setTextElementValue('PWH_1_Liter_1', this.bedarfsvolumenstrom);\n this.setTextElementValue('PWH_C_1_Liter_1_Grad_1', this.maxAbgesenkteTemperaturPwhC);\n }\n}\n","import { Injectable } from '@angular/core';\nexport type TrackEvent = 'start' | 'appliance' | 'result' | 'pdf' | 'mobile';\ndeclare var wtSmart: any;\n@Injectable({\n providedIn: 'root'\n})\nexport class WebTrekkService {\n private static readonly ConfiguratorId = 'dte';\n /** The tracking id for test / development domains. */\n private static readonly TrackIdTest = '799424540672764';\n private static readonly TestDomainMatchers = [\n 'localhost',\n '-staging'\n ];\n private isFirstTrackEvent: boolean = true;\n private isInitialized: boolean = false;\n\n constructor() {}\n initTracker() {\n if (!window[\"wtSmart\"]) {\n console.error(\n 'expected wtSmart to be defined when initializing it.'\n );\n return;\n }\n // TODO: replace literal with language dependent tracking id\n const trackingId = WebTrekkService.isTestDomain()\n ? WebTrekkService.TrackIdTest\n : '413482775699004';\n wtSmart.init.set({\n trackId: trackingId,\n // TODO: replace literal with language dependent tracking domain\n trackDomain: 'viegade01.wt-eu02.net'\n });\n wtSmart.extension.action.activate();\n this.isInitialized = true;\n }\n trackAction(pageName: string, eventName: string, userid: string, intern: boolean, projectid: string, projectInfo: {Zip?: string, City?: string, Country?: string, Address?: string}) {\n if (!window[\"wtSmart\"]) {\n console.error(\n 'expected wtSmart to be defined when trying to sent a track event.'\n );\n return;\n }\n // console.log(pageName + \"(\" + eventName + \")\" + \" -> \" + url);\n \n if(!this.isInitialized) {\n this.initTracker();\n }\n\n const defaultLangId = this.getDefaultLanguage();\n wtSmart.action.data.set({\n name: \n `${defaultLangId}.web.configurator.${WebTrekkService.ConfiguratorId}.${pageName}.${eventName}`,\n parameter: {\n userId: userid,\n intern: intern,\n projectId: projectid,\n projectZip: projectInfo.Zip,\n projectCity: projectInfo.City,\n projectCountry: projectInfo.Country,\n projectAddress: projectInfo.Address\n },\n category: {\n 1: defaultLangId,\n 2: 'web',\n 3: 'configurator',\n 4: WebTrekkService.ConfiguratorId,\n 5: pageName,\n 6: eventName\n }\n });\n wtSmart.track();\n }\n\n trackActionCustom(pageName: string, eventName: string, parameters: any) {\n if (!window[\"wtSmart\"]) {\n console.error(\n 'expected wtSmart to be defined when trying to sent a track event.'\n );\n return;\n }\n // console.log(pageName + \"(\" + eventName + \")\" + \" -> \" + url);\n \n if(!this.isInitialized) {\n this.initTracker();\n }\n\n const defaultLangId = this.getDefaultLanguage();\n wtSmart.action.data.set({\n name: \n `${defaultLangId}.web.configurator.${WebTrekkService.ConfiguratorId}.${pageName}.${eventName}`,\n parameter: parameters,\n category: {\n 1: defaultLangId,\n 2: 'web',\n 3: 'configurator',\n 4: WebTrekkService.ConfiguratorId,\n 5: pageName,\n 6: eventName\n }\n });\n wtSmart.track();\n }\n trackPage(pageName: string, userid: string, intern: boolean, projectid: string, projectInfo: {Zip?: string, City?: string, Country?: string, Address?: string}) {\n if (!window[\"wtSmart\"]) {\n console.error(\n 'expected wtSmart to be defined when trying to sent a track event.'\n );\n return;\n }\n\n if(!this.isInitialized) {\n this.initTracker();\n }\n\n // console.log(\"(\" + pageName + \")\");\n let trackingParameter = {};\n if (this.isFirstTrackEvent) {\n trackingParameter = {\n 15: document.referrer,\n 16: this.getDefaultLanguageString()\n };\n }\n const defaultLangId = this.getDefaultLanguage();\n wtSmart.page.data.set(\n `${defaultLangId}.web.configurator.${WebTrekkService.ConfiguratorId}.${pageName}`,\n {\n parameter: {\n userId: userid,\n intern: intern,\n projectId: projectid,\n projectZip: projectInfo.Zip,\n projectCity: projectInfo.City,\n projectCountry: projectInfo.Country,\n projectAddress: projectInfo.Address\n },\n category: {\n 1: defaultLangId,\n 2: 'web',\n 3: 'configurator',\n 4: WebTrekkService.ConfiguratorId,\n 5: pageName\n }\n }\n );\n if (!this.isFirstTrackEvent) wtSmart.extension.action.reload();\n wtSmart.track();\n this.isFirstTrackEvent = false;\n }\n\n trackPageCustom(pageName: string, parameters: any) {\n if (!window[\"wtSmart\"]) {\n console.error(\n 'expected wtSmart to be defined when trying to sent a track event.'\n );\n return;\n }\n\n if(!this.isInitialized) {\n this.initTracker();\n }\n\n // console.log(\"(\" + pageName + \")\");\n let trackingParameter = {};\n if (this.isFirstTrackEvent) {\n trackingParameter = {\n 15: document.referrer,\n 16: this.getDefaultLanguageString()\n };\n }\n const defaultLangId = this.getDefaultLanguage();\n wtSmart.page.data.set(\n `${defaultLangId}.web.configurator.${WebTrekkService.ConfiguratorId}.${pageName}`,\n {\n parameter: parameters,\n category: {\n 1: defaultLangId,\n 2: 'web',\n 3: 'configurator',\n 4: WebTrekkService.ConfiguratorId,\n 5: pageName\n }\n }\n );\n if (!this.isFirstTrackEvent) wtSmart.extension.action.reload();\n wtSmart.track();\n this.isFirstTrackEvent = false;\n }\n /**\n * returns the default language string for the tracking pixel\n * example \"de_DE\"\n */\n getDefaultLanguageString(): string {\n //TODO implemented after prevista configuratior, add missing languages if needed\n switch (this.getDefaultLanguage()) {\n case \"de\":\n return \"de_DE\";\n case \"at\":\n return \"de_AT\";\n case \"com\":\n return \"en_INT\";\n default:\n return this.getDefaultLanguage();\n }\n }\n /**\n * returns the defaultLanguage\n * in case of a developement system 'test' gets returned\n */\n getDefaultLanguage(): string {\n /* implementation consists of parts copied out of the prevista configurators appStateService,\n since no similar service seems to be existent in this application */\n // TODO proper solution\n const DomainLangUrlMappings = {\n \"localhost\": 'de',\n \"pim-ww-i\": 'de',\n \"\\\\.viega\\\\.at\": 'at',\n \"-at\\\\.(dev|int|qa)\\\\.web\\\\.emea\\\\.dir\": 'at',\n \"\\\\.viega\\\\.com\": 'com',\n \"-com\\\\.(dev|int|qa)\\\\.web\\\\.emea\\\\.dir\": 'com',\n \"\\\\.viega\\\\.de\": 'de',\n \"-de\\\\.(dev|int|qa)\\\\.web\\\\.emea\\\\.dir\": 'de',\n \"\\\\.viega\\\\.cz\": 'cz',\n \"-cz\\\\.(dev|int|qa)\\\\.web\\\\.emea\\\\.dir\": 'cz',\n \"\\\\.viega\\\\.be\": 'be',\n \"-be\\\\.(dev|int|qa)\\\\.web\\\\.emea\\\\.dir\": 'nlbe',\n \"\\\\.viega\\\\.nl\": 'nl',\n \"-nl\\\\.(dev|int|qa)\\\\.web\\\\.emea\\\\.dir\": 'nl',\n \"\\\\.viega\\\\.fr\": 'fr',\n \"-fr\\\\.(dev|int|qa)\\\\.web\\\\.emea\\\\.dir\": 'fr',\n \"\\\\.viega\\\\.dk\": 'dk',\n \"-dk\\\\.(dev|int|qa)\\\\.web\\\\.emea\\\\.dir\": 'dk',\n \"\\\\.viega\\\\.pl\": 'pl',\n \"-pl\\\\.(dev|int|qa)\\\\.web\\\\.emea\\\\.dir\": 'pl',\n \"\\\\.viega\\\\.ru\": 'ru',\n \"-ru\\\\.(dev|int|qa)\\\\.web\\\\.emea\\\\.dir\": 'ru',\n \"\\\\.viega\\\\.co\\\\.uk\": 'com',\n \"-uk\\\\.(dev|int|qa)\\\\.web\\\\.emea\\\\.dir\": 'com',\n \"\\\\.viega\\\\.it\": 'it',\n \"-it\\\\.(dev|int|qa)\\\\.web\\\\.emea\\\\.dir\": 'it'\n };\n const FallbackLanguage = 'com';\n const hostname = window.location.hostname;\n const matchedPattern = Object.keys(DomainLangUrlMappings).find((pattern: string) => {\n const regex = new RegExp(pattern, 'i');\n return regex.test(hostname);\n });\n const matchedLang = DomainLangUrlMappings[matchedPattern];\n return WebTrekkService.isTestDomain() ? 'test' : matchedLang || FallbackLanguage;\n }\n /**\n * returns a boolean stating if the server runs in a test development environment\n */\n static isTestDomain(): boolean {\n return WebTrekkService.TestDomainMatchers.some(\n m => document.URL.indexOf(m) !== -1\n );\n }\n}","import { Event, EmitType, EventHandler, Component, INotifyPropertyChanged, Property, addClass, removeClass, select, remove, detach, Complex } from '@syncfusion/ej2-base';\nimport { DataManager, Query } from '@syncfusion/ej2-data';\nimport { DropDownList, DropDownListModel, PopupEventArgs, SelectEventArgs } from '@syncfusion/ej2-dropdowns';\nimport { HintType, IPspDropdownIconModel } from './IPspDropdownIconModel';\nimport { events } from './events';\nimport { Tooltip } from '@syncfusion/ej2-popups';\nimport { PimStatic } from 'src/core-lib/ej2/utils/PimStatic';\nimport { LabelPosition } from '@syncfusion/ej2-buttons';\nimport { ChangeEventArgs, FieldSettings, FieldSettingsModel, FilteringEventArgs, FilterType, SortOrder } from '@syncfusion/ej2-angular-dropdowns';\nimport { Position } from '@syncfusion/ej2-angular-popups';\n\nexport class PspDropdownIcon extends Component implements INotifyPropertyChanged\n{\n public static readonly TooltipDelay = PimStatic.TooltipDelayMs * 3;\n\n /**\n * Used to display the popup menu when clicked.\n */\n protected wrappedDropDownList: DropDownList;\n private iconWrapperEl: HTMLSpanElement;\n private iconSpanEl: HTMLSpanElement;\n private labelEl: HTMLSpanElement;\n\n protected tooltip: Tooltip;\n protected actionTooltip: Tooltip;\n\n @Property(null)\n public filterBarPlaceholder?: string;\n\n @Property(null)\n public query?: Query;\n\n @Property(false)\n public allowFiltering?: boolean;\n\n @Property(null)\n public text?: string;\n\n @Property(null)\n public value?: number | string | boolean;\n\n @Property(null)\n public index?: number;\n\n @Complex({ text: null, value: null, iconCss: null, groupBy: null }, FieldSettings)\n public fields: FieldSettingsModel;\n\n @Property(null)\n public groupTemplate?: string;\n\n @Property('Request failed')\n public actionFailureTemplate?: string;\n\n @Property('No records found')\n public noRecordsTemplate?: string;\n\n @Property('None')\n public sortOrder?: SortOrder;\n\n @Property('Contains')\n public filterType?: FilterType;\n\n @Property(true)\n public ignoreCase?: boolean;\n\n @Property(1000)\n public zIndex?: number;\n\n @Property(false)\n public ignoreAccent?: boolean;\n\n /**\n * The data source to retrieve dropdown items from.\n */\n @Property()\n public itemDataSource?: { [key: string]: Object }[] | DataManager | string[] | number[] | boolean[];\n\n /**\n * A tooltip to display when the user hovers over the notify icon.\n */\n @Property()\n public iconTooltip?: string;\n\n /**\n * The placement of the icon tooltip.\n * @default 'BottomCenter'\n */\n @Property('BottomCenter')\n public iconTooltipPosition?: Position;\n\n @Property('icon-envelope')\n public iconCssClass?: string;\n\n @Property()\n public cssClass?: string;\n\n @Property()\n public dropDownCssClass?: string;\n\n /**\n * The type of hint to visualize. This is the dot indicator on the top right of the notify icon.\n * Unread usually adds a yellow dot hint.\n * Urgent usually adds a red dot hint.\n * None means no dot hint.\n */\n @Property()\n public hintType?: HintType;\n\n @Property()\n public headerTemplate?: string;\n\n @Property()\n public itemTemplate?: string;\n\n @Property()\n public footerTemplate?: string;\n\n @Property(null)\n public popupWidth?: string | number;\n\n @Property(null)\n public popupHeight?: string | number;\n\n @Property(null)\n public popupPosition?: { X: string | number, Y: string | number };\n\n @Property('')\n public label?: string;\n\n @Property('After')\n public labelPosition?: LabelPosition;\n\n @Property(false)\n public isDisabled?: boolean;\n\n @Property(null)\n public width?: string;\n\n @Event()\n public beforeOpenEvent?: EmitType;\n\n @Event()\n public openEvent?: EmitType;\n\n @Event()\n public closeEvent?: EmitType;\n\n @Event()\n public clickEvent?: EmitType;\n\n @Event()\n public changeEvent?: EmitType;\n\n @Event()\n public filteringEvent?: EmitType;\n\n @Event()\n public actionBeginEvent?: EmitType;\n\n @Event()\n public actionCompleteEvent?: EmitType;\n\n @Event()\n public actionFailureEvent?: EmitType;\n\n @Event()\n public dataBoundEvent?: EmitType;\n\n @Event()\n public selectEvent?: EmitType;\n\n @Event()\n public createdEvent?: EmitType;\n\n @Event()\n public destroyedEvent?: EmitType;\n\n constructor(options?: IPspDropdownIconModel, element?: string | HTMLElement)\n {\n super(options, element);\n }\n\n /** @ignore */\n public getModuleName(): string\n {\n return 'psp-dropdown-icon';\n }\n\n protected preRender(): void\n {\n // NOP\n }\n\n protected render(): void\n {\n this.element.tabIndex = 0;\n addClass([this.element], 'pspc-dropdown-icon');\n if (this.cssClass)\n addClass([this.element], this.cssClass.split(' '));\n\n const hintDotEl = document.createElement('SPAN');\n this.iconWrapperEl = document.createElement('SPAN');\n this.iconWrapperEl.className = 'ddicon-wrapper';\n this.iconSpanEl = document.createElement('SPAN');\n this.iconSpanEl.className = 'ddicon-element';\n hintDotEl.className = 'ddicon-hint-dot';\n\n this.setTooltipText(this.iconTooltip);\n\n if (this.hintType)\n this.setHintType(this.hintType);\n\n if (this.iconCssClass)\n this.setIconCss(this.iconCssClass);\n\n this.iconWrapperEl.appendChild(this.iconSpanEl);\n this.iconWrapperEl.appendChild(hintDotEl);\n this.element.appendChild(this.iconWrapperEl);\n\n this.refreshLabel();\n this.refreshStyles();\n this.updateWidth();\n\n const dropdownEl = document.createElement('INPUT');\n this.element.appendChild(dropdownEl);\n\n const dropDownListSetup: DropDownListModel = {\n filterBarPlaceholder: this.filterBarPlaceholder,\n query: this.query,\n allowFiltering: this.allowFiltering,\n text: this.text,\n value: this.value,\n index: this.index,\n fields: this.fields,\n enablePersistence: this.enablePersistence,\n groupTemplate: this.groupTemplate,\n actionFailureTemplate: this.actionFailureTemplate,\n noRecordsTemplate: this.noRecordsTemplate,\n sortOrder: this.sortOrder,\n filterType: this.filterType,\n ignoreCase: this.ignoreCase,\n zIndex: this.zIndex,\n ignoreAccent: this.ignoreAccent,\n cssClass: this.getDropDownCssClass(),\n dataSource: this.itemDataSource,\n headerTemplate: this.headerTemplate,\n itemTemplate: this.itemTemplate,\n footerTemplate: this.footerTemplate,\n popupWidth: this.popupWidth,\n popupHeight: this.popupHeight,\n beforeOpen: (args) => this.dropDown_beforeOpen(args),\n open: (args) => this.dropDown_open(args),\n close: (args) => this.dropDown_close(args),\n select: (args) => this.dropDown_select(args),\n change: (args) => this.dropDown_change(args),\n filtering: (args) => this.dropDown_filtering(args),\n actionBegin: (args) => this.dropDown_actionBegin(args),\n actionComplete: (args) => this.dropDown_actionComplete(args),\n actionFailure: (args) => this.dropDown_actionFailure(args),\n dataBound: (args) => this.dropDown_dataBound(args),\n };\n\n this.wrappedDropDownList = new DropDownList(dropDownListSetup, dropdownEl);\n\n this.actionTooltip = new Tooltip({\n opensOn: 'Custom',\n position: this.iconTooltipPosition,\n closeDelay: 2000,\n cssClass: 'psp-action-tooltip psp-dropdown-icon-tt',\n target: this.element as any,\n windowCollision: true\n }, this.element);\n\n this.wireEvents();\n\n this.trigger(events.created, {});\n }\n\n private refreshStyles(): void\n {\n if (this.isDisabled)\n addClass([this.element], 'is-disabled');\n else\n removeClass([this.element], 'is-disabled');\n }\n\n private refreshLabel(newPosition?: LabelPosition): void\n {\n if (this.label && !this.labelEl)\n {\n this.labelEl = document.createElement('span');\n this.labelEl.className = 'ddicon-label';\n this.labelEl.innerText = this.label;\n\n if ((newPosition || this.labelPosition) === 'After')\n this.iconWrapperEl.insertAdjacentElement('afterend', this.labelEl);\n else\n this.iconWrapperEl.insertAdjacentElement('beforebegin', this.labelEl);\n }\n else if (!this.label && this.labelEl)\n {\n remove(this.labelEl);\n delete this.labelEl;\n }\n else if (this.label)\n {\n if (newPosition)\n {\n detach(this.labelEl);\n if (newPosition === 'After')\n this.iconWrapperEl.insertAdjacentElement('afterend', this.labelEl);\n else\n this.iconWrapperEl.insertAdjacentElement('beforebegin', this.labelEl);\n }\n this.labelEl.innerText = this.label;\n }\n }\n\n private updateWidth(): void\n {\n this.element.style.width = this.width || '';\n }\n\n private setTooltipText(tooltipText: string): void\n {\n if (tooltipText)\n {\n if (!this.tooltip)\n {\n this.tooltip = new Tooltip({\n content: tooltipText,\n openDelay: PspDropdownIcon.TooltipDelay,\n position: this.iconTooltipPosition,\n showTipPointer: false,\n });\n this.tooltip.appendTo(this.element);\n }\n else\n {\n this.tooltip.content = tooltipText;\n }\n }\n else if (this.tooltip)\n {\n this.tooltip.destroy();\n this.tooltip.element.parentElement.removeChild(this.tooltip.element);\n delete this.tooltip;\n }\n }\n\n protected getDropDownCssClass(): string\n {\n return 'wrapped-dropdown ' + this.dropDownCssClass;\n }\n\n protected dropDown_select(args: SelectEventArgs): void\n {\n this.value = this.wrappedDropDownList.value;\n\n this.trigger(events.select, args);\n this.element.blur();\n }\n\n protected dropDown_beforeOpen(args: object): void\n {\n if (!this.itemDataSource)\n {\n args['cancel'] = true;\n return;\n }\n\n this.trigger(events.beforeOpen, args);\n }\n\n protected dropDown_open(args: PopupEventArgs): void\n {\n this.disableTooltip();\n\n this.element.focus();\n this.wrappedDropDownList['popupObj'].position = this.popupPosition || { X: 'left', Y: 'bottom' };\n\n this.trigger(events.open, args)\n }\n\n protected dropDown_close(args: PopupEventArgs): void\n {\n this.enableTooltip();\n this.trigger(events.close, args);\n }\n\n protected dropDown_change(args: any): void\n {\n this.value = this.wrappedDropDownList.value;\n this.trigger(events.change, args);\n }\n\n protected dropDown_filtering(args: any): void\n {\n this.trigger(events.filtering, args);\n }\n\n protected dropDown_actionBegin(args: any): void\n {\n this.trigger(events.actionBegin, args);\n }\n\n protected dropDown_actionComplete(args: any): void\n {\n this.trigger(events.actionComplete, args);\n }\n\n protected dropDown_actionFailure(args: any): void\n {\n this.trigger(events.actionFailure, args);\n }\n\n protected dropDown_dataBound(args: any): void\n {\n this.trigger(events.dataBound, args);\n }\n\n private disableTooltip(): void\n {\n if (this.tooltip) {\n this.tooltip.openDelay = 9999999;\n this.tooltip.close();\n }\n }\n\n private enableTooltip(): void\n {\n if (this.tooltip)\n this.tooltip.openDelay = PspDropdownIcon.TooltipDelay;\n }\n\n private setIconCss(newIconCss: string, oldIconCss: string = ''): void\n {\n if (oldIconCss)\n removeClass([this.iconSpanEl], oldIconCss.split(' '));\n\n if (newIconCss)\n addClass([this.iconSpanEl], newIconCss.split(' '));\n }\n\n private setHintType(hintType: HintType): void\n {\n removeClass([this.element], ['pspc-dropdown-icon--unread', 'pspc-dropdown-icon--urgent', 'pspc-dropdown-icon--active']);\n\n if (hintType === 'Unread')\n addClass([this.element], 'pspc-dropdown-icon--unread');\n else if (hintType === 'Urgent')\n addClass([this.element], 'pspc-dropdown-icon--urgent');\n else if (hintType === 'Active')\n addClass([this.element], 'pspc-dropdown-icon--active');\n }\n\n protected wireEvents(): void\n {\n EventHandler.add(this.element, 'click', this.element_click, this);\n\n }\n protected unwireEvents(): void\n {\n EventHandler.remove(this.element, 'click', this.element_click);\n }\n\n protected element_click(args: MouseEvent): void\n {\n if (this.isDisabled)\n return;\n\n if (!this.wrappedDropDownList['isPopupOpen'])\n {\n this.wrappedDropDownList['removeSelection']();\n this.wrappedDropDownList.showPopup();\n this.wrappedDropDownList['removeFocus']();\n }\n\n this.trigger(events.click, args);\n }\n\n /** @ignore */\n public onPropertyChanged(newProp: IPspDropdownIconModel, oldProp: IPspDropdownIconModel): void\n {\n for (const propertyName of Object.keys(newProp))\n {\n const oldValue = oldProp[propertyName];\n const newValue = newProp[propertyName];\n\n switch (propertyName)\n {\n // properties to be passed through to the wrapper\n case 'filterBarPlaceholder':\n case 'query':\n case 'allowFiltering':\n case 'text':\n case 'value':\n case 'index':\n case 'fields':\n case 'enablePersistence':\n case 'groupTemplate':\n case 'actionFailureTemplate':\n case 'noRecordsTemplate':\n case 'sortOrder':\n case 'filterType':\n case 'ignoreCase':\n case 'zIndex':\n case 'ignoreAccent':\n case 'headerTemplate':\n case 'itemTemplate':\n case 'footerTemplate':\n case 'popupWidth':\n case 'popupHeight':\n this.wrappedDropDownList[propertyName as string] = newValue;\n break;\n case 'itemDataSource':\n this.wrappedDropDownList.dataSource = newValue;\n break;\n case 'iconTooltip':\n this.setTooltipText(newValue);\n break;\n case 'iconTooltipPosition':\n if (this.tooltip)\n this.tooltip.position = newValue;\n\n break;\n case 'iconCssClass':\n this.setIconCss(newValue, oldValue);\n break;\n case 'label':\n this.refreshLabel();\n break;\n case 'labelPosition':\n this.refreshLabel(newValue);\n break;\n case 'cssClass':\n if (oldValue)\n removeClass([this.element], oldValue.split(' '));\n if (newValue)\n addClass([this.element], newValue.split(' '));\n\n break;\n case 'dropDownCssClass':\n this.wrappedDropDownList.cssClass = this.getDropDownCssClass();\n break;\n case 'hintType':\n this.setHintType(newValue);\n break;\n case 'isDisabled':\n this.refreshStyles();\n break;\n case 'width':\n this.updateWidth();\n break;\n }\n }\n }\n\n public closePopup(): void\n {\n this.wrappedDropDownList.hidePopup();\n }\n\n public showActionTooltip(content: string): void\n {\n this.tooltip?.close();\n\n this.actionTooltip.content = content;\n this.actionTooltip.position = this.iconTooltipPosition;\n this.actionTooltip.open();\n // will apply close delay before actually closing\n this.actionTooltip.close();\n }\n\n protected getPersistData(): string\n {\n return '';\n }\n\n public destroy(): void\n {\n this.unwireEvents();\n\n this.wrappedDropDownList.destroy();\n\n this.trigger(events.destroyed, {});\n super.destroy();\n }\n}\n","import { Component, OnInit, EventEmitter,Input, Output } from '@angular/core';\n\n@Component({\n selector: 'viega-select-image',\n templateUrl: './select-image.component.html',\n styleUrls: ['./select-image.component.scss']\n})\nexport class SelectImageComponent implements OnInit {\n\n @Input()\n public imagePath: string;\n\n @Input()\n public imageText: string;\n\n @Input()\n public description: string;\n\n @Input()\n public buttonText?: string;\n\n @Input()\n public isSelected?: boolean;\n\n @Output()\n public buttonClicked = new EventEmitter();\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n button_clicked(event: MouseEvent){\n this.buttonClicked.emit(event);\n }\n\n}\n","
      \n
      \n
      \n
      \n \n
      \n\n
      \n {{imageText}}\n
      \n
      \n
      \n\n {{description}}\n\n
      \n
      \n
      \n\n
      \n \n
      \n
      \n\n
      \n \n
      \n
      ","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { StepBarComponent } from './step-bar.component';\n// import { IconButtonModule } from '../icon-button/icon-button.module';\n\n@NgModule({\n imports: [\n CommonModule,\n // IconButtonModule\n ],\n declarations: [\n StepBarComponent\n ],\n exports: [\n StepBarComponent\n ]\n})\nexport class StepBarModule { }\n","import { Component, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\nimport { DimensioningSchematicComponent } from '../dimensioning-schematic/dimensioning-schematic.component';\n\n/**\n * A special schematic container which allows to update certain values immediately.\n */\n@Component({\n selector: 'app-ufc-schematic',\n templateUrl: '../dimensioning-schematic/dimensioning-schematic.component.html',\n styleUrls: ['../dimensioning-schematic/dimensioning-schematic.component.scss'],\n})\nexport class UfcSchematicComponent extends DimensioningSchematicComponent implements OnInit, OnChanges\n{\n @Input()\n public dte: string;\n\n @Input()\n public ufc: string;\n\n @Input()\n public zirkulationsvolumenstrom: string;\n\n @Input()\n public filtervolumenstrom: string;\n\n public ngOnInit(): void\n {\n this.schematicType = 'Ufc';\n }\n\n public ngOnChanges(changes: SimpleChanges)\n {\n this.updateTextElements();\n }\n\n protected onImageLoaded(): void\n {\n super.onImageLoaded();\n this.updateTextElements();\n }\n\n private updateTextElements(): void\n {\n if (!this.isImageLoaded)\n return;\n\n this.setTextElementValue('Station_1', this.dte);\n this.setTextElementValue('Station_2', this.ufc);\n this.setTextElementValue('PWH_C_1_Liter_1', this.zirkulationsvolumenstrom);\n this.setTextElementValue('Filter_1_Liter_1', this.filtervolumenstrom);\n }\n}\n","import { AbstractControlOptions, FormControl, ValidatorFn, Validators } from '@angular/forms';\nimport { IPspFormFieldModel } from './IPspFormFieldModel';\n\nexport class PspFormField\n{\n /**\n * Name of the field in the entity object.\n */\n public fieldName: string;\n\n public displayName: string;\n\n public displayAsRequired?: boolean;\n\n /**\n * Field indication helper icon displayed along with the display name.\n */\n public displayIconCss?: string;\n\n /**\n * If set, displays a context help indicator next to the field. This help text is shown if\n * the user interacts with the icon.\n */\n public helpMessageHtml?: string;\n\n /**\n * If set, the contextual help tooltip will offer the user a hyperlink to the documentation\n * page.\n */\n public helpDocumentationHref?: string;\n\n public category?: string;\n\n /**\n * Error message shown when the field is invalid. If unset, an automated message is shown\n * or the fallback message is used.\n */\n public genericErrorMsg?: string;\n\n /**\n * Error message shown when the field is invalid and no automated error message applies.\n */\n public fallbackErrorMsg?: string;\n\n public currentErrorMsg?: string;\n\n public cssClass?: string;\n\n public control: FormControl;\n\n public constructor(options: IPspFormFieldModel)\n {\n Object.assign(this, options);\n this.control = new FormControl(options.formState, options.validatorOrOpts);\n }\n\n public isRequired(): boolean\n {\n return this.displayAsRequired;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { ProjectConfigurationItemComponent } from './project-configuration-item.component';\n;\n\n\n@NgModule({\n imports:\n [\n SharedModule\n ],\n declarations:\n [\n ProjectConfigurationItemComponent\n\n ],\n exports:\n [\n ProjectConfigurationItemComponent\n\n ]\n\n\n})\nexport class ProjectConfigurationItemModule { }","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { DemandVolumetricFlowResidentialComponent } from './demand-volumetric-flow-residential.component';\n\n\n\n@NgModule({\n declarations: [\n DemandVolumetricFlowResidentialComponent\n ],\n imports: [\n SharedModule\n ]\n})\nexport class DemandVolumetricFlowResidentialModule { }\n","import { NgModule } from '@angular/core';\nimport { PspSearchBoxComponent } from './psp-search-box.component';\n\n@NgModule({\n declarations:\n [\n PspSearchBoxComponent,\n ],\n exports:\n [\n PspSearchBoxComponent,\n ],\n})\nexport class PspSearchBoxModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SelectImageComponent } from './select-image.component';\n\n\n\n@NgModule({\n imports: [\n CommonModule\n ],\n declarations: [\n SelectImageComponent\n ],\n exports: [\n SelectImageComponent\n ]\n})\nexport class SelectImageModule { }\n","import { BrowserModule } from '@angular/platform-browser';\nimport { NgModule } from '@angular/core';\n\nimport { RouterModule } from '@angular/router';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { ProjectViewComponent } from './project-view.component';\nimport { BaseDataDialogModule } from '../base-data-dialog/base-data-dialog.module';\nimport { ConfigDteDialogModule } from '../config-dte-dialog/config-dte-dialog.module';\nimport { ConfigDetailsDialogModule } from '../config-details-dialog/config-details-dialog.module';\nimport { StructureDialogModule } from '../structure-dialog/structure-dialog.module';\nimport { PspLoadingSpinnerModule } from 'src/core-lib/angular/components/utility/psp-loading-spinner/psp-loading-spinner.module';\n\n@NgModule({\n imports:\n [\n SharedModule,\n BaseDataDialogModule,\n ConfigDteDialogModule,\n ConfigDetailsDialogModule,\n StructureDialogModule,\n PspLoadingSpinnerModule\n ],\n declarations:\n [\n ProjectViewComponent\n ],\n providers: [],\n})\nexport class ProjectViewModule { }","import { NgModule } from '@angular/core';\nimport { PspContextualHelpComponent } from './psp-contextual-help.component';\n\n@NgModule({\n declarations:\n [\n PspContextualHelpComponent,\n ],\n exports:\n [\n PspContextualHelpComponent,\n ],\n})\nexport class PspContextualHelpModule {}\n","import { ChangeDetectionStrategy, Component, ElementRef, Injector, Renderer2, ViewContainerRef } from '@angular/core';\nimport { ComponentBase, ComponentMixins, IComponentBase, setValue } from 'src/core-lib/angular/util';\nimport { PspSiteHeader } from 'src/core-lib/ej2/components/navigation/psp-site-header/PspSiteHeader';\n\n// properties declared here can be changed by the user in the storyboard UI\nexport const propertyArgTypes =\n{\n cssClass: { control: 'text' },\n logoImageSrc: { control: 'text' },\n};\n\n// declare some properties as bindable angular inputs\nconst inputBindings =\n[\n 'cssClass',\n 'logoImageSrc',\n];\n\n// prevent storybook from updating these properties\nconst changeIgnoredProperties: string[] = [];\n\n// declare some properties as bindable angular outputs\nconst outputBindings =\n[\n 'createdEvent',\n 'destroyedEvent',\n 'logoClickEvent',\n];\n\n@Component({\n selector: 'psp-site-header',\n template: '',\n inputs: inputBindings,\n outputs: outputBindings,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\n@ComponentMixins([ComponentBase])\nexport class PspSiteHeaderComponent extends PspSiteHeader implements IComponentBase\n{\n /** @ignore */\n public tagObjects: any = [];\n\n /** @ignore */\n public context : any;\n\n /** @ignore */\n public tags: string[] = [];\n\n protected changeIgnoredPropertyMap: { [propertyName: string]: boolean };\n\n public constructor(\n private ngEle: ElementRef,\n private srenderer: Renderer2,\n private viewContainerRef: ViewContainerRef,\n private injector: Injector\n )\n {\n super();\n\n this.element = this.ngEle.nativeElement;\n\n this.changeIgnoredPropertyMap = {};\n changeIgnoredProperties.forEach(prop => this.changeIgnoredPropertyMap[prop] = true);\n\n this.registerEvents(outputBindings);\n this.addTwoWay.call(this, []);\n setValue('currentInstance', this, viewContainerRef);\n this.context = new ComponentBase();\n }\n\n /** @ignore */\n public ngOnInit(): void\n {\n this.context.ngOnInit(this);\n }\n\n /** @ignore */\n public ngAfterViewInit(): void\n {\n this.context.ngAfterViewInit(this);\n }\n\n /** @ignore */\n public ngOnDestroy(): void\n {\n this.context.ngOnDestroy(this);\n }\n\n /** @ignore */\n public ngAfterContentChecked(): void\n {\n this.context.ngAfterContentChecked(this);\n }\n\n /** @ignore */\n public registerEvents: (eventList: string[]) => void;\n\n /** @ignore */\n public addTwoWay: (propList: string[]) => void;\n}\n","import { BrowserModule } from '@angular/platform-browser';\nimport { APP_INITIALIZER, Injector, NgModule } from '@angular/core';\n\nimport { AppComponent } from './app.component';\nimport { RouterModule } from '@angular/router';\nimport { routes } from './routes';\nimport { CoreModule } from './core/core.module';\nimport { SharedModule } from './shared/shared.module';\nimport { HomeModule } from './routes/home/home.module';\nimport { GenericDialogService } from 'src/core-lib/ej2/services/GenericDialogService';\nimport { ServiceLocator } from 'src/core-lib/ej2/services/ServiceLocator';\nimport { PspHelpNotifyIconModule } from 'src/core-lib/angular/components/navigation/psp-help-notify-icon/psp-help-notify-icon.module';\nimport { PspUserNotifyIconModule } from 'src/core-lib/angular/components/navigation/psp-user-notify-icon/psp-user-notify-icon.module';\nimport { DteComponent } from './routes/dte/dte.component';\nimport { CategoryService, ColumnSeriesService, DateTimeService, LegendService, LineSeriesService, TooltipService } from '@syncfusion/ej2-angular-charts';\nimport { DteTemperatureComponent } from './routes/dte-temperature/dte-temperature.component';\nimport { FurtherDetailsComponent } from './routes/further-details/further-details.component';\nimport { OverviewModule } from './routes/overview/overview.module';\n\n\nimport { ResultComponent } from './routes/result/result.component';\nimport { DailyLoadProfileComponent } from './routes/daily-load-profile/daily-load-profile.component';\nimport { PipelineModule } from './routes/pipeline/pipeline.module';\nimport { HotWaterDemandModule } from './routes/hot-water-demand/hot-water-demand.module';\nimport { CirculationVolumetricFlowComponent } from './routes/circulation-volumetric-flow/circulation-volumetric-flow.component';\nimport { HeatGeneratingTypesComponent } from './routes/heat-generating-types/heat-generating-types.component';\nimport { SelectCalculationUfcComponent } from './routes/select-calculation-ufc/select-calculation-ufc.component';\nimport { SelectCalculationReservoirComponent } from './routes/select-calculation-reservoir/select-calculation-reservoir.component';\nimport { ResizeService, SearchService, SortService, ToolbarService } from '@syncfusion/ej2-angular-grids';\nimport { PspLoadingSpinnerModule } from 'src/core-lib/angular/components/utility/psp-loading-spinner/psp-loading-spinner.module';\nimport { UserService } from './core/UserService';\nimport { BaseDataDialogModule } from './routes/base-data-dialog/base-data-dialog.module';\nimport { StructureDialogComponent } from './routes/structure-dialog/structure-dialog.component';\nimport { ConfigDteDialogComponent } from './routes/config-dte-dialog/config-dte-dialog.component';\nimport { ConfigDetailsDialogComponent } from './routes/config-details-dialog/config-details-dialog.component';\nimport { ProjectViewModule } from './routes/project-view/project-view.module';\nimport { SelectionItemRadioComponent } from './routes/selection-item-radio/selection-item-radio.component';\nimport { ExamplePageComponent } from './routes/example-page/example-page.component';\nimport { PspNotifyIcon } from 'src/core-lib/ej2/components/navigation/psp-notify-icon/PspNotifyIcon';\nimport { PspNotifyIconModule } from 'src/core-lib/angular/components/navigation/psp-notify-icon/psp-notify-icon.module';\nimport { AggregatorDataService } from './core/AggregatorDataService';\nimport { HeatGeneratorPowerComponent } from './routes/heat-generator-power/heat-generator-power.component';\nimport { DemandVolumetricFlowResidentialComponent } from './routes/demand-volumetric-flow-residential/demand-volumetric-flow-residential.component';\nimport { DemandVolumetricFlowOtherComponent } from './routes/demand-volumetric-flow-other/demand-volumetric-flow-other.component';\nimport { DemandVolumetricFlowOtherModule } from './routes/demand-volumetric-flow-other/demand-volumetric-flow-other.module';\nimport { DemandVolumetricFlowResidentialModule } from './routes/demand-volumetric-flow-residential/demand-volumetric-flow-residential.module';\nimport { SliderTextComboModule } from './shared/slider-text-combo-component/slider-text-combo.module';\nimport { SliderTextComboComponent } from './shared/slider-text-combo-component/slider-text-combo.component';\nimport { WebTrekkService } from './core/WebTrekkService';\nimport { PspSiteHeaderModule } from \"../core-lib/angular/components/navigation/psp-site-header/psp-site-header.module\";\nimport { PspRoofSiteHeaderModule } from \"../core-lib/angular/components/navigation/psp-roof-site-header/psp-roof-site-header.module\";\n\n@NgModule({\n declarations: [\n AppComponent,\n // DemandVolumetricFlowComponent,\n DteComponent,\n DteTemperatureComponent,\n FurtherDetailsComponent,\n ResultComponent,\n CirculationVolumetricFlowComponent,\n HeatGeneratingTypesComponent,\n DailyLoadProfileComponent,\n SelectCalculationUfcComponent,\n SelectCalculationReservoirComponent,\n ExamplePageComponent,\n SelectionItemRadioComponent,\n HeatGeneratorPowerComponent,\n ],\n providers: [\n GenericDialogService,\n LineSeriesService,\n LegendService,\n SortService,\n DateTimeService,\n CategoryService,\n ColumnSeriesService,\n ResizeService,\n SearchService,\n TooltipService,\n WebTrekkService,\n ToolbarService,\n {\n provide: APP_INITIALIZER,\n deps: [Injector, AggregatorDataService, UserService],\n useFactory: (injector: Injector, aggregatorDataService: AggregatorDataService, userService: UserService) => {\n // configure out static service locator for our custom Syncfusion components and core services\n ServiceLocator.setInjector(injector);\n return () => Promise.all([userService.login(), aggregatorDataService.refreshDataModel()]);\n },\n multi: true,\n }\n ],\n bootstrap: [AppComponent],\n imports: [\n // angular\n RouterModule.forRoot(routes, { relativeLinkResolution: 'corrected', useHash: true }),\n BrowserModule,\n // app global\n CoreModule.forRoot(),\n SharedModule,\n HomeModule,\n PspHelpNotifyIconModule,\n PspUserNotifyIconModule,\n PspNotifyIconModule,\n // routes\n HomeModule,\n OverviewModule,\n PipelineModule,\n HotWaterDemandModule,\n PspLoadingSpinnerModule,\n ProjectViewModule,\n DemandVolumetricFlowOtherModule,\n DemandVolumetricFlowResidentialModule,\n PspSiteHeaderModule,\n PspRoofSiteHeaderModule\n ]\n})\nexport class AppModule { }\n","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { RadioButtonComponent } from '@syncfusion/ej2-angular-buttons';\nimport { ChangeEventArgs } from '@syncfusion/ej2-angular-inputs';\nimport { ProjectDataService } from 'src/app/core/project-data.service';\n//Wird nicht benutzt\n@Component({\n selector: 'app-further-details',\n templateUrl: './further-details.component.html',\n styleUrls: ['./further-details.component.scss']\n})\nexport class FurtherDetailsComponent implements OnInit {\n @ViewChild('radio1') public option1Radio: RadioButtonComponent;\n @ViewChild('radio2') public option2Radio: RadioButtonComponent;\n @ViewChild('radio3') public option3Radio: RadioButtonComponent;\n @ViewChild('radio4') public option4Radio: RadioButtonComponent;\n public data: any = [\n {pwh: \"Im Keller verlegt [11 W/m]\", lineLength: 11, result: 121},\n {pwh: \"im Schacht verlegt [7 W/m]\", lineLength: 7, result: 49},\n {pwh: \"Nutzbereich [7 W/m]\", lineLength: 5, result: 35}\n ]\n\n dropdownData = [\"l/s\", \"l/min\"]\n buttonDisabled: boolean = true;\n sectionOneSelected: boolean = false;\n sectionTwoSelected: boolean = false;\n dteSelected: boolean = true;\n ufcSelected: boolean = true;\n ufc: number;\n\n selectedProject;\n\n CheckSections(){\n if(this.sectionOneSelected && this.sectionTwoSelected){\n this.buttonDisabled = false;\n }\n else{\n this.buttonDisabled = true;\n }\n }\n constructor(private readonly router: Router, private DataService: ProjectDataService) { }\n changeOption2(args: ChangeEventArgs){\n this.sectionOneSelected = true;\n this.option2Radio.checked = true;\n this.option2Radio.value = 'true';\n this.CheckSections();\n }\n changeOption3(args: ChangeEventArgs){\n this.sectionOneSelected = true;\n this.option3Radio.checked = true;\n this.option3Radio.value = 'true';\n this.CheckSections();\n }\n changeOption4(args: ChangeEventArgs){\n this.sectionOneSelected = true;\n this.option4Radio.checked = true;\n this.option4Radio.value = 'true';\n this.CheckSections();\n }\n changeSecondOption(args: ChangeEventArgs)\n {\n this.sectionTwoSelected = true;\n this.CheckSections();\n }\n ngOnInit(): void {\n this.selectedProject = this.DataService.getCurrentProject();\n if(this.selectedProject.projectValues.DTE != 0){\n this.dteSelected = true;\n }\n else{\n this.dteSelected = false;\n }\n if(this.selectedProject.projectValues.UFC != 0){\n this.ufcSelected = true;\n this.ufc = this.selectedProject.projectValues.UFC;\n }\n else{\n this.ufcSelected = false;\n }\n }\n goBack() {\n window.history.back();\n }\n navigateNext(){\n this.router.navigate([`/heat-generaing-types/${this.selectedProject.ProjectId}`]);\n }\n\n}\n","\n
      \n
      \n \n \n
      \n
      \n \n\n
      \n
      \n
      \n Weitere Angaben zum Energiespeichervolumen\n
      \n Energiespeichertemperatur (abgesenkter Betrieb)\n\n
      \n
      \n
      \n
      \n PWH-Temperatur:\n Energiespeichertemperatur: \n
      \n
      \n 50 °C\n 50 °C\n
      \n
      \n
      \n
      \n
      \n
      \n PWH-Temperatur manuell eingeben:\n \n \n \n °C\n
      \n
      \n
      \n
      \n Energiespeichertemperatur manuell eingeben:\n \n \n °C\n
      \n
      \n
      \n
      \n Zirkulation\n\n
      \n
      \n
      \n \n
      \n
      \n
      \n \n \n \n \n
      \n
      \n \n \n \n W\n
      \n
      \n \n
      \n
      \n
      \n
      \n \n \n \n \n \n
      \n m\n
      \n
      \n
      \n \n \n {{data.result}}W\n \n \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n\n Zirkulationsverlustleistung: 205 W \n
      \n
      \n\n Zirkulationsvolumenstrom: XY l/h\n
      \n
      \n\n
      \n Energielabel des Energiespeichers\n
      \n \n \n
      \n
      \n \n \n
      \n
      \n \n \n
      \n
      \n \n \n
      \n\n
      \n
      \n
      ","export const events = {\n created: 'createdEvent',\n destroyed: 'destroyedEvent',\n};","import { NgModule } from '@angular/core';\nimport { PspLoadingSpinnerComponent } from './psp-loading-spinner.component';\n\n@NgModule({\n declarations:\n [\n PspLoadingSpinnerComponent,\n ],\n exports:\n [\n PspLoadingSpinnerComponent,\n ],\n})\nexport class PspLoadingSpinnerModule {}\n","import { Routes } from '@angular/router';\nimport { DailyLoadProfileComponent } from './routes/daily-load-profile/daily-load-profile.component';\nimport { CirculationVolumetricFlowComponent } from './routes/circulation-volumetric-flow/circulation-volumetric-flow.component';\nimport { DteTemperatureComponent } from './routes/dte-temperature/dte-temperature.component';\nimport { DteComponent } from './routes/dte/dte.component';\nimport { HeatGeneratingTypesComponent } from './routes/heat-generating-types/heat-generating-types.component';\nimport { HomeComponent } from './routes/home/home.component';\nimport { HotWaterDemandComponent } from './routes/hot-water-demand/hot-water-demand.component';\nimport { OverviewComponent } from './routes/overview/overview.component';\nimport { PipelineComponent } from './routes/pipeline/pipeline.component';\nimport { ProjectViewComponent } from './routes/project-view/project-view.component';\nimport { ResultComponent } from './routes/result/result.component';\nimport { SelectCalculationUfcComponent } from './routes/select-calculation-ufc/select-calculation-ufc.component';\nimport { SelectCalculationReservoirComponent } from './routes/select-calculation-reservoir/select-calculation-reservoir.component';\nimport { ExamplePageComponent } from './routes/example-page/example-page.component';\nimport { FurtherDetailsComponent } from './routes/further-details/further-details.component';\nimport { HeatGeneratorPowerComponent } from './routes/heat-generator-power/heat-generator-power.component';\nimport { DemandVolumetricFlowOtherComponent } from './routes/demand-volumetric-flow-other/demand-volumetric-flow-other.component';\nimport { DemandVolumetricFlowResidentialComponent } from './routes/demand-volumetric-flow-residential/demand-volumetric-flow-residential.component';\nimport { ProjectResolver } from './core/ProjectResolver';\nimport { BuildingTypeResolver } from './core/BuildingTypeResolver';\n\nexport const routes: Routes = [\n { path: '', component: HomeComponent },\n { path: 'example', component: ExamplePageComponent},\n { path: 'home', component: HomeComponent },\n { path: 'overview', component: OverviewComponent },\n { path: 'project-view/:id', component: ProjectViewComponent, resolve: { project: ProjectResolver }},\n { path: 'select-calculation-ufc/:id', component: SelectCalculationUfcComponent, resolve: { project: ProjectResolver }},\n { path: 'select-calculation-reservoir/:id', component: SelectCalculationReservoirComponent, resolve: { project: ProjectResolver }},\n { path: 'demand-volumetric-flow-other/:id/:buildingType', component: DemandVolumetricFlowOtherComponent, resolve: { project: ProjectResolver, buildingType: BuildingTypeResolver }},\n { path: 'demand-volumetric-flow-residential/:id/:buildingType', component: DemandVolumetricFlowResidentialComponent, resolve: { project: ProjectResolver, buildingType: BuildingTypeResolver }},\n { path: 'dte/:id', component: DteComponent, resolve: { project: ProjectResolver }},\n { path: 'dte-temperature/:id', component: DteTemperatureComponent, resolve: { project: ProjectResolver }},\n { path: 'result/:id', component: ResultComponent, resolve: { project: ProjectResolver }},\n { path: 'pipeline/:id', component: PipelineComponent, resolve: { project: ProjectResolver }},\n { path: 'hot-water-demand/:id/:buildingType', component: HotWaterDemandComponent, resolve: { project: ProjectResolver, buildingType: BuildingTypeResolver }},\n { path: 'circulation-volumetric-flow/:id', component: CirculationVolumetricFlowComponent, resolve: { project: ProjectResolver }},\n { path: 'daily-load-profile/:id/:buildingType', component: DailyLoadProfileComponent, resolve: { project: ProjectResolver, buildingType: BuildingTypeResolver }},\n { path: 'heat-generating-types/:id', component: HeatGeneratingTypesComponent, resolve: { project: ProjectResolver }},\n { path: 'heat-generator-power/:id', component: HeatGeneratorPowerComponent, resolve: { project: ProjectResolver }}\n // { path: 'further-details', component: FurtherDetailsComponent}\n];\n","import { fromEvent, Observable } from 'rxjs';\nimport { filter, map } from 'rxjs/operators';\nimport { log } from 'src/core-lib/logging';\nimport { IChangeRoutePayload } from './shell-messages/IChangeRoutePayload';\nimport { IClientShellMessage } from './shell-messages/IClientShellMessage';\nimport { IPermissionsChangedMessage } from './shell-messages/IPermissionsChangedPayload';\nimport { IRequestClosePayload } from './shell-messages/IRequestClosePayload';\nimport { IShellMessage } from './shell-messages/IShellMessage';\n\n/**\n * Sends and receives messages from client applications hosted in this shell.\n */\nexport class AppShellHostService\n{\n private clientFrames: { [clientId: string]: HTMLIFrameElement } = {};\n\n /**\n * Subscribe to this in order to receive messages from the app shell host.\n */\n public hostMessagesObservable: Observable;\n\n constructor()\n {\n this.hostMessagesObservable = fromEvent(window, 'message')\n .pipe(\n map((args: MessageEvent) =>\n {\n if (!args.data.type || !args.data.type.startsWith('Psp'))\n return null;\n\n const clientId: string = this.clientIdByEventSource(args.source);\n if (!clientId)\n return null;\n\n return {\n clientId,\n ...args.data,\n };\n }),\n filter(shellMsg => shellMsg !== null)\n );\n }\n\n private clientIdByEventSource(eventSource: MessageEventSource): string\n {\n return Object.keys(this.clientFrames).find(clientId => this.clientFrames[clientId].contentWindow === eventSource);\n }\n\n /**\n * Adds the iframe registration of an consuming client application so that messages can be sent to it.\n */\n public registerClient(iFrame: HTMLIFrameElement, clientId: string): void\n {\n this.clientFrames[clientId] = iFrame;\n }\n\n /**\n * Removes the iframe registration of an consuming client application.\n */\n public unregisterClient(clientId: string): void\n {\n delete this.clientFrames[clientId];\n }\n\n /**\n * Tells a client application's router to navigate to the given route.\n */\n public changeRoute(clientId: string, targetRoute: string): void\n {\n this.sendMessageToClient(clientId,\n {\n type: 'PspChangeRoute',\n payload:\n {\n targetRoute\n } as IChangeRoutePayload\n });\n }\n\n /**\n * Notifies a client application about a permission or user id change.\n */\n public notifyPermissionsChanged(clientId: string, newUserIdentity?: string): void\n {\n this.sendMessageToClient(clientId,\n {\n type: 'PspPermissionsChanged',\n payload:\n {\n newUserIdentity\n } as IPermissionsChangedMessage\n });\n }\n\n /**\n * Notifies a client application that the active assortment of the current user has changed.\n */\n public notifyActiveAssortmentChange(clientId: string): void\n {\n this.sendMessageToClient(clientId,\n {\n type: 'PspNotifyActiveAssortmentChange',\n });\n }\n\n /**\n * Notifies a client application that the named assortments of the current user have changed.\n */\n public notifyNamedAssortmentsChange(clientId: string): void\n {\n this.sendMessageToClient(clientId,\n {\n type: 'PspNotifyNamedAssortmentsChange',\n });\n }\n\n /**\n * Sends a close request to the client application. It is expected to answer with a 'CloseSelf' message.\n */\n public requestClose(clientId: string, isForce?: boolean): void\n {\n this.sendMessageToClient(clientId,\n {\n type: 'PspRequestClose',\n payload:\n {\n isForce\n } as IRequestClosePayload\n });\n }\n\n private sendMessageToClient(clientId: string, messageObj: IShellMessage): void\n {\n const clientFrame: HTMLIFrameElement = this.clientFrames[clientId];\n if (!clientFrame)\n {\n log.warning({ clientId, message: messageObj }, 'Tried to send message to a clientId without iframe registration.');\n return;\n }\n\n clientFrame.contentWindow.postMessage(messageObj, '*');\n }\n}\n","import { Component, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\nimport { DimensioningSchematicComponent } from '../dimensioning-schematic/dimensioning-schematic.component';\n\n/**\n * A special schematic container which allows to update certain values immediately.\n */\n@Component({\n selector: 'app-dte-standardbetrieb-schematic',\n templateUrl: '../dimensioning-schematic/dimensioning-schematic.component.html',\n styleUrls: ['../dimensioning-schematic/dimensioning-schematic.component.scss'],\n})\nexport class DteStandardbetriebSchematicComponent extends DimensioningSchematicComponent implements OnInit, OnChanges\n{\n @Input()\n public dte: string;\n\n @Input()\n public energiespeicherVorlauftemperatur: string;\n\n @Input()\n public bedarfsvolumenstrom: string;\n\n public ngOnInit(): void\n {\n this.schematicType = 'Dte';\n }\n\n public ngOnChanges(changes: SimpleChanges)\n {\n this.updateTextElements();\n }\n\n protected onImageLoaded(): void\n {\n super.onImageLoaded();\n this.updateTextElements();\n }\n\n private updateTextElements(): void\n {\n if (!this.isImageLoaded)\n return;\n\n this.setTextElementValue('Station_1', this.dte);\n this.setTextElementValue('HVL_1_Grad_1', this.energiespeicherVorlauftemperatur);\n this.setTextElementValue('PWH_1_Liter_1', this.bedarfsvolumenstrom);\n }\n}\n","import { ButtonModelPropsModel, Toast, ToastClickEventArgs, ToastModel } from '@syncfusion/ej2-angular-notifications';\nimport { Injectable } from '@angular/core';\nimport { LangService } from './LangService';\nimport { ServiceLocator } from './ServiceLocator';\nimport { GenericDialogService } from './GenericDialogService';\n\nexport type ToastType = 'success' | 'info' | 'warning' | 'error' | 'neutral';\n\n@Injectable()\nexport class ToastService\n{\n private static readonly toastDefaultCloseDelay = 5000;\n\n private toast: Toast;\n private dialogService: GenericDialogService;\n private langService: LangService;\n\n public static readonly typeIconMap = {\n 'success': 'icon-success',\n 'warning': 'icon-warning',\n 'error': 'icon-close-outline',\n 'info': 'icon-info',\n };\n\n public static readonly typeCssClassMap = {\n 'success': 'e-toast-success',\n 'warning': 'e-toast-warning',\n 'error': 'e-toast-danger',\n 'info': 'e-toast-info',\n };\n\n public constructor()\n {\n const toastContainer = document.createElement('div');\n document.body.insertBefore(toastContainer, document.body.firstChild);\n\n this.toast = new Toast({\n position:\n {\n X: 'Right',\n Y :'Bottom',\n },\n animation:\n {\n show: { duration: 1000 },\n hide: { duration: 500 },\n },\n click: (args: ToastClickEventArgs) =>\n {\n args.clickToClose = true;\n },\n newestOnTop: true,\n });\n this.toast.appendTo(toastContainer);\n\n this.dialogService = ServiceLocator.get(GenericDialogService);\n this.langService = ServiceLocator.get(LangService);\n }\n\n public showInfoToast(title: string, content: string, overrides?: ToastModel)\n {\n this.showToast(title, content, 'info', ToastService.toastDefaultCloseDelay, undefined, overrides);\n }\n\n public showWarningToast(title: string, content: string, overrides?: ToastModel)\n {\n this.showToast(title, content, 'warning', ToastService.toastDefaultCloseDelay, undefined, overrides);\n }\n\n public showErrorToast(title: string, content: string, overrides?: ToastModel, errorDetails?: string)\n {\n let buttons: ButtonModelPropsModel[];\n if (errorDetails)\n {\n buttons =\n [\n {\n model:\n {\n content: this.langService.getString('#Generic.Toasts.ErrorDetailsBtn_T'),\n isPrimary: false,\n cssClass: 'psp-toast-error-details',\n },\n click: (event: MouseEvent) => {\n this.dialogService.showErrorDetailsDialog(errorDetails);\n event.stopImmediatePropagation();\n event.stopPropagation();\n }\n }\n ];\n }\n\n this.showToast(title, content, 'error', undefined, buttons, overrides);\n }\n\n public showNeutralToast(title: string, content: string, overrides?: ToastModel)\n {\n this.showToast(title, content, 'neutral', undefined, undefined, overrides);\n }\n\n private showToast(\n title: string,\n content: string,\n toastType: ToastType,\n timeOut?: number,\n buttons?: ButtonModelPropsModel[],\n overrides?: ToastModel,\n )\n {\n let width = '400px';\n if (content.length > 200 && window.innerWidth > 600)\n width = '550px';\n\n const toastObject = {\n title: title,\n content: content,\n icon: ToastService.typeIconMap[toastType],\n timeOut,\n cssClass: ToastService.typeCssClassMap[toastType],\n buttons,\n width\n };\n Object.assign(toastObject, overrides || {});\n\n this.toast.show(toastObject);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { CollapsiblePanelComponent } from './collapsible-panel.component';\n\n@NgModule({\n imports: [\n CommonModule,\n\n ],\n declarations: [\n CollapsiblePanelComponent\n ],\n exports: [\n CollapsiblePanelComponent\n ]\n})\nexport class CollapsiblePanelModule { }\n","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { CheckBoxComponent } from '@syncfusion/ej2-angular-buttons';\nimport { provideContext } from 'src/core-lib/angular/context-util';\n\n@Component({\n selector: 'app-project-configuration-item',\n templateUrl: './project-configuration-item.component.html',\n styleUrls: ['./project-configuration-item.component.scss'],\n providers: [provideContext(\"ProjectConfigurationItem\")],\n})\nexport class ProjectConfigurationItemComponent implements OnInit {\n\n @Input() itemTitle;\n @Input() itemImage;\n @Input() itemDescription;\n @Input() itemChecked: boolean;\n @Input() isDisabled: boolean;\n @Input() itemHintId: string;\n @Output() itemCheckedChange = new EventEmitter();\n\n @ViewChild('titleCheckBox') public itemCheckBox: CheckBoxComponent;\n\n @Output() stateChanged = new EventEmitter();\n\n constructor() { }\n\n\n\n ngOnInit(): void {\n }\n\n\nonChange(args){ //Wird noch geändert, wenn DTE Auswahl zu Radio-Buttons gemacht wird; Derzeit noch benötigt\n this.itemCheckedChange.emit(this.itemChecked);\n this.stateChanged.emit(args.checked);\n }\n\n}\n","
      \n
      \n
      \n \n
      \n \n
      \n
      \n
      \n\n
      \n
      \n \"\"\n
      \n\n
      \n \n
      \n
      \n\n
      \n \n
      \n
      \n\n","import { ThisReceiver } from '@angular/compiler';\nimport { Complex, Component, INotifyPropertyChanged, Property, Event, EmitType, addClass, removeClass, L10n, defaultCulture, EventHandler } from '@syncfusion/ej2-base';\nimport { DataManager, Query } from '@syncfusion/ej2-data';\nimport { AutoComplete, AutoCompleteModel, ChangeEventArgs, FieldSettings, FieldSettingsModel, FilteringEventArgs, FilterType, PopupEventArgs, SelectEventArgs } from '@syncfusion/ej2-dropdowns';\nimport { SortOrder } from '@syncfusion/ej2-navigations';\nimport { events } from './events';\nimport { IPspSearchBoxModel, SearchBoxTheme } from './IPspSearchBoxModel';\nimport { IStartSearchEventArgs } from './IStartSearchEventArgs';\n\nexport class PspSearchBox extends Component implements INotifyPropertyChanged\n{\n private static readonly cssBaseClass = 'pspc-search-box-ac';\n\n private inputAutoComplete: AutoComplete;\n private startSearchIconEl: HTMLButtonElement;\n\n /**\n * Data source which is queried as the user types a string in the input.\n */\n @Property()\n public quickSearchDataSource?: { [key: string]: object }[] | DataManager;\n\n /**\n * Data that is shown when the user focuses the input without typing anything.\n */\n @Property()\n public presetDataSource?: { [key: string]: object }[] | DataManager;\n\n /**\n * Whether the popup should open as the input is clicked. This is only applicable if a data source for\n * recommended items has been set.\n */\n @Property(true)\n public openOnFocus?: boolean;\n\n /**\n * Css classes to apply for the search icon.\n */\n @Property('icon-search1')\n public startSearchIconCss: string;\n\n /**\n * Whether autocomplete functionality should be enabled or not.\n */\n @Property(true)\n public enableAutocomplete?: boolean;\n\n /**\n * Configures the appearance of the search box.\n */\n @Property('light')\n public theme: SearchBoxTheme;\n\n /**\n * Specifies a short hint that describes the expected value of the DropDownList component.\n * @default null\n */\n @Property(null)\n public placeholder: string;\n\n /**\n * Specifies the width of the popup list. By default, the popup width sets based on the width of\n * the component.\n * > For more details about the popup configuration refer to\n * [`Popup Configuration`](../../drop-down-list/getting-started#configure-the-popup-list) documentation.\n * @default '100%'\n * @aspType string\n * @blazorType string\n */\n @Property('100%')\n public popupWidth: string | number;\n\n /**\n * Specifies the height of the popup list.\n * > For more details about the popup configuration refer to\n * [`Popup Configuration`](../../drop-down-list/getting-started#configure-the-popup-list) documentation.\n * @default '300px'\n * @aspType string\n * @blazorType string\n */\n @Property('300px')\n public popupHeight: string | number;\n\n /**\n * When set to true, the user interactions on the component are disabled.\n * @default false\n */\n @Property(false)\n public readonly: boolean;\n\n /**\n * Specifies the width of the component. By default, the component width sets based on the width of\n * its parent container. You can also set the width in pixel values.\n * @default '100%'\n * @aspType string\n * @blazorType string\n */\n @Property('100%')\n public width: string | number;\n\n @Property()\n public showPopupButton?: boolean;\n\n /**\n * Specifies whether to show or hide the clear button.\n * When the clear button is clicked, `value`, `text`, and `index` properties are reset to null.\n * @default true\n * @blazorOverrideType override\n */\n @Property(true)\n public showClearButton: boolean;\n\n /**\n * Allows you to set [`the minimum search character length']\n * (../../auto-complete/filtering#limit-the-minimum-filter-character),\n * the search action will perform after typed minimum characters.\n * @default 1\n * @blazorType int\n */\n @Property(1)\n public minLength: number;\n\n /**\n * When set to ‘true’, highlight the searched characters on suggested list items.\n * > For more details about the highlight refer to [`Custom highlight search`](../../auto-complete/how-to/custom-search) documentation.\n * @default false\n */\n @Property(false)\n public highlight: boolean;\n\n /**\n * The amount of items which should be shown as the user types.\n * @default 20\n * @blazorType int\n */\n @Property(20)\n public suggestionCount: number;\n\n /**\n * Configures how fields of data are bound to the component.\n * * text - The field to use for display values.\n * * value - The field to use for values.\n * * iconCss - The css classes to use for item icons.\n * * groupBy - The field to use for grouping.\n *\n * @default {text: null, value: null, iconCss: null, groupBy: null}\n */\n @Complex({ text: null, value: null, iconCss: null, groupBy: null }, FieldSettings)\n public fields: FieldSettingsModel;\n\n /**\n * The template to apply to the header of the popup.\n * @default null\n */\n @Property(null)\n public headerTemplate: string;\n\n /**\n * Accepts the template design and assigns it to each list item present in the popup.\n * We have built-in `template engine`\n *\n * which provides options to compile template string into a executable function.\n * For EX: We have expression evolution as like ES6 expression string literals.\n * @default null\n */\n @Property(null)\n public itemTemplate: string;\n\n /**\n * The template to apply to the footer of the popup.\n * @default null\n */\n @Property(null)\n public footerTemplate: string;\n\n /**\n * Accepts the template design and assigns it to the group headers present in the popup list.\n * @default null\n */\n @Property(null)\n public groupTemplate: string;\n\n /**\n * Accepts the template design and assigns it to popup list of component\n * when no data is available on the component.\n * @default 'No records found'\n */\n @Property('No records found')\n public noRecordsTemplate: string;\n\n /**\n * Accepts the template and assigns it to the popup list content of the component\n * when the data fetch request from the remote server fails.\n * @default 'Request failed'\n */\n @Property('Request failed')\n public actionFailureTemplate: string;\n\n /**\n * Specifies the `sortOrder` to sort the data source. The available type of sort orders are\n * * `None` - The data source is not sorting.\n * * `Ascending` - The data source is sorting with ascending order.\n * * `Descending` - The data source is sorting with descending order.\n *\n * This setting does not apply to the search preset items.\n * @default null\n * @asptype object\n * @aspjsonconverterignore\n */\n @Property('None')\n public sortOrder: SortOrder;\n\n /**\n * Specifies a value that indicates whether the component is enabled or not.\n * @default true\n */\n @Property(true)\n public enabled: boolean;\n\n /**\n * Accepts the external `Query`\n * which will execute along with the data processing.\n * @default null\n */\n @Property(null)\n public query: Query;\n\n /**\n * Determines on which filter type, the component needs to be considered on search action.\n * The `FilterType` and its supported data types are\n *\n * \n * \n * \n * \n * \n * \n * \n * \n * \n *
      \n * FilterType
      \n * Description
      \n * Supported Types
      \n * StartsWith
      \n * Checks whether a value begins with the specified value.
      \n * String
      \n * EndsWith
      \n * Checks whether a value ends with specified value.

      \n *
      String
      \n * Contains
      \n * Checks whether a value contains with specified value.

      \n *
      String
      \n *\n * The default value set to `StartsWith`, all the suggestion items which contain typed characters to listed in the suggestion popup.\n * @default 'StartsWith'\n */\n @Property('StartsWith')\n public filterType: FilterType;\n\n /**\n * When set to ‘false’, consider the `case-sensitive` on performing the search to find suggestions.\n * By default consider the casing.\n * @default true\n */\n @Property(true)\n public ignoreCase: boolean;\n\n /**\n * specifies the z-index value of the component popup element.\n * @default 1000\n */\n @Property(1000)\n public zIndex: number;\n\n /**\n * ignoreAccent set to true, then ignores the diacritic characters or accents when filtering.\n */\n @Property(false)\n public ignoreAccent: boolean;\n\n /**\n * Gets or sets the display text of the selected item in the component.\n * @default null\n */\n @Property(null)\n public text: string;\n\n /**\n * Gets or sets the value of the selected item in the component.\n * @default null\n * @isGenericType true\n */\n\n @Property(null)\n public value: number | string | boolean;\n\n /**\n * Sets CSS classes to the root element of the component that allows customization of appearance.\n * @default null\n */\n @Property(null)\n public cssClass: string;\n\n /**\n * Triggered when the user presses enter, selects an item from suggestions or presets or when the search icon is clicked.\n */\n @Event()\n public startSearchEvent: EmitType;\n\n /**\n * Triggers when an item in a popup is selected or when the model value is changed by user.\n * @event\n * @blazorProperty 'ValueChange'\n */\n @Event()\n public changeEvent: EmitType;\n\n /**\n * Triggers when the popup before opens.\n * @event\n * @blazorProperty 'OnOpen'\n * @blazorType BeforeOpenEventArgs\n */\n @Event()\n public beforeOpenEvent: EmitType;\n\n /**\n * Triggers when the popup opens.\n * @event\n * @blazorProperty 'Opened'\n */\n @Event()\n public openEvent: EmitType;\n\n /**\n * Triggers when the popup is closed.\n * @event\n * @blazorProperty 'OnClose'\n */\n @Event()\n public closeEvent: EmitType;\n\n /**\n * Triggers when focus moves out from the component.\n * @event\n */\n @Event()\n public blurEvent: EmitType;\n\n /**\n * Triggers when the component is focused.\n * @event\n */\n @Event()\n public focusEvent: EmitType;\n\n /**\n * Triggers before fetching data from the remote server.\n * @event\n * @blazorProperty 'OnActionBegin'\n * @blazorType ActionBeginEventArgs\n */\n @Event()\n public actionBeginEvent: EmitType;\n\n /**\n * Triggers after data is fetched successfully from the remote server.\n * @event\n * @blazorProperty 'OnActionComplete'\n * @blazorType ActionCompleteEventArgs\n */\n @Event()\n public actionCompleteEvent: EmitType;\n\n /**\n * Triggers when the data fetch request from the remote server fails.\n * @event\n * @blazorProperty 'OnActionFailure'\n */\n @Event()\n public actionFailureEvent: EmitType;\n\n /**\n * Triggers when an item in the popup is selected by the user either with mouse/tap or with keyboard navigation.\n * @event\n * @blazorProperty 'OnValueSelect'\n */\n @Event()\n public selectEvent: EmitType;\n\n /**\n * Triggers when data source is populated in the popup list.\n * @event\n * @blazorProperty 'DataBound'\n * @blazorType DataBoundEventArgs\n */\n @Event()\n public dataBoundEvent: EmitType;\n\n /**\n * Triggers when filtering of data happens e.g. when the input text changes.\n * @event\n * @blazorProperty 'Filtering'\n * @blazorType DataBoundEventArgs\n */\n @Event()\n public filteringEvent: EmitType;\n\n /**\n * Triggers when the component is created.\n * @event\n * @blazorProperty 'Created'\n */\n @Event()\n public createdEvent: EmitType;\n\n /**\n     * Triggers when the component is destroyed.\n     * @event\n * @blazorProperty 'Destroyed'\n     */\n @Event()\n public destroyedEvent: EmitType;\n\n constructor(options?: IPspSearchBoxModel, element?: string | HTMLElement)\n {\n super(options, element);\n }\n\n /** @ignore */\n public getModuleName(): string\n {\n return 'psp-search-box';\n }\n\n protected preRender(): void\n {\n // NOP\n }\n\n protected render(): void\n {\n const locale = L10n['locale'];\n const l10n = new L10n('auto-complete', locale, defaultCulture);;\n\n addClass([this.element], 'pspc-search-box');\n\n if (this.cssClass)\n addClass([this.element], this.cssClass.split(' '));\n\n this.setEnabled(this.enabled);\n this.setTheme(this.theme);\n\n const autoCompleteEl = document.createElement('SPAN');\n this.element.appendChild(autoCompleteEl);\n\n const autoCompleteSetup: AutoCompleteModel = {\n dataSource: (this.presetDataSource || this.quickSearchDataSource) as any,\n fields: this.fields,\n filterType: this.filterType,\n filtering: this.autoComplete_filtering.bind(this),\n allowFiltering: true,\n showPopupButton: this.showPopupButton,\n showClearButton: this.showClearButton,\n highlight: this.highlight,\n width: this.width,\n suggestionCount: 50,\n minLength: this.minLength,\n placeholder: this.placeholder,\n popupHeight: this.popupHeight,\n popupWidth: this.popupWidth,\n readonly: this.readonly,\n sortOrder: this.sortOrder,\n enabled: this.enabled,\n query: this.query as any,\n headerTemplate: this.headerTemplate,\n itemTemplate: this.itemTemplate,\n footerTemplate: this.footerTemplate,\n groupTemplate: this.groupTemplate,\n noRecordsTemplate: this.noRecordsTemplate === 'No records found' ? l10n.getConstant('noRecordsTemplate') : this.noRecordsTemplate,\n actionFailureTemplate: this.noRecordsTemplate === 'Request failed' ? l10n.getConstant('actionFailureTemplate') : this.actionFailureTemplate,\n text: this.text,\n value: this.value,\n zIndex: this.zIndex,\n cssClass: PspSearchBox.cssBaseClass,\n change: this.autoComplete_change.bind(this),\n select: this.autoComplete_select.bind(this),\n open: this.autoComplete_open.bind(this),\n beforeOpen: this.autoComplete_beforeOpen.bind(this),\n close: this.autoComplete_close.bind(this),\n blur: this.autoComplete_blur.bind(this),\n focus: this.autoComplete_focus.bind(this),\n actionBegin: (args) => this.trigger(events.actionBegin, args),\n actionComplete: (args) => this.trigger(events.actionComplete, args),\n actionFailure: (args) => this.trigger(events.actionFailure, args),\n dataBound: (args) => this.trigger(events.dataBound, args),\n };\n\n this.inputAutoComplete = new AutoComplete(autoCompleteSetup, autoCompleteEl);\n\n // TODO: @syncfusion: request a new property to prevent the popup from hiding when emptystring is entered or clear button is clicked. also ensure that unfiltered data is then loaded into popup\n // hack: override this private method to prevent the popup from hiding\n this.inputAutoComplete['filterAction'] = this.autoComplete_filterActionOverride.bind(this);\n\n // hack: override this private method to prevent the popup from hiding when the clear button is clicked\n this.inputAutoComplete['clearAll'] = this.autoComplete_clearAllOverride.bind(this);\n\n this.startSearchIconEl = document.createElement('BUTTON') as HTMLButtonElement;\n this.startSearchIconEl.className = 'pspc-search-box-submit';\n addClass([this.startSearchIconEl], this.startSearchIconCss);\n this.element.appendChild(this.startSearchIconEl);\n\n this.wireEvents();\n this.trigger(events.created, {});\n }\n\n private element_keyup(args: KeyboardEvent): void\n {\n const inputString: string = this.inputAutoComplete['typedString'];\n if (!this.enableAutocomplete && inputString === '')\n {\n this.text = '';\n this.value = '';\n const emitArgs: FilteringEventArgs =\n {\n cancel: false,\n baseEventArgs: args,\n preventDefaultAction: false,\n text: '',\n updateData: null,\n };\n this.trigger(events.filtering, emitArgs);\n }\n }\n\n private startSearchIcon_click(args: MouseEvent): void\n {\n const emitArgs: IStartSearchEventArgs =\n {\n text: this.text,\n value: this.value,\n };\n this.trigger(events.startSearch, emitArgs);\n }\n\n private autoComplete_beforeOpen(args: { cancel: boolean }): void\n {\n args.cancel = !this.enableAutocomplete;\n this.trigger(events.beforeOpen, args);\n }\n\n private autoComplete_blur(): void\n {\n removeClass([this.element], 'pspc-search-box--focused');\n this.trigger(events.blur, {});\n }\n\n private autoComplete_focus(): void\n {\n if (this.openOnFocus)\n this.inputAutoComplete.showPopup();\n\n addClass([this.element], 'pspc-search-box--focused');\n this.trigger(events.focus, {});\n }\n\n private autoComplete_filterActionOverride(\n dataSource: { [key: string]: object }[] | DataManager | string[] | number[] | boolean[],\n query?: Query, fields?: FieldSettingsModel\n ): void\n {\n const autoComplete: any = this.inputAutoComplete;\n if (\n (autoComplete.queryString === '' && this.presetDataSource) ||\n (autoComplete.queryString.length >= autoComplete.minLength)\n )\n {\n autoComplete.beforePopupOpen = true;\n autoComplete.resetList.call(autoComplete, dataSource, fields, query);\n }\n else\n {\n this.inputAutoComplete.hidePopup();\n }\n\n autoComplete.renderReactTemplates.call(autoComplete);\n }\n\n private autoComplete_clearAllOverride(\n e?: MouseEvent,\n property?: AutoCompleteModel\n ): void\n {\n // super call\n this.inputAutoComplete['__proto__']['__proto__'].clearAll.call(this.inputAutoComplete, e, property);\n this.autoComplete_filterActionOverride(this.presetDataSource);\n\n this.text = '';\n this.value = '';\n const emitArgs: FilteringEventArgs =\n {\n cancel: false,\n baseEventArgs: e,\n preventDefaultAction: false,\n text: '',\n updateData: null,\n };\n this.trigger(events.filtering, emitArgs);\n }\n\n private autoComplete_filtering(args: FilteringEventArgs)\n {\n if (args.text === '')\n {\n if (this.presetDataSource)\n args.updateData(this.presetDataSource as any);\n else\n this.inputAutoComplete.hidePopup();\n }\n else\n {\n const query = new Query()\n .where('text', this.filterType.toLowerCase(), args.text, this.ignoreCase, this.ignoreAccent)\n .take(this.suggestionCount);\n\n // remove grouping in suggestions\n const fieldsWithoutGroup = {\n text: this.fields.text,\n value: this.fields.value,\n iconCss: this.fields.iconCss\n };\n args.updateData(this.quickSearchDataSource as any, query as any, fieldsWithoutGroup);\n }\n\n this.isProtectedOnChange = true;\n this.text = args.text;\n this.value = args.text;\n this.isProtectedOnChange = false;\n\n this.trigger(events.filtering, args);\n }\n\n private autoComplete_change(args: ChangeEventArgs)\n {\n this.isProtectedOnChange = true;\n if (args.itemData)\n {\n const textFieldName = this.fields ? this.fields.text : 'text';\n const itemText = args.itemData[textFieldName];\n\n this.text = itemText !== undefined ? itemText : (args.value?.toString() || '');\n }\n else\n {\n this.text = args.value?.toString() || '';\n }\n this.value = args.value;\n this.isProtectedOnChange = false;\n\n this.trigger(events.change, args);\n }\n\n private autoComplete_select(args: SelectEventArgs)\n {\n const textFieldName = this.fields ? this.fields.text : 'text';\n const valueFieldName = this.fields ? this.fields.text : 'value';\n const itemText = args.itemData[textFieldName];\n const itemValue = args.itemData[valueFieldName];\n\n this.isProtectedOnChange = true;\n this.text = itemText !== undefined ? itemText : itemValue;\n this.value = itemValue !== undefined ? itemValue : itemText;\n this.isProtectedOnChange = false;\n\n this.trigger(events.select, args);\n }\n\n private autoComplete_open(args: PopupEventArgs): void\n {\n args.popup.offsetY -= 1;\n addClass([this.element], 'pspc-search-box--popup-open');\n\n if (!this.theme)\n args.popup.element.classList.add('pspc-search-box--light');\n else\n args.popup.element.classList.add('pspc-search-box--' + this.theme);\n\n this.trigger(events.open, args);\n }\n\n private autoComplete_close(args: PopupEventArgs): void\n {\n this.trigger(events.close, args);\n setTimeout(() => {\n removeClass([this.element], 'pspc-search-box--popup-open');\n }, 100);\n }\n\n /** @ignore */\n public onPropertyChanged(newProp: IPspSearchBoxModel, oldProp: IPspSearchBoxModel): void\n {\n for (const propertyName of Object.keys(newProp))\n {\n const oldValue = oldProp[propertyName];\n const newValue = newProp[propertyName];\n\n switch (propertyName)\n {\n // properties to be passed through to the wrapper\n case 'width':\n case 'fields':\n case 'filterType':\n case 'allowFiltering':\n case 'showPopupButton':\n case 'highlight':\n case 'minLength':\n case 'placeholder':\n case 'popupHeight':\n case 'popupWidth':\n case 'readonly':\n case 'sortOrder':\n case 'query':\n case 'showClearButton':\n case 'headerTemplate':\n case 'itemTemplate':\n case 'footerTemplate':\n case 'groupTemplate':\n case 'noRecordsTemplate':\n case 'actionFailureTemplate':\n case 'text':\n case 'value':\n case 'zIndex':\n this.inputAutoComplete[propertyName as string] = newValue;\n break;\n\n case 'cssClass':\n if (oldValue)\n removeClass([this.element], oldValue.split(' '));\n if (newValue)\n addClass([this.element], newValue.split(' '));\n\n break;\n\n case 'presetDataSource':\n case 'quickSearchDataSource':\n this.inputAutoComplete.dataSource = (this.presetDataSource || this.quickSearchDataSource) as any;\n break;\n\n case 'enabled':\n this.inputAutoComplete.enabled = newValue;\n this.setEnabled(newValue);\n break;\n\n case 'theme':\n this.setTheme(newValue);\n break;\n\n case 'startSearchIconCss':\n removeClass([this.startSearchIconEl], oldValue.split(' '));\n addClass([this.startSearchIconEl], newValue.split(' '));\n\n break;\n }\n }\n }\n\n private setEnabled(isEnabled: boolean)\n {\n if (isEnabled)\n removeClass([this.element], 'pspc-search-box--disabled');\n else\n addClass([this.element], 'pspc-search-box--disabled');\n }\n\n private setTheme(theme?: SearchBoxTheme)\n {\n removeClass([this.element], ['pspc-search-box--light', 'pspc-search-box--dark']);\n\n if (!theme)\n addClass([this.element], 'pspc-search-box--light');\n else\n addClass([this.element], 'pspc-search-box--' + theme);\n }\n\n protected getPersistData(): string\n {\n return '';\n }\n\n private wireEvents(): void\n {\n EventHandler.add(this.startSearchIconEl, 'click', this.startSearchIcon_click, this);\n EventHandler.add(this.element, 'keyup', this.element_keyup, this);\n }\n\n private unwireEvents(): void\n {\n EventHandler.remove(this.startSearchIconEl, 'click', this.startSearchIcon_click);\n EventHandler.remove(this.element, 'keyup', this.element_keyup);\n }\n\n public destroy(): void\n {\n this.unwireEvents();\n this.trigger(events.destroyed, {});\n super.destroy();\n }\n}\n","import { Component, OnInit, Input, EventEmitter, Output } from '@angular/core';\n\nexport interface ISegment {\n label: string;\n route: string;\n}\n\nexport interface IDemandsIndexChangeEvent {\n newStepIndex: number;\n newRoute: string;\n}\n\n@Component({\n selector: 'viega-step-bar',\n templateUrl: './step-bar.component.html',\n styleUrls: ['./step-bar.component.scss'],\n})\nexport class StepBarComponent {\n @Input()\n public segments: ISegment[];\n public hoverIndex: number = -1;\n\n /** The index of the segment the user is currently viewing. */\n @Input()\n public activeIndex: number = 0;\n\n /** The index of the segment which represents the current progress / step. */\n @Input()\n public currentIndex: number = 0;\n\n /** The index of the segment the user could possibly skip to. */\n @Input()\n public skipAllowedIndex: number = 0;\n\n /** The label displayed before the number of the step. */\n @Input()\n public stepLabelMobile: string;\n\n @Output()\n public demandsIndexChange = new EventEmitter();\n\n public segment_click(segment: ISegment, index: number) {\n if (index > this.skipAllowedIndex){\n return;\n }\n\n if (this.activeIndex !== index) {\n this.demandsIndexChange.emit({ newStepIndex: index , newRoute: segment.route});\n this.activeIndex = index;\n }\n }\n\n public segment_mouseover(index: number) {\n this.hoverIndex = index;\n }\n\n public segment_mouseout(index: number) {\n this.hoverIndex = -1;\n }\n\n public step_back() {\n const prev = this.activeIndex - 1;\n const prevSegment = this.segments[prev];\n this.segment_click(prevSegment, prev);\n }\n\n public step_forward() {\n const next = this.activeIndex + 1;\n const nextSegment = this.segments[next];\n this.segment_click(nextSegment, next);\n }\n\n isNumber(n: number): boolean {\n return !Number.isNaN(n);\n }\n}\n","\n\n
      \n
      \n \n
      \n
      \n","import { NgModule } from '@angular/core';\nimport { PspButtonComponent } from './psp-button.component';\n\n@NgModule(\n{\n declarations:\n [\n PspButtonComponent,\n ],\n exports:\n [\n PspButtonComponent,\n ],\n})\nexport class PspButtonModule {}\n","import { log } from 'src/core-lib/logging';\nimport { RuntimeService } from './RuntimeService';\nimport { ServiceLocator } from './ServiceLocator';\n\nexport class UrlResolverService\n{\n private runtimeService: RuntimeService;\n private readonly frontendFallbackRoot: string;\n private readonly urlMappings: { [sourceUrl: string]: string };\n\n public constructor()\n {\n this.runtimeService = ServiceLocator.get(RuntimeService);\n\n this.frontendFallbackRoot = this.runtimeService.getConfigValue('UrlResolverService:FrontendFallbackRoot');\n const mappingRules: string[] = this.runtimeService.getConfigValue('UrlResolverService:FrontendMappingRules', []);\n\n this.urlMappings = {};\n mappingRules.forEach(ruleItem =>\n {\n const ruleComponents: string[] = ruleItem.split('|');\n\n const sourceUrl = ruleComponents[0];\n const destUrl = ruleComponents[1];\n this.urlMappings[sourceUrl] = destUrl;\n });\n }\n\n public resolveServiceUrl(url: string): string\n {\n if (!url.startsWith(\"//\"))\n return url;\n\n let resolvedUrl: string;\n\n var matchingKey = Object.keys(this.urlMappings).find(sourceUrl => url.startsWith(sourceUrl));\n const isMatch: boolean = matchingKey !== undefined;\n if (isMatch)\n resolvedUrl = this.urlMappings[matchingKey] + url.substring(matchingKey.length);\n else\n resolvedUrl = this.frontendFallbackRoot + url.substring(2);\n\n resolvedUrl = resolvedUrl.replace('{origin}', location.origin);\n return resolvedUrl;\n }\n}\n","import { ChangeDetectionStrategy, Component, ElementRef, Injector, Renderer2, ViewContainerRef } from '@angular/core';\nimport { ComponentBase, ComponentMixins, IComponentBase, setValue } from 'src/core-lib/angular/util';\nimport { PspContextualHelp } from 'src/core-lib/ej2/components/other/psp-contextual-help/PspContextualHelp';\n\n// properties declared here can be changed by the user in the storyboard UI\nexport const propertyArgTypes =\n{\n tooltipTextHtml: { control: 'text' },\n documentationHref: { control: 'text' },\n documentationLinkName: { control: 'text' },\n tooltipPosition: { control: { type: 'select', options: ['TopLeft', 'TopCenter', 'TopRight', 'BottomLeft', 'BottomCenter', 'BottomRight', 'LeftTop', 'LeftCenter', 'LeftBottom', 'RightTop', 'RightCenter', 'RightBottom'] } },\n cssClass: { control: 'text' },\n};\n\n// declare some properties as bindable angular inputs\nconst inputBindings =\n[\n 'tooltipTextHtml',\n 'documentationHref',\n 'tooltipPosition',\n 'cssClass',\n];\n\n// prevent storybook from updating these properties\nconst changeIgnoredProperties: string[] = [];\n\n// declare some properties as bindable angular outputs\nconst outputBindings =\n[\n 'createdEvent',\n 'destroyedEvent',\n];\n\n@Component({\n selector: 'psp-contextual-help',\n template: '',\n inputs: inputBindings,\n outputs: outputBindings,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\n@ComponentMixins([ComponentBase])\nexport class PspContextualHelpComponent extends PspContextualHelp implements IComponentBase\n{\n /** @ignore */\n public tagObjects: any = [];\n\n /** @ignore */\n public context : any;\n\n /** @ignore */\n public tags: string[] = [];\n\n protected changeIgnoredPropertyMap: { [propertyName: string]: boolean };\n\n public constructor(\n private ngEle: ElementRef,\n private srenderer: Renderer2,\n private viewContainerRef: ViewContainerRef,\n private injector: Injector\n )\n {\n super();\n\n this.element = this.ngEle.nativeElement;\n\n this.changeIgnoredPropertyMap = {};\n changeIgnoredProperties.forEach(prop => this.changeIgnoredPropertyMap[prop] = true);\n\n this.registerEvents(outputBindings);\n this.addTwoWay.call(this, []);\n setValue('currentInstance', this, viewContainerRef);\n this.context = new ComponentBase();\n }\n\n /** @ignore */\n public ngOnInit(): void\n {\n this.context.ngOnInit(this);\n }\n\n /** @ignore */\n public ngAfterViewInit(): void\n {\n this.context.ngAfterViewInit(this);\n }\n\n /** @ignore */\n public ngOnDestroy(): void\n {\n this.context.ngOnDestroy(this);\n }\n\n /** @ignore */\n public ngAfterContentChecked(): void\n {\n this.context.ngAfterContentChecked(this);\n }\n\n /** @ignore */\n public registerEvents: (eventList: string[]) => void;\n\n /** @ignore */\n public addTwoWay: (propList: string[]) => void;\n}\n","import { Component, OnInit, Input, Output, HostListener, EventEmitter, ElementRef, ViewChild, forwardRef } from '@angular/core';\nimport { ValueAccessor } from '../ValueAccessor';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { isNumber } from 'util';\n\nexport interface ISliderValueChangeEvent {\n newValue: number;\n}\n\n@Component({\n selector: 'viega-slider',\n templateUrl: './slider.component.html',\n styleUrls: ['./slider.component.scss'],\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SliderComponent),\n multi: true\n }]\n})\nexport class SliderComponent extends ValueAccessor implements OnInit {\n private handleOrigin: number;\n private dragStart: number;\n private maxHandleOffset: number;\n private _min: number = 0;\n private _max: number = 1;\n private isLoaded: boolean = false;\n\n @Input()\n public increment: number = 1;\n\n @Input()\n public inputId: string;\n\n @Input()\n public get isDisabled(): boolean {\n return this.disabled;\n }\n\n public set isDisabled(isDisabled: boolean) {\n this.disabled = isDisabled;\n }\n\n public get max(): number {\n return this._max;\n }\n\n @Input()\n public set max(newValue: number) {\n this._max = newValue;\n this.setHandlePosFromValue(this.value);\n }\n\n public get min(): number {\n return this._min;\n }\n\n @Input()\n public set min(newValue: number) {\n this._min = newValue;\n this.setHandlePosFromValue(this.value);\n }\n\n /**\n * Whether clicking on the slider's bar allows the user to set a specific value directly.\n */\n @Input()\n public isSkipAllowed: boolean = true;\n\n @Output()\n public valueChange = new EventEmitter();\n\n @ViewChild(\"track\")\n public trackElement: ElementRef;\n\n @ViewChild(\"handle\")\n public handleElement: ElementRef;\n\n public isDragging: boolean = false;\n\n public writeValue(value: number) {\n super.writeValue(value);\n this.setHandlePosFromValue(value);\n }\n\n public constructor(private element: ElementRef) {\n super();\n }\n\n public ngOnInit(): void {\n this.isLoaded = true;\n this.setHandlePosFromValue(this.value);\n }\n\n @HostListener(\"mousedown\", ['$event'])\n public onMouseDown(event: MouseEvent) {\n if (event.which !== 1)\n return;\n\n const isFromHandle = event.target === this.handleElement.nativeElement;\n if (!this.isSkipAllowed && !isFromHandle)\n return;\n\n this.initDrag(event.pageX, isFromHandle);\n this.performDrag(event.pageX);\n }\n\n @HostListener(\"window:mousemove\", ['$event'])\n public onMouseMove(event: MouseEvent) {\n if (!this.isDragging)\n return;\n\n this.performDrag(event.pageX);\n event.preventDefault();\n }\n\n @HostListener(\"window:mouseup\", ['$event'])\n public onMouseUp(event: MouseEvent) {\n if (event.which !== 1 || !this.isDragging)\n return;\n\n this.endDrag();\n event.preventDefault();\n }\n\n @HostListener(\"touchstart\", ['$event'])\n public onTouchStart(event: any) {\n const touch: Touch = event.touches[0];\n\n const isFromHandle = event.target === this.handleElement.nativeElement;\n if (!this.isSkipAllowed && !isFromHandle)\n return;\n\n this.initDrag(touch.pageX, isFromHandle);\n }\n\n @HostListener(\"touchmove\", ['$event'])\n public onTouchMove(event: any) {\n const isMultitouch = event.touches.length > 1;\n if (isMultitouch)\n return;\n\n const touch: Touch = event.touches[0];\n this.performDrag(touch.pageX);\n }\n\n @HostListener(\"touchend\", ['$event'])\n public onTouchEnd(event: any) {\n this.endDrag();\n }\n\n @HostListener(\"touchcancel\", ['$event'])\n public onTouchCancel(event: any) {\n this.endDrag();\n }\n\n @HostListener(\"keydown\", ['$event'])\n public onKeyDown(event: KeyboardEvent) {\n switch (event.key) {\n case 'ArrowLeft':\n this.value = Math.max(this.value - this.increment, this.min);\n this.valueChange.emit({ newValue: this.value });\n break;\n case 'ArrowRight':\n this.value = Math.min(this.value + this.increment, this.max);\n this.valueChange.emit({ newValue: this.value });\n break;\n case 'Home':\n this.value = this.min;\n this.valueChange.emit({ newValue: this.value });\n break;\n case 'End':\n this.value = this.max;\n this.valueChange.emit({ newValue: this.value });\n break;\n default:\n return;\n }\n\n event.preventDefault();\n this.setHandlePosFromValue(this.value);\n }\n\n private initDrag(pageX: number, fromHandle: boolean) {\n if (this.disabled)\n return;\n\n this.dragStart = pageX;\n this.isDragging = true;\n\n if (fromHandle)\n this.handleOrigin = (this.handleElement.nativeElement as HTMLElement).offsetLeft;\n else {\n const trackRect = (this.trackElement.nativeElement as HTMLElement).getBoundingClientRect();\n this.handleOrigin = pageX - trackRect.left - this.handleElement.nativeElement.offsetWidth / 2;\n }\n\n this.refreshMaxHandleOffset();\n }\n\n private performDrag(pageX: number) {\n if (!this.isDragging)\n return;\n\n const dragDelta = pageX - this.dragStart;\n let newHandlePos = this.handleOrigin + dragDelta;\n newHandlePos = Math.max(newHandlePos, 0);\n newHandlePos = Math.min(newHandlePos, this.maxHandleOffset);\n const valuePercentage = newHandlePos / this.maxHandleOffset;\n const value = this.min + ((this.max - this.min) * valuePercentage);\n\n // TODO: consider debouncing to not slow down old computers\n this.value = value;\n this.valueChange.emit({ newValue: value });\n\n this.setHandlePosFromValue(value);\n }\n\n private endDrag() {\n this.isDragging = false;\n }\n\n private setHandlePosFromValue(value: number) {\n if (!this.isLoaded || !this.handleElement)\n return;\n\n value = Math.max(this.min, value);\n value = Math.min(this.max, value);\n\n const valuePercentage = (value - this.min) / (this.max - this.min);\n this.setHandlePos(valuePercentage);\n }\n\n private setHandlePos(percentage: number) {\n if (!this.isLoaded || !this.handleElement)\n return;\n\n const cssPercentage = percentage * 100;\n const handleSize = (this.handleElement.nativeElement as HTMLElement).offsetWidth;\n this.handleElement.nativeElement.style.left = `calc(${cssPercentage}% - ${handleSize * percentage}px)`;\n }\n\n private refreshMaxHandleOffset() {\n const track = this.trackElement.nativeElement as HTMLElement;\n const handle = this.handleElement.nativeElement as HTMLElement;\n const trackWidth = track.getBoundingClientRect().width - handle.offsetWidth;\n this.maxHandleOffset = trackWidth;\n }\n\n public setDisabledState?(isDisabled: boolean) {\n super.setDisabledState(isDisabled);\n }\n}\n","\n\n\n
      \n\n","export { StepBarModule } from './step-bar.module';\nexport {\n StepBarComponent,\n} from './step-bar.component';\n","\n\n
      \n\n \n \n
      \n
      \n
      \n
      \n {{selectedProject.ProjectName}}\n
      \n
      \n\n

      {{selectedProject.ProjectBuildSection}}

      \n\n

      {{selectedProject.ProjectNumber}}

      \n\n

      {{selectedProject.ProjectDescription}}

      \n {{selectedProject.Contacts[0].Name}}
      \n {{selectedProject.Contacts[0].Address}}
      \n {{selectedProject.Contacts[0].Country}}
      \n {{selectedProject.Contacts[0].Zip}} {{selectedProject.Contacts[0].City}}
      \n
      \n\n
      \n
      \n
      \n \n \n \n \n
      \n
      \n\n
      \n\n
      \n
      \n {{'HeadlineMitTemperaturabsenkung_T' | translate}}\n {{'Headline_T' | translate}}\n
      \n
      \n
      \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n\n \n
      \n {{data.Label}}\n \n
      \n 140\">\n
      \n {{'ErrorBedarfsvolumenstrom_SD' | translate}}\n
      \n \n\n \n {{getDisplayValue(data.OrientationFrom)}}\n
      140\">\n \n
      \n \n\n {{'ErrorPruefungPipeline_SD' | translate}}\n {{'PipelineNennweiteVorlauf_T' | translate: getSelectedProjectProjectValuesRohrauslegungErgebnisVorlauf()}}
      {{'PipelineNennweiteRuecklaufMitte_T' | translate: getSelectedProjectProjectValuesRohrauslegungErgebnisRuecklaufMitte()}}
      {{'PipelineNennweiteRuecklaufUnten_T' | translate: getSelectedProjectProjectValuesRohrauslegungErgebnisRuecklaufUnten()}}\n {{'PipelineNennweiteVorlauf_T' | translate: \"Nicht ermittelt\"}}
      {{'PipelineNennweiteRuecklaufMitte_T' | translate: \"Nicht ermittelt\"}}
      {{'PipelineNennweiteRuecklaufUnten_T' | translate: \"Nicht ermittelt\"}}\n\n \n \n \n \n \n \n \n \n \n\n \n \n \n {{getDisplayName(selectedProject.ResidentialBuilding.BuildingType)}}\n {{formatBuildingBvsResult(selectedProject.ResidentialBuilding.Bedarfsvolumenstrom.BedarfsvolumenstromErgebnisLMin)}}\n \n \n \n {{'NichtErmittelt_T' | translate}}\n \n \n \n \n \n \n {{getDisplayName(building.BuildingType)}}\n {{formatBuildingBvsResult(building.Bedarfsvolumenstrom.BedarfsvolumenstromErgebnisLMin)}}\n \n \n \n {{'NichtErmittelt_T' | translate}}\n \n \n \n \n \n\n \n \n \n {{getDisplayName(selectedProject.ResidentialBuilding.BuildingType)}}\n {{formatBuildingWwResult(selectedProject.ResidentialBuilding.Warmwasser.WarmwasserErgebnisLTag, selectedProject.ResidentialBuilding.BuildingType)}}\n \n \n \n {{'NichtErmittelt_T' | translate}}\n \n \n \n \n \n \n {{getDisplayName(building.BuildingType)}}\n {{formatBuildingWwResult(building.Warmwasser.WarmwasserErgebnisLTag, building.BuildingType)}}\n \n \n \n {{'NichtErmittelt_T' | translate}}\n \n \n \n \n \n\n
      \n
      \n \n
      \n
      \n
      \n
      \n\n\n\n\n\n\n\n\n\n\n {{'CloseDialogDescription_SD' | translate}}\n\n\n\n\n \n
      \n {{'ReportDialogHeader_T' | translate}}\n \n
      \n
      \n \n \n {{'ReportDialogDescription_D' | translate}}\n \n
      \n\n \n
      \n
      \n \n
      \n
      \n
      \n \n
      \n
      \n \n
      \n
      \n \n
      \n
      \n
      \n\n \n
      \n \n \n
      \n
      \n \n \n \n
      \n
      \n
      \n
      \n
      \n {{'LoadingSpinner_SD' | translate}}\n
      \n
      \n\n \n
      \n \n

      {{downloadFileName}}

      \n \n
      \n
      \n
      \n\n \n
      \n \n \n
      \n\n
      \n \n\n
      \n\n
      \n \n\n
      \n
      \n
      \n\n\n

      {{'ErrorNichtGenugDaten_SD' | translate}}

      \n

      {{'ErrorBedarfsvolumenstromVollstaendig_SD' | translate}}

      \n\n\n\n

      {{'ErrorGenerierung_SD' | translate}}

      \n","import { DatePipe } from '@angular/common';\nimport { Component, OnInit, ViewChild } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { GridComponent } from '@syncfusion/ej2-angular-grids';\nimport { DialogComponent, PositionDataModel } from '@syncfusion/ej2-angular-popups';\nimport { ProjectDataService } from 'src/app/core/project-data.service';\nimport { BaseDataDialogComponent } from '../base-data-dialog/base-data-dialog.component';\nimport { StructureDialogComponent } from '../structure-dialog/structure-dialog.component';\nimport { ConfigDteDialogComponent } from '../config-dte-dialog/config-dte-dialog.component';\nimport { ConfigDetailsDialogComponent } from '../config-details-dialog/config-details-dialog.component';\nimport { OtherBuilding } from 'src/app/core/BackendApi/otherbuilding.complex';\nimport { ResidentialBuilding } from 'src/app/core/BackendApi/residentialbuilding.complex';\nimport { ProjectEntity } from 'src/app/core/BackendApi/projectentity.entity';\nimport { ValueFormatterService } from 'src/app/core/ValueFormatterService';\nimport { SectionState } from 'src/app/core/Enums';\nimport { KeyValueInt } from 'src/app/core/BackendApi/keyvalueint.complex';\nimport { AggregatorDataService } from 'src/app/core/AggregatorDataService';\nimport { BuildingTypeRow } from 'src/app/core/DteufcAggregatorServiceApi/buildingtyperow.complex';\nimport { ChangeEventArgs } from '@syncfusion/ej2-buttons';\nimport { ReportAttachmentRow } from 'src/app/core/DteufcAggregatorServiceApi/reportattachmentrow.complex';\nimport { LangService } from 'src/core-lib/ej2/services/LangService';\nimport { ProjectService } from 'src/app/core/ProjectService';\nimport { provideContext } from 'src/core-lib/angular/context-util';\nimport { DimensioningSchematicComponent } from 'src/app/shared/dimensioning-schematic/dimensioning-schematic.component';\nimport { WebTrekkService } from 'src/app/core/WebTrekkService';\nimport { UserService } from 'src/app/core/UserService';\nimport { GenericDialogService } from 'src/core-lib/ej2/services/GenericDialogService';\nimport { RuntimeService } from 'src/core-lib/ej2/services/RuntimeService';\nimport { FileDownloadService } from 'src/core-lib/ej2/services/FileDownloadService';\nexport interface reportOption {\n Row: ReportAttachmentRow;\n Checked: boolean;\n}\n\n@Component({\n selector: 'app-project-view',\n templateUrl: './project-view.component.html',\n styleUrls: ['./project-view.component.scss'],\n providers: [provideContext('ProjectView'),]\n})\n\n\nexport class ProjectViewComponent implements OnInit {\n\n @ViewChild('baseDataDialog')\n public BaseDataDialog: BaseDataDialogComponent;\n\n @ViewChild(\"structureDialog\")\n public StructureDialog: StructureDialogComponent;\n\n @ViewChild(\"configDteDialog\")\n public ConfigDteDialog: ConfigDteDialogComponent;\n\n @ViewChild(\"configDetailsDialog\")\n public ConfigDetailsDialog: ConfigDetailsDialogComponent;\n\n @ViewChild(\"closeDialog\")\n public CloseDialogDialog: DialogComponent;\n\n @ViewChild(\"reportDialog\")\n public ReportDialog: DialogComponent;\n\n @ViewChild(\"reportNoDataDialog\")\n public ReportNoDataDialog: DialogComponent;\n\n @ViewChild(\"reportErrorDialog\")\n public ReportErrorDialog: DialogComponent;\n\n @ViewChild(DimensioningSchematicComponent)\n public Schematic: DimensioningSchematicComponent;\n\n @ViewChild('grid') public grid: GridComponent;\n\n stepTitle = this.langService.getString('stepTitle_T');\n stepBackLabel = this.langService.getString('stepBack_T');\n structureDialogChangeWarning = this.langService.getString('StructureDialogChangeWarning_SD');\n configDteDialogChangeWarning = this.langService.getString('ConfigDteDialogChangeWarning_SD');\n configDetailsDialogChangeWarning = this.langService.getString('ConfigDetailsDialogChangeWarning_SD');\n\n public SectionState = SectionState;\n\n selectedObject: any;\n selectedIndex: number = 0;\n\n isDemandOpen = true;\n isWaterOpen = true;\n\n dialogPosition: PositionDataModel = { X: 'center', Y: 'center' }\n\n baseDataHeader = this.langService.getString('BaseDataHeader_T');\n\n structureHeader = this.langService.getString('StructureHeader_T');\n\n configDteHeader = this.langService.getString('ConfigDteHeader_T');\n\n configDetailsHeader = this.langService.getString('ConfigDetailsHeader_T');\n\n buildings: BuildingTypeRow[];\n\n selectedStructuresOther: OtherBuilding[];\n selectedStructureResidential: ResidentialBuilding;\n\n isDteUfcChecked: boolean = false;\n isPipeChecked: boolean;\n isEnergyChecked: boolean;\n\n isConfigDteDialogPristine: boolean;\n isConfigDetailsDialogPristine: boolean = true;\n\n data = [];\n\n selectedProject: ProjectEntity;\n\n allOptionsChecked: boolean = true;\n\n reportOptions: reportOption[];\n\n reportOptionPipe: boolean = true;\n\n isGenerating: boolean;\n isGenerated: boolean;\n downloadFileName: string;\n fileUrlOrBlob: string | Blob;\n fileSize: number;\n\n generationCancellationToken: { isCancellationRequested: boolean };\n\n notYetSetLabel = this.langService.getString('NotYetSetLabel_T');\n checkRequiredLabel = this.langService.getString('CheckRequiredLabel_T');\n\n onChangeAllOptions(args: ChangeEventArgs) {\n\n if (args.checked) {\n this.reportOptions.forEach((o) => {\n o.Checked = true;\n });\n this.reportOptionPipe = true;\n }\n else {\n this.reportOptions.forEach((o) => {\n o.Checked = false\n });\n this.reportOptionPipe = false;\n }\n }\n\n onChangeOption(args: ChangeEventArgs) {\n if (args.checked) {\n this.allOptionsChecked = (!this.reportOptions.some(o => !o.Checked) && this.reportOptionPipe);\n } else {\n this.allOptionsChecked = !(this.reportOptions.some(o => !o.Checked) || !this.reportOptionPipe);\n }\n }\n\n changeOpenState(o) {\n if (o === \"Bedarfsvolumenstrom\") {\n this.isDemandOpen = !this.isDemandOpen;\n }\n else {\n this.isWaterOpen = !this.isWaterOpen;\n }\n }\n\n\n\n goBack() {\n this.router.navigate([`/overview/`]);\n }\n\n isOdd(num) {\n return num % 2;\n }\n\n getAltRow(index: number) {\n if (this.isOdd(index) === 0) {\n return true;\n }\n else {\n return false;\n }\n }\n\n\n constructor(\n private activatedRoute: ActivatedRoute,\n private readonly router: Router,\n private DataService: ProjectDataService,\n private FormatterService: ValueFormatterService,\n private aggregator: AggregatorDataService,\n private langService: LangService,\n private projectService: ProjectService,\n private userService: UserService,\n private tracker: WebTrekkService,\n private dialogService: GenericDialogService,\n private runtimeService: RuntimeService,\n private FileDownloadService: FileDownloadService,\n ) {\n\n }\n\n public async ngOnInit(): Promise {\n this.selectedProject = this.activatedRoute.snapshot.data['project'];\n \n\n this.isDteUfcChecked = this.selectedProject.ConfigurationData.Konfiguration_DTE_Temperaturabsenkung;\n this.isEnergyChecked = this.selectedProject.ConfigurationData.Konfiguration_Energiespeicher;\n this.isPipeChecked = this.selectedProject.ConfigurationData.Konfiguration_DTE_AuslegungRohrleitung;\n\n this.selectedStructuresOther = this.selectedProject.OtherBuildings;\n this.selectedStructureResidential = this.selectedProject.ResidentialBuilding;\n\n\n this.data.push({ OrientationFrom: 'Bedarfsvolumenstrom', Label: this.langService.getString('Bedarfsvolumenstrom_T'), TooltipInfo: \"Test123\", Value: 0, Unit: \"l/min\" });\n this.data.push({ OrientationFrom: 'Zirkulationsvolumen', Label: this.langService.getString('Zirkulationsvolumen_T'), TooltipInfo: \"Test123\", Value: 0 });\n this.data.push({ OrientationFrom: 'DurchflussTrinkwassererwaermer', Label: this.langService.getString('DurchflussTrinkwassererwaermer_T'), TooltipInfo: \"Test123\" });\n if (this.selectedProject.ConfigurationData.Konfiguration_DTE_AuslegungRohrleitung) {\n this.data.push({ OrientationFrom: 'Rohrleitung', Label: this.langService.getString('Rohrleitung_T'), TooltipInfo: \"Test123\" });\n }\n if (this.selectedProject.ConfigurationData.Konfiguration_DTE_Temperaturabsenkung) {\n this.data.push({ OrientationFrom: 'Ultrafiltrationsmodul', Label: this.langService.getString('Ultrafiltrationsmodul_T'), TooltipInfo: \"Test123\" });\n }\n\n if (this.selectedProject.ConfigurationData.Konfiguration_Energiespeicher) {\n this.data.push({ OrientationFrom: 'WarmwasserTagesbedarf', Label: this.langService.getString('WarmwasserTagesbedarf_T'), TooltipInfo: \"Test123\" });\n this.data.push({ OrientationFrom: 'Energiespeichervolumen', Label: this.langService.getString('Energiespeichervolumen_T'), TooltipInfo: \"Test123\" });\n }\n\n var options = this.aggregator.aggregatorData.Tables.ReportAttachmentRows;\n this.reportOptions = options.map(o => ({ Checked: true, Row: o }))\n\n this.buildings = this.aggregator.aggregatorData.Tables.BuildingTypeRows;\n\n this.DataService.resetTempProject();\n\n }\n\n\n openDemandSiteOther(buildingType: string) {\n this.router.navigate([`/demand-volumetric-flow-other/${this.selectedProject.ProjectId}/${buildingType}`]);\n }\n openDemandSiteResidential(buildingType: string) {\n this.router.navigate([`/demand-volumetric-flow-residential/${this.selectedProject.ProjectId}/${buildingType}`]);\n }\n\n openWarmWaterSite(buildingType: any) {\n this.router.navigate([`/hot-water-demand/${this.selectedProject.ProjectId}/${buildingType}`]);\n }\n\n stepBack() {\n this.router\n .navigate(['/overview']);\n }\n\n getHinweisId(orientation: string): string {\n switch (orientation) {\n case 'Bedarfsvolumenstrom' :\n return \"Projektstatus.Bedarfsvolumenstrom\"\n case 'Zirkulationsvolumen':\n return \"Projektstatus.Zirkulationsvolumenstrom\"\n case 'DurchflussTrinkwassererwaermer' :\n return \"Projektstatus.Dte\"\n case 'Rohrleitung':\n return \"Projektstatus.Rohrleitung\"\n case 'Ultrafiltrationsmodul':\n return \"Projektstatus.Ufc\"\n case 'WarmwasserTagesbedarf':\n return \"Projektstatus.WarmwasserTagesbedarf\"\n case 'Energiespeichervolumen':\n return \"Projektstatus.Energiespeichervolumen\"\n default:\n break;\n }\n }\n\n getDisplayName(type: string): string {\n return this.buildings.find(b => b.BuildingId == type).DisplayNameLoc;\n }\n\n getDisplayValue(index: string): string {\n switch (index) {\n case 'Bedarfsvolumenstrom':\n if(this.selectedProject.SectionStates.BuildingTypeBedarfsvolumenstromStates.some(s => s.Value == SectionState.Check)){\n return this.checkRequiredLabel;\n }\n if (!this.selectedProject.ProjectValues.BedarfsvolumenstromErgebnisLMin) {\n return this.notYetSetLabel;\n }\n return this.FormatterService.formatNumber(\n this.selectedProject.ProjectValues.BedarfsvolumenstromErgebnisLMin,\n 'LiterPerMinute',\n { maximumFractionDigits: 0 }\n );\n case 'Zirkulationsvolumen':\n if(this.selectedProject.SectionStates.Zirkulationsvolumenstrom == SectionState.Check) {\n return this.checkRequiredLabel;\n }\n if (!this.selectedProject.ProjectValues.Zirkulationsvolumenstrom) {\n return this.notYetSetLabel;\n }\n return this.FormatterService.formatNumber(\n this.selectedProject.ProjectValues.Zirkulationsvolumenstrom.ZirkulationsvolumenstromBerechnetLMin,\n 'LiterPerMinute',\n { maximumFractionDigits: 1, minimumFractionDigits: 1}\n );\n case 'DurchflussTrinkwassererwaermer':\n if(this.selectedProject.SectionStates.Dte == SectionState.Check) {\n return this.checkRequiredLabel;\n }\n if (!this.selectedProject.ProjectValues.Dte || !this.selectedProject.ProjectValues.Dte.Ergebnis) {\n return this.notYetSetLabel;\n }\n return this.FormatterService.formatDteName(\n this.selectedProject.ProjectValues.Dte.Ergebnis.toString()\n );\n case 'Rohrleitung':\n if(this.selectedProject.SectionStates.Rohrauslegung == SectionState.Check) {\n return this.checkRequiredLabel;\n }\n if (!this.selectedProject.ProjectValues.Rohrauslegung) {\n return this.notYetSetLabel;\n }\n return '';\n case 'Ultrafiltrationsmodul':\n if(this.selectedProject.SectionStates.Ufc == SectionState.Check) {\n return this.checkRequiredLabel;\n }\n if (!this.selectedProject.ProjectValues.Dte || !this.selectedProject.ProjectValues.Dte.Ufc) {\n return this.notYetSetLabel;\n }\n return this.FormatterService.formatUfcName(\n this.selectedProject.ProjectValues.Dte.Ufc.toString()\n );\n case 'WarmwasserTagesbedarf':\n if(this.selectedProject.SectionStates.BuildingTypeWarmwasserStates.some(s => s.Value == SectionState.Check)) {\n return this.checkRequiredLabel;\n }\n if (!this.selectedProject.ProjectValues.WarmwasserErgebnisLtag) {\n return this.notYetSetLabel;\n }\n return this.FormatterService.formatNumber(\n this.selectedProject.ProjectValues.WarmwasserErgebnisLtag,\n 'Liter',\n { maximumFractionDigits: 0 },\n false\n );\n case 'Energiespeichervolumen':\n if(this.selectedProject.SectionStates.Energiespeicher == SectionState.Check) {\n return this.checkRequiredLabel;\n }\n if (!this.selectedProject.ProjectValues.Energiespeicher) {\n return this.notYetSetLabel;\n }\n return this.FormatterService.formatNumber(\n this.selectedProject.ProjectValues.Energiespeicher.VolumenErgebnisLiter,\n 'Liter',\n { maximumFractionDigits: 0 },\n false\n );\n }\n }\n\n public formatBuildingBvsResult(value: number): string {\n if (!value) {\n return this.langService.getString('FormatBuildingBvsResult_T');\n }\n return this.FormatterService.formatNumber(\n value,\n 'LiterPerMinute',\n { maximumFractionDigits: 0 },\n false\n )\n }\n public formatBuildingWwResult(value: number, buildingType: string): string {\n if (this.selectedProject.SectionStates.BuildingTypeWarmwasserStates.find(b => b.Key == buildingType).Value == SectionState.Check) {\n return this.checkRequiredLabel;\n }\n if (!value) {\n return this.notYetSetLabel\n }\n return this.FormatterService.formatNumber(\n value,\n 'Liter',\n { maximumFractionDigits: 0 },\n false\n )\n }\n\n calculate(index: string) {\n switch (index) {\n case 'Zirkulationsvolumen':\n this.router\n .navigate([`/circulation-volumetric-flow/${this.selectedProject.ProjectId}`]);\n break;\n case 'DurchflussTrinkwassererwaermer':\n // this.DataService.setBedarf(this.bedarfsvolumenstrom) //??? TODO Denis fragen\n if (this.selectedProject.ConfigurationData.Konfiguration_DTE_Temperaturabsenkung) {\n this.router\n .navigate([`/dte-temperature/${this.selectedProject.ProjectId}`]);\n }\n else {\n this.router\n .navigate([`/dte/${this.selectedProject.ProjectId}`]);\n }\n break;\n case 'Rohrleitung':\n this.router\n .navigate([`pipeline/${this.selectedProject.ProjectId}`]);\n break;\n case 'Ultrafiltrationsmodul':\n this.router\n .navigate([`/select-calculation-ufc/${this.selectedProject.ProjectId}`]);\n break;\n case 'Energiespeichervolumen':\n this.router\n .navigate([`/heat-generating-types/${this.selectedProject.ProjectId}`]);\n break;\n default:\n break;\n }\n\n\n }\n\n public getBuildingBvsIconClass(buildingType: string): string {\n return this.getIconClassFromSectionState(\n this.selectedProject.SectionStates.BuildingTypeBedarfsvolumenstromStates.find(b => b.Key == buildingType).Value\n );\n }\n public getBuildingWwIconClass(buildingType: string): string {\n return this.getIconClassFromSectionState(\n this.selectedProject.SectionStates.BuildingTypeWarmwasserStates.find(b => b.Key == buildingType).Value\n );\n }\n\n public getIconClass(category: string): string {\n switch (category) {\n case 'Bedarfsvolumenstrom':\n if (this.selectedProject.ProjectValues.BedarfsvolumenstromErgebnisLMin > 140) {\n return 'icon-close';\n }\n if (this.selectedProject.SectionStates.BuildingTypeBedarfsvolumenstromStates.some(b => b.Value == SectionState.Check))\n return 'icon-priority_high';\n if (this.selectedProject.SectionStates.BuildingTypeBedarfsvolumenstromStates.some(b => b.Value == SectionState.Empty))\n return 'icon-edit-pencil';\n else\n return 'icon-check2'\n case 'WarmwasserTagesbedarf':\n if (this.selectedProject.SectionStates.BuildingTypeWarmwasserStates.some(b => b.Value == SectionState.Check))\n return 'icon-priority_high';\n if (this.selectedProject.SectionStates.BuildingTypeWarmwasserStates.some(b => b.Value == SectionState.Empty))\n return 'icon-edit-pencil';\n else\n return 'icon-check2'\n case 'Zirkulationsvolumen': return this.getIconClassFromSectionState(this.selectedProject.SectionStates.Zirkulationsvolumenstrom);\n case 'DurchflussTrinkwassererwaermer': return this.getIconClassFromSectionState(this.selectedProject.SectionStates.Dte);\n case 'Rohrleitung': return this.getIconClassFromSectionState(this.selectedProject.SectionStates.Rohrauslegung);\n case 'Ultrafiltrationsmodul': return this.getIconClassFromSectionState(this.selectedProject.SectionStates.Ufc);\n case 'Energiespeichervolumen': return this.getIconClassFromSectionState(this.selectedProject.SectionStates.Energiespeicher);\n }\n }\n private getIconClassFromSectionState(state: SectionState): string {\n switch (state) {\n case SectionState.Set: return 'icon-check2';\n case SectionState.Empty: return 'icon-edit-pencil';\n case SectionState.Check: return 'icon-priority_high';\n }\n }\n\n\n openBaseDataDialog = (): void => {\n this.BaseDataDialog.dialog.show();\n }\n\n setSelectedProjectValues(args) {\n var project = args;\n\n this.selectedProject.ProjectName = project.informationFields.ProjectName;\n this.selectedProject.ProjectBuildSection = project.informationFields.ConstructionPhase;\n this.selectedProject.ProjectNumber = project.informationFields.ProjectId;\n this.selectedProject.ProjectDescription = project.informationFields.Description;\n\n for (let j = 0; j < 4; j++) {\n this.selectedProject.Contacts[j].Name = project.contactFields[j][\"Name_\" + j];\n this.selectedProject.Contacts[j].Address = project.contactFields[j][\"Address_\" + j];\n this.selectedProject.Contacts[j].Country = project.contactFields[j][\"Country_\" + j];\n this.selectedProject.Contacts[j].Zip = project.contactFields[j][\"Zip_\" + j];\n this.selectedProject.Contacts[j].City = project.contactFields[j][\"City_\" + j];\n this.selectedProject.Contacts[j].Phone = project.contactFields[j][\"Phone_\" + j];\n this.selectedProject.Contacts[j].Email = project.contactFields[j][\"Email_\" + j];\n }\n }\n\n saveBaseDataDialog = (): void => {\n this.BaseDataDialog.isClosedWithoutSave = false;\n\n if (this.BaseDataDialog.checkFormsValid()) {\n this.BaseDataDialog.emitEditedProject();\n this.DataService.saveCurrentProject()\n .then(_ => this.BaseDataDialog.dialog.hide());\n }\n else {\n this.BaseDataDialog.errorDialog.show();\n }\n }\n\n\n openConfigDteDialog = (): void => {\n this.isConfigDetailsDialogPristine = true;\n this.isConfigDteDialogPristine = true;\n this.ConfigDteDialog.dialog.show();\n }\n\n closeConfigDteDialog(){\n this.ConfigDteDialog.dialog.hide();\n }\n\n closeBaseDataDialog = (): void => {\n\n this.BaseDataDialog.dialog.hide();\n }\n\n\n openStructureDialog = (): void => {\n this.StructureDialog.dialog.show();\n }\n\n closeStructureDialog(){\n this.StructureDialog.dialog.hide();\n }\n\n openSaveStructureDialog() {\n this.StructureDialog.isClosedWithoutSave = false;\n\n if (this.StructureDialog._selectedStructuresOther.length > 0 || this.StructureDialog._selectedStructureResidential) {\n this.saveStructureDialog();\n this.StructureDialog.dialog.hide();\n }\n }\n\n openReportDialog() {\n if (!this.selectedProject.SectionStates.BuildingTypeBedarfsvolumenstromStates.some(b => b.Value != SectionState.Set)\n && this.selectedProject.ProjectValues.BedarfsvolumenstromErgebnisLMin <= 140\n && this.selectedProject.SectionStates.Zirkulationsvolumenstrom != SectionState.Check\n && this.selectedProject.SectionStates.Dte != SectionState.Check\n && (!this.selectedProject.ConfigurationData.Konfiguration_DTE_AuslegungRohrleitung || this.selectedProject.SectionStates.Rohrauslegung != SectionState.Check)\n && (!this.selectedProject.ConfigurationData.Konfiguration_DTE_Temperaturabsenkung || this.selectedProject.SectionStates.Ufc != SectionState.Check)\n && (!this.selectedProject.ConfigurationData.Konfiguration_Energiespeicher || this.selectedProject.SectionStates.Energiespeicher != SectionState.Check)\n && (!this.selectedProject.ConfigurationData.Konfiguration_Energiespeicher || !this.selectedProject.SectionStates.BuildingTypeWarmwasserStates.some(b => b.Value == SectionState.Check))\n ) {\n this.ReportDialog.show();\n }\n else {\n this.ReportNoDataDialog.show();\n }\n\n }\n\n closeReportNoDataDialog() {\n this.ReportNoDataDialog.hide()\n }\n\n closeReportErrorDialog() {\n this.isGenerating = false;\n this.isGenerated = false;\n this.ReportErrorDialog.hide();\n }\n\n\n saveStructureDialog = (): void => {\n if (this.StructureDialog._selectedStructuresOther.length > 0 || this.StructureDialog._selectedStructureResidential) {\n\n\n if (this.selectedProject.SectionStates.Zirkulationsvolumenstrom == SectionState.Set)\n this.selectedProject.SectionStates.Zirkulationsvolumenstrom = SectionState.Check;\n\n if (this.selectedProject.SectionStates.Dte == SectionState.Set)\n this.selectedProject.SectionStates.Dte = SectionState.Check;\n\n if (this.selectedProject.SectionStates.Rohrauslegung == SectionState.Set)\n this.selectedProject.SectionStates.Rohrauslegung = SectionState.Check;\n\n if (this.selectedProject.SectionStates.Ufc == SectionState.Set)\n this.selectedProject.SectionStates.Ufc = SectionState.Check;\n\n if (this.selectedProject.SectionStates.Energiespeicher == SectionState.Set)\n this.selectedProject.SectionStates.Energiespeicher = SectionState.Check;\n\n\n // ---------- v States v ----------\n\n // Store current building specifig states\n let previousStatesBVS: KeyValueInt[] = this.selectedProject.SectionStates.BuildingTypeBedarfsvolumenstromStates; // KeyValueSectionState\n let previousStatesWW: KeyValueInt[] = this.selectedProject.SectionStates.BuildingTypeWarmwasserStates; // KeyValueSectionState\n\n // Clear building specific states\n this.selectedProject.SectionStates.BuildingTypeBedarfsvolumenstromStates = [];\n this.selectedProject.SectionStates.BuildingTypeWarmwasserStates = [];\n\n // Add all states for the newly selected other buildings\n if (this.StructureDialog._selectedStructuresOther) {\n this.StructureDialog._selectedStructuresOther.forEach(o => {\n let previousBVS = previousStatesBVS.find(p => p.Key == o.BuildingType);\n this.selectedProject.SectionStates.BuildingTypeBedarfsvolumenstromStates.push({\n Key: o.BuildingType,\n Value: previousBVS != null ? previousBVS.Value : SectionState.Empty\n });\n\n let previousWW = previousStatesWW.find(p => p.Key == o.BuildingType);\n this.selectedProject.SectionStates.BuildingTypeWarmwasserStates.push({\n Key: o.BuildingType,\n Value: previousWW != null ? previousWW.Value : SectionState.Empty\n });\n });\n }\n\n // Add states for the newly selected residential building\n if (this.StructureDialog._selectedStructureResidential) {\n let previousBVS = previousStatesBVS.find(p => p.Key == this.StructureDialog._selectedStructureResidential.BuildingType);\n this.selectedProject.SectionStates.BuildingTypeBedarfsvolumenstromStates.push({\n Key: this.StructureDialog._selectedStructureResidential.BuildingType,\n Value: previousBVS != null ? previousBVS.Value : SectionState.Empty\n });\n\n let previousWW = previousStatesWW.find(p => p.Key == this.StructureDialog._selectedStructureResidential.BuildingType);\n this.selectedProject.SectionStates.BuildingTypeWarmwasserStates.push({\n Key: this.StructureDialog._selectedStructureResidential.BuildingType,\n Value: previousWW != null ? previousWW.Value : SectionState.Empty\n });\n }\n\n // ---------- v Buildings v ----------\n\n // Store current buildings\n let previousBuildingsOther = this.selectedProject.OtherBuildings != null ? this.selectedProject.OtherBuildings : [];\n let previousBuildingResidential = this.selectedProject.ResidentialBuilding;\n\n // Clear project buildings\n this.selectedProject.OtherBuildings = null;\n this.selectedProject.ResidentialBuilding = null;\n\n // Add all new buildings with their previous data if available\n if (this.StructureDialog._selectedStructuresOther) {\n this.selectedProject.OtherBuildings = [];\n this.StructureDialog._selectedStructuresOther.forEach(o => {\n if (previousBuildingsOther.some(po => po.BuildingType == o.BuildingType)) {\n this.selectedProject.OtherBuildings.push(previousBuildingsOther.find(po => po.BuildingType == o.BuildingType));\n } else {\n this.selectedProject.OtherBuildings.push(o);\n }\n });\n }\n if (this.StructureDialog._selectedStructureResidential) {\n if (previousBuildingResidential) {\n this.selectedProject.ResidentialBuilding = previousBuildingResidential;\n } else {\n this.selectedProject.ResidentialBuilding = this.StructureDialog._selectedStructureResidential;\n }\n }\n\n //Bedarfsvolumenstrom summieren\n this.selectedProject.ProjectValues.BedarfsvolumenstromErgebnisLMin = (\n this.selectedProject.ResidentialBuilding != null && this.selectedProject.ResidentialBuilding.Bedarfsvolumenstrom != null\n ? this.selectedProject.ResidentialBuilding.Bedarfsvolumenstrom.BedarfsvolumenstromErgebnisLMin : 0\n ) + (\n this.selectedProject.OtherBuildings != null ?\n this.selectedProject.OtherBuildings\n .filter(b => b.Bedarfsvolumenstrom != null)\n .reduce((sum, b) => sum + b.Bedarfsvolumenstrom.BedarfsvolumenstromErgebnisLMin, 0) : 0\n )\n\n //Warmwasser summieren\n this.selectedProject.ProjectValues.WarmwasserErgebnisLtag = (\n this.selectedProject.ResidentialBuilding != null && this.selectedProject.ResidentialBuilding.Warmwasser != null\n ? this.selectedProject.ResidentialBuilding.Warmwasser.WarmwasserErgebnisLTag : 0\n ) + (\n this.selectedProject.OtherBuildings != null ?\n this.selectedProject.OtherBuildings\n .filter(b => b.Warmwasser != null)\n .reduce((sum, b) => sum + b.Warmwasser.WarmwasserErgebnisLTag, 0) : 0\n )\n\n var projectAmount = 0;\n if(this.selectedProject.ResidentialBuilding){\n projectAmount = 1;\n }\n if(this.selectedProject.OtherBuildings){\n projectAmount = projectAmount + this.selectedProject.OtherBuildings.count();\n }\n this.tracker.trackActionCustom(\"layout\", \"buildingChanged\",\n {\n userId: this.userService.userInfo.UserId,\n intern: this.userService.isAuthenticated,\n projectId: this.selectedProject.ProjectId,\n projectSite: this.selectedProject.Contacts ? {Zip: this.selectedProject.Contacts[0].Zip, Country: this.selectedProject.Contacts[0].Country, City: this.selectedProject.Contacts[0].City, Address: this.selectedProject.Contacts[0].Address} : null,\n buildingAmount: projectAmount\n });\n\n this.DataService.saveCurrentProject()\n .then(_ => {\n this.StructureDialog.emitSelectedStructures();\n this.StructureDialog.dialog.hide();\n });\n }\n }\n\n // onSelectedStructuresChange(args){\n // this.selectedProject.structureData = args;\n // this.grid.refresh();\n // }\n\n dialogNextConfigDteToConfigDetails() {\n this.ConfigDteDialog.isClosedWithoutSave = false;\n\n this.isConfigDteDialogPristine = this.ConfigDteDialog.checkIfPristine();\n\n this.ConfigDteDialog.dialog.hide();\n this.ConfigDetailsDialog.dialog.show();\n }\n\n dialogBackCDetailsToConfigDte() {\n this.ConfigDetailsDialog.isClosedWithoutSave = false;\n\n this.isConfigDetailsDialogPristine = this.ConfigDetailsDialog.checkIfPristine();\n\n this.ConfigDetailsDialog.dialog.hide();\n this.ConfigDteDialog.dialog.show();\n }\n\n\n saveConfig = (): void => {\n this.ConfigDetailsDialog.isClosedWithoutSave = false;\n this.isConfigDetailsDialogPristine = this.ConfigDetailsDialog.checkIfPristine();\n\n this.ConfigDetailsDialog.emitChecked();\n this.ConfigDteDialog.emitChange();\n\n // Update section states\n\n if(!this.isConfigDteDialogPristine || !this.isConfigDetailsDialogPristine){\n\n\n\n this.selectedProject.SectionStates.BuildingTypeBedarfsvolumenstromStates.forEach(s => {\n if (s.Value != SectionState.Empty) {\n s.Value = SectionState.Check;\n }\n });\n\n if(this.selectedProject.SectionStates.Zirkulationsvolumenstrom != SectionState.Empty){\n this.selectedProject.SectionStates.Zirkulationsvolumenstrom = SectionState.Check;\n }\n\n if(this.selectedProject.SectionStates.Dte != SectionState.Empty){\n this.selectedProject.SectionStates.Dte = SectionState.Check;\n }\n\n if(this.selectedProject.ConfigurationData.Konfiguration_DTE_AuslegungRohrleitung && this.selectedProject.SectionStates.Rohrauslegung != SectionState.Empty){\n this.selectedProject.SectionStates.Rohrauslegung = SectionState.Check;\n }\n\n if(this.selectedProject.ConfigurationData.Konfiguration_DTE_Temperaturabsenkung && this.selectedProject.SectionStates.Ufc != SectionState.Empty){\n this.selectedProject.SectionStates.Ufc = SectionState.Check;\n }\n\n if (this.selectedProject.ConfigurationData.Konfiguration_Energiespeicher) {\n this.selectedProject.SectionStates.BuildingTypeWarmwasserStates.forEach(s => {\n if (s.Value != SectionState.Empty) {\n s.Value = SectionState.Check;\n }\n });\n\n if (this.selectedProject.SectionStates.Energiespeicher != SectionState.Empty) {\n this.selectedProject.SectionStates.Energiespeicher = SectionState.Check;\n }\n }\n\n }\n\n // Save new config\n this.selectedProject.ConfigurationData = {\n Konfiguration_DTE_AuslegungRohrleitung: this.isPipeChecked,\n Konfiguration_DTE_Temperaturabsenkung: this.isDteUfcChecked,\n Konfiguration_Energiespeicher: this.isEnergyChecked\n };\n\n this.tracker.trackActionCustom(\"layout\", \"configChanged\",\n {\n userId: this.userService.userInfo.UserId,\n intern: this.userService.isAuthenticated,\n projectId: this.selectedProject.ProjectId,\n projectSite: this.selectedProject.Contacts ? {Zip: this.selectedProject.Contacts[0].Zip, Country: this.selectedProject.Contacts[0].Country, City: this.selectedProject.Contacts[0].City, Address: this.selectedProject.Contacts[0].Address} : null,\n selectedDte: this.selectedProject.ConfigurationData.Konfiguration_DTE_Temperaturabsenkung ? \"DTE Standardbetrieb\" : \"DTE Temperaturabsenkung\",\n energySelected: this.selectedProject.ConfigurationData.Konfiguration_Energiespeicher ? \"True\" : \"False\",\n pipeSelected: this.selectedProject.ConfigurationData.Konfiguration_DTE_AuslegungRohrleitung ? \"True\" : \"False\"\n });\n this.DataService.saveCurrentProject()\n .then(_ => {\n this.data = [];\n this.data.push({ OrientationFrom: 'Bedarfsvolumenstrom', Label: this.langService.getString('Bedarfsvolumenstrom_T'), TooltipInfo: \"Test123\", Value: 0, Unit: \"l/min\" });\n this.data.push({ OrientationFrom: 'Zirkulationsvolumen', Label: this.langService.getString('Zirkulationsvolumen_T'), TooltipInfo: \"Test123\", Value: 0 });\n this.data.push({ OrientationFrom: 'DurchflussTrinkwassererwaermer', Label: this.langService.getString('DurchflussTrinkwassererwaermer_T'), TooltipInfo: \"Test123\" });\n if (this.selectedProject.ConfigurationData.Konfiguration_DTE_AuslegungRohrleitung) {\n this.data.push({ OrientationFrom: 'Rohrleitung', Label: this.langService.getString('Rohrleitung_T'), TooltipInfo: \"Test123\" });\n }\n if (this.selectedProject.ConfigurationData.Konfiguration_DTE_Temperaturabsenkung) {\n this.data.push({ OrientationFrom: 'Ultrafiltrationsmodul', Label: this.langService.getString('Ultrafiltrationsmodul_T'), TooltipInfo: \"Test123\" });\n }\n\n if (this.selectedProject.ConfigurationData.Konfiguration_Energiespeicher) {\n this.data.push({ OrientationFrom: 'WarmwasserTagesbedarf', Label: this.langService.getString('WarmwasserTagesbedarf_T'), TooltipInfo: \"Test123\" });\n this.data.push({ OrientationFrom: 'Energiespeichervolumen', Label: this.langService.getString('Energiespeichervolumen_T'), TooltipInfo: \"Test123\" });\n }\n\n this.Schematic.refreshImage();\n this.ConfigDetailsDialog.dialog.hide();\n\n });\n }\n\n checkButtonState(category: string): boolean {\n switch (category) {\n case 'Bedarfsvolumenstrom':\n return true;\n case 'Zirkulationsvolumen':\n return !this.selectedProject.SectionStates.BuildingTypeBedarfsvolumenstromStates.some(s => s.Value != SectionState.Set) && this.selectedProject.ProjectValues.BedarfsvolumenstromErgebnisLMin <= 140;\n case 'DurchflussTrinkwassererwaermer':\n return this.selectedProject.SectionStates.Zirkulationsvolumenstrom == SectionState.Set;\n case 'Rohrleitung':\n return this.selectedProject.SectionStates.Dte == SectionState.Set;\n case 'Ultrafiltrationsmodul':\n return (!this.selectedProject.ConfigurationData.Konfiguration_DTE_AuslegungRohrleitung && this.selectedProject.SectionStates.Dte == SectionState.Set)\n || (this.selectedProject.ConfigurationData.Konfiguration_DTE_AuslegungRohrleitung && this.selectedProject.SectionStates.Rohrauslegung == SectionState.Set)\n case 'WarmwasserTagesbedarf':\n return (this.selectedProject.ConfigurationData.Konfiguration_DTE_Temperaturabsenkung && this.selectedProject.SectionStates.Ufc == SectionState.Set)\n || (!this.selectedProject.ConfigurationData.Konfiguration_DTE_Temperaturabsenkung && this.selectedProject.ConfigurationData.Konfiguration_DTE_AuslegungRohrleitung && this.selectedProject.SectionStates.Rohrauslegung == SectionState.Set)\n || (!this.selectedProject.ConfigurationData.Konfiguration_DTE_Temperaturabsenkung && !this.selectedProject.ConfigurationData.Konfiguration_DTE_AuslegungRohrleitung && this.selectedProject.SectionStates.Dte == SectionState.Set);\n\n case 'Energiespeichervolumen':\n return !this.selectedProject.SectionStates.BuildingTypeWarmwasserStates.some(s => s.Value != SectionState.Set);\n default:\n return false;\n }\n }\n\n closeReportDialog() {\n this.ReportDialog.hide();\n }\n\n\n startGeneratingReport() {\n this.isGenerating = true;\n\n if(!this.selectedProject.ConfigurationData.Konfiguration_DTE_AuslegungRohrleitung){\n this.reportOptionPipe = false;\n }\n\n let attachments = this.reportOptions.filter(o => o.Checked == true).map(o => o.Row.AnhangId);\n let locale = this.langService.currentLocale;\n\n this.selectedProject.LastUpdatedUtc = new Date(this.selectedProject.LastUpdatedUtc);\n\n this.generationCancellationToken = { isCancellationRequested: false };\n this.projectService.generateReport(locale, attachments, this.reportOptionPipe, this.allOptionsChecked, this.generationCancellationToken)\n .then(success => {\n if (success[0]) {\n let containsAll = this.allOptionsChecked;\n let fileType = (!this.reportOptionPipe && !this.reportOptions.some(o => o.Checked)) ? 'application/pdf' : 'application/zip';\n\n this.downloadFileName = this.projectService.getDownloadFileName(fileType, containsAll)\n this.isGenerating = false;\n this.isGenerated = true;\n this.fileUrlOrBlob = success[1];\n\n if(this.fileUrlOrBlob instanceof Blob){\n this.fileSize = this.fileUrlOrBlob.size;\n this.fileSize = this.fileSize / 1024 / 1024;\n this.fileSize = Math.round(this.fileSize * 100) / 100;\n }\n\n\n this.selectedProject.ReportVersion += 1;\n this.DataService.saveCurrentProject().then(\n project => this.selectedProject = project\n );\n var projectAmount = 0;\n if(this.selectedProject.ResidentialBuilding){\n projectAmount = 1;\n }\n if(this.selectedProject.OtherBuildings){\n projectAmount = projectAmount + this.selectedProject.OtherBuildings.count();\n }\n this.tracker.trackActionCustom(\"layout\", \"configChanged\",\n {\n userId: this.userService.userInfo.UserId,\n intern: this.userService.isAuthenticated,\n projectId: this.selectedProject.ProjectId,\n projectSite: this.selectedProject.Contacts ? {Zip: this.selectedProject.Contacts[0].Zip, Country: this.selectedProject.Contacts[0].Country, City: this.selectedProject.Contacts[0].City, Address: this.selectedProject.Contacts[0].Address} : null,\n selectedDte: this.selectedProject.ConfigurationData.Konfiguration_DTE_Temperaturabsenkung ? \"DTE Standardbetrieb\" : \"DTE Temperaturabsenkung\",\n energySelected: this.selectedProject.ConfigurationData.Konfiguration_Energiespeicher ? \"True\" : \"False\",\n pipeSelected: this.selectedProject.ConfigurationData.Konfiguration_DTE_AuslegungRohrleitung ? \"True\" : \"False\",\n stateBedarfsvolumenstrom: this.selectedProject.SectionStates.BuildingTypeBedarfsvolumenstromStates.every(x => x.Value == SectionState.Set) ? \"Set\" : \"Not Set\",\n stateZirkulationsvolumenstrom: this.selectedProject.SectionStates.Zirkulationsvolumenstrom == SectionState.Set ? \"Set\" : \"Not Set\",\n stateDTE: this.selectedProject.SectionStates.Dte == SectionState.Set ? \"Set\" : \"Not Set\",\n stateUFC: this.selectedProject.SectionStates.Ufc == SectionState.Set ? \"Set\" : \"Not Set\",\n stateRohrleitung: this.selectedProject.SectionStates.Rohrauslegung == SectionState.Set ? \"Set\" : \"Not Set\",\n stateWarmwassertagesbedarf: this.selectedProject.SectionStates.BuildingTypeWarmwasserStates.every(x => x.Value == SectionState.Set) ? \"Set\" : \"Not Set\",\n stateSpeicher: this.selectedProject.SectionStates.Energiespeicher == SectionState.Set ? \"Set\" : \"Not Set\",\n selectedBedarfsvolumenstrom: this.selectedProject.ProjectValues.BedarfsvolumenstromErgebnisLMin,\n selectedDTE: this.selectedProject.ProjectValues.Dte.Ergebnis,\n selectedUFC: this.selectedProject.ProjectValues.Dte.Ufc,\n });\n }\n }).catch(e => {\n this.ReportErrorDialog.show();\n this.tracker.trackActionCustom(\"layout\", \"error1\",\n {\n userId: this.userService.userInfo.UserId,\n intern: this.userService.isAuthenticated,\n projectId: this.selectedProject.ProjectId,\n projectSite: this.selectedProject.Contacts ? {Zip: this.selectedProject.Contacts[0].Zip, Country: this.selectedProject.Contacts[0].Country, City: this.selectedProject.Contacts[0].City, Address: this.selectedProject.Contacts[0].Address} : null,\n endpoint: \"pdfGeneration\"\n });\n }).finally(() => {\n this.isGenerating = false\n });\n }\n\n cancelGenerating() {\n if (this.generationCancellationToken != null) {\n this.generationCancellationToken.isCancellationRequested = true;\n }\n }\n\n onCloseReportDialog() {\n if (this.isGenerating == true) {\n this.cancelGenerating();\n }\n\n this.isGenerating = false;\n this.isGenerated = false;\n\n this.allOptionsChecked = true;\n this.reportOptionPipe = true;\n this.reportOptions.forEach(o => o.Checked = true)\n }\n\n onOverlayClickReport() {\n this.ReportDialog.hide();\n }\n\n checkBaseDataPristine(){\n this.CloseDialogDialog.show();\n }\n\n checkStructurePristine(){\n // if(!this.StructureDialog.checkIfPristine()){\n this.CloseDialogDialog.show();\n // }\n }\n\n checkConfigPristine(){\n if(!this.ConfigDteDialog.checkIfPristine() || !this.ConfigDetailsDialog.checkIfPristine()){\n this.CloseDialogDialog.show();\n }\n }\n\n resetConfigDialog(){\n\n this.ConfigDteDialog.resetDialog();\n this.ConfigDetailsDialog.resetDialog();\n }\n\n downloadFile() {\n this.FileDownloadService.issueDownload(this.fileUrlOrBlob, this.downloadFileName);\n }\n\n\n confirmCloseDialog(){// TODO nicht so elegant gelöst: Später als Switch mit string-Variable, die immer beim open-Event auf z.B.\"basedata\" gesetzt wird\n this.BaseDataDialog.canBeClosed = true;\n this.StructureDialog.canBeClosed = true;\n this.ConfigDteDialog.canBeClosed = true;\n this.ConfigDetailsDialog.canBeClosed = true;\n\n this.CloseDialogDialog.hide();\n this.BaseDataDialog.dialog.hide();\n this.StructureDialog.dialog.hide();\n this.ConfigDteDialog.dialog.hide();\n this.ConfigDetailsDialog.dialog.hide();\n\n this.BaseDataDialog.canBeClosed = false;\n this.StructureDialog.canBeClosed = false;\n this.ConfigDteDialog.canBeClosed = false;\n this.ConfigDetailsDialog.canBeClosed = false;\n }\n\n cancelCloseDialog(){\n this.CloseDialogDialog.hide();\n }\n\n\n baseDataButtons = [\n {\n 'click': this.closeBaseDataDialog.bind(this),\n buttonModel: {\n content: this.langService.getString('BaseDataAbbrechenBtn_T'),\n isPrimary: false\n }\n },\n {\n 'click': this.saveBaseDataDialog.bind(this),\n buttonModel: {\n content: this.langService.getString('BaseDataUebernehmenBtn_T')+' ',\n isPrimary: false,\n cssClass: 'e-primary'\n }\n }\n ];\n\n structureButtons = [\n {\n 'click': this.closeStructureDialog.bind(this),\n buttonModel: {\n content: this.langService.getString('StructureAbbrechenBtn_T'),\n isPrimary: false\n }\n },\n {\n 'click': this.openSaveStructureDialog.bind(this),\n buttonModel: {\n content: this.langService.getString('StructureUebernehmenBtn_T')+' ',\n isPrimary: false,\n cssClass: 'e-primary'\n }\n }\n ];\n\n configDteButtons = [\n {\n 'click': this.closeConfigDteDialog.bind(this),\n buttonModel: {\n content: this.langService.getString('ConfigDteAbbrechenBtn_T'),\n isPrimary: false\n }\n },\n {\n 'click': this.dialogNextConfigDteToConfigDetails.bind(this),\n buttonModel: {\n content: this.langService.getString('ConfigDteWeiterBtn_T')+' ',\n isPrimary: false,\n cssClass: 'e-primary'\n }\n }\n ];\n\n configDetailsButtons = [\n\n {\n 'click': this.dialogBackCDetailsToConfigDte.bind(this),\n buttonModel: {\n content: '  '+this.langService.getString('ConfigDetailsZurueckBtn_T'),\n isPrimary: false\n }\n },\n {\n 'click': this.saveConfig.bind(this),\n buttonModel: {\n content: this.langService.getString('ConfigDetailsUebernehmenBtn_T'),\n isPrimary: false,\n cssClass: 'e-primary'\n }\n }\n ];\n\n closeDialogButtons = [\n {\n 'click': this.cancelCloseDialog.bind(this),\n buttonModel: {\n content: this.langService.getString('CloseAbbrechenBtn_T'),\n }\n },\n {\n 'click': this.confirmCloseDialog.bind(this),\n buttonModel: {\n content: this.langService.getString('CloseVerwerfenBtn_T'),\n isPrimary: false,\n cssClass: 'e-primary'\n }\n }\n ]\n\n\n reportErrorButtons = [\n {\n 'click': this.closeReportErrorDialog.bind(this),\n buttonModel: {\n content: this.langService.getString('ReportErrorSchliessenBtn_T'),\n isPrimary: false\n }\n },\n ];\n\n reportNoDataButtons = [\n {\n 'click': this.closeReportNoDataDialog.bind(this),\n buttonModel: {\n content: this.langService.getString('ReportNoDataSchliessenBtn_T'),\n isPrimary: false\n }\n },\n ];\n\n getSelectedProjectProjectValuesRohrauslegungErgebnisVorlauf(){\n return \"DN\" + this.selectedProject.ProjectValues.Rohrauslegung.ErgebnisVorlauf.toString();\n }\n\n getSelectedProjectProjectValuesRohrauslegungErgebnisRuecklaufMitte(){\n return \"DN\" + this.selectedProject.ProjectValues.Rohrauslegung.ErgebnisRuecklaufMitte.toString();\n }\n\n getSelectedProjectProjectValuesRohrauslegungErgebnisRuecklaufUnten(){\n return \"DN\" + this.selectedProject.ProjectValues.Rohrauslegung.ErgebnisRuecklaufUnten.toString();\n }\n\n\n}\n","import { Injectable } from '@angular/core';\nimport { Guid } from '@syncfusion/ej2-pdf-export/src/implementation/graphics/pdf-resources';\nimport { ProjectEntity } from './BackendApi/projectentity.entity';\nimport { ProjectMetadataEntity } from './BackendApi/projectmetadataentity.entity';\nimport { IProjectData } from './project-interfaces';\nimport { ProjectService } from './ProjectService';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ProjectDataService {\n // Variables\n private _tempProject: ProjectEntity;\n public get TempProject(): ProjectEntity { return this._tempProject; }\n\n // Constructors/Initializers\n constructor(private ProjectService: ProjectService){}\n\n // Methods\n public async listProjects() : Promise {\n return await this.ProjectService.listProjectMetadata();\n }\n public async selectProject(projectId: string): Promise {\n if(this.ProjectService.currentProject && this.ProjectService.currentProject.ProjectId == projectId) {\n return this.ProjectService.currentProject;\n } else {\n return await this.ProjectService.openProject(projectId);\n }\n }\n public getCurrentProject(): ProjectEntity {\n return this.ProjectService.currentProject;\n }\n public async addAndSelectNewProject(data: ProjectEntity): Promise {\n return await this.ProjectService.addNewProject(data);\n }\n public async saveCurrentProject() : Promise {\n this.ProjectService.currentProject.LastUpdatedUtc = new Date();\n return await this.ProjectService.saveProject();\n }\n public async deleteProject(projectId: string): Promise {\n return await this.ProjectService.deleteProject(projectId);\n }\n public async cloneProject(projectId: string): Promise {\n let toClone = await this.ProjectService.openProject(projectId);\n var copy = JSON.parse(JSON.stringify(toClone)) as ProjectEntity;\n copy.ProjectName = 'Kopie von ' + toClone.ProjectName;\n copy.CreatedUtc = new Date();\n copy.ProjectId = this.generateProjectId();\n return await this.ProjectService.addNewProject(copy);\n }\n public generateProjectId(): string {\n return Guid.getNewGuidString();\n }\n\n public setTempProject(project: ProjectEntity): void {\n this._tempProject = JSON.parse(JSON.stringify(project));\n }\n public saveTempProject(): Promise {\n if(this.TempProject != null){\n return this.ProjectService.saveTempProject(this.TempProject);\n }\n }\n public resetTempProject(): void {\n this._tempProject = null;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { DailyNeedEn12831UsageRow } from '../DteufcAggregatorServiceApi/dailyneeden12831usagerow.complex';\nimport { MathLogger } from './MathLogger';\n\nexport interface IHotWaterNeedDinEn12831Params\n{\n nutzung: DailyNeedEn12831UsageRow;\n nutzungsabhaengigAnzahl: number;\n flaechenbezogenAnzahl?: number;\n}\n\n/**\n * Hot water (Warmwasser) related mathematic functions.\n *\n * Sources of mathematical formulas:\n * - 210716-V1.0 Erfassungsbogen_DTE-UFC-Speicher.xlsm\n * - 210709-KRA-V1.2-12831-211011.xlsm\n *\n * rauch@klaus-rauch.de\n */\n@Injectable()\nexport class HotWaterMath\n{\n /**\n * Kaltwassertemperatur\n */\n public static readonly Pwc = 10; // °C\n\n /**\n * Should be called for each building type.\n * Ergebnis in l/Tag.\n */\n public warmwassertagesbedarfFromNutzungDinEn12831(params: IHotWaterNeedDinEn12831Params): number\n {\n const logger = new MathLogger('WarmwassertagesbedarfFromNutzungDinEn12831');\n logger.logInputs(params);\n\n const bedarfNutzungsabhaengigLTag = params.nutzungsabhaengigAnzahl * params.nutzung.SpezifischerBedarfLiterTag;\n const bedarfFlaechenbezogenLTag = (params.flaechenbezogenAnzahl || 0) * (params.nutzung.SpezifischerBedarfFlaecheLiterTag || 0);\n const bedarfSumme = bedarfNutzungsabhaengigLTag + bedarfFlaechenbezogenLTag;\n\n if (params.flaechenbezogenAnzahl && !params.nutzung.SpezifischerBedarfFlaecheLiterTag)\n logger.logWarning('FlächenbezogenAnzahl is given even though SpezifischerBedarfFlaecheLiterTag is unset.');\n\n logger.logResult(\n {\n bedarfNutzungsabhaengigLTag,\n bedarfFlaechenbezogenLTag,\n bedarfSumme,\n });\n return bedarfSumme;\n }\n\n /**\n * Should be called for each building type.\n * Ergebnis in kWh/Tag\n */\n public energiebedarfProTag(warmwasserTagesbedarf: number, bedarfsTemperatur: number): number\n {\n const x = (1000 - 0.005 * Math.pow(bedarfsTemperatur - 4, 2)) / 1000;\n const result = (warmwasserTagesbedarf * x * 4.19 * (bedarfsTemperatur - HotWaterMath.Pwc)) / 3600;\n\n return result;\n }\n}\n","export enum ZirkulationsVSErmittlungstyp {\n None = 0,\n AusDte = 1,\n Abweichend = 2,\n}\n\nexport enum ZirkulationsVSBerechnungstyp {\n None = 0,\n VolumenstromDirekt = 1,\n VerlustleistungDirekt = 2,\n DVGW553 = 3,\n}\n\nexport enum WwBerechnungValuesBerechnungstyp {\n None = 0,\n Nutzungsabhaengig = 1,\n Flaechenbezogen = 2,\n}\n\nexport enum WarmwasserExaktErmittlungstyp {\n None = 0,\n Direkt = 1,\n DIN12831 = 2,\n}\n\nexport enum WarmwasserErmittlungstyp {\n None = 0,\n Grob = 1,\n Exakt = 2,\n}\n\nexport enum GleichzeitigkeitResidential {\n None = 0,\n DIN4708 = 1,\n TUDresden = 2,\n}\n\nexport enum EnergiespeicherErmittlungstyp {\n None = 0,\n Grob = 1,\n Exakt = 2,\n}\n\nexport enum Energielabel {\n APlus = 0,\n A = 1,\n B = 2,\n C = 3,\n}\n\nexport enum DimensioningSchematicType {\n WholeProject = 0,\n Dte = 1,\n DteUfc = 2,\n Ufc = 3,\n}\n\nexport enum BedarfsvolumenstromErmittlungstypOther {\n None = 0,\n BvsDirekt = 1,\n Grob = 2,\n Exakt = 3,\n}\n\nexport enum BedarfsvolumenstromErmittlungstyp {\n None = 0,\n BvsDirekt = 1,\n KennzahlDirekt = 2,\n Grob = 3,\n Exakt = 4,\n}\n\nexport enum ZVSDirektEinheit {\n LiterSekunde = 0,\n LiterMinute = 1,\n KgStunde = 2,\n KgMinute = 3\n}\n\nexport enum SectionState\n{\n Empty = 0,\n Set = 1,\n Check = 2\n}\n\nexport enum Komfortstufe {\n Stufe1 = 0,\n Stufe2 = 1,\n Stufe3 = 2\n}\n\nexport enum ZweitBadTyp {\n None = 0,\n ZweitesBad = 1,\n GästezimmerMitBwUndDu = 2,\n GästezimmerOhneBwUndDu = 3\n}","import { ControlValueAccessor } from '@angular/forms';\n\n/** Utility class for implementing ngModel support in components. */\nexport abstract class ValueAccessor implements ControlValueAccessor {\n private innerValue: T;\n\n private changed: (value: T) => void;\n private touched: () => void;\n\n public disabled: boolean;\n\n public get value(): T {\n return this.innerValue;\n }\n public set value(value: T) {\n if (this.innerValue !== value) {\n this.innerValue = value;\n if (this.changed)\n this.changed(value);\n }\n }\n\n protected touch(): void {\n if (this.touched)\n this.touched();\n }\n\n // ControlValueAccessor\n public writeValue(value: T): void {\n this.innerValue = value;\n }\n\n // ControlValueAccessor\n public registerOnChange(fn: (value: T) => void) {\n this.changed = fn;\n }\n\n // ControlValueAccessor\n public registerOnTouched(fn: () => void) {\n this.touched = fn;\n }\n\n // ControlValueAccessor\n public setDisabledState?(isDisabled: boolean) {\n this.disabled = isDisabled;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { ProjectConfigurationItemComponent } from '../project-configuration-item/project-configuration-item.component';\nimport { ProjectConfigurationItemModule } from '../project-configuration-item/project-configuration-item.module';\nimport { SelectionItemRadioModule } from '../selection-item-radio/selection-item-radio.module';\nimport { ConfigDteDialogComponent } from './config-dte-dialog.component';\n\n\n@NgModule({\n imports:\n [\n SharedModule,\n ProjectConfigurationItemModule,\n SelectionItemRadioModule\n ],\n declarations:\n [\n ConfigDteDialogComponent\n ],\n exports:\n [\n ConfigDteDialogComponent\n ]\n\n\n})\nexport class ConfigDteDialogModule { }","import { DemandVolumetricFlowBaseComponent } from 'src/app/core/DemandVolumetricFlowBaseComponent';\nimport { AfterViewInit, Component, Inject, OnInit, ViewChild } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { AggregatorDataService } from 'src/app/core/AggregatorDataService';\nimport { BedarfsvolumenstromResidential } from 'src/app/core/BackendApi/bedarfsvolumenstromresidential.complex';\nimport { VolumetricFlowRateMath } from 'src/app/core/math/VolumetricFlowRateMath';\nimport { ProjectDataService } from 'src/app/core/project-data.service';\nimport { ValueFormatterService } from 'src/app/core/ValueFormatterService';\nimport { ApartmentGroupPresetRow } from 'src/app/core/DteufcAggregatorServiceApi/apartmentgrouppresetrow.complex';\nimport { Wohnungsgruppe } from 'src/app/core/BackendApi/wohnungsgruppe.complex';\nimport { ApartmentGroupFacilityRow } from 'src/app/core/DteufcAggregatorServiceApi/apartmentgroupfacilityrow.complex';\nimport { Ausstattung } from 'src/app/core/BackendApi/ausstattung.complex';\nimport { DialogComponent } from '@syncfusion/ej2-angular-popups/src/dialog/dialog.component';\nimport { ZweitBadTyp, GleichzeitigkeitResidential, BedarfsvolumenstromErmittlungstyp, SectionState } from 'src/app/core/Enums';\nimport { provideContext } from 'src/core-lib/angular/context-util';\nimport { LangService } from 'src/core-lib/ej2/services/LangService';\nimport * as _ from 'lodash';\nimport { WohnungsgruppeDialogData } from 'src/app/shared/wohnungsgruppe-dialog-data/wohnungsgruppe-dialog-data.component';\n\n// Component\n@Component({\n selector: 'app-demand-volumetric-flow-residential',\n templateUrl: './demand-volumetric-flow-residential.component.html',\n styleUrls: ['./demand-volumetric-flow-residential.component.scss'],\n providers: [provideContext('DemandVolumetricFlowResidential')]\n})\nexport class DemandVolumetricFlowResidentialComponent extends DemandVolumetricFlowBaseComponent implements OnInit, AfterViewInit {\n // Viewchilds\n @ViewChild('gridWohnungsgruppenExakt') public gridWohnungsgruppenExakt: DialogComponent;\n @ViewChild('invalidFieldsDialog') public invalidFieldsDialog: DialogComponent;\n @ViewChild('deleteDialog') public deleteDialog: DialogComponent;\n @ViewChild('editDialog') public editDialog: WohnungsgruppeDialogData;\n\n stepBack= this.langService.getString('StepBack_T');\n stepDescription = this.langService.getString('StepDescription_D');\n\n\n // Enum providers\n public Gleichzeitigkeit = GleichzeitigkeitResidential;\n\n // Button bindings\n editDialogButtons = [{\n 'click': this.onWohnungsgruppeAdd.bind(this),\n buttonModel: {\n content: this.langService.getString('EditDialogUebernehmenBtn_T'),\n isPrimary: false,\n cssClass: 'e-primary'\n }\n }]\n invalidFieldsDialogButtons = [{\n 'click': this.onCloseInvalidFieldsDialog.bind(this),\n buttonModel: {\n content: this.langService.getString('InvalidDialogUeberpruefenBtn_T'),\n isPrimary: false,\n cssClass: 'e-primary'\n }\n }]\n deleteDialogButtons = [{\n 'click': this.onWohnungsgruppeDelete.bind(this),\n buttonModel: {\n content: this.langService.getString('DeleteDialogUebernehmenBtn_T'),\n isPrimary: false,\n cssClass: 'e-primary'\n }\n }]\n\n // Public Variables\n public apartmentFacilities: ApartmentGroupFacilityRow[];\n public editingData: BedarfsvolumenstromResidential;\n public editDialogData: WohnungsgruppeDialogData;\n public stepTitle: string;\n public gebaudetyp : string;\n public calculatedMin: number = 2;\n public maxDefinedRaumZahl: number = 7; // Raumzahl > 7 has no defined norm and '-' should be displayed\n public roomGroup: Wohnungsgruppe[];\n\n //temp values\n public volumestromTemp = 0;\n public bedarfTemp;\n public grobTemp = [];\n\n // Internal Variables\n private apartmentGroupPresets: ApartmentGroupPresetRow[];\n private deleteIndex: number;\n private index: number;\n\n // Constructors/Initializers\n constructor(\n private activatedRoute: ActivatedRoute,\n protected readonly router: Router,\n protected DataService: ProjectDataService,\n protected formatterService: ValueFormatterService,\n protected aggregatorDataService: AggregatorDataService,\n private langService: LangService,\n @Inject(VolumetricFlowRateMath) private bvsMath: VolumetricFlowRateMath\n ) {\n super(router, DataService, formatterService, aggregatorDataService);\n }\n ngAfterViewInit(): void {\n if(this.volumestromTemp != 0){\n this.editingData.ErmittlungBvsDirekt.Bedarfsvolumenstrom = this.volumestromTemp;\n }\n if(this.grobTemp.length !== 0 && this.editingData.ErmittlungResidentialGrob){\n this.editingData.ErmittlungResidentialGrob.WohneinheitenGruppeAnzahl = this.clone(this.grobTemp);\n }\n if(this.editingData.ErmittlungsTyp == this.ErmittlungsTyp.BvsDirekt && this.editingData.ErmittlungResidentialKennzahlDirekt){\n this.editingData.ErmittlungResidentialKennzahlDirekt.Bedarfskennzahl = 0;\n if(this.editingData.ErmittlungResidentialGrob)\n this.editingData.ErmittlungResidentialGrob.WohneinheitenGruppeAnzahl.forEach(x => x.Value = 0);\n }\n if(this.editingData.ErmittlungsTyp == this.ErmittlungsTyp.KennzahlDirekt && this.editingData.ErmittlungBvsDirekt){\n this.editingData.ErmittlungBvsDirekt.Bedarfsvolumenstrom = 0;\n if(this.editingData.ErmittlungResidentialGrob)\n this.editingData.ErmittlungResidentialGrob.WohneinheitenGruppeAnzahl.forEach(x => x.Value = 0);\n }\n if(this.editingData.ErmittlungsTyp == this.ErmittlungsTyp.Grob){\n if(this.editingData.ErmittlungBvsDirekt)\n this.editingData.ErmittlungBvsDirekt.Bedarfsvolumenstrom = 0;\n\n if(this.editingData.ErmittlungResidentialKennzahlDirekt)\n this.editingData.ErmittlungResidentialKennzahlDirekt.Bedarfskennzahl = 0;\n\n if(this.editingData.ErmittlungResidentialExakt){\n this.editingData.ErmittlungResidentialExakt.Wohnungsgruppen = []\n }\n }\n if(this.editingData.ErmittlungsTyp == this.ErmittlungsTyp.Exakt){\n if(this.editingData.ErmittlungBvsDirekt)\n this.editingData.ErmittlungBvsDirekt.Bedarfsvolumenstrom = 0;\n\n if(this.editingData.ErmittlungResidentialKennzahlDirekt)\n this.editingData.ErmittlungResidentialKennzahlDirekt.Bedarfskennzahl = 0;\n\n if(this.editingData.ErmittlungResidentialGrob){\n this.editingData.ErmittlungResidentialGrob.WohneinheitenGruppeAnzahl.forEach(x => x.Value = 0);\n }\n }\n\n this.calculateBvs();\n }\n ngOnInit(): void {\n // Init table data\n this.apartmentGroupPresets = this.aggregatorDataService.aggregatorData.Tables.ApartmentGroupPresetRows;\n this.apartmentFacilities = this.aggregatorDataService.aggregatorData.Tables.ApartmentGroupFacilityRows;\n\n \n // Init project\n this.currentProject = this.activatedRoute.snapshot.data['project'];\n this.gebaudetyp = `${this.aggregatorDataService.aggregatorData.Tables.BuildingTypeRows\n .find(b => b.BuildingId == this.currentProject.ResidentialBuilding.BuildingType).DisplayNameLoc}`\n this.stepTitle = this.langService.getString('StepTitle',undefined, this.gebaudetyp);\n\n // Load/Init data\n if (this.currentProject.ResidentialBuilding.Bedarfsvolumenstrom) {\n this.editingData = this.clone(this.currentProject.ResidentialBuilding.Bedarfsvolumenstrom);\n }\n else {\n this.editingData = { ErmittlungsTyp: BedarfsvolumenstromErmittlungstyp.None };\n }\n \n if(this.editingData.ErmittlungBvsDirekt){\n this.volumestromTemp = this.editingData.ErmittlungBvsDirekt.Bedarfsvolumenstrom;\n this.editingData.ErmittlungBvsDirekt.Bedarfsvolumenstrom = 0;\n }\n if(this.editingData.ErmittlungResidentialKennzahlDirekt){\n this.bedarfTemp = this.clone(this.editingData.ErmittlungResidentialKennzahlDirekt);\n this.editingData.ErmittlungResidentialKennzahlDirekt.Bedarfskennzahl = 0;\n }\n if(this.editingData.ErmittlungResidentialGrob){\n this.grobTemp = this.clone(this.editingData.ErmittlungResidentialGrob.WohneinheitenGruppeAnzahl);\n this.editingData.ErmittlungResidentialGrob.WohneinheitenGruppeAnzahl = [];\n }\n }\n\n // Shared Methods\n public calculateBvs(): void {\n switch(this.editingData.ErmittlungsTyp){\n case BedarfsvolumenstromErmittlungstyp.BvsDirekt:\n this.editingData.ErmittlungBvsDirekt.Bedarfsvolumenstrom = Number(this.editingData.ErmittlungBvsDirekt.Bedarfsvolumenstrom);\n this.editingData.BedarfsvolumenstromErgebnisLMin = this.editingData.ErmittlungBvsDirekt.Bedarfsvolumenstrom;\n break;\n case BedarfsvolumenstromErmittlungstyp.KennzahlDirekt:\n this.calculateBvsByKennzahl();\n break;\n case BedarfsvolumenstromErmittlungstyp.Grob:\n this.calculateBvsGrob();\n break;\n case BedarfsvolumenstromErmittlungstyp.Exakt:\n this.calculateBvsExact();\n break;\n default: this.resetResult(); break;\n }\n }\n public getUnitRow(unitId: string): ApartmentGroupPresetRow {\n return this.apartmentGroupPresets.find(p => p.ApartmentGroupPresetId == unitId);\n }\n\n // Internal Methods\n protected getBuildingType(): string {\n return this.currentProject.ResidentialBuilding.BuildingType;\n }\n\n public getEditDialogHeader(){\n if(this.editDialogData.editElementIndex == null){\n return this.langService.getString('ExaktTypRadio.DialogHeaderNeu_T');\n }\n else{\n return this.langService.getString('ExaktTypRadio.DialogHeader_T')\n }\n }\n\n private resetResult(): void {\n this.editingData.BedarfskennzahlErgebnis = 0;\n this.editingData.BedarfsvolumenstromErgebnisLMin = 0;\n }\n private gleichzeitigkeitFromEnum(gleichzeitigkeit: GleichzeitigkeitResidential) : \"TUDresden\" | \"DIN4708\" {\n switch(gleichzeitigkeit) {\n case GleichzeitigkeitResidential.DIN4708: return \"DIN4708\";\n case GleichzeitigkeitResidential.TUDresden: return \"TUDresden\";\n default: return null;\n }\n }\n private calculateBvsByKennzahl(): void {\n let gleichzeitigkeit = this.gleichzeitigkeitFromEnum(this.editingData.ErmittlungResidentialKennzahlDirekt.Gleichzeitigkeit);\n if(gleichzeitigkeit == null){\n this.resetResult();\n }\n else{\n this.editingData.ErmittlungResidentialKennzahlDirekt.Bedarfskennzahl = Number(this.editingData.ErmittlungResidentialKennzahlDirekt.Bedarfskennzahl);\n this.editingData.BedarfskennzahlErgebnis = this.editingData.ErmittlungResidentialKennzahlDirekt.Bedarfskennzahl;\n this.editingData.BedarfsvolumenstromErgebnisLMin = Number(this.editingData.BedarfsvolumenstromErgebnisLMin);\n\n let result = this.bvsMath.barfsvolumenstromFromBedarfskennzahl(this.editingData.ErmittlungResidentialKennzahlDirekt.Bedarfskennzahl, gleichzeitigkeit);\n\n this.editingData.BedarfsvolumenstromErgebnisLMin = Number.isNaN(result) ? 0 : result;\n }\n }\n private calculateBvsGrob(): void {\n if(this.editingData.ErmittlungResidentialGrob.Gleichzeitigkeit == null\n || this.editingData.ErmittlungResidentialGrob.Gleichzeitigkeit == GleichzeitigkeitResidential.None\n || !this.editingData.ErmittlungResidentialGrob.WohneinheitenGruppeAnzahl.some(w => w.Value > 0))\n {\n this.resetResult();\n return;\n }\n\n // Get Wohnungsgruppen from preset amounts\n this.editingData.ErmittlungResidentialGrob.Wohnungsgruppen = this.editingData.ErmittlungResidentialGrob.WohneinheitenGruppeAnzahl.map(wg => {\n var preset = this.getUnitRow(wg.Key);\n wg.Value = Number(wg.Value);\n return {\n Anzahl: wg.Value,\n Bezeichnung: wg.Key,\n Raumzahl: preset.Raumzahl,\n Belegungszahl: preset.Belegungszahl,\n IsKleinwohnungen: preset.IsKleinwohnungen,\n Ausstattungen: this.apartmentFacilities\n .filter(f => preset.FacilityIdsErstesBad.some(i => i == f.FacilityId)).map(f => {\n return {\n Typ: f.FacilityId,\n Bedarf: f.ZapfstellenbedarfWVErstbad,\n IsCustom: false\n }\n }),\n ZweitBadTyp: this.zweitbadTypFromString(preset.ZweitesBadTyp),\n AusstattungenZweitbad: preset.ZweitesBadTyp != null && preset.ZweitesBadTyp != 'None' ? this.apartmentFacilities\n .filter(f => preset.FacilityIdsZweitesBad.some(i => i == f.FacilityId)).map(f => {\n let bedarf: number;\n switch(this.zweitbadTypFromString(preset.ZweitesBadTyp)){\n case ZweitBadTyp.ZweitesBad: bedarf = f.ZapfstellenbedarfWVZweitbad; break;\n case ZweitBadTyp.GästezimmerMitBwUndDu: bedarf = f.ZapfstellenbedarfWVGaesteBwDu; break;\n case ZweitBadTyp.GästezimmerOhneBwUndDu: bedarf = f.ZapfstellenbedarfWVGaesteOhneBwDu; break;\n }\n return {\n Typ: f.FacilityId,\n Bedarf: bedarf,\n IsCustom: false\n }\n }) : null\n };\n })\n\n // Calculate from Wohnungsgruppen\n this.calculateBvsFromWohnungsgruppen(\n this.editingData.ErmittlungResidentialGrob.Wohnungsgruppen,\n this.editingData.ErmittlungResidentialGrob.Gleichzeitigkeit\n );\n }\n private calculateBvsExact(): void {\n \n if(this.editingData.ErmittlungResidentialExakt.Gleichzeitigkeit == null\n || this.editingData.ErmittlungResidentialExakt.Gleichzeitigkeit == GleichzeitigkeitResidential.None\n || this.editingData.ErmittlungResidentialExakt.Wohnungsgruppen.length <= 0)\n {\n this.resetResult();\n return;\n }\n\n // Calculate from Wohnungsgruppen\n this.calculateBvsFromWohnungsgruppen(\n this.editingData.ErmittlungResidentialExakt.Wohnungsgruppen,\n this.editingData.ErmittlungResidentialExakt.Gleichzeitigkeit\n );\n }\n private calculateBvsFromWohnungsgruppen(groups: Wohnungsgruppe[], gleichzeitigkeit: GleichzeitigkeitResidential) {\n if(groups.length <= 0){\n this.resetResult();\n }\n else{\n console.log(groups)\n this.editingData.BedarfskennzahlErgebnis = this.bvsMath.bedarfskennzahlFromWohnungsgruppen(\n groups.map(w => { return {\n belegungszahl: w.Belegungszahl,\n wohnungsanzahl: w.Anzahl,\n zweitesBadTyp: this.zweitbadTypFromEnum(w.ZweitBadTyp),\n ausstattungen: w.Ausstattungen.map(a => this.apartmentFacilities.find(f => f.FacilityId == a.Typ)),\n facilitiesZweitesBad: w.AusstattungenZweitbad ? w.AusstattungenZweitbad.map(a => this.apartmentFacilities.find(f => f.FacilityId == a.Typ)) : null\n }})\n );\n this.editingData.BedarfsvolumenstromErgebnisLMin = this.bvsMath.barfsvolumenstromFromBedarfskennzahl(\n this.editingData.BedarfskennzahlErgebnis,\n this.gleichzeitigkeitFromEnum(gleichzeitigkeit)\n )\n }\n }\n\n // Button/Click Events\n public onClickSelectGleichzeitigkeit(gleichzeitigkeit: GleichzeitigkeitResidential): void {\n // Set Gleichzeitigkeit\n switch(this.editingData.ErmittlungsTyp){\n case BedarfsvolumenstromErmittlungstyp.KennzahlDirekt:\n this.editingData.ErmittlungResidentialKennzahlDirekt.Gleichzeitigkeit = gleichzeitigkeit;\n break;\n case BedarfsvolumenstromErmittlungstyp.Grob:\n this.editingData.ErmittlungResidentialGrob.Gleichzeitigkeit = gleichzeitigkeit;\n break;\n case BedarfsvolumenstromErmittlungstyp.Exakt:\n this.editingData.ErmittlungResidentialExakt.Gleichzeitigkeit = gleichzeitigkeit;\n break;\n }\n\n // Recalculate\n this.calculateBvs();\n }\n\n\n public onClickSave(): void {\n \n //Remove non selected Data for no errors in comparison\n switch(this.editingData.ErmittlungsTyp){\n case(this.ErmittlungsTyp.BvsDirekt):\n if(this.editingData.ErmittlungResidentialExakt)\n this.editingData.ErmittlungResidentialExakt = null;\n if(this.editingData.ErmittlungResidentialGrob)\n this.editingData.ErmittlungResidentialGrob = null;\n if(this.editingData.ErmittlungResidentialKennzahlDirekt)\n this.editingData.ErmittlungResidentialKennzahlDirekt = null;\n break;\n case(this.ErmittlungsTyp.Exakt):\n if(this.editingData.ErmittlungBvsDirekt)\n this.editingData.ErmittlungBvsDirekt = null;\n if(this.editingData.ErmittlungResidentialGrob)\n this.editingData.ErmittlungResidentialGrob = null;\n if(this.editingData.ErmittlungResidentialKennzahlDirekt)\n this.editingData.ErmittlungResidentialKennzahlDirekt = null;\n break;\n case(this.ErmittlungsTyp.Grob):\n if(this.editingData.ErmittlungBvsDirekt)\n this.editingData.ErmittlungBvsDirekt = null;\n if(this.editingData.ErmittlungResidentialExakt)\n this.editingData.ErmittlungResidentialExakt = null;\n if(this.editingData.ErmittlungResidentialKennzahlDirekt)\n this.editingData.ErmittlungResidentialKennzahlDirekt = null;\n break;\n case(this.ErmittlungsTyp.KennzahlDirekt):\n if(this.editingData.ErmittlungBvsDirekt)\n this.editingData.ErmittlungBvsDirekt = null;\n if(this.editingData.ErmittlungResidentialExakt)\n this.editingData.ErmittlungResidentialExakt = null;\n if(this.editingData.ErmittlungResidentialGrob)\n this.editingData.ErmittlungResidentialGrob = null;\n break;\n }\n if(this.currentProject.ResidentialBuilding.Bedarfsvolumenstrom){\n let changed = true;\n if(this.currentProject.ResidentialBuilding.Bedarfsvolumenstrom.ErmittlungsTyp == this.editingData.ErmittlungsTyp){\n switch(this.editingData.ErmittlungsTyp){\n case(this.ErmittlungsTyp.BvsDirekt):\n if(this.currentProject.ResidentialBuilding.Bedarfsvolumenstrom.ErmittlungBvsDirekt.Bedarfsvolumenstrom == this.editingData.ErmittlungBvsDirekt.Bedarfsvolumenstrom)\n changed = false;\n break;\n case(this.ErmittlungsTyp.Exakt):\n if(this.currentProject.ResidentialBuilding.Bedarfsvolumenstrom.ErmittlungResidentialExakt.Gleichzeitigkeit == this.editingData.ErmittlungResidentialExakt.Gleichzeitigkeit){\n if(JSON.stringify(this.currentProject.ResidentialBuilding.Bedarfsvolumenstrom.ErmittlungResidentialExakt.Wohnungsgruppen) === JSON.stringify(this.editingData.ErmittlungResidentialExakt.Wohnungsgruppen))\n changed = false;\n }\n break;\n case(this.ErmittlungsTyp.Grob):\n if(this.currentProject.ResidentialBuilding.Bedarfsvolumenstrom.ErmittlungResidentialGrob.Gleichzeitigkeit == this.editingData.ErmittlungResidentialGrob.Gleichzeitigkeit){\n if(JSON.stringify(this.currentProject.ResidentialBuilding.Bedarfsvolumenstrom.ErmittlungResidentialGrob.WohneinheitenGruppeAnzahl) === JSON.stringify(this.editingData.ErmittlungResidentialGrob.WohneinheitenGruppeAnzahl))\n changed = false;\n }\n break;\n case(this.ErmittlungsTyp.KennzahlDirekt):\n if(this.currentProject.ResidentialBuilding.Bedarfsvolumenstrom.ErmittlungResidentialKennzahlDirekt.Gleichzeitigkeit && this.currentProject.ResidentialBuilding.Bedarfsvolumenstrom.ErmittlungResidentialKennzahlDirekt.Bedarfskennzahl === this.editingData.ErmittlungResidentialKennzahlDirekt.Bedarfskennzahl &&\n this.currentProject.ResidentialBuilding.Bedarfsvolumenstrom.ErmittlungResidentialKennzahlDirekt.Gleichzeitigkeit == this.editingData.ErmittlungResidentialKennzahlDirekt.Gleichzeitigkeit)\n changed = false;\n break;\n }\n }\n\n if(!changed){\n this.currentProject.SectionStates.BuildingTypeBedarfsvolumenstromStates.find(s => s.Key == this.getBuildingType()).Value = SectionState.Set;\n this.DataService.saveCurrentProject()\n .then(_ => this.router.navigate([`/project-view/${this.currentProject.ProjectId}`]));\n return;\n }\n }\n\n // Replace null values in AusstattungenZweitbad with empty arrays\n if(this.editingData.ErmittlungResidentialExakt?.Wohnungsgruppen != null)\n this.editingData.ErmittlungResidentialExakt.Wohnungsgruppen.forEach(x => x.AusstattungenZweitbad == null ? x.AusstattungenZweitbad = [] : x.AusstattungenZweitbad = x.AusstattungenZweitbad);\n \n // Overwrite BVS object in project entity with the new version\n this.currentProject.ResidentialBuilding.Bedarfsvolumenstrom = this.clone(this.editingData);\n console.log(this.editingData)\n // Call base implementation\n this.onClickSaveBase();\n }\n public onClickAddWohnungsgruppe(): void { \n // Open dialog\n this.editDialog.show();\n }\n public onClickEditWohnungsgruppe(index: number): void {\n // Open dialog\n let currentElement = this.editingData.ErmittlungResidentialExakt.Wohnungsgruppen[index];\n this.editDialog.editElement(currentElement, index);\n }\n public onClickDeleteWohnungsgruppe(index: number): void {\n // Store the index of the element to delete\n this.deleteIndex = index;\n\n // Show dialog\n this.deleteDialog.show();\n }\n public onCloseInvalidFieldsDialog(): void {\n this.invalidFieldsDialog.hide();\n }\n\n // Change Events\n public onChangeErmittlungstyp(typ: BedarfsvolumenstromErmittlungstyp): void {\n // Set type\n this.editingData.ErmittlungsTyp = typ;\n\n // Init type field object\n switch(typ){\n case BedarfsvolumenstromErmittlungstyp.BvsDirekt:\n if(this.editingData.ErmittlungBvsDirekt == null){\n this.editingData.ErmittlungBvsDirekt = {\n Bedarfsvolumenstrom: 0\n }\n }\n break;\n case BedarfsvolumenstromErmittlungstyp.KennzahlDirekt:\n if(this.editingData.ErmittlungResidentialKennzahlDirekt == null){\n this.editingData.ErmittlungResidentialKennzahlDirekt = {}\n }\n break;\n case BedarfsvolumenstromErmittlungstyp.Grob:\n if(this.editingData.ErmittlungResidentialGrob == null){\n this.editingData.ErmittlungResidentialGrob = {\n WohneinheitenGruppeAnzahl: this.apartmentGroupPresets.map(g => { return { Key: g.ApartmentGroupPresetId, Value: 0 }})\n }\n }\n break;\n case BedarfsvolumenstromErmittlungstyp.Exakt:\n if(this.editingData.ErmittlungResidentialExakt == null){\n this.editingData.ErmittlungResidentialExakt = {\n Wohnungsgruppen: []\n }\n }\n break;\n }\n\n // Recalculate\n this.calculateBvs();\n }\n\n // Dialog events\n public onDialogBackdropClick(): void {\n this.editDialog.hide();\n }\n public onWohnungsgruppeAdd($event: Wohnungsgruppe): void {\n if($event.ZweitBadTyp == null){\n $event.ZweitBadTyp = 0;\n }\n\n // Add new element to edit entity\n this.editingData.ErmittlungResidentialExakt.Wohnungsgruppen.push($event);\n\n // Update the grid\n this.gridWohnungsgruppenExakt.refresh();\n\n // Close dialog\n this.editDialog.hide();\n\n // Recalculate\n this.calculateBvs();\n }\n public onWohnungsgruppeEdit($event: Wohnungsgruppe): void {\n if($event.ZweitBadTyp == null){\n $event.ZweitBadTyp = 0;\n }\n // Replace existing item with the new version\n this.editingData.ErmittlungResidentialExakt.Wohnungsgruppen.splice(this.index, 1, $event);\n\n // Update the grid\n this.gridWohnungsgruppenExakt.refresh();\n\n // Recalculate\n this.calculateBvs();\n }\n public onWohnungsgruppeDelete(): void {\n // Validate index\n if(this.deleteIndex == null){\n return;\n }\n\n // Remove the item\n this.editingData.ErmittlungResidentialExakt.Wohnungsgruppen.splice(this.deleteIndex, 1);\n this.deleteIndex = null;\n\n // Update the grid\n this.gridWohnungsgruppenExakt.refresh();\n\n // Close dialog\n this.deleteDialog.hide();\n\n // Recalculate\n this.calculateBvs();\n }\n\n // Formatters\n public formatErgebnisBvs(): string {\n return this.formatterService.formatNumber(this.editingData.BedarfsvolumenstromErgebnisLMin, 'LiterPerMinute', { maximumFractionDigits: 0})\n }\n public formatErgebnisKennzahl(): string {\n return this.formatterService.formatNumber(this.editingData.BedarfskennzahlErgebnis, null, { maximumFractionDigits: 0 });\n }\n public formatEquipmentNames(equipments: Ausstattung) {\n if(equipments == null)\n return null;\n return this.apartmentFacilities.find(f => equipments.Typ === f.FacilityId).DisplayNameLoc;\n }\n public formatZweitbadType(type: ZweitBadTyp): string {\n switch(type){\n case ZweitBadTyp.ZweitesBad: return this.langService.getString('ZweitBadTypes.Zwei_T');\n case ZweitBadTyp.GästezimmerMitBwUndDu: return this.langService.getString('ZweitBadTypes.GaesteMit_T');\n case ZweitBadTyp.GästezimmerOhneBwUndDu: return this.langService.getString('ZweitBadTypes.GaesteOhne_T');\n default: return this.langService.getString('ZweitBadTypes.KeinZweitbad_T');\n }\n }\n\n // Condition Validators\n public isBedarfskennzahlShown(): boolean {\n return this.editingData.ErmittlungsTyp != BedarfsvolumenstromErmittlungstyp.BvsDirekt;\n }\n public isSaveValid(): boolean {\n return (this.editingData.BedarfskennzahlErgebnis || this.editingData.ErmittlungsTyp == BedarfsvolumenstromErmittlungstyp.BvsDirekt)\n && this.editingData.BedarfsvolumenstromErgebnisLMin > 0\n && this.editingData.BedarfsvolumenstromErgebnisLMin <= 140\n }\n public isGleichzeitigkeitErrorShown(): boolean {\n switch(this.editingData.ErmittlungsTyp){\n case BedarfsvolumenstromErmittlungstyp.BvsDirekt:\n return false;\n case BedarfsvolumenstromErmittlungstyp.KennzahlDirekt:\n return this.editingData.ErmittlungResidentialKennzahlDirekt.Gleichzeitigkeit == null;\n case BedarfsvolumenstromErmittlungstyp.Grob:\n return this.editingData.ErmittlungResidentialGrob.Gleichzeitigkeit == null;\n case BedarfsvolumenstromErmittlungstyp.Exakt:\n return this.editingData.ErmittlungResidentialExakt.Gleichzeitigkeit == null;\n }\n }\n public isWohnungsgruppeErrorShown(): boolean {\n return this.editingData.ErmittlungsTyp == BedarfsvolumenstromErmittlungstyp.Exakt\n && (this.editingData.ErmittlungResidentialExakt.Wohnungsgruppen == null\n || this.editingData.ErmittlungResidentialExakt.Wohnungsgruppen.length <= 0\n );\n }\n public isToHighVolumeShown(){\n return this.editingData.BedarfsvolumenstromErgebnisLMin > 140;\n }\n public isToLowVolumeShown(){\n return this.editingData.BedarfsvolumenstromErgebnisLMin < 4;\n }\n public formatDecimalNumber(n: number){\n return n.toString().replace(\",\", \".\");\n }\n public isSelectedGleichzeitigkeit(gleichzeitigkeit: GleichzeitigkeitResidential): boolean {\n switch(this.editingData.ErmittlungsTyp){\n case BedarfsvolumenstromErmittlungstyp.BvsDirekt:\n return false;\n case BedarfsvolumenstromErmittlungstyp.KennzahlDirekt:\n return this.editingData.ErmittlungResidentialKennzahlDirekt.Gleichzeitigkeit == gleichzeitigkeit;\n case BedarfsvolumenstromErmittlungstyp.Grob:\n return this.editingData.ErmittlungResidentialGrob.Gleichzeitigkeit == gleichzeitigkeit;\n case BedarfsvolumenstromErmittlungstyp.Exakt:\n return this.editingData.ErmittlungResidentialExakt.Gleichzeitigkeit == gleichzeitigkeit;\n }\n }\n public isAnyKleinwohnungen(): boolean {\n if(!this.editingData.ErmittlungResidentialExakt || !this.editingData.ErmittlungResidentialExakt.Wohnungsgruppen)\n return false;\n else\n return this.editingData.ErmittlungResidentialExakt.Wohnungsgruppen.some(w => w.IsKleinwohnungen);\n }\n}","\n\n\n \n
      \n \n \n\n
      \n \n
      \n \n
      \n

      \n  \n

      \n
      \n \n
      \n\n
      \n
      \n \n
      \n
      \n \n

      {{'ErrorGleichzeitigkeit_SD' | translate}}

      \n
      \n
      \n

      {{'ErrorWohnungsgruppe_SD' | translate}}

      \n
      \n
      \n \n

      {{'ErrorKeineDte_SD' | translate}}

      \n
      \n
      \n \n

      {{'ErrorMinBedarfsvolumenstrom_SD' | translate}}

      \n
      \n\n
      \n {{'Result_T' | translate}}\n {{'ResultBedarfskennzahl_T' | translate: formatErgebnisKennzahl()}}\n {{'ResultBedarfsvolumenstrom_T' | translate: formatErgebnisBvs()}}\n \n
      \n
      \n
      \n
      \n\n \n
      \n
      \n {{'Headline_T' | translate}}\n \n
      \n
      \n \n
      \n \n
      \n
      \n\n \n
      \n\n \n
      \n
      \n \n \n
      \n
      \n
      \n
      \n
      \n {{'KennzahlDirektTypRadio.HeadlineGleichzeitigkeit_T' | translate}} \n \n
      \n
      \n \n
      \n
      \n \n
      \n
      \n {{'KennzahlDirektTypRadio.SliderHeaderBedarfskennzahl_T' | translate}}\n \n
      \n\n
      \n
      \n\n \n
      \n
      \n \n \n
      \n
      \n
      \n
      \n {{'GrobTypRadio.HeadlineGleichzeitigkeit_T' | translate}} \n \n
      \n
      \n \n
      \n
      \n \n
      \n\n
      \n {{'GrobTypRadio.HeadlineWohneinheiten_T' | translate}}\n
      \n
      \n
      \n
      \n \n
      \n \n
      \n
      \n
      \n\n \n
      \n
      \n \n \n
      \n
      \n
      \n
      \n {{'ExaktTypRadio.HeadlineGleichzeitigkeit_T' | translate}} \n \n
      \n
      \n \n
      \n
      \n \n
      \n
      \n
      \n
      \n
      \n {{'ExaktTypRadio.HeadlineWohnungsgruppen_T' | translate}}\n
      \n \n \n \n \n
      \n {{data.Bezeichnung}}\n
      \n
      \n {{'ExaktTypRadio.Raumzahl_T' | translate}}\n {{'ExaktTypRadio.Belegungszahl_T' | translate}}\n
      \n
      \n
      \n \n \n
      \n {{data.Anzahl}}\n
      \n
      \n {{data.Raumzahl}}\n {{data.Belegungszahl}}*\n
      \n
      \n
      \n \n \n
      \n {{formatEquipmentNames(ausstattung)}}, \n
      \n
      \n {{formatZweitbadType(data.ZweitBadTyp)}}\n
      \n
      \n {{formatEquipmentNames(ausstattung)}}, \n
      \n
      \n
      \n \n \n
      \n \n \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n
      \n {{'ExaktTypRadio.Kleinwohnung_T'| translate}}\n \n \n
      \n
      \n \n
      \n
      \n
      \n
      \n
      \n\n\n\n\n\n\n \n
      \n {{'ExaktTypRadio.DeleteDialogContent_SD' | translate}}\n
      \n
      \n\n\n\n\n \n
      \n {{'ExaktTypRadio.InvalidDialogContent_SD' | translate}}\n
      \n
      \n","import { Router } from \"@angular/router\";\nimport { PositionDataModel } from \"@syncfusion/ej2-popups/src/popup/popup-model\";\nimport { AggregatorDataService } from \"./AggregatorDataService\";\nimport { ProjectEntity } from \"./BackendApi/projectentity.entity\";\nimport { BedarfsvolumenstromErmittlungstyp, BedarfsvolumenstromErmittlungstypOther, ZweitBadTyp, SectionState } from \"./Enums\";\nimport { ProjectDataService } from \"./project-data.service\";\nimport { ValueFormatterService } from \"./ValueFormatterService\";\n\nexport abstract class DemandVolumetricFlowBaseComponent\n{\n // Enum providers\n public ErmittlungsTyp = BedarfsvolumenstromErmittlungstyp;\n public ErmittlungsTypOther = BedarfsvolumenstromErmittlungstypOther;\n\n // Variables\n public dialogPosition: PositionDataModel = { X: 'center', Y: 'center' };\n public currentProject: ProjectEntity;\n\n // Constructors\n constructor(\n protected readonly router: Router,\n protected DataService: ProjectDataService,\n protected formatterService: ValueFormatterService,\n protected aggregatorDataService: AggregatorDataService\n ){\n\n }\n\n // Internal Methods\n protected clone(entity: any): any {\n return JSON.parse(JSON.stringify(entity));\n }\n protected zweitbadTypFromString(zweitbad: string): ZweitBadTyp {\n switch(zweitbad) {\n case 'ZweitesBad': return ZweitBadTyp.ZweitesBad;\n case 'GästezimmerMitBwUndDu': return ZweitBadTyp.GästezimmerMitBwUndDu;\n case 'GästezimmerOhneBwUndDu': return ZweitBadTyp.GästezimmerOhneBwUndDu;\n default: return ZweitBadTyp.None;\n }\n }\n protected zweitbadTypFromEnum(zweitbad: ZweitBadTyp): \"None\" | \"ZweitesBad\" | \"GästezimmerMitBwUndDu\" | \"GästezimmerOhneBwUndDu\" {\n switch(zweitbad) {\n case ZweitBadTyp.ZweitesBad: return 'ZweitesBad';\n case ZweitBadTyp.GästezimmerMitBwUndDu: return 'GästezimmerMitBwUndDu';\n case ZweitBadTyp.GästezimmerOhneBwUndDu: return 'GästezimmerOhneBwUndDu';\n default: return 'None';\n }\n }\n protected onClickSaveBase(){\n // Set result values\n if(this.currentProject.ProjectValues == null) {\n this.currentProject.ProjectValues = { };\n }\n this.currentProject.ProjectValues.BedarfsvolumenstromErgebnisLMin = (\n this.currentProject.ResidentialBuilding != null && this.currentProject.ResidentialBuilding.Bedarfsvolumenstrom != null\n ? this.currentProject.ResidentialBuilding.Bedarfsvolumenstrom.BedarfsvolumenstromErgebnisLMin : 0\n ) + (\n this.currentProject.OtherBuildings != null ?\n this.currentProject.OtherBuildings\n .filter(b => b.Bedarfsvolumenstrom != null)\n .reduce((sum, b) => sum + b.Bedarfsvolumenstrom.BedarfsvolumenstromErgebnisLMin, 0) : 0\n )\n\n // Set building section state\n this.currentProject.SectionStates.BuildingTypeBedarfsvolumenstromStates\n .find(s => s.Key == this.getBuildingType()).Value = SectionState.Set;\n\n // Manage related section states\n // var buildingWwState = this.currentProject.SectionStates.BuildingTypeWarmwasserStates.find(b => b.Key == this.getBuildingType());\n // if(buildingWwState.Value == SectionState.Set)\n // buildingWwState.Value = SectionState.Check;\n this.currentProject.SectionStates.BuildingTypeWarmwasserStates.forEach(b => {\n if(b.Value == SectionState.Set) {\n b.Value = SectionState.Check;\n }})\n if(this.currentProject.SectionStates.Dte == SectionState.Set)\n this.currentProject.SectionStates.Dte = SectionState.Check;\n if(this.currentProject.SectionStates.Zirkulationsvolumenstrom == SectionState.Set)\n this.currentProject.SectionStates.Zirkulationsvolumenstrom = SectionState.Check;\n if(this.currentProject.SectionStates.Energiespeicher == SectionState.Set)\n this.currentProject.SectionStates.Energiespeicher = SectionState.Check;\n if(this.currentProject.SectionStates.Rohrauslegung == SectionState.Set)\n this.currentProject.SectionStates.Rohrauslegung = SectionState.Check;\n if(this.currentProject.SectionStates.Ufc == SectionState.Set)\n this.currentProject.SectionStates.Ufc = SectionState.Check;\n\n // Save and close view\n this.DataService.saveCurrentProject()\n .then(_ => this.router.navigate([`/project-view/${this.currentProject.ProjectId}`]));\n }\n protected abstract getBuildingType(): string;\n\n // Button/Click Events\n public onClickGoBack(): void {\n this.router.navigate([`/project-view/${this.currentProject.ProjectId}`]);\n }\n}","export const events = {\n buttonClick: 'buttonClickEvent',\n beforeOpen: 'beforeOpenEvent',\n open: 'openEvent',\n close: 'closeEvent',\n select: 'selectEvent',\n created: 'createdEvent',\n destroyed: 'destroyedEvent',\n};\n","import { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { LegendSettingsModel } from '@syncfusion/ej2-charts';\nimport { JsonAdaptor } from '@syncfusion/ej2-data';\nimport { EventArgs } from '@syncfusion/ej2-navigations';\nimport * as _ from 'lodash';\nimport { AggregatorDataService } from 'src/app/core/AggregatorDataService';\nimport { Dte } from 'src/app/core/BackendApi/dte.complex';\nimport { Messpunkt } from 'src/app/core/BackendApi/messpunkt.complex';\nimport { ProjectEntity } from 'src/app/core/BackendApi/projectentity.entity';\nimport { DteRow } from 'src/app/core/DteufcAggregatorServiceApi/dterow.complex';\nimport { SectionState } from 'src/app/core/Enums';\nimport { CirculationFlowMath } from 'src/app/core/math/CirculationFlowMath';\nimport { DteMath, IDtePwhParams, IDteResult } from 'src/app/core/math/DteMath';\nimport { ProjectDataService } from 'src/app/core/project-data.service';\nimport { IProjectData } from 'src/app/core/project-interfaces';\nimport { ValueFormatterService } from 'src/app/core/ValueFormatterService';\nimport { provideContext } from 'src/core-lib/angular/context-util';\nimport { LangService } from 'src/core-lib/ej2/services/LangService';\n\n@Component({\n selector: 'app-dte-temperature',\n templateUrl: './dte-temperature.component.html',\n styleUrls: ['./dte-temperature.component.scss'],\n providers: [provideContext(\"DteTemperature\")],\n})\nexport class DteTemperatureComponent implements OnInit {\n\n stepText = this.langService.getString('PanelStepText_T');\n stepTitle = this.langService.getString('PanelHeadline_T');\n stepBack = this.langService.getString('PanelStepBackLabel_T');\n stepDescription = this.langService.getString('PanelDescription_D');\n\n // Graph Variables\n public primaryYAxis: object;\n public primaryXAxis: object;\n public chartDataBedarfsvolumenstrom: Messpunkt[];\n public chartDataPWH60: Messpunkt[];\n public chartDataPWH60Betriebspunkt: Messpunkt[];\n public chartDataPWHAbgesenkt: Messpunkt[];\n public chartDataPWHAbgesenktBetriebspunkt: Messpunkt[];\n public tooltipBetriebspunkt = { enable: true, header: 'Betriebspunkt' };\n public tooltipformatBetriebspunkt = this.langService.getString('TooltipformatBetriebspunkt_T_Html', undefined, this.langService.getString('#Generic.Unit.LiterPerMinute_T'), this.langService.getString('#Generic.Unit.DegreeCelsius_T'));\n public legendSettings: LegendSettingsModel;\n public animation: object;\n public palette: string[];\n\n // General Project/Table Variables\n private readonly pwh60: number = DteMath.pwh;\n private selectedProject: ProjectEntity;\n public bedarfsvolumenstrom : number;\n private dteRows: DteRow[];\n\n // Sidebar Values\n public druckverlustStrecke60 : number;\n public druckverlust60Gesamt : number;\n public druckverlustHpa60: number;\n\n public druckverlustStreckeAbgesenkt : number;\n public druckverlustAbgesenktGesamt : number;\n public druckverlustHpaAbgesenkt: number;\n\n // Bindings/Calculation Values\n public betriebspunkt60: Messpunkt;\n public betriebspunktAbgesenkt: Messpunkt;\n public maxAbgesenkteTemperatur : number = 45;\n public bedarfsvolumenstromAbgesenkt: number;\n public selectedDTE : \"40\" | \"70\" | \"100\";\n public vorlauftemperatur: number = 53;\n public vorlauftemperaturSliderMin: number = 45;\n public benoetigteVorlauftemperatur: number = 53;\n public benoetigteVorlauftemperaturAbgesenkt: number;\n private DTEAvailable: IDteResult[];\n public loadedDteIsInvalid: boolean;\n private selectedDteInfo: DteRow;\n private recommendedDTE: DteRow;\n public pwhAbgesenkt : number;\n public pwhName: string = \"\";\n public isValidFlowRate: boolean;\n private bedarfsvolumenstromEffective: number;\n\n private changeCounter: number = 0;\n\n // Constructors/Initializers\n constructor(\n private activatedRoute: ActivatedRoute,\n private readonly router: Router,\n private DataService: ProjectDataService,\n private formatter: ValueFormatterService,\n private aggregatorService: AggregatorDataService,\n private dteMath: DteMath,\n private circulationFlowMath: CirculationFlowMath,\n private langService: LangService\n ) {\n }\n ngOnInit(): void {\n this.isValidFlowRate = true;\n\n // Load current project\n this.selectedProject = this.activatedRoute.snapshot.data['project'];\n if(this.selectedProject.ProjectValues.BedarfsvolumenstromErgebnisLMin || !(this.selectedProject.ProjectValues.BedarfsvolumenstromErgebnisLMin > 0)) {\n this.bedarfsvolumenstrom = this.selectedProject.ProjectValues.BedarfsvolumenstromErgebnisLMin;\n }\n else{\n this.bedarfsvolumenstrom = 55; // DEBUG value\n }\n\n if(this.selectedProject.ProjectValues.Dte){\n this.vorlauftemperatur = this.selectedProject.ProjectValues.Dte.VorlauftemperaturInput;\n var inputAbgesenkt = this.selectedProject.ProjectValues.Dte.VorlauftemperaturAbgesenktInput;\n this.maxAbgesenkteTemperatur = inputAbgesenkt == 0 || !inputAbgesenkt ? 45 : inputAbgesenkt;\n }\n\n // Set initial values\n this.dteRows = this.aggregatorService.aggregatorData.Tables.DteRows;\n this.legendSettings = { visible: true, alignment: 'Center', shapeWidth: 40 };\n this.palette = [\"#5181e8\", \"#9e0b0b\", \"#5181e8\", \"#9e0b0b\", \"#000000\"];\n this.animation = { enable: false };\n\n // Override recommended dte value with loaded if available\n if(this.selectedProject.ProjectValues.Dte){\n this.DTEAvailable = this.dteMath.dtesFromBedarfsvolumenstromForAbgesenkt(this.bedarfsvolumenstrom, { dteRows: this.dteRows });\n this.loadedDteIsInvalid = !this.dteMath.dtesFromBedarfsvolumenstromForAbgesenkt(this.bedarfsvolumenstrom, { dteRows: this.dteRows })\n .some(d => d.dte == this.selectedProject.ProjectValues.Dte.Ergebnis.toString());\n\n if(!this.loadedDteIsInvalid) {\n this.selectDte(this.selectedProject.ProjectValues.Dte.Ergebnis.toString() as \"40\" | \"70\" | \"100\", false);\n } else {\n this.selectRecommendedDte();\n this.calculateValues()\n }\n } else {\n this.loadedDteIsInvalid = false;\n this.selectRecommendedDte();\n this.calculateValues();\n }\n };\n\n // Internal Methods\n private calculateValues() : void {\n // Get current dte info\n this.selectedDteInfo = this.dteRows.find(d => d.Dte == this.selectedDTE);\n if(this.selectedDteInfo) {\n // Get graph axis config\n this.primaryYAxis = {\n minimum: this.selectedDteInfo.DiagramStartVorlauftemperatur, maximum: this.selectedDteInfo.DiagramEndVorlauftemperatur, interval: this.selectedDteInfo.DiagramStepVorlauftemperaturLMin,\n title: this.langService.getString('LeistungsdiagrammYAxis_T', undefined, this.langService.getString('#Generic.Unit.DegreeCelsius_T'))\n };\n this.primaryXAxis = {\n minimum: this.selectedDteInfo.DiagramStartBedarfsvolumenstromLMin, maximum: this.selectedDteInfo.DiagramEndBedarfsvolumenstromLMin, interval: this.selectedDteInfo.DiagramStepBedarfsvolumenstromLMin,\n title: this.langService.getString('LeistungsdiagrammXAxis_T', undefined, this.langService.getString('#Generic.Unit.LiterPerMinute_T'))\n };\n\n // Get sidebar values\n this.pwhAbgesenkt = this.dteMath.pwhAbgesenktFromPwhC(Number(this.maxAbgesenkteTemperatur));\n this.druckverlustHpa60 = this.dteMath.dteDruckverlust(this.bedarfsvolumenstrom, this.selectedDteInfo.KvsSecondary);\n this.druckverlustStrecke60 = this.dteMath.dteDruckverlust(this.bedarfsvolumenstrom, this.selectedDteInfo.KvsCirculationFlow);\n this.druckverlust60Gesamt = this.druckverlustHpa60;\n\n this.bedarfsvolumenstromAbgesenkt = this.dteMath.bedarfsvolumenstromAbgesenktFromBedarfsvolumenstrom(this.bedarfsvolumenstrom, this.pwhAbgesenkt);\n this.druckverlustHpaAbgesenkt = this.dteMath.dteDruckverlust(this.bedarfsvolumenstromAbgesenkt, this.selectedDteInfo.KvsSecondary);\n this.druckverlustStreckeAbgesenkt = this.dteMath.dteDruckverlust(this.bedarfsvolumenstromAbgesenkt, this.selectedDteInfo.KvsCirculationFlow);\n this.druckverlustAbgesenktGesamt = this.druckverlustHpaAbgesenkt;\n\n // Get graph values\n var yValuesPwh60 = this.dteMath.volauftemperaturenMesspunkteFromDte(this.selectedDteInfo, this.pwh60);\n this.chartDataPWH60 = yValuesPwh60.map(v => ({ Vorlauftemperatur: v, Bedarfsvolumenstrom: this.dteMath.dteVsFromBedarfstemp(this.selectedDteInfo, v, this.pwh60) }));\n this.pwhName = \"PWH \" + this.langService.getString('#Generic.UnitFormats.DegreeCelsius', undefined, this.getPwhAbgesenktChart());\n\n var yValuesAbgesenkt = this.dteMath.volauftemperaturenMesspunkteFromDte(this.selectedDteInfo, this.pwhAbgesenkt);\n this.chartDataPWHAbgesenkt = yValuesAbgesenkt.map(v => ({ Vorlauftemperatur: v, Bedarfsvolumenstrom: this.dteMath.dteVsFromBedarfstemp(this.selectedDteInfo, v, this.pwhAbgesenkt) }))\n\n this.benoetigteVorlauftemperaturAbgesenkt = this.dteMath.benoetigteVorlauftemperaturFromBedarfsvolumenstrom({\n bedarfsvolumenstromLMin: this.bedarfsvolumenstromAbgesenkt,\n bedarfstemperaturPwh: this.pwhAbgesenkt,\n dteRow: this.selectedDteInfo\n });\n\n this.createBetriebspunkte();\n } else {\n // Reset sidebar values\n this.druckverlust60Gesamt = 0;\n this.druckverlustStrecke60 = 0;\n this.druckverlustAbgesenktGesamt = 0;\n this.druckverlustStreckeAbgesenkt = 0;\n this.bedarfsvolumenstromAbgesenkt = 0;\n this.druckverlustHpa60 = 0;\n this.druckverlustHpaAbgesenkt = 0;\n }\n\n // Set dte button classes\n switch (this.selectedDTE) {\n case '40': this.selectDte40(); break;\n case '70': this.selectDte70(); break;\n case '100': this.selectDte100(); break;\n default: this.selectDteNone(); break;\n }\n }\n private createBetriebspunkte() : void {\n // note that some of these values MUST be rounded to two digits, or the graphical representation will be invalid\n var y60 = Math.round(this.vorlauftemperatur * 100) / 100;\n var x60 = Math.round(this.dteMath.dteVsFromBedarfstemp(this.selectedDteInfo, Number(this.vorlauftemperatur), this.pwh60) * 100) / 100;\n this.betriebspunkt60 = { Bedarfsvolumenstrom: x60, Vorlauftemperatur: y60 };\n this.chartDataPWH60Betriebspunkt = [\n { Bedarfsvolumenstrom: 0, Vorlauftemperatur: y60 },\n { Bedarfsvolumenstrom: x60, Vorlauftemperatur: y60 },\n { Bedarfsvolumenstrom: x60, Vorlauftemperatur: 0 }\n ];\n const dtePwhParams = this.dteMath.getDtePwhParams(this.selectedDteInfo, this.pwhAbgesenkt);\n var xAbgesenkt = Math.round(this.bedarfsvolumenstromAbgesenkt * 100) / 100;\n var xAbgesenktPinned = Math.round(Math.max(Math.min(xAbgesenkt, this.selectedDteInfo.MaxBedarfsvolumenstromLMin), dtePwhParams.minEffectiveBedarfsvolumenstrom) * 100) / 100;\n var yAbgesenkt = Math.round(this.benoetigteVorlauftemperaturAbgesenkt * 100) / 100;\n this.betriebspunktAbgesenkt = { Bedarfsvolumenstrom: xAbgesenktPinned, Vorlauftemperatur: yAbgesenkt };\n this.chartDataPWHAbgesenktBetriebspunkt = [\n {Bedarfsvolumenstrom: 0, Vorlauftemperatur: yAbgesenkt},\n {Bedarfsvolumenstrom: xAbgesenktPinned, Vorlauftemperatur: yAbgesenkt},\n {Bedarfsvolumenstrom: xAbgesenktPinned, Vorlauftemperatur: 0}\n ];\n }\n private deselectDTE() : void {\n this.resetGraph();\n this.selectedDTE = null;\n this.pwhName = \"\";\n this.benoetigteVorlauftemperatur = 0;\n this.benoetigteVorlauftemperaturAbgesenkt = 0;\n }\n private resetGraph() : void {\n this.primaryYAxis = {\n minimum: 50, maximum: 90, interval: 5,\n title: this.langService.getString('LeistungsdiagrammYAxis_T', undefined, this.langService.getString('#Generic.Unit.DegreeCelsius_T'))\n };\n this.primaryXAxis = {\n minimum: 40, maximum: 120, interval: 5,\n title: this.langService.getString('LeistungsdiagrammXAxis_T', undefined, this.langService.getString('#Generic.Unit.LiterPerMinute_T'))\n };\n this.chartDataPWHAbgesenktBetriebspunkt = [{ Bedarfsvolumenstrom: 0, Vorlauftemperatur: 0 }];\n this.chartDataPWH60Betriebspunkt = [{ Bedarfsvolumenstrom: 0, Vorlauftemperatur: 0 }];\n this.chartDataPWHAbgesenkt = [{ Vorlauftemperatur: 0, Bedarfsvolumenstrom: 0 }];\n this.chartDataPWH60 = [{ Vorlauftemperatur: 0, Bedarfsvolumenstrom: 0 }];\n }\n\n // Button/Click Events\n public selectDte(type: \"40\" | \"70\" | \"100\", autoOptimizeSettings: boolean): void {\n if(this.selectedDTE != type){\n this.loadedDteIsInvalid = false;\n this.selectedDTE = type;\n\n const dteRow: DteRow = this.dteRows.find(d => d.Dte === this.selectedDTE);\n\n this.benoetigteVorlauftemperatur = this.dteMath.benoetigteVorlauftemperaturFromBedarfsvolumenstrom({\n dteRow,\n bedarfstemperaturPwh: 60,\n bedarfsvolumenstromLMin: this.bedarfsvolumenstrom,\n });\n\n if (autoOptimizeSettings)\n this.setOptimalDteValues(dteRow);\n\n this.pwhAbgesenkt = this.dteMath.pwhAbgesenktFromPwhC(Number(this.maxAbgesenkteTemperatur));\n this.vorlauftemperaturSliderMin = Math.ceil(this.benoetigteVorlauftemperatur);\n this.calculateValues();\n\n const dteParams: IDtePwhParams = this.dteMath.getDtePwhParams(dteRow, 60);\n this.bedarfsvolumenstromEffective = this.bedarfsvolumenstrom;\n this.chartDataBedarfsvolumenstrom = [\n { Vorlauftemperatur: 50, Bedarfsvolumenstrom: this.bedarfsvolumenstromEffective },\n { Vorlauftemperatur: 90, Bedarfsvolumenstrom: this.bedarfsvolumenstromEffective }\n ];\n }\n }\n public goBack() : void {\n window.history.back();\n }\n public navigateNext() : void {\n this.calculateValues();\n if(this.selectedProject.ProjectValues.Dte){\n if(this.selectedProject.SectionStates.Dte == SectionState.Set && this.selectedProject.ProjectValues.Dte.VorlauftemperaturInput === this.vorlauftemperatur && this.selectedProject.ProjectValues.Dte.VorlauftemperaturAbgesenktInput === this.maxAbgesenkteTemperatur && this.selectedProject.ProjectValues.Dte.Ergebnis == Number(this.selectedDTE)){\n this.selectedProject.SectionStates.Dte = SectionState.Set;\n this.DataService.saveCurrentProject()\n .then(_ => this.router.navigate([`/project-view/${this.selectedProject.ProjectId}`]));\n return;\n }\n this.selectedProject.ProjectValues.Dte.Vorlauftemperatur = this.dteMath.benoetigteVorlauftemperaturFromBedarfsvolumenstrom({\n bedarfsvolumenstromLMin: this.bedarfsvolumenstrom,\n bedarfstemperaturPwh: this.pwh60,\n dteRow: this.dteRows.find(d => d.Dte == this.selectedDTE)\n });\n this.selectedProject.ProjectValues.Dte.VorlauftemperaturInput = this.vorlauftemperatur;\n this.selectedProject.ProjectValues.Dte.VorlauftemperaturAbgesenktInput = this.maxAbgesenkteTemperatur;\n this.selectedProject.ProjectValues.Dte.VorlauftemperaturAbgesenkt = this.benoetigteVorlauftemperaturAbgesenkt;\n this.selectedProject.ProjectValues.Dte.PwhTemperatur = this.pwh60;\n this.selectedProject.ProjectValues.Dte.DruckverlustHpa = this.druckverlustHpaAbgesenkt;\n this.selectedProject.ProjectValues.Dte.DruckverlustZirkulationsstreckeHpa = this.druckverlustStreckeAbgesenkt;\n this.selectedProject.ProjectValues.Dte.DruckverlustGesamtHpa = this.druckverlustAbgesenktGesamt;\n this.selectedProject.ProjectValues.Dte.Ergebnis = Number(this.selectedDTE);\n this.selectedProject.ProjectValues.Dte.MesspunktePwh60 = this.chartDataPWH60;\n this.selectedProject.ProjectValues.Dte.TemperaturAbgesenktPwhc = this.maxAbgesenkteTemperatur;\n this.selectedProject.ProjectValues.Dte.DruckverlustNormalbetriebHpa = this.druckverlustHpa60;\n this.selectedProject.ProjectValues.Dte.DruckverlustZirkulationsstreckeNormalbetriebHpa = this.druckverlustStrecke60;\n this.selectedProject.ProjectValues.Dte.DruckverlustGesamtNormalbetriebHpa = this.druckverlust60Gesamt;\n this.selectedProject.ProjectValues.Dte.PwhTemperaturAbgesenkt = this.pwhAbgesenkt;\n this.selectedProject.ProjectValues.Dte.MesspunktePwhAbgesenkt = this.chartDataPWHAbgesenkt;\n this.selectedProject.ProjectValues.Dte.BetriebspunktPwh60 = this.betriebspunkt60;\n this.selectedProject.ProjectValues.Dte.BetriebspunktPwhAbgesenkt = this.betriebspunktAbgesenkt;\n this.selectedProject.ProjectValues.Dte.GraphBedarfsvolumenstromEffektiv = this.bedarfsvolumenstromEffective;\n } else {\n this.selectedProject.ProjectValues.Dte = {\n Vorlauftemperatur: this.dteMath.benoetigteVorlauftemperaturFromBedarfsvolumenstrom({\n bedarfsvolumenstromLMin: this.bedarfsvolumenstrom,\n bedarfstemperaturPwh: this.pwh60,\n dteRow: this.dteRows.find(d => d.Dte == this.selectedDTE)\n }),\n VorlauftemperaturInput: this.vorlauftemperatur,\n VorlauftemperaturAbgesenktInput: this.maxAbgesenkteTemperatur,\n VorlauftemperaturAbgesenkt: this.benoetigteVorlauftemperaturAbgesenkt,\n PwhTemperatur: this.pwh60,\n DruckverlustHpa: this.druckverlustHpaAbgesenkt,\n DruckverlustZirkulationsstreckeHpa: this.druckverlustStreckeAbgesenkt,\n DruckverlustGesamtHpa: this.druckverlustAbgesenktGesamt,\n Ergebnis: Number(this.selectedDTE),\n MesspunktePwh60: this.chartDataPWH60,\n TemperaturAbgesenktPwhc: this.maxAbgesenkteTemperatur,\n DruckverlustNormalbetriebHpa: this.druckverlustHpa60,\n DruckverlustZirkulationsstreckeNormalbetriebHpa: this.druckverlustStrecke60,\n DruckverlustGesamtNormalbetriebHpa: this.druckverlust60Gesamt,\n PwhTemperaturAbgesenkt: this.pwhAbgesenkt,\n MesspunktePwhAbgesenkt: this.chartDataPWHAbgesenkt,\n BetriebspunktPwh60: this.betriebspunkt60,\n BetriebspunktPwhAbgesenkt: this.betriebspunktAbgesenkt,\n GraphBedarfsvolumenstromEffektiv: this.bedarfsvolumenstromEffective\n };\n }\n\n this.selectedProject.ProjectValues.BedarfsvolumenstromEffektivLMin = this.bedarfsvolumenstromAbgesenkt;\n this.selectedProject.ProjectValues.VorlauftemperaturEffektiv = this.benoetigteVorlauftemperaturAbgesenkt;\n this.selectedProject.ProjectValues.BedarfstemperaturGrad = this.pwhAbgesenkt;\n this.selectedProject.ProjectValues.Dte.ZirkulationsverlustleistungBerechnetAbgesenktWatt = this.circulationFlowMath.verlustleistungAbgesenktFromVerlustleistung(\n 60,\n this.maxAbgesenkteTemperatur,\n this.selectedProject.ProjectValues.Zirkulationsvolumenstrom.ZirkulationsverlustleistungBerechnetWatt);\n\n this.selectedProject.SectionStates.Dte = SectionState.Set;\n\n if (this.selectedProject.SectionStates.Rohrauslegung === SectionState.Set) {\n this.selectedProject.SectionStates.Rohrauslegung = SectionState.Check;\n }\n\n if(this.selectedProject.SectionStates.Ufc == SectionState.Set)\n this.selectedProject.SectionStates.Ufc = SectionState.Check;\n\n\n if(this.selectedProject.SectionStates.BuildingTypeWarmwasserStates){\n this.selectedProject.SectionStates.BuildingTypeWarmwasserStates.forEach(b => {\n if(b.Value == SectionState.Set){\n b.Value = SectionState.Check;\n }\n });\n }\n\n if (this.selectedProject.SectionStates.Energiespeicher === SectionState.Set) {\n this.selectedProject.SectionStates.Energiespeicher = SectionState.Check;\n }\n\n this.DataService.saveCurrentProject()\n .then(_ => this.router.navigate([`/project-view/${this.selectedProject.ProjectId}`]));\n }\n\n // Change Events\n public onChangeSlider(args: EventArgs): void {\n // if(args && !args.isInteracted){\n // return;\n // }\n\n // Recalculate\n this.calculateValues();\n }\n\n private selectRecommendedDte(): void\n {\n // Get available DTEs for configuration\n this.DTEAvailable = this.dteMath.dtesFromBedarfsvolumenstromForAbgesenkt(this.bedarfsvolumenstrom, { dteRows: this.dteRows });\n if (this.DTEAvailable && this.DTEAvailable.length > 0) {\n // Get recommended DTE\n this.recommendedDTE = this.dteMath.recommendedDteForAbgesenkt({\n bedarfstemperaturPwh: 60,\n bedarfsvolumenStromLMin: this.bedarfsvolumenstrom,\n dteRows: this.dteRows\n });\n\n // Select recommended DTE if available\n if (this.recommendedDTE) {\n this.selectDte(this.recommendedDTE.Dte as \"40\" | \"70\" | \"100\", true);\n } else {\n this.deselectDTE();\n }\n } else {\n this.deselectDTE();\n }\n }\n\n private setOptimalDteValues(dteRow: DteRow): void\n {\n this.maxAbgesenkteTemperatur = this.dteMath.optimalPwhC(dteRow, this.bedarfsvolumenstrom);\n this.vorlauftemperatur = Math.ceil(this.benoetigteVorlauftemperatur);\n }\n\n // Validation Methods\n public isDteDisabled(dte: string) : boolean {\n if (this.DTEAvailable && this.DTEAvailable.length > 0) {\n return !this.DTEAvailable.some(x => x.dte == dte)\n }\n return true;\n }\n\n // Value Formatters\n public getDteName() : string {\n return this.formatter.formatDteName(this.selectedDTE);\n }\n public getVorlauftemperatur() : string {\n return this.formatter.formatNumber(this.vorlauftemperatur, 'DegreeCelsius')\n }\n public getPwh(): string {\n return this.formatter.formatNumber(this.pwh60, 'DegreeCelsius')\n }\n public getBedarfsvolumenstrom() : string {\n return this.formatter.formatNumber(Number(this.bedarfsvolumenstrom), 'LiterPerMinute', {maximumFractionDigits: 0})\n }\n public getMaxAbgesenkteTemperatur() : string {\n return this.formatter.formatNumber(Number(this.maxAbgesenkteTemperatur), 'DegreeCelsius')\n }\n public getPwhAbgesenkt() : string {\n return this.formatter.formatNumber(Number(this.pwhAbgesenkt), 'DegreeCelsius', { maximumFractionDigits: 0 });\n }\n public getPwhAbgesenktChart() : string{\n return this.formatter.formatNumber(Number(this.pwhAbgesenkt), null, {maximumFractionDigits: 0})\n }\n public getBedarfsvolumenstromAbgesenkt(){\n return this.formatter.formatNumber(Number(this.bedarfsvolumenstromAbgesenkt), 'LiterPerMinute', { maximumFractionDigits: 0 });\n }\n public isBedarfsvolumenstromValid(){\n return !this.selectedDteInfo || this.bedarfsvolumenstromAbgesenkt <= this.selectedDteInfo.MaxBedarfsvolumenstromLMin;\n }\n public getVorlaufErgebnis(){\n if(this.selectedDTE){\n return this.formatter.formatNumber(Math.ceil(Number(this.benoetigteVorlauftemperatur)), 'DegreeCelsius', { maximumFractionDigits: 0 });\n }\n\n return \"-\"\n }\n public getVorlaufAbgesenktErgebnis(){\n if (this.selectedDTE) {\n return this.formatter.formatNumber(Math.ceil(Number(this.benoetigteVorlauftemperaturAbgesenkt)), 'DegreeCelsius', { maximumFractionDigits: 0 });\n }\n\n return \"-\"\n }\n public getDruckverlustStrecke() : string {\n return this.formatter.formatNumber(this.druckverlustStrecke60, 'HektopascalInBar', { maximumFractionDigits: 0 });\n }\n public getDruckverlustGesamt() : string {\n return this.formatter.formatNumber(this.druckverlust60Gesamt, 'HektopascalInBar', { maximumFractionDigits: 0 });\n }\n public getDruckverlustStreckeAbgesenkt() : string {\n return this.formatter.formatNumber(this.druckverlustStreckeAbgesenkt, 'HektopascalInBar', { maximumFractionDigits: 0 });\n }\n public getDruckverlustGesamtAbgesenkt() : string {\n return this.formatter.formatNumber(this.druckverlustAbgesenktGesamt, 'HektopascalInBar', { maximumFractionDigits: 0 });\n }\n public getDte40Btn(): string{\n return this.formatter.formatDteName('40')\n }\n public getDte70Btn(): string{\n return this.formatter.formatDteName('70')\n }\n public getDte100Btn(): string{\n return this.formatter.formatDteName('100')\n }\n public getPwh60(): string{\n return this.formatter.formatNumber(60, 'DegreeCelsius')\n }\n\n\n // DTE Button Style Setter\n private selectDte40() : void {\n var dte40 = document.getElementById('dte40');\n var dte70 = document.getElementById('dte70');\n var dte100 = document.getElementById('dte100');\n dte40.classList.add('dteButtonFocused');\n dte70.classList.remove('dteButtonFocused');\n dte100.classList.remove('dteButtonFocused');\n }\n private selectDte70() : void {\n var dte70 = document.getElementById('dte70');\n var dte40 = document.getElementById('dte40');\n var dte100 = document.getElementById('dte100');\n dte70.classList.add('dteButtonFocused');\n dte40.classList.remove('dteButtonFocused');\n dte100.classList.remove('dteButtonFocused');\n }\n private selectDte100() : void {\n var dte100 = document.getElementById('dte100');\n var dte40 = document.getElementById('dte40');\n var dte70 = document.getElementById('dte70');\n dte100.classList.add('dteButtonFocused');\n dte70.classList.remove('dteButtonFocused');\n dte40.classList.remove('dteButtonFocused');\n }\n private selectDteNone() : void {\n var dte100 = document.getElementById('dte100');\n var dte40 = document.getElementById('dte40');\n var dte70 = document.getElementById('dte70');\n dte100.classList.remove('dteButtonFocused');\n dte70.classList.remove('dteButtonFocused');\n dte40.classList.remove('dteButtonFocused');\n }\n}\n\n\n","\n \n
      \n\n \n \n\n
      \n
      \n
      \n

      \n  \n

      \n
      \n
      \n
      \n
      \n
      \n {{'PanelHeadline60Pwh_T' | translate}}\n \n
      \n
      \n
      \n
      \n {{'TemperaturPwh_T' | translate}}\n
      \n
      \n {{getPwh()}}\n
      \n
      \n
      \n
      \n {{'Bedarfsvolumenstrom_T' | translate}}\n
      \n
      \n {{getBedarfsvolumenstrom()}}\n
      \n
      \n
      \n
      \n {{'BenoetigteVorlauftemperatur_T' | translate}}\n
      \n
      \n \n {{getVorlaufErgebnis()}}\n \n
      \n
      \n
      \n
      \n {{'DruckverlustStrecke_T' | translate}}\n
      \n
      \n {{getDruckverlustStrecke()}}\n -\n
      \n
      \n
      \n
      \n {{'DruckverlustGesamt_T' | translate}}\n
      \n
      \n {{getDruckverlustGesamt()}}\n -\n
      \n
      \n
      \n
      \n {{'PanelHeadlinePwhAbgesenkt_T' | translate: getPwhAbgesenkt()}}\n \n
      \n
      \n
      \n
      \n {{'TemperaturPwhAbgesenkt_T' | translate}}\n
      \n
      \n {{getPwhAbgesenkt()}}\n
      \n
      \n
      \n
      \n {{'BedarfsvolumenstromAbgesenkt_T' | translate}}\n
      \n
      \n {{getBedarfsvolumenstromAbgesenkt()}}\n -\n
      \n
      \n
      \n
      \n {{'BenoetigteVorlauftemperaturAbgesenkt_T' | translate}}\n
      \n
      \n \n {{getVorlaufAbgesenktErgebnis()}}\n \n
      \n
      \n
      \n
      \n {{'DruckverlustStreckeAbgesenkt_T' | translate}}\n
      \n
      \n {{getDruckverlustStreckeAbgesenkt()}}\n -\n
      \n
      \n
      \n
      \n {{'DruckverlustGesamtAbgesenkt_T' | translate}}\n
      \n
      \n {{getDruckverlustGesamtAbgesenkt()}}\n -\n
      \n
      \n
      \n
      \n
      \n
      \n
      \n

      \n {{'ErrorGeringeVorlauftemperatur_D' | translate}}

      \n
      \n
      \n

      \n {{'ErrorBedarfsvolumenstrom_D' | translate}}

      \n
      \n\n\n
      \n {{'Result_T' | translate}}\n {{getDteName()}}\n -\n {{'UebernehmenBtn_T' | translate}}\n
      \n
      \n
      \n\n
      \n
      \n
      \n
      \n

      {{'Headline_T' | translate}}

      \n \n
      \n
      \n \n
      \n
      \n
      \n
      \n {{'VorlauftemperaturSlider_T' | translate}}\n
      \n
      \n \n
      \n \n {{'#Generic.Unit.DegreeCelsius_T' | translate}}\n
      \n 0\" class=\"radioButtonText\" style=\"margin-left: 1em; white-space:nowrap;\">{{'VorlaufTemperatur_T' | translate: getVorlaufErgebnis()}}\n {{'BenVorlaufTemperaturNull_T' | translate}}\n
      \n
      \n\n
      \n
      \n {{'AbgesenkteTemperaturSlider_T' | translate}}\n
      \n \n \n {{'#Generic.Unit.DegreeCelsius_T' | translate}}\n
      \n
      \n 0\" class=\"radioButtonText\" style=\"margin-left: 1em;\">{{'VorlauftemperaturAbgesenkt_T' | translate: getVorlaufAbgesenktErgebnis()}}\n {{'BenVorlaufTemperaturAbgesenktNull_T' | translate}}\n
      \n\n
      \n {{'TemperaturPwhAbgesenktInline_T' | translate: getPwhAbgesenkt()}}\n
      \n\n
      \n {{'AnforderungenPruefen_SD' | translate}}\n \n
      \n
      \n\n\n
      \n
      \n\n
      \n\n
      \n
      \n {{'AuswahlDteHeadline_T' | translate}}\n \n
      \n
      \n \n \n \n
      \n
      \n\n
      \n
      \n {{'LeistungsdiagrammHeadline_T' | translate}}\n \n
      \n
      \n \n \n \n \n \n \n \n \n \n
      \n
      \n\n
      \n
      \n","import { Pipe, PipeTransform, InjectionToken } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { LangService } from 'src/core-lib/ej2/services/LangService';\n\n/**\n * Takes a translation label key and resolves it to the respective localized value using LangService.\n *\n * This pipe is also aware of some commonly used suffixes:\n * - \"_LT\" and \"_D\" - new lines will be replaced by
      \n * - \"_UnsafeHtml\" - will bypass html sanitization for the value.\n *\n * Pass further parameters to this pipe to replace argument {0}, {1}... occurences with the given value.\n */\n@Pipe({\n name: 'translate',\n pure: true,\n})\nexport class TranslatePipe implements PipeTransform\n{\n constructor(\n private lang: LangService,\n private sanitizer: DomSanitizer\n ) {}\n\n public transform(key: string, ...replaceValues: string[]): string | SafeHtml\n {\n let translation: string | SafeHtml = this.lang.getString(key, undefined, ...replaceValues);\n\n if (key.indexOf('_LT') !== -1 || key.indexOf('_D') !== -1)\n translation = (translation as string).replace(/\\n/g, '
      ');\n\n if (key.indexOf('_UnsafeHtml') !== -1)\n translation = this.sanitizer.bypassSecurityTrustHtml(translation as string);\n\n return translation;\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { AggregatorDataService } from 'src/app/core/AggregatorDataService';\nimport { ProjectEntity } from 'src/app/core/BackendApi/projectentity.entity';\nimport { Energielabel, EnergiespeicherErmittlungstyp } from 'src/app/core/Enums';\nimport { ProjectDataService } from 'src/app/core/project-data.service';\nimport { provideContext } from 'src/core-lib/angular/context-util';\nimport { LangService } from 'src/core-lib/ej2/services/LangService';\n\n@Component({\n selector: 'app-select-calculation-reservoir',\n templateUrl: './select-calculation-reservoir.component.html',\n styleUrls: ['./select-calculation-reservoir.component.scss'],\n providers: [provideContext('SelectCalculationReservoir')]\n})\n//Hier fehlt noch das Daten speichern beim navigateNext\nexport class SelectCalculationReservoirComponent implements OnInit {\n\n stepText = this.langService.getString('StepText_T');\n stepBack = this.langService.getString('StepBack_T');\n\n checkedOption: number;\n\n ermittlungsTyp: string; //TODO; Enum???\n\n selectedProject: ProjectEntity;\n\n grobImage;\n exaktImage;\n\n constructor(\n private activatedRoute: ActivatedRoute,\n private readonly router: Router,\n private dataService: ProjectDataService,\n private aggregatorService: AggregatorDataService,\n private langService: LangService\n ) { }\n\n ngOnInit(): void {\n this.selectedProject = this.activatedRoute.snapshot.data['project'];\n this.dataService.setTempProject(this.selectedProject)\n this.selectedProject = this.dataService.TempProject;\n\n this.grobImage = this.aggregatorService.aggregatorData.Tables.ImageAssetRows.find(x => x.ImageId == \"Speicher.Grobermittlung\").ImageUrlLoc;\n this.exaktImage = this.aggregatorService.aggregatorData.Tables.ImageAssetRows.find(x => x.ImageId ==\"Speicher.Detailermittlung\").ImageUrlLoc;\n\n if(this.selectedProject.ProjectValues.Energiespeicher){\n if (this.selectedProject.ProjectValues.Energiespeicher.Ermittlungstyp == EnergiespeicherErmittlungstyp.Grob) {\n this.checkedOption = 1;\n }\n else if (this.selectedProject.ProjectValues.Energiespeicher.Ermittlungstyp = EnergiespeicherErmittlungstyp.Exakt) {\n this.checkedOption = 2;\n }\n }\n else{\n this.selectedProject.ProjectValues.Energiespeicher = {\n Ermittlungstyp: EnergiespeicherErmittlungstyp.None,\n Energielabel: null,\n MinutenwerteEnergiebedarf: null,\n MinutenwerteEnergiebedarfAbgesenkt: null,\n MinutenwerteQStoOn: null,\n MinutenwerteQStoOnAbgesenkt: null,\n MinutenwerteVersorgung: null,\n MinutenwerteVersorgungAbgesenkt: null\n }\n this.checkedOption = 1;\n }\n\n }\n\n goBack() {\n window.history.back();\n }\n\n onChangeOption(option: number){\n this.checkedOption = option;\n }\n\n navigateNext(){\n if(this.checkedOption === 1){\n this.router.navigate([`/heat-generator-power/${this.selectedProject.ProjectId}`]);\n }\n else{\n this.router.navigate([`/heat-generating-types/${this.selectedProject.ProjectId}`]);\n }\n }\n}\n","\n
      \n
      \n \n \n
      \n
      \n
      \n \n
      \n
      \n
      \n\n
      \n {{'Headline_T' | translate}}\n\n
      \n
      \n \n
      \n
      \n \n
      \n
      \n\n\n\n
      \n
      \n\n","import { Injectable } from '@angular/core';\nimport { PipeSpecRow } from '../DteufcAggregatorServiceApi/pipespecrow.complex';\nimport { PipeSystemRow } from '../DteufcAggregatorServiceApi/pipesystemrow.complex';\nimport { MathLogger } from './MathLogger';\n\nexport interface IDimensioningParams\n{\n /** VolumetricFlowLMin */\n volumenstromLMin: number;\n /** Temperature */\n temperatur: number;\n /** PipeLengthMeters */\n rohrlaengeMeter: number;\n /** PipeBends */\n anzahlBoegen: number;\n /** AdditionalPressureLoss */\n zusaetzlicherDruckverlust: number;\n\n pipeSystem: PipeSystemRow;\n pipeSpecs: PipeSpecRow[];\n}\n\nexport interface IRohrdimensionFromAuslegungsparameterResults\n{\n nennweite: number;\n druckverlustHpa: number;\n}\n\nexport interface IDruckverlustGesamtParams\n{\n druckverlustHpaVorlauf: number;\n druckverlustHpaRlMitte: number;\n druckverlustHpaRlUnten: number;\n}\n\ninterface IPipeDiameterPrecalc\n{\n volumenstromLs: number;\n dichte: number;\n kinViskositaet: number;\n rohrrauhigkeit: number;\n deltaPProLeitung: number;\n rGesProLeitung: number;\n}\n\n/**\n * Pipe diameter (Rohrdurchmesser) related mathematic functions.\n *\n * Sources of mathematical formulas:\n * - DTE Auslegung Rohrleitung 2-10_2022-01-11.xlsx\n *\n * Stefan.Grote@viega.de\n */\n@Injectable()\nexport class PipeDiameterMath\n{\n /** deltaPPreset */\n private static readonly deltaPVorgabe = 150.0;\n /** lambdaIterationCount */\n private static readonly lambdaIterationen = 10;\n\n private static readonly maxRohrgefaelleHpaMeter = 10;\n private static readonly maxGeschwindigkeitMeterSekunde = 1.7;\n\n private mathLogger: MathLogger;\n\n public constructor()\n {\n this.mathLogger = new MathLogger('Rohrdimension');\n }\n\n /** pipeDiameterFromDimensioningParams */\n public rohrdimensionFromAuslegungsparameter(params: IDimensioningParams): IRohrdimensionFromAuslegungsparameterResults\n {\n const constants = {\n deltaPVorgabe: PipeDiameterMath.deltaPVorgabe,\n maxRohrgefaelleHpaMeter: PipeDiameterMath.maxRohrgefaelleHpaMeter,\n maxGeschwindigkeitMeterSekunde: PipeDiameterMath.maxGeschwindigkeitMeterSekunde,\n };\n this.mathLogger.logInputs(Object.assign({}, params, constants));\n\n if (params.rohrlaengeMeter == 0)\n {\n const result: IRohrdimensionFromAuslegungsparameterResults =\n {\n druckverlustHpa: 0,\n nennweite: null\n };\n this.mathLogger.logResult(result);\n\n return result;\n }\n\n const deltaPProLeitung = PipeDiameterMath.deltaPVorgabe / 2 - params.zusaetzlicherDruckverlust;\n let preCalcResults: IPipeDiameterPrecalc =\n {\n volumenstromLs: params.volumenstromLMin / 60,\n dichte: 1 / (1 + Math.pow(Math.abs((params.temperatur - 4) / 582), 1.74)) * 1000,\n kinViskositaet: (0.073 + Math.pow((0.7625 + params.temperatur / 73.3), -2)) / 1000000,\n rohrrauhigkeit: params.pipeSystem.Rohrrauhigkeit,\n deltaPProLeitung: deltaPProLeitung,\n rGesProLeitung: deltaPProLeitung / params.rohrlaengeMeter,\n };\n this.mathLogger.logIntermediateResult(preCalcResults);\n\n const result: IRohrdimensionFromAuslegungsparameterResults = this.rohrdimensionAndDruckverlust(params, preCalcResults);\n this.mathLogger.logResult(result);\n\n return result;\n }\n\n private rohrdimensionAndDruckverlust(\n params: IDimensioningParams,\n preCalcResults: IPipeDiameterPrecalc\n ): IRohrdimensionFromAuslegungsparameterResults | null\n {\n const rohrEigenschaften: PipeSpecRow[] =\n params.pipeSpecs.filter(row => row.PipeSystemId === params.pipeSystem.PipeSystemId).sort((a, b) => a.NennweiteDN - b.NennweiteDN);\n\n this.mathLogger.logIntermediateResult({ IterierbareRohrEigenschaften: rohrEigenschaften });\n\n const druckverlustVerfuegbar = PipeDiameterMath.deltaPVorgabe / 2;\n this.mathLogger.logIntermediateResult({ druckverlustVerfuegbar });\n\n for (const rohrDimEigenschaften of rohrEigenschaften)\n {\n this.mathLogger.logIntermediateResult({ fuerDN: rohrDimEigenschaften.NennweiteDN });\n\n const rohrDi = (rohrDimEigenschaften.Aussendurchmesser - 2 * rohrDimEigenschaften.Wandstaerke) / 1000;\n this.mathLogger.logIntermediateResult({ rohrDi: rohrDi });\n\n const geschwindigkeitMeterSek = 4 * (preCalcResults.volumenstromLs / 1000) / (Math.pow(rohrDi, 2) * Math.PI);\n this.mathLogger.logIntermediateResult({ geschwindigkeitMeterSek: geschwindigkeitMeterSek });\n\n // not required?\n this.mathLogger.logIntermediateResult({ reynoldszahlUnused: geschwindigkeitMeterSek * rohrDi / preCalcResults.kinViskositaet });\n\n const reibungswert = this.reibungswert(preCalcResults, rohrDi, geschwindigkeitMeterSek);\n this.mathLogger.logIntermediateResult({ reibungswert });\n\n const druckverlustRohrMeter = reibungswert / rohrDi * Math.pow(geschwindigkeitMeterSek, 2) * preCalcResults.dichte / 2 / 100;\n this.mathLogger.logIntermediateResult({ druckverlustRohrMeter });\n\n // check for matching nennweite\n if (\n geschwindigkeitMeterSek > PipeDiameterMath.maxGeschwindigkeitMeterSekunde ||\n druckverlustRohrMeter > PipeDiameterMath.maxRohrgefaelleHpaMeter\n )\n continue;\n\n const deltaPRhpA = params.rohrlaengeMeter * druckverlustRohrMeter;\n this.mathLogger.logIntermediateResult({ deltaPRhpA });\n\n const zBogen = params.anzahlBoegen * rohrDimEigenschaften.ZetaBogen90 * Math.pow(geschwindigkeitMeterSek, 2) * preCalcResults.dichte / 2 / 100;\n this.mathLogger.logIntermediateResult({ zBogen });\n\n const deltaPGesamtProLeitung = deltaPRhpA + zBogen + params.zusaetzlicherDruckverlust;\n this.mathLogger.logIntermediateResult({ deltaPGesamtProLeitung });\n\n // check for matching nennweite\n if (deltaPGesamtProLeitung < druckverlustVerfuegbar)\n return { nennweite: rohrDimEigenschaften.NennweiteDN, druckverlustHpa: deltaPGesamtProLeitung };\n };\n\n return null;\n }\n\n private reibungswert(\n preCalcResults: IPipeDiameterPrecalc,\n rohrDi: number,\n geschwindigkeitMeterSek: number\n ): number\n {\n let reibungswert = 0;\n for (let i = 0; i < PipeDiameterMath.lambdaIterationen; i++)\n {\n const z1 = (3.71 * (rohrDi * 1000));\n const z2 = (geschwindigkeitMeterSek * rohrDi / preCalcResults.kinViskositaet);\n const z3 = z2 * (0.0000000000001 + Math.sqrt(reibungswert));\n reibungswert = Math.pow(1 / (-2 * Math.log10(preCalcResults.rohrrauhigkeit / z1 + 2.51 / z3)), 2);\n }\n\n return reibungswert;\n }\n\n public druckverlustGesamt(params: IDruckverlustGesamtParams): number\n {\n const mathLogger = new MathLogger('DruckverlustGesamt');\n mathLogger.logInputs(params);\n\n const result = Math.max(params.druckverlustHpaVorlauf + params.druckverlustHpaRlMitte, params.druckverlustHpaVorlauf + params.druckverlustHpaRlUnten);\n mathLogger.logResult(result);\n return result;\n }\n}\n","import { Injectable } from \"@angular/core\";\nimport { ActivatedRouteSnapshot, Resolve, Router } from \"@angular/router\";\nimport { ProjectEntity } from \"./BackendApi/projectentity.entity\";\nimport { ProjectDataService } from \"./project-data.service\";\n\n@Injectable({providedIn: 'root'})\nexport class ProjectResolver implements Resolve {\n // Constructors\n constructor(\n private readonly router: Router,\n private DataService: ProjectDataService\n ){ } \n \n // Methods\n public resolve(ars: ActivatedRouteSnapshot): Promise {\n return this.DataService.selectProject(ars.paramMap.get('id'))\n .then(project => {\n if(project == null){\n throw new Error(`No project found for given id: ${ars.paramMap.get('id')}`)\n }\n return project;\n }).catch(e => {\n console.error(e);\n this.router.navigate(['/home']);\n return null;\n });\n }\n}","import { NgModule } from '@angular/core';\nimport { VarDirective } from './directives/local-var/loval-var.directive';\nimport { StringReplacePipe } from './pipes/string-replace.pipe';\nimport { TranslatePipe } from './pipes/translate.pipe';\nimport { TrustHtmlPipe } from './pipes/trust-html.pipe';\n\n@NgModule({\n declarations:\n [\n TrustHtmlPipe,\n StringReplacePipe,\n TranslatePipe,\n VarDirective,\n ],\n imports: [],\n providers: [],\n exports:\n [\n StringReplacePipe,\n TrustHtmlPipe,\n TranslatePipe,\n VarDirective,\n ],\n})\nexport class CoreLibModule {}\n","import { NgModule } from '@angular/core';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { DemandVolumetricFlowOtherComponent } from './demand-volumetric-flow-other.component';\n\n\n\n@NgModule({\n declarations: [\n DemandVolumetricFlowOtherComponent\n ],\n imports: [\n SharedModule\n ]\n})\nexport class DemandVolumetricFlowOtherModule { }\n","import { Injectable } from '@angular/core';\nimport { NumberFormatOptions } from '@syncfusion/ej2-base';\nimport { LangService } from 'src/core-lib/ej2/services/LangService';\n\nexport type UnitTypes =\n 'DegreeCelsius' | // x °C\n 'Liter' | // x Liter\n 'LiterShort' | // x l\n 'LiterPerDay' | // x l/Tag\n 'LiterPerSecond'| // x l/s\n 'LiterPerMinute' | // x l/min\n 'LiterPerHour' | // x l/h\n 'Minutes' | // x min\n 'Percent' | // x %\n 'Centimeter' | // x cm\n 'KiloWatts' | // x kW\n 'Watts' | // x W\n 'Hektopascal' | // x hPa\n 'DiameterNominal' | // DN x\n 'WattsPerMinute' | // x W/m\n 'HektopascalInBar'| // hPa (mbar)\n 'Hektopascal'; // hPa\n\n@Injectable()\nexport class ValueFormatterService\n{\n constructor(\n private langService: LangService\n ) {}\n\n public formatNumber(value: number, unit?: UnitTypes, options?: NumberFormatOptions, ceilValue: boolean = false): string\n {\n // If desired, make sure to always round up before calling the langService.FormatNumber method as it will otherwise round normally\n if(ceilValue) {\n /* Select default decimals the same way as the called method:\n * \"Der Standardwert für einfache Zahlen ist die größere Zahl von minimumFractionDigits und 3\"\n * -> https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat\n */\n var decimals = options?.maximumFractionDigits ?? (Math.max(3, options?.minimumFractionDigits ?? 0));\n if(decimals == 0) {\n value = Math.ceil(value); // Ceil to next integer\n } else if(decimals > 0){\n let power = Math.pow(10, decimals); // Determine how many places to move the decimal seperator up\n value = Math.ceil(value * power) / power; // Ceil the scaled up value and move the decimal seperator back down\n }\n }\n\n // Format number string from value\n let formattedNumber: string = this.langService.formatNumber(value, options);\n if (unit)\n formattedNumber = this.langService.getString('#Generic.UnitFormats.' + unit).replace('{0}', formattedNumber);\n\n return formattedNumber;\n }\n\n public formatDteName(dte: '40' | '70' | '100' | string): string\n {\n return this.langService.getString('#Generic.ProductNameFormats.Dte').replace('{0}', dte);\n }\n\n public formatUfcName(ufc: '40' | '70' | '100' | string): string\n {\n return this.langService.getString('#Generic.ProductNameFormats.Ufc').replace('{0}', ufc);\n }\n}\n","import { Ajax, Internationalization, L10n, loadCldr, NumberFormatOptions, setCulture, setCurrencyCode } from '@syncfusion/ej2-base';\nimport { parse } from 'jsonc-parser';\nimport { log } from 'src/core-lib/logging';\nimport { environment } from 'src/environments/environment';\nimport { PimStatic } from '../utils/PimStatic';\nimport { ServiceStatic } from '../utils/ServiceStatic';\n\nimport * as n1 from 'cldr-data/main/de/currencies.json'\nimport * as n2 from 'cldr-data/main/de/timeZoneNames.json';\nimport * as n3 from 'cldr-data/main/de/numbers.json';\nimport * as n4 from 'cldr-data/main/de/ca-gregorian.json';\nimport * as s from 'cldr-data/supplemental/currencyData.json';\nimport * as s2 from 'cldr-data/supplemental/numberingSystems.json';\n\nimport * as EJ2_LOCALE_DE from '@syncfusion/ej2-locale/src/de.json';\nimport * as EJ2_LOCALE_ENUS from '@syncfusion/ej2-locale/src/en-US.json';\nimport * as EJ2_LOCALE_ENGB from '@syncfusion/ej2-locale/src/en-GB.json';\n\nimport { localization as gridLocalization } from '../components/lists-tables/grid/localization';\nimport { localization as inputsLocalization } from '../components/inputs/localization';\nimport { localization as listboxLocalization } from '../components/lists-tables/listbox/localization';\nimport { localization as buttonsLocalization } from '../components/buttons/localization';\nimport { localization as otherLocalization } from '../components/other/localization';\nimport { Inject, Injectable } from '@angular/core';\nimport { COMPONENT_CONTEXT } from 'src/core-lib/angular/constants';\n\nexport interface ITranslationLabel {\n ContextDescription: string;\n}\n\n/**\n * This service supports context based components.\n * The context (key prefix) can be configured by injecting the COMPONENT_CONTEXT symbol with the respective key prefix\n * aswell as an instance of this service.\n *\n * Label keys passed to getString will be automatically prefixed with the current context unless the key is prefixed\n * with a sharp #.\n */\n@Injectable()\nexport class LangService\n{\n /**\n * identity regex => locale map.\n */\n private static readonly identityToLocaleMappings =\n {\n 'VIEGA\\\\': 'de-DE',\n 'AMERICAS\\\\': 'en-US',\n };\n\n /**\n * Browser locale => psp locale map.\n */\n private static readonly browserLocaleMappings =\n {\n 'de': 'de-DE',\n 'en': 'en-US',\n 'de-DE': 'de-DE',\n 'en-US': 'en-US',\n 'en-GB': 'en-GB'\n };\n\n private static readonly pspLocaleValidationRegex = new RegExp('^[a-z]{2}\\-([A-Z]{2}|X\\-[A-Z]+)$');\n\n private static labelDataCache: { [locale: string]: {} } = {};\n private static labelDataReceivePromises: { [locale: string]: Promise } = {};\n private static _currentLocale: string;\n\n /** The effective flattened label data for the current language. */\n private static currentLangLabelData: {};\n\n private static isSyncfusionInitialized: boolean = false;\n private static internationalization: Internationalization;\n\n public get currentLocale(): string | undefined\n {\n return LangService._currentLocale;\n }\n\n /**\n * Whether language data has been loaded and whether the language was set.\n */\n public get isLangDataLoaded(): boolean\n {\n return LangService.currentLangLabelData !== undefined &&\n LangService.labelDataCache[PimStatic.BaseLocale] !== undefined &&\n LangService.labelDataCache[LangService._currentLocale] !== undefined;\n }\n\n public constructor(\n @Inject(COMPONENT_CONTEXT)\n private context: string = ''\n ) {}\n\n /**\n * Changes the current language.\n * Receives language files from the backend if not available yet.\n */\n public setLanguage(locale: string): Promise\n {\n const isBaseAvailable = LangService.labelDataCache[PimStatic.BaseLocale] !== undefined;\n const isLocaleAvailable = LangService.labelDataCache[locale] !== undefined;\n\n let retrievePromise: Promise = Promise.resolve();\n if (!isBaseAvailable)\n retrievePromise = this.retrieveLabelFile(PimStatic.BaseLocale);\n if (!isLocaleAvailable)\n retrievePromise = Promise.all([retrievePromise, this.retrieveLabelFile(locale)]);\n\n return retrievePromise.then(() =>\n {\n const baseLabelData = LangService.labelDataCache[PimStatic.BaseLocale];\n const localeLabelData = LangService.labelDataCache[locale];\n LangService.currentLangLabelData = {};\n\n Object.assign(LangService.currentLangLabelData, baseLabelData, localeLabelData);\n this.setLanguageDirect(locale);\n })\n .catch();\n }\n\n public setLanguageDirect(locale: string): void\n {\n LangService._currentLocale = locale;\n LangService.currentLangLabelData = LangService.currentLangLabelData || {};\n this.applyHtmlLangAttribute(locale);\n\n this.setSyncfusionLocale(locale);\n\n log.debug({ locale }, `Successfully set language to \"${locale}\".`);\n }\n\n public setSyncfusionLocale(locale: string)\n {\n if (!LangService.isSyncfusionInitialized)\n {\n loadCldr(\n n1['default'],\n n2['default'],\n n3['default'],\n n4['default'],\n s['default'],\n s2['default']\n );\n\n L10n.load({\n de: EJ2_LOCALE_DE.de,\n 'en-US': EJ2_LOCALE_ENUS['en-US'],\n 'en-GB': EJ2_LOCALE_ENGB['en-GB']\n });\n L10n.load(gridLocalization);\n L10n.load(inputsLocalization);\n L10n.load(listboxLocalization);\n L10n.load(buttonsLocalization);\n L10n.load(otherLocalization);\n\n LangService.isSyncfusionInitialized = true;\n }\n\n const sfCulture = locale === 'de-DE' ? 'de' : locale;\n setCulture(sfCulture);\n setCurrencyCode(locale === 'en-US' ? 'USD' : 'EUR');\n LangService.internationalization = new Internationalization(sfCulture);\n }\n\n /**\n * Tries to get the locale that is most desired by the user.\n *\n * It is determined by the following attempts in order:\n * - If a \"locale\" query parameter exists and is a valid locale, then its value is taken as the locale.\n * - If the current identity contains a domain root, an attempt is made to map it into a valid locale.\n * - If the browser provides locale information, then the browser locale is used.\n * - PimStatic.FallbackLocale is used.\n */\n public getDesiredLocale(currentIdentity?: string): { result: string, mappedBy: 'query-param' | 'identity' | 'browser' | 'fallback' }\n {\n const queryParams = new URLSearchParams(window.location.search);\n const localeFromQuery = queryParams.get('locale');\n\n if (LangService.pspLocaleValidationRegex.test(localeFromQuery))\n return { result: localeFromQuery, mappedBy: 'query-param' };\n\n if (currentIdentity)\n {\n let localeFromIdentity = null;\n Object.keys(LangService.identityToLocaleMappings).some(regex =>\n {\n if (new RegExp(regex).test(currentIdentity))\n {\n localeFromIdentity = LangService.identityToLocaleMappings[regex];\n return true;\n }\n\n return false;\n });\n\n if (localeFromIdentity)\n return { result: localeFromIdentity, mappedBy: 'identity' };\n }\n\n const browserLocale: string = navigator.language || navigator['userLanguage'];\n if (browserLocale && LangService.browserLocaleMappings[browserLocale])\n return { result: LangService.browserLocaleMappings[browserLocale], mappedBy: 'browser' };\n\n return { result: PimStatic.FallbackLocale, mappedBy: 'fallback' };\n }\n\n private retrieveLabelFile(locale: string): Promise\n {\n if (LangService.labelDataReceivePromises[locale])\n return LangService.labelDataReceivePromises[locale];\n\n const endpointRoute = environment.backendRootUrl + ServiceStatic.labelAssetEndpoint.replace('{0}', locale);\n\n const request = new Ajax(endpointRoute, 'GET');\n LangService.labelDataReceivePromises[locale] = request.send()\n .then((responseData: any) =>\n {\n const flattenedLabelData = {};\n const labelData: {} = this.parseLabelData(responseData, locale);\n this.flattenLabelData(labelData, flattenedLabelData);\n LangService.labelDataCache[locale] = flattenedLabelData;\n\n log.debug({ locale }, 'Successfully received label file from backend.');\n delete LangService.labelDataReceivePromises[locale];\n })\n .catch((error: Error) =>\n {\n log.fatal({ error: error.message }, 'Failed to receive label data from backend.');\n return Promise.reject(error);\n });\n\n return LangService.labelDataReceivePromises[locale];\n }\n\n /**\n * Directly puts label data into the cache.\n * This is useful when data have been bundled within the application already and must not be retrieved from the backend.\n */\n public setLabelData(hierarchyLabelData: any, forLocale: string, overwriteCurrent?: boolean, preferExisting?: boolean): void\n {\n const flattenedLabelData = {};\n this.flattenLabelData(hierarchyLabelData, flattenedLabelData);\n if (preferExisting)\n Object.assign(flattenedLabelData, LangService.labelDataCache[forLocale]);\n\n LangService.labelDataCache[forLocale] = flattenedLabelData;\n\n if (overwriteCurrent)\n Object.assign(LangService.currentLangLabelData, flattenedLabelData);\n }\n\n private flattenLabelData(hierarchyLabelData: {}, destLabelData: {}, keyPrefix: string = '')\n {\n Object.keys(hierarchyLabelData).forEach(itemKey =>\n {\n let itemValue = hierarchyLabelData[itemKey];\n if (typeof itemValue === 'object')\n this.flattenLabelData(itemValue, destLabelData, keyPrefix + itemKey + '.');\n else\n itemValue = String(itemValue);\n\n destLabelData[keyPrefix + itemKey] = itemValue;\n });\n }\n\n /**\n * Gets a translated string from the given label key.\n *\n * @param labelKey The context based label key. Prefix with # ignore context.\n * @param defaultValue The value returned if the label key doesn't exist.\n * @param replaceValues If the label values contains format strings in the format {0} they are replaced with values of this array.\n */\n public getString(labelKey: string, defaultValue?: string, ...replaceValues: string[]): string\n {\n if (!LangService.currentLangLabelData)\n throw new Error('No language has been set yet.');\n\n if (window['revealLabelIds'])\n return `[${labelKey}]`;\n\n if (labelKey.startsWith('#'))\n labelKey = labelKey.substring(1);\n else if (this.context)\n labelKey = `${this.context}.${labelKey}`;\n\n let result = LangService.currentLangLabelData[labelKey] as string;\n if (result === undefined) {\n log.warning({ labelKey }, 'No translation found for key.');\n\n if (defaultValue !== undefined)\n result = defaultValue;\n else\n result = `[${labelKey}]`;\n }\n\n if (replaceValues)\n {\n replaceValues.forEach((replaceValue: string, index: number) =>\n result = result.replace(new RegExp(`\\\\\\{${index}\\\\\\}`, 'g'), replaceValue));\n }\n\n return result;\n }\n\n public formatNumber(value: number, options?: NumberFormatOptions)\n {\n return LangService.internationalization.formatNumber(value, options);\n }\n\n /**\n * Applies a \"lang\" attribute to the html root element, so that the browser is locale aware when performing hyphenation.\n */\n private applyHtmlLangAttribute(locale: string) {\n const htmlElement = document.getElementsByTagName('html')[0];\n htmlElement.setAttribute('lang', locale);\n }\n\n private parseLabelData(rawData: string, locale: string): {}\n {\n try\n {\n return parse(rawData);\n }\n catch (error)\n {\n throw new Error(`Failed to parse json label data received from backend for locale \"${locale}\".`);\n }\n }\n}\n","import { Event, EmitType, EventHandler, Component, INotifyPropertyChanged, Property, addClass, removeClass, select } from '@syncfusion/ej2-base';\nimport { PopupEventArgs, SelectEventArgs } from '@syncfusion/ej2-dropdowns';\nimport { events } from './events';\nimport { DataManager } from '@syncfusion/ej2-data';\nimport { PspButton } from '../../buttons/psp-button/PspButton';\nimport { PspNotifyIcon } from '../psp-notify-icon/PspNotifyIcon';\nimport { IPspHelpNotifyIconModel } from './IPspHelpNotifyIconModel';\n\nexport class PspHelpNotifyIcon extends PspNotifyIcon implements INotifyPropertyChanged\n{\n private static readonly defaultHeaderTemplate = '


      ';\n private static readonly defaultFooterTemplate = '
      \n \n \n \n \n\n
      \n \n
      \n\n\n\n
      \n
      \n {{'Headline_T' | translate}}\n \n
      \n
      \n \n\n \n\n \n
      \n
      \n
      ","import { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { AggregatorDataService } from 'src/app/core/AggregatorDataService';\nimport { ErmittlungsESGrob } from 'src/app/core/BackendApi/ermittlungsesgrob.complex';\nimport { ProjectEntity } from 'src/app/core/BackendApi/projectentity.entity';\nimport { HeatGeneratorRow } from 'src/app/core/DteufcAggregatorServiceApi/heatgeneratorrow.complex';\nimport { EnergiespeicherErmittlungstyp, Energielabel } from 'src/app/core/Enums';\nimport { ProjectDataService } from 'src/app/core/project-data.service';\nimport { ValueFormatterService } from 'src/app/core/ValueFormatterService';\nimport { provideContext } from 'src/core-lib/angular/context-util';\nimport { LangService } from 'src/core-lib/ej2/services/LangService';\n\n@Component({\n selector: 'app-heat-generator-power',\n templateUrl: './heat-generator-power.component.html',\n styleUrls: ['./heat-generator-power.component.scss'],\n providers: [provideContext(\"HeatGeneratorPower\")],\n})\nexport class HeatGeneratorPowerComponent implements OnInit {\n\n // Variables\n public editData: ErmittlungsESGrob;\n public warmwasser: number;\n private defaultHeater: HeatGeneratorRow;\n selectedProject: ProjectEntity;\n stepText = this.langService.getString('PanelStepText_T');\n stepBack = this.langService.getString('PanelStepBackLabel_T');\n stepTitle = this.langService.getString('PanelHeadline_T');\n stepDescription = this.langService.getString('PanelDescription_D');\n\n // Constructors/Initializers\n constructor(\n private activatedRoute: ActivatedRoute,\n private langService: LangService,\n private readonly router: Router,\n private dataService: ProjectDataService,\n private aggregator: AggregatorDataService,\n private formatter: ValueFormatterService\n ) {\n\n }\n ngOnInit(): void {\n // Get & Validate Project\n let urlProject = this.activatedRoute.snapshot.data['project'];\n this.selectedProject = this.dataService.TempProject;\n if (!this.selectedProject) {\n if (urlProject) {\n this.router.navigate([`/project-view/${urlProject.ProjectId}`]);\n } else {\n this.router.navigate([`/home`]);\n }\n return;\n }\n\n // Get default heater values\n this.defaultHeater = this.aggregator.aggregatorData.Tables.HeatGeneratorRows.find(h => h.HeatGeneratorId == 'Grobauslegung');\n\n // Load & Init if not existing\n this.warmwasser = this.selectedProject.ProjectValues.WarmwasserErgebnisLtag;\n if (!this.selectedProject.ProjectValues.Energiespeicher?.ErmittlungsESGrob) {\n this.selectedProject.ProjectValues.Energiespeicher = {\n Ermittlungstyp: EnergiespeicherErmittlungstyp.None,\n Energielabel: Energielabel.C,\n ErmittlungsESGrob: {\n LeistungDirekteingabeKw: this.defaultHeater.LeistungWWBereitungKw\n },\n MinutenwerteEnergiebedarf: null,\n MinutenwerteEnergiebedarfAbgesenkt: null,\n MinutenwerteQStoOn: null,\n MinutenwerteQStoOnAbgesenkt: null,\n MinutenwerteVersorgung: null,\n MinutenwerteVersorgungAbgesenkt: null\n }\n }\n this.editData = this.selectedProject.ProjectValues.Energiespeicher.ErmittlungsESGrob;\n }\n\n getWwDisplay(): string{\n return this.formatter.formatNumber(this.warmwasser, 'Liter')\n }\n\n public goBack(): void {\n this.router.navigate([`/project-view/${this.selectedProject.ProjectId}`]);\n }\n\n public navigateNext(): void {\n // Make sure slider/input combo did no mess up the data type\n this.editData.LeistungDirekteingabeKw = Number(this.editData.LeistungDirekteingabeKw);\n\n // Store Ermittlungstyp & Energielabel\n this.selectedProject.ProjectValues.Energiespeicher.Ermittlungstyp = EnergiespeicherErmittlungstyp.Grob;\n this.selectedProject.ProjectValues.Energiespeicher.Energielabel = Energielabel.C;\n\n // Set default heat generator\n this.selectedProject.ProjectValues.Energiespeicher.Wärmeerzeuger = [{\n ErzeugerArt: this.defaultHeater.HeatGeneratorId,\n LeistungWarmwasserBereitungKw: this.editData.LeistungDirekteingabeKw,\n VerzoegerungNachheizungMin: this.defaultHeater.VerzoegerungNachheizungMin\n }];\n\n // Next step\n this.router.navigate([`/result/${this.selectedProject.ProjectId}`]);\n }\n}\n","\n
      \n
      \n \n \n\n
      \n
      \n {{'PanelDescriptionWarmwasser_T' |translate}}\n
      \n
      \n {{getWwDisplay()}}\n
      \n
      \n\n
      \n
      \n
      \n \n
      \n
      \n
      \n\n
      \n {{'Headline_T' | translate}}\n
      \n {{'DescriptionSliderLeistungWarmeerzeuger_D' | translate}}\n
      \n \n \n {{'#Generic.Unit.KiloWatts_T' | translate}}\n
      \n\n
      \n
      \n
      \n","export { HeaderModule } from './header.module';\nexport {\n PageTitleMode,\n ForceMode,\n IMobileMenuStateChanged,\n HeaderComponent,\n} from './header.component';\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ViegaButtonImageComponent } from './viega-button-image.component';\n\n\n\n@NgModule({\n declarations: [\n ViegaButtonImageComponent\n ],\n exports:[\n ViegaButtonImageComponent\n ],\n imports: [\n CommonModule\n ]\n})\nexport class ViegaButtonImageModule { }\n","import { NgModule } from '@angular/core';\nimport { RuntimeService } from 'src/core-lib/ej2/services/RuntimeService';\nimport { TimeoutService } from 'src/core-lib/ej2/services/TimeoutService';\nimport { GuidService } from 'src/core-lib/ej2/services/GuidService';\nimport { LangService } from 'src/core-lib/ej2/services/LangService';\nimport { AppShellClientService } from 'src/core-lib/ej2/services/shell-services/AppShellClientService';\nimport { AppStateService } from './AppStateService';\nimport { AppShellHostService } from 'src/core-lib/ej2/services/shell-services/AppShellHostService';\nimport { HttpClientModule } from '@angular/common/http';\nimport { UrlResolverService } from 'src/core-lib/ej2/services/UrlResolverService';\nimport { ODataHttpService } from 'src/core-lib/ej2/services/ODataHttpService';\nimport { UserStorageService } from 'src/core-lib/ej2/services/UserStorageService';\nimport { GenericDialogService } from 'src/core-lib/ej2/services/GenericDialogService';\nimport { ToastService } from 'src/core-lib/ej2/services/ToastService';\nimport { ErrorProtocolService } from 'src/core-lib/ej2/services/ErrorProtocolService';\nimport { COMPONENT_CONTEXT } from 'src/core-lib/angular/constants';\nimport { CirculationFlowMath } from './math/CirculationFlowMath';\nimport { UserService } from './UserService';\nimport { DteMath } from './math/DteMath';\nimport { HotWaterMath } from './math/HotWaterMath';\nimport { PipeDiameterMath } from './math/PipeDiameterMath';\nimport { StorageMath } from './math/StorageMath';\nimport { UfcMath } from './math/UfcMath';\nimport { VolumetricFlowRateMath } from './math/VolumetricFlowRateMath';\nimport { AggregatorDataService } from './AggregatorDataService';\nimport { ValueFormatterService } from './ValueFormatterService';\nimport { FileDownloadService } from 'src/core-lib/ej2/services/FileDownloadService';\nimport { ProjectService } from './ProjectService';\nimport { GlobalizationService } from 'src/core-lib/ej2/services/GlobalizationService';\n\n@NgModule(\n{\n imports:\n [\n HttpClientModule,\n ],\n declarations: [],\n exports: [],\n providers:\n [\n // core lib services\n RuntimeService,\n UrlResolverService,\n TimeoutService,\n GuidService,\n LangService,\n UserStorageService,\n GenericDialogService,\n ODataHttpService,\n AppShellClientService,\n AppStateService,\n AppShellHostService,\n ToastService,\n ErrorProtocolService,\n ProjectService,\n FileDownloadService,\n GlobalizationService,\n { provide: COMPONENT_CONTEXT, useValue: \"\" },\n\n // app specific services\n AggregatorDataService,\n UserService,\n ValueFormatterService,\n CirculationFlowMath,\n DteMath,\n UfcMath,\n HotWaterMath,\n PipeDiameterMath,\n StorageMath,\n VolumetricFlowRateMath,\n ],\n})\nexport class CoreModule\n{\n static forRoot()\n {\n return {\n ngModule: CoreModule,\n };\n }\n}\n","import { Component, OnInit, Input, Output,EventEmitter } from '@angular/core';\n\n\n@Component({\n selector: 'viega-button-image',\n templateUrl: './viega-button-image.component.html',\n styleUrls: ['./viega-button-image.component.scss']\n})\nexport class ViegaButtonImageComponent implements OnInit {\n\n constructor() { }\n\n @Input()\n public imagePath: string;\n\n @Input()\n public imageText: string;\n\n @Input()\n public description: string;\n\n @Input()\n public title: string;\n\n @Input()\n public isSelected?: boolean;\n\n @Output() iconClicked = new EventEmitter();\n\n @Input()\n public unSelected?: boolean;\n\n ngOnInit(): void {\n }\n\n icon_clicked(event:MouseEvent){\n this.iconClicked.emit(event);\n }\n\n}\n","
      \n
      \n
      \n \n
      \n
      \n
      \n
      \n
      \n

      {{title}}

      \n
      \n\n
      \n \n
      \n
      \n
      \n {{description}}\n
      \n
      \n
      \n
      \n\n
      \n \n
      \n
      ","import { NgModule } from '@angular/core';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { BaseDataDialogModule } from '../base-data-dialog/base-data-dialog.module';\nimport { ConfigDetailsDialogModule } from '../config-details-dialog/config-details-dialog.module';\nimport { ConfigDteDialogModule } from '../config-dte-dialog/config-dte-dialog.module';\nimport { ProjectConfigurationItemComponent } from '../project-configuration-item/project-configuration-item.component';\nimport { StructureDialogModule } from '../structure-dialog/structure-dialog.module';\nimport { StructureItemComponent } from '../structure-item/structure-item.component';\nimport { OverviewComponent } from './overview.component';\n\n@NgModule({\n imports:\n [\n SharedModule,\n BaseDataDialogModule,\n StructureDialogModule,\n ConfigDteDialogModule,\n ConfigDetailsDialogModule\n\n ],\n declarations:\n [\n OverviewComponent,\n\n ],\n exports: [\n OverviewComponent,\n\n ]\n\n})\nexport class OverviewModule { }","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { PspContextualHelpModule } from '../other/psp-contextual-help/psp-contextual-help.module';\nimport { FormFieldComponent } from './psp-form-field/psp-form-field.component';\n\n@NgModule({\n imports:\n [\n CommonModule,\n PspContextualHelpModule,\n ],\n declarations:\n [\n FormFieldComponent,\n ],\n exports:\n [\n FormFieldComponent,\n ],\n})\nexport class PspFormsModule {}\n","import { AfterViewInit, Component, IterableDiffers, OnChanges, OnInit, SimpleChanges } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { ChangedEventArgs, SliderChangeEventArgs } from '@syncfusion/ej2-angular-inputs';\nimport { editAlert } from '@syncfusion/ej2-spreadsheet';\nimport { AggregatorDataService } from 'src/app/core/AggregatorDataService';\nimport { OtherBuilding } from 'src/app/core/BackendApi/otherbuilding.complex';\nimport { ProjectEntity } from 'src/app/core/BackendApi/projectentity.entity';\nimport { ResidentialBuilding } from 'src/app/core/BackendApi/residentialbuilding.complex';\nimport { Tageslastgang } from 'src/app/core/BackendApi/tageslastgang.complex';\nimport { Warmwasser } from 'src/app/core/BackendApi/warmwasser.complex';\nimport { DailyLoadCourseProfileValuesRow } from 'src/app/core/DteufcAggregatorServiceApi/dailyloadcourseprofilevaluesrow.complex';\nimport { SectionState, WarmwasserErmittlungstyp } from 'src/app/core/Enums';\nimport { ProjectDataService } from 'src/app/core/project-data.service';\nimport { ValueFormatterService } from 'src/app/core/ValueFormatterService';\nimport { provideContext } from 'src/core-lib/angular/context-util';\nimport { LangService } from 'src/core-lib/ej2/services/LangService';\n\n@Component({\n selector: 'app-daily-load-profile',\n templateUrl: './daily-load-profile.component.html',\n styleUrls: ['./daily-load-profile.component.scss'],\n providers: [provideContext(\"DailyLoadProfile\")],\n})\nexport class DailyLoadProfileComponent implements OnInit, AfterViewInit {\n\n title = this.langService.getString('PanelHeadline_T');\n description = this.langService.getString('PanelDescription_D');\n stepBack = this.langService.getString('PanelStepBackLabel_T');\n stepText = this.langService.getString('PanelStepText_T');\n\n selectedProject: ProjectEntity;\n currentBuildingType: string;\n\n percent = this.langService.getString('#Generic.Unit.Percent_T')\n\n ddFields = { text: 'DisplayNameLoc', value: 'ProfileId' }\n profiles = [];\n currentInputType: string;\n\n // iterableDiffer;\n totalArrayValue = 0;\n\n data: DailyLoadCourseProfileValuesRow[];\n leftTableData: DailyLoadCourseProfileValuesRow[];\n rightTableData: DailyLoadCourseProfileValuesRow[];\n\n primaryYAxis: object;\n primaryXAxis: object;\n animation: object;\n palette: string[];\n\n isCheckRed: boolean = false;\n tempData: DailyLoadCourseProfileValuesRow[];\n\n constructor(\n private activatedRoute: ActivatedRoute,\n private readonly router: Router,\n private iterableDiffers: IterableDiffers,\n private aggregatorDataService: AggregatorDataService,\n private langService: LangService,\n private DataService: ProjectDataService,\n private formatter: ValueFormatterService\n ) { }\n ngAfterViewInit(): void {\n if(this.tempData){\n let i = 0;\n this.leftTableData = [];\n this.rightTableData = [];\n this.tempData.forEach(x => {if(x.Hour < 12){this.leftTableData.push(x)} else {this.rightTableData.push(x)}})\n }\n }\n\n ngOnInit(): void {\n\n \n let urlProject = this.activatedRoute.snapshot.data['project'];\n this.selectedProject = this.DataService.TempProject;\n if(!this.selectedProject){\n if(urlProject){\n this.router.navigate([`/project-view/${urlProject.ProjectId}`]);\n } else {\n this.router.navigate([`/home`]);\n }\n return;\n }\n\n this.currentBuildingType = this.activatedRoute.snapshot.data['buildingType'];\n if(!this.currentBuildingType || (this.selectedProject.ResidentialBuilding?.BuildingType != this.currentBuildingType\n && !this.selectedProject.OtherBuildings?.some(b => b.BuildingType == this.currentBuildingType))\n ){\n this.router.navigate([`/project-view/${this.selectedProject.ProjectId}`])\n }\n\n\n\n this.profiles = this.aggregatorDataService.aggregatorData.Tables.DailyLoadCourseProfileRows;\n\n let building = this.getBuilding(this.currentBuildingType);\n let currentInputType = this.getInputType(building);\n let { data, leftTableData, rightTableData } = this.getData(building, currentInputType);\n \n this.currentInputType = currentInputType;\n this.data = data;\n this.leftTableData = leftTableData;\n this.rightTableData = rightTableData;\n\n if(this.data && this.currentInputType == \"Manu.Eingabe\"){\n this.leftTableData = [];\n this.rightTableData = [];\n let i = 0;\n this.tempData = JSON.parse(JSON.stringify(this.data));\n this.data.forEach(x => {if(i < 12){this.leftTableData.push({ProfileId: x.ProfileId, Hour: x.Hour, Amount: 0})} else {this.rightTableData.push({ProfileId: x.ProfileId, Hour: x.Hour, Amount: 0})}; i++})\n\n }\n else{\n this.leftTableData = this.aggregatorDataService.aggregatorData.Tables.DailyLoadCourseProfileValuesRows.filter(x => x.ProfileId === this.currentInputType && x.Hour < 12)\n this.rightTableData = this.aggregatorDataService.aggregatorData.Tables.DailyLoadCourseProfileValuesRows.filter(x => x.ProfileId === this.currentInputType && x.Hour > 11)\n this.data = this.leftTableData.concat(this.rightTableData);\n }\n\n this.checkValues();\n\n this.animation = { enable: false};\n this.palette = [\"#5181e8\", \"#ed8332\", \"#919191\", \"#5e5e5e\", \"#5e5e5e\", \"#5e5e5e\"];\n this.primaryXAxis = {\n // interval: 1,\n // labelFormat: 'C'\n valueType: 'Category',\n title: this.langService.getString('XAxisUhrzeit_T')\n };\n this.primaryYAxis = {\n // interval: 1,\n // labelFormat: 'C'\n title: this.langService.getString('YAxisAnteil_T', undefined, this.langService.getString('#Generic.Unit.Percent_T'))\n };\n }\n\n getBuilding(buildingType: string) {\n if (this.selectedProject.ResidentialBuilding?.BuildingType == buildingType) {\n return this.selectedProject.ResidentialBuilding;\n } else {\n return this.selectedProject.OtherBuildings.find(b => b.BuildingType == buildingType);\n }\n }\n \n getInputType(building: ResidentialBuilding | OtherBuilding) {\n if (building && building.Warmwasser && building.Warmwasser.Tageslastgang) {\n return building.Warmwasser.Tageslastgang.Vorgabetyp;\n } else {\n return this.aggregatorDataService.aggregatorData.Tables.BuildingTypeRows.find(r => r.BuildingId == this.currentBuildingType).VorauswahlTageslastgangProfileId;\n }\n }\n \n getData(building: ResidentialBuilding | OtherBuilding, currentInputType: string) {\n if (currentInputType == 'Manu.Eingabe') {\n return { \n data: building.Warmwasser.Tageslastgang.Anteile.map((a, i) => ({ Amount: a, Hour: i, ProfileId: currentInputType })),\n leftTableData: null,\n rightTableData: null\n };\n } else {\n return { \n data: null,\n leftTableData: this.aggregatorDataService.aggregatorData.Tables.DailyLoadCourseProfileValuesRows.filter(x => x.ProfileId === currentInputType && x.Hour < 12),\n rightTableData: this.aggregatorDataService.aggregatorData.Tables.DailyLoadCourseProfileValuesRows.filter(x => x.ProfileId === currentInputType && x.Hour > 11)\n };\n }\n }\n\n axisLabelRender(args){\n if(args.axis.name == \"primaryXAxis\"){\n args.text = args.value + \"-\" + (args.value+1)\n }\n }\n\n checkValues(){\n var leftTableValues = this.leftTableData.map(function(o) {return o.Amount;});\n var rightTableValues = this.rightTableData.map(function(o) {return o.Amount;});\n var sum = leftTableValues.reduce(function(a, b){\n return a + b;\n }, 0);\n var sum2 = rightTableValues.reduce(function(a, b){\n return a + b;\n }, 0);\n this.totalArrayValue = Number(sum) + Number(sum2);\n this.data = this.leftTableData.concat(this.rightTableData);\n this.checkRed();\n }\n\n public sliderChangeLeftTable(args: any, index: number) {\n this.leftTableData[index].Amount = Number(args);\n this.checkValues();\n }\n\n public sliderChangeRightTable(args: any, index: number) {\n this.rightTableData[index].Amount = Number(args);\n this.checkValues();\n }\n\n goBack() {\n window.history.back();\n }\n\n checkRed(){\n if(this.totalArrayValue > 100 || this.totalArrayValue < 100){\n this.isCheckRed = true;\n }\n else{\n this.isCheckRed = false;\n }\n }\n\n onChangeInputType(args){\n var value = args.value;\n\n this.leftTableData = this.aggregatorDataService.aggregatorData.Tables.DailyLoadCourseProfileValuesRows.filter(x => x.ProfileId === value && x.Hour < 12)\n this.rightTableData = this.aggregatorDataService.aggregatorData.Tables.DailyLoadCourseProfileValuesRows.filter(x => x.ProfileId === value && x.Hour > 11)\n\n this.currentInputType = value;\n\n this.checkValues();\n }\n\n getWwDisplay(){\n if (this.currentBuildingType == this.selectedProject.ResidentialBuilding?.BuildingType) {\n return this.formatter.formatNumber(this.selectedProject.ResidentialBuilding.Warmwasser.WarmwasserErgebnisLTag, 'Liter', {maximumFractionDigits: 0}, false)\n }\n else {\n return this.formatter.formatNumber(this.selectedProject.OtherBuildings.find(x => x.BuildingType == this.currentBuildingType).Warmwasser.WarmwasserErgebnisLTag, 'Liter', {maximumFractionDigits: 0}, false)\n }\n }\n\n navigateNext(){\n let anteile: number[] = this.data.map(d => {return d.Amount})\n console.log(this.currentInputType);\n let tageslastgang: Tageslastgang = {\n Vorgabetyp: this.currentInputType,\n Anteile: anteile\n }\n let savedProject: ProjectEntity = this.activatedRoute.snapshot.data['project'];\n if (this.selectedProject.ResidentialBuilding?.BuildingType == this.currentBuildingType) {\n this.selectedProject.ResidentialBuilding.Warmwasser.Tageslastgang = tageslastgang;\n }\n else {\n this.selectedProject.OtherBuildings.find(x => x.BuildingType == this.currentBuildingType).Warmwasser.Tageslastgang = tageslastgang;\n }\n\n let changed = true;\n let currentTemp:Warmwasser;\n let savedTemp: Warmwasser;\n\n if(this.selectedProject.ResidentialBuilding?.BuildingType == this.currentBuildingType){\n currentTemp = this.selectedProject.ResidentialBuilding.Warmwasser;\n savedTemp = savedProject.ResidentialBuilding.Warmwasser;\n\n }\n else{\n currentTemp = this.selectedProject.OtherBuildings.find(x => x.BuildingType == this.currentBuildingType).Warmwasser;\n savedTemp = savedProject.OtherBuildings.find(x => x.BuildingType == this.currentBuildingType).Warmwasser;\n }\n if(savedTemp && currentTemp && JSON.stringify(savedTemp.ErmittlungWarmwasserExakt) === JSON.stringify(currentTemp.ErmittlungWarmwasserExakt)\n && JSON.stringify(savedTemp.Tageslastgang) === JSON.stringify(currentTemp.Tageslastgang))\n {\n this.selectedProject.SectionStates.BuildingTypeWarmwasserStates.find(s => s.Key == this.currentBuildingType).Value = SectionState.Set;\n this.DataService.saveTempProject().then(_=>\n this.router.navigate([`/project-view/${this.selectedProject.ProjectId}`])\n );\n return;\n }\n\n\n\n\n var buildingWwState = this.selectedProject.SectionStates.BuildingTypeWarmwasserStates.find(b => b.Key == this.currentBuildingType);\n buildingWwState.Value = SectionState.Set;\n if(this.selectedProject.SectionStates.Energiespeicher == SectionState.Set)\n this.selectedProject.SectionStates.Energiespeicher = SectionState.Check;\n\n\n this.selectedProject.ProjectValues.WarmwasserErgebnisLtag = (\n this.selectedProject.ResidentialBuilding != null && this.selectedProject.ResidentialBuilding.Warmwasser != null\n ? this.selectedProject.ResidentialBuilding.Warmwasser.WarmwasserErgebnisLTag : 0\n ) + (\n this.selectedProject.OtherBuildings != null ?\n this.selectedProject.OtherBuildings\n .filter(b => b.Warmwasser != null)\n .reduce((sum, b) => sum + b.Warmwasser.WarmwasserErgebnisLTag, 0) : 0\n )\n\n\n\n this.DataService.saveTempProject().then(_=>\n this.router.navigate([`/project-view/${this.selectedProject.ProjectId}`])\n );\n\n }\n}\n","\n
      \n \n \n\n
      \n \n
      \n \n
      \n

      \n  \n

      \n
      \n \n
      \n\n
      \n
      \n \n
      \n
      \n
      \n

      {{'PanelWarningKonntrollsumme_D' | translate}}

      \n
      \n {{'PanelResultHeadline_T' | translate}}\n
      \n {{'PanelResultWarmwassertagesbedarf_T' | translate}} {{getWwDisplay()}}\n
      \n \n
      \n
      \n
      \n
      \n\n\n
      \n \n
      \n
      \n\n\n
      \n {{'Headline_T' | translate}}\n \n
      \n\n
      \n \n
      \n
      \n\n
      \n \n \n \n \n {{data.Hour}} - {{data.Hour + 1}}\n \n \n \n \n
      \n
      \n \n \n %\n
      \n
      \n {{data.Amount}} %\n
      \n
      \n
      \n
      \n
      \n
      \n
      \n\n
      \n \n \n \n \n {{data.Hour}} - {{data.Hour + 1}}\n \n \n \n \n
      \n
      \n \n \n %\n
      \n
      \n {{data.Amount}} %\n
      \n
      \n
      \n
      \n
      \n
      \n
      \n {{'Table.Kontrollsumme_T' | translate}} {{totalArrayValue}}%\n \n
      \n
      \n
      \n\n
      \n \n \n \n \n \n
      \n\n\n\n
      ","import { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n/** Use this pipe to keep styles and other unsafe DOM when directly appling a value to innerHTML of a tag. */\n@Pipe({ name: 'trustHtml' })\nexport class TrustHtmlPipe implements PipeTransform\n{\n constructor(private sanitizer: DomSanitizer) {}\n\n public transform(html: string)\n {\n return this.sanitizer.bypassSecurityTrustHtml(html);\n }\n}\n","import { PropertyRead } from '@angular/compiler';\nimport { Event, EmitType, EventHandler, Component, INotifyPropertyChanged, Property, addClass, removeClass, select, detach } from '@syncfusion/ej2-base';\nimport { events } from './events';\nimport { IHeaderLink, IPspRoofSiteHeaderModel } from './IPspRoofSiteHeaderModel';\n\nexport class PspRoofSiteHeader extends Component implements INotifyPropertyChanged\n{\n private titleEl: HTMLAnchorElement;\n private linkListEl?: HTMLUListElement;\n\n @Property('Header Title')\n public titleLinkText?: string;\n\n @Property()\n public titleLinkHref?: string;\n\n @Property([])\n public links?: IHeaderLink[];\n\n @Property(true)\n public hideOnMobile: boolean;\n\n @Property()\n public cssClass?: string;\n\n /**\n * Raised when the component has been created and rendered.\n */\n @Event()\n public createdEvent?: EmitType<{}>;\n\n /**\n * Raised when the component has been destroyed.\n */\n @Event()\n public destroyedEvent?: EmitType<{}>;\n\n constructor(options?: IPspRoofSiteHeaderModel, element?: string | HTMLElement)\n {\n super(options, element);\n }\n\n /** @ignore */\n public getModuleName(): string\n {\n return 'psp-roof-site-header';\n }\n\n protected preRender(): void\n {\n // NOP\n }\n\n protected render(): void\n {\n addClass([this.element], 'pspc-roof-site-header');\n if (this.cssClass)\n addClass([this.element], this.cssClass.split(' '));\n\n if (!this.titleEl)\n {\n this.titleEl = this.createElement('a') as HTMLAnchorElement;\n addClass([this.titleEl], 'psp-ssh-title');\n this.element.appendChild(this.titleEl);\n }\n this.titleEl.innerText = this.titleLinkText;\n this.titleEl.href = this.titleLinkHref;\n this.titleEl.target = \"_blank\";\n\n if (this.links && this.links.length > 0)\n {\n this.linkListEl = this.createElement('ul') as HTMLUListElement;\n addClass([this.linkListEl], 'psp-ssh-links');\n\n this.links.forEach((link, idx) =>\n {\n if (idx > 0)\n {\n const headerLinkSeparatorEl = this.createElement('li') as HTMLLIElement;\n headerLinkSeparatorEl.className = \"psp-ssh-link-separator\";\n this.linkListEl.appendChild(headerLinkSeparatorEl);\n }\n\n const headerLinkItemEl = this.createElement('li') as HTMLLIElement;\n const headerLinkAnchorEl = this.createElement('a') as HTMLAnchorElement;\n headerLinkAnchorEl.innerText = link.text;\n if(link.href){\n headerLinkAnchorEl.href = link.href;\n }\n headerLinkAnchorEl.target = \"_blank\";\n if(link.click){\n headerLinkAnchorEl.onclick = link.click;\n }\n headerLinkItemEl.appendChild(headerLinkAnchorEl);\n\n this.linkListEl.appendChild(headerLinkItemEl);\n });\n\n this.element.appendChild(this.linkListEl);\n }\n else if (this.linkListEl)\n {\n detach(this.linkListEl);\n delete this.linkListEl;\n }\n\n if (this.hideOnMobile)\n addClass([this.element], 'psp-hide-on-mobile');\n else\n removeClass([this.element], 'psp-hide-on-mobile');\n\n this.wireEvents();\n this.trigger(events.created, {});\n }\n\n protected wireEvents(): void\n {\n // NOP\n }\n\n protected unwireEvents(): void\n {\n // NOP\n }\n\n /** @ignore */\n public onPropertyChanged(newProp: IPspRoofSiteHeaderModel, oldProp: IPspRoofSiteHeaderModel): void\n {\n for (const propertyName of Object.keys(newProp))\n {\n const oldValue = oldProp[propertyName];\n const newValue = newProp[propertyName];\n\n switch (propertyName)\n {\n case 'cssClass':\n if (oldValue)\n removeClass([this.element], oldValue.split(' '));\n if (newValue)\n addClass([this.element], newValue.split(' '));\n\n break;\n\n case 'titleLinkText':\n case 'titleLinkHref':\n case 'links':\n this.render();\n break;\n\n case 'hideOnMobile':\n if (newValue)\n addClass([this.element], 'psp-hide-on-mobile');\n else\n removeClass([this.element], 'psp-hide-on-mobile');\n }\n }\n }\n\n protected getPersistData(): string\n {\n return '';\n }\n\n public destroy(): void\n {\n this.unwireEvents();\n this.trigger(events.destroyed, {});\n super.destroy();\n }\n}\n","// labels to improve the default localization of dropdowns\nexport const localization = {\n 'de': {\n 'dropdowns': {\n 'noRecordsTemplate': 'Keine Ergebnisse',\n 'overflowCountTemplate': '+${count} weitere...',\n 'selectAllText': 'Alles auswählen',\n 'unSelectAllText': 'Alles auswählen',\n },\n 'drop-down-list': {\n 'noRecordsTemplate': 'Keine Datensätze gefunden',\n 'virtualAllCountriesItemDisplayName': 'Alle Länder',\n 'virtualAllCountriesItemFlagUrl': 'https://pspstoragepublicassets.blob.core.windows.net/public-assets-production/country-flags-svg-small/all.svg',\n 'virtualAllLocalesItemDisplayName': 'Jede Sprache',\n 'virtualAllLocalesItemFlagUrl': 'https://pspstoragepublicassets.blob.core.windows.net/public-assets-production/locale-flags-svg-small/all.svg',\n },\n 'combo-box': {\n 'noRecordsTemplate': 'Keine Ergebnisse',\n },\n 'auto-complete': {\n 'noRecordsTemplate': 'Keine Ergebnisse',\n },\n 'multi-select': {\n 'noRecordsTemplate': 'Keine Datensätze gefunden',\n 'actionFailureTemplate': 'Die Anfrage ist fehlgeschlagen',\n 'overflowCountTemplate': '+${count} weitere...',\n 'selectAllText': 'Alles auswählen',\n 'unSelectAllText': 'Alles auswählen',\n 'virtualAllCountriesItemDisplayName': 'Alle Länder',\n 'virtualAllCountriesItemFlagUrl': 'https://pspstoragepublicassets.blob.core.windows.net/public-assets-production/country-flags-svg-small/all.svg',\n 'virtualAllLocalesItemDisplayName': 'Jede Sprache',\n 'virtualAllLocalesItemFlagUrl': 'https://pspstoragepublicassets.blob.core.windows.net/public-assets-production/locale-flags-svg-small/all.svg',\n }\n },\n 'en-US': {\n 'drop-down-list': {\n 'virtualAllCountriesItemDisplayName': 'All Countries',\n 'virtualAllCountriesItemFlagUrl': 'https://pspstoragepublicassets.blob.core.windows.net/public-assets-production/country-flags-svg-small/all.svg',\n 'virtualAllLocalesItemDisplayName': 'Any Language',\n 'virtualAllLocalesItemFlagUrl': 'https://pspstoragepublicassets.blob.core.windows.net/public-assets-production/locale-flags-svg-small/all.svg',\n },\n 'multi-select': {\n 'virtualAllCountriesItemDisplayName': 'Alle Länder',\n 'virtualAllCountriesItemFlagUrl': 'https://pspstoragepublicassets.blob.core.windows.net/public-assets-production/country-flags-svg-small/all.svg',\n 'virtualAllLocalesItemDisplayName': 'Jede Sprache',\n 'virtualAllLocalesItemFlagUrl': 'https://pspstoragepublicassets.blob.core.windows.net/public-assets-production/locale-flags-svg-small/all.svg'\n }\n },\n 'en-GB': {\n 'drop-down-list': {\n 'virtualAllCountriesItemDisplayName': 'All Countries',\n 'virtualAllCountriesItemFlagUrl': 'https://pspstoragepublicassets.blob.core.windows.net/public-assets-production/country-flags-svg-small/all.svg',\n 'virtualAllLocalesItemDisplayName': 'Any Language',\n 'virtualAllLocalesItemFlagUrl': 'https://pspstoragepublicassets.blob.core.windows.net/public-assets-production/locale-flags-svg-small/all.svg',\n },\n 'multi-select': {\n 'virtualAllCountriesItemDisplayName': 'Alle Länder',\n 'virtualAllCountriesItemFlagUrl': 'https://pspstoragepublicassets.blob.core.windows.net/public-assets-production/country-flags-svg-small/all.svg',\n 'virtualAllLocalesItemDisplayName': 'Jede Sprache',\n 'virtualAllLocalesItemFlagUrl': 'https://pspstoragepublicassets.blob.core.windows.net/public-assets-production/locale-flags-svg-small/all.svg'\n }\n }\n};\n","export const events = {\n created: 'createdEvent',\n destroyed: 'destroyedEvent',\n};","import { ChangeDetectionStrategy, Component, ContentChild, ElementRef, Injector, Renderer2, ViewContainerRef } from '@angular/core';\nimport { ComponentBase, ComponentMixins, IComponentBase, setValue, Template } from 'src/core-lib/angular/util';\nimport { PspNotifyIcon } from 'src/core-lib/ej2/components/navigation/psp-notify-icon/PspNotifyIcon';\n\n// properties declared here can be changed by the user in the storyboard UI\nexport const propertyArgTypes =\n{\n hintType: { control: { type: 'radio', options: ['None', 'Unread', 'Urgent'] } },\n iconTooltip: { control: 'text' },\n iconCssClass: { control: 'text' },\n dropDownCssClass: { control: 'text' },\n cssClass: { control: 'text' },\n popupWidth: { control: 'text' },\n popupHeight: { control: 'text' },\n};\n\n// declare some properties as bindable angular inputs\nconst inputBindings =\n[\n 'itemDataSource',\n 'iconTooltip',\n 'iconCssClass',\n 'cssClass',\n 'hintType',\n 'headerTemplate',\n 'itemTemplate',\n 'footerTemplate',\n 'popupWidth',\n 'popupHeight',\n];\n\n// prevent storybook from updating these properties\nconst changeIgnoredProperties: string[] = [];\n\n// declare some properties as bindable angular outputs\nconst outputBindings =\n[\n 'beforeOpenEvent',\n 'openEvent',\n 'closeEvent',\n 'clickEvent',\n 'selectEvent',\n 'createdEvent',\n 'destroyedEvent',\n];\n\n@Component({\n selector: 'psp-notify-icon',\n template: '',\n inputs: inputBindings,\n outputs: outputBindings,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\n@ComponentMixins([ComponentBase])\nexport class PspNotifyIconComponent extends PspNotifyIcon implements IComponentBase\n{\n /** @ignore */\n public tagObjects: any = [];\n\n /** @ignore */\n public context : any;\n\n /** @ignore */\n public tags: string[] = [];\n\n /**\n * Accepts the template design and assigns it to the footer container of the popup list.\n * > For more details about the available template options refer to [`Template`](../../drop-down-list/templates) documentation.\n * @default null\n */\n @ContentChild('itemTemplate')\n @Template()\n public itemTemplate: any;\n\n /**\n * Accepts the template design and assigns it to the header container of the popup list.\n * > For more details about the available template options refer to [`Template`](../../drop-down-list/templates) documentation.\n * @default null\n */\n @ContentChild('headerTemplate')\n @Template()\n public headerTemplate: any;\n\n /**\n * Accepts the template design and assigns it to the header container of the popup list.\n * > For more details about the available template options refer to [`Template`](../../drop-down-list/templates) documentation.\n * @default null\n */\n @ContentChild('footerTemplate')\n @Template()\n public footerTemplate: any;\n\n protected changeIgnoredPropertyMap: { [propertyName: string]: boolean };\n\n public constructor(\n private ngEle: ElementRef,\n private srenderer: Renderer2,\n private viewContainerRef: ViewContainerRef,\n private injector: Injector\n )\n {\n super();\n\n this.element = this.ngEle.nativeElement;\n\n this.changeIgnoredPropertyMap = {};\n changeIgnoredProperties.forEach(prop => this.changeIgnoredPropertyMap[prop] = true);\n\n this.registerEvents(outputBindings);\n this.addTwoWay.call(this, []);\n setValue('currentInstance', this, viewContainerRef);\n this.context = new ComponentBase();\n }\n\n /** @ignore */\n public ngOnInit(): void\n {\n this.context.ngOnInit(this);\n }\n\n /** @ignore */\n public ngAfterViewInit(): void\n {\n this.context.ngAfterViewInit(this);\n }\n\n /** @ignore */\n public ngOnDestroy(): void\n {\n this.context.ngOnDestroy(this);\n }\n\n /** @ignore */\n public ngAfterContentChecked(): void\n {\n this.context.ngAfterContentChecked(this);\n }\n\n /** @ignore */\n public registerEvents: (eventList: string[]) => void;\n\n /** @ignore */\n public addTwoWay: (propList: string[]) => void;\n}\n","import { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { RuntimeService } from 'src/core-lib/ej2/services/RuntimeService';\nimport { log } from 'src/core-lib/logging';\n\nexport interface IUserInfo\n{\n UserId: string;\n GivenName: string;\n FamilyName: string;\n EMail: string;\n}\n\n// KeyCloak JavaScript Adapter Reference:\n// https://github.com/keycloak/keycloak-documentation/blob/master/securing_apps/topics/oidc/javascript-adapter.adoc\n@Injectable()\nexport class UserService\n{\n private static readonly accessTokenRefreshSeconds = 30;\n\n private keycloak: any;\n private _userInfo: IUserInfo;\n public isAuthenticated: boolean;\n\n public get subject(): string {\n return this.keycloak.subject;\n }\n\n public get userInfo(): IUserInfo {\n return this._userInfo;\n }\n\n public get isViegaUser(): boolean {\n if(!this.keycloak?.tokenParsed?.email) {\n return false;\n }\n return this.keycloak.tokenParsed.email_verified === true && (this.keycloak.tokenParsed.email.endsWith(\"@viega.de\") || this.keycloak.tokenParsed.email.endsWith(\"@klaus-rauch.de\"));\n }\n\n public constructor(\n private runtimeService: RuntimeService\n ) {}\n\n public login(): Promise\n {\n if (this.runtimeService.getConfigValue(\"EnableAuthentication\") === 'False')\n {\n this.isAuthenticated = true;\n this._userInfo = {\n UserId: '00000000-0000-0000-0000-000000000000',\n GivenName: 'Joe',\n FamilyName: 'User',\n EMail: 'joe.user@viega.de',\n };\n return Promise.resolve(true);\n }\n\n this.keycloak = new window['Keycloak'](\n {\n url: this.runtimeService.getConfigValue(\"UserService:KeyCloakAuthServerUrl\"),\n realm: this.runtimeService.getConfigValue(\"UserService:Realm\"),\n clientId: this.runtimeService.getConfigValue(\"UserService:ClientId\"),\n });\n\n // keycloak will silently use an iframe to perform the authentication against keycloak\n const initOptions = {\n checkLoginIframe: false,\n onLoad: 'login-required'\n };\n return this.keycloak.init(initOptions).then(isAuthenticated =>\n {\n this.isAuthenticated = isAuthenticated;\n\n // if sso has failed (i.e. the user is not logged into the keycloak realm), then perform a redirect to the login page\n if (!isAuthenticated)\n this.keycloak.login();\n\n this._userInfo = {\n UserId: this.keycloak.tokenParsed.sub,\n GivenName: this.keycloak.tokenParsed.given_name,\n FamilyName: this.keycloak.tokenParsed.family_name,\n EMail: this.keycloak.tokenParsed.email,\n };\n }\n ).catch(e =>\n {\n console.log('failed to initialize', e);\n });\n }\n\n public async getToken(): Promise\n {\n if (!this.isAuthenticated || this.runtimeService.getConfigValue(\"EnableAuthentication\") === 'False')\n return Promise.resolve(null);\n\n try {\n await this.keycloak.updateToken(UserService.accessTokenRefreshSeconds)\n }\n catch (error) {\n log.warning({ error }, 'Refreshing the keycloak access token has failed.');\n }\n return this.keycloak.token;\n }\n\n public redirectToAccountManagement(): Promise\n {\n if (!this.keycloak)\n throw new Error('User is not logged in.');\n\n return this.keycloak.accountManagement();\n }\n\n public async logout(): Promise\n {\n if (this.runtimeService.getConfigValue(\"EnableAuthentication\") === 'False')\n {\n this.isAuthenticated = false;\n delete this._userInfo;\n\n return Promise.resolve();\n }\n\n // redirect back to welcome page\n const redirectUri = window.location.origin + window.location.pathname + '#/';\n this.isAuthenticated = false;\n delete this._userInfo;\n await this.keycloak.logout({ redirectUri });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { StorageEnergyEfficiencyCategoryRow } from '../DteufcAggregatorServiceApi/storageenergyefficiencycategoryrow.complex';\nimport { MathLogger } from './MathLogger';\n\nexport interface IMinuteValuesEnergyDemandParams\n{\n /**\n * One per building type.\n */\n demands: {\n /**\n * Array with length = 23 where one item represents the\n * usage factor (0-100) of one hour of the day.\n */\n tageslastgangAnteile: number[];\n\n summeEnergiebedarfKwProTag: number;\n }[];\n}\n\nexport interface IMinuteValuesEnergyDemandResults\n{\n /**\n * Array with length = 1440.\n * Array index 0 = first minute of day\n * Array index 1439 = last minute of day\n */\n minutenwerteEnergiebedarf: number[];\n\n /**\n * Array with length = 1440.\n * Array index 0 = first minute of day\n * Array index 1439 = last minute of day\n */\n minutenwertekwHAnteil: number[];\n}\n\nexport interface IHeatGeneratorParam\n{\n leistungWWBereitungKiloWatt: number;\n verzoegerungNachheizungMinuten: number;\n}\n\nexport interface IStorageValuesParams\n{\n vorlauftemperatur: number;\n storageEnergyEfficiency: StorageEnergyEfficiencyCategoryRow;\n energiebedarf: IMinuteValuesEnergyDemandResults;\n waermeerzeuger: IHeatGeneratorParam[];\n\n /**\n * 1-100\n */\n anteilBereitschaftsvolumenPerecentage: number;\n\n zirkulationsverlustleistungWatt: number;\n energiespeicherVolumenLiterDirekteingabe?: number;\n}\n\nexport interface IStorageValuesResult\n{\n energiespeicherVolumenLiter: number;\n energiespeicherVolumenLiterDin: number;\n gesamtleistungWaermeerzeugerKw: number;\n\n /**\n * Use in Summenliniendiagramm for \"Qsto ON\"\n * Array with length = 1440.\n * Array index 0 = first minute of day\n * Array index 1439 = last minute of day\n */\n minutenwerteQstoOn: number[];\n\n /**\n * Use in Summenliniendiagramm for \"Versorgungskennlinie\"\n * Array with length = 1440.\n * Array index 0 = first minute of day\n * Array index 1439 = last minute of day\n */\n minutenwerteVersorgungskennlinie: number[];\n}\n\n/**\n * Storage (Speicherauslegung) related mathematic functions.\n *\n * Sources of mathematical formulas:\n * - 210709-KRA-V1.2-12831-211011.xlsm\n *\n * rauch@klaus-rauch.de\n */\n@Injectable()\nexport class StorageMath\n{\n private static readonly eintrittstemperaturSpeicher = 25;\n private static readonly waermekapazitaetWasser = 4.19;\n\n /**\n * Use in Summenliniendiagramm for \"Bedarfskennlinie\"\n * Array index 0 = first minute of day\n * Array index 1439 = last minute of day\n */\n public minutenwerteEnergiebedarf(params: IMinuteValuesEnergyDemandParams): IMinuteValuesEnergyDemandResults\n {\n const hoursPerDay = 24;\n const minutesPerDay = 1440;\n\n const logger = new MathLogger('MinutenwerteEnergiebedarf');\n logger.logInputs(params);\n\n let energiebedarfTotal = 0;\n params.demands.forEach(demand =>\n {\n if (demand.tageslastgangAnteile.length !== hoursPerDay)\n throw new Error(`Expected every demand to have a tageslastgangAnteil array with exactly ${hoursPerDay} items.`);\n\n if (Number((demand.tageslastgangAnteile.reduce((a, b) => a + b)).toFixed(0)) !== 100)\n throw new Error('Expected all tageslastgang anteile to result in a total factor of 100%.');\n\n energiebedarfTotal += demand.summeEnergiebedarfKwProTag;\n });\n\n const kwHStundenanteile: number[] = new Array(hoursPerDay);\n for (let i = 0; i < hoursPerDay; i++)\n {\n kwHStundenanteile[i] = 0;\n params.demands.forEach(demand =>\n {\n const stundenanteil = demand.summeEnergiebedarfKwProTag * (demand.tageslastgangAnteile[i] / 100);\n kwHStundenanteile[i] += stundenanteil;\n });\n }\n\n logger.logIntermediateResult(\n {\n energiebedarfKwProTag: energiebedarfTotal,\n kwHStundenanteile\n });\n\n const minutenwerteEnergiebedarf: number[] = new Array(minutesPerDay);\n const minutenwertekwHAnteil: number[] = new Array(minutesPerDay);\n let hourCurrent = -1;\n let minutenanteilCurrent = 0;\n let summeEnergiebedarfCurrent = 0;\n for (let i = 0; i < minutesPerDay; i++)\n {\n const hour = Math.trunc(i / 60);\n if (hour !== hourCurrent)\n {\n minutenanteilCurrent = kwHStundenanteile[hour] / 60;\n hourCurrent = hour;\n }\n\n summeEnergiebedarfCurrent += minutenanteilCurrent;\n minutenwerteEnergiebedarf[i] = summeEnergiebedarfCurrent;\n minutenwertekwHAnteil[i] = minutenanteilCurrent;\n }\n\n logger.logResult(\n {\n summeEnergiebedarfKwProTag: summeEnergiebedarfCurrent,\n minutenanteile: minutenwerteEnergiebedarf.length,\n });\n\n return { minutenwerteEnergiebedarf, minutenwertekwHAnteil };\n }\n\n public speicherwerteFromEnergiebedarf(params: IStorageValuesParams): IStorageValuesResult\n {\n const logger = new MathLogger('SpeicherwerteFromEnergiebedarf');\n const energiebedarfSumme = params.energiebedarf.minutenwerteEnergiebedarf[params.energiebedarf.minutenwerteEnergiebedarf.length - 1];\n logger.logInputs({\n vorlauftemperatur: params.vorlauftemperatur,\n summeEnergiebedarfKwProTag: energiebedarfSumme,\n storageEnergyEfficiency: params.storageEnergyEfficiency,\n energiespeicherVolumenLiterDirekteingabe: params.energiespeicherVolumenLiterDirekteingabe,\n waermeerzeuger: params.waermeerzeuger\n });\n\n let energiespeicherVolumenLiter: number;\n let energiespeicherVolumenLiterDin: number;\n let qStoMax: number;\n if (params.energiespeicherVolumenLiterDirekteingabe)\n {\n energiespeicherVolumenLiter = params.energiespeicherVolumenLiterDirekteingabe;\n qStoMax = this.qStoMaxFromSpeichervolumenDirekteingabe(params.energiespeicherVolumenLiterDirekteingabe, params.vorlauftemperatur, StorageMath.eintrittstemperaturSpeicher);\n energiespeicherVolumenLiterDin = this.energiespeicherVolumenLiter(this.qStoMaxFromEnergiebedarf(params.energiebedarf.minutenwerteEnergiebedarf), params.vorlauftemperatur, StorageMath.eintrittstemperaturSpeicher);\n }\n else\n {\n qStoMax = this.qStoMaxFromEnergiebedarf(params.energiebedarf.minutenwerteEnergiebedarf);\n energiespeicherVolumenLiter = this.energiespeicherVolumenLiter(qStoMax, params.vorlauftemperatur, StorageMath.eintrittstemperaturSpeicher);\n energiespeicherVolumenLiterDin = energiespeicherVolumenLiter;\n }\n\n const verlustleistungSpeicherKw: number = this.verlustleistungSpeicherKw(energiespeicherVolumenLiter, params.storageEnergyEfficiency);\n const verlustleistungSpeicherQwStoT: number = verlustleistungSpeicherKw / 60;\n\n const nennNachheizleistungQnKwh: number = params.waermeerzeuger\n .map(w => w.leistungWWBereitungKiloWatt)\n .reduce((a, b) => a + b);\n\n const verzoegerungNachheizungMinuten: number = params.waermeerzeuger\n .map(w => (w.leistungWWBereitungKiloWatt / nennNachheizleistungQnKwh) * w.verzoegerungNachheizungMinuten)\n .reduce((a, b) => a + b);\n\n const verlustleistungWaermeverteilungKwMinute: number = (params.zirkulationsverlustleistungWatt / 1000) / 60;\n\n const speicherMinutenwerte = this.speicherMinutenwerte(\n params.energiebedarf,\n qStoMax,\n verzoegerungNachheizungMinuten,\n verlustleistungSpeicherQwStoT,\n verlustleistungWaermeverteilungKwMinute,\n nennNachheizleistungQnKwh,\n params.anteilBereitschaftsvolumenPerecentage / 100\n );\n\n const result: IStorageValuesResult =\n {\n energiespeicherVolumenLiter,\n energiespeicherVolumenLiterDin,\n gesamtleistungWaermeerzeugerKw: nennNachheizleistungQnKwh,\n minutenwerteQstoOn: speicherMinutenwerte.minutenwerteQstoOn,\n minutenwerteVersorgungskennlinie: speicherMinutenwerte.minutenwerteVersorgungskennlinie\n };\n logger.logResult(\n {\n energiespeicherVolumenLiter,\n leistungWwBereitungGesamtKw: nennNachheizleistungQnKwh,\n minutenwerteQstoOn: speicherMinutenwerte.minutenwerteQstoOn.length,\n minutenwerteVersorgungskennlinie: speicherMinutenwerte.minutenwerteVersorgungskennlinie.length\n }\n );\n return result;\n }\n\n private speicherMinutenwerte(\n minutenwerte: IMinuteValuesEnergyDemandResults,\n qStoMax: number,\n verzoegerungNachheizungMinuten: number,\n verlustleistungSpeicherQwStoT: number,\n verlustleistungWaermeverteilungKwhMin: number,\n nennNachheizleistungQnKwh: number,\n anteilBereitschaftsvolumenFactor: number\n ):\n {\n minutenwerteQstoOn: number[],\n minutenwerteVersorgungskennlinie: number[]\n }\n {\n const logger = new MathLogger('SpeicherMinutenwerte');\n logger.logInputs({\n qStoMax,\n verzoegerungNachheizungMinuten,\n verlustleistungSpeicherQwStoT,\n verlustleistungWaermeverteilungKwhMin,\n nennNachheizleistungQnKwh\n });\n const nennNachheizleistungQnKwhMin = nennNachheizleistungQnKwh / 60;\n\n const minutesPerDay = 1440;\n if (minutenwerte.minutenwerteEnergiebedarf.length !== minutesPerDay)\n throw new Error(`Input array must have a length of ${minutesPerDay}.`);\n\n const qStoOn = qStoMax * anteilBereitschaftsvolumenFactor;\n const qStoStart = qStoOn;\n\n logger.logIntermediateResult({ qStoOn });\n\n const minutenwerteQstoOn: number[] = new Array(minutesPerDay);\n const minutenwerteVerbrauchskennlinie: number[] = new Array(minutesPerDay);\n minutenwerteQstoOn[0] = qStoOn + minutenwerte.minutenwerteEnergiebedarf[0];\n minutenwerteVerbrauchskennlinie[0] = qStoOn + minutenwerte.minutenwerteEnergiebedarf[0];\n let qStoCurrent: number = qStoStart;\n let verzoegerungLTagCurrent: number = 0;\n for (let i = 1; i < minutesPerDay; i++)\n {\n const verzoegerungLTagPrev = verzoegerungLTagCurrent;\n if (qStoCurrent < qStoOn)\n verzoegerungLTagCurrent++;\n else if (qStoCurrent > qStoMax)\n verzoegerungLTagCurrent = 0;\n\n const minutenwertKwHAnteil: number = minutenwerte.minutenwertekwHAnteil[i - 1];\n qStoCurrent = qStoCurrent - minutenwertKwHAnteil - (verlustleistungSpeicherQwStoT + verlustleistungWaermeverteilungKwhMin);\n if (verzoegerungLTagPrev > verzoegerungNachheizungMinuten)\n qStoCurrent += nennNachheizleistungQnKwhMin;\n\n const minutenwertEnergiebedarf: number = minutenwerte.minutenwerteEnergiebedarf[i];\n minutenwerteQstoOn[i] = qStoOn + minutenwertEnergiebedarf;\n minutenwerteVerbrauchskennlinie[i] = qStoCurrent + minutenwertEnergiebedarf;\n }\n\n logger.logResult(\n {\n minutenwerteQstoOn: minutenwerteQstoOn.length,\n minutenwerteVersorgungskennlinie: minutenwerteQstoOn.length,\n });\n\n return {\n minutenwerteQstoOn,\n minutenwerteVersorgungskennlinie: minutenwerteVerbrauchskennlinie\n };\n }\n\n private qStoMaxFromEnergiebedarf(minutenwerteEnergiebedarf: number[]): number\n {\n const logger = new MathLogger('QStoMaxFromEnergiebedarf');\n logger.logInputs({\n minutenwerteEnergiebedarf: minutenwerteEnergiebedarf.length\n });\n\n const minutesPerDay = 1440;\n if (minutenwerteEnergiebedarf.length !== minutesPerDay)\n throw new Error(`Input array must have a length of ${minutesPerDay}.`);\n\n const summeEnergiebedarfKwProTag = minutenwerteEnergiebedarf[minutesPerDay - 1];\n const mittlereSteigungBedarfskennlinie = summeEnergiebedarfKwProTag / minutesPerDay;\n logger.logIntermediateResult({ mittlereSteigungBedarfskennlinie });\n\n let maxDifference = 0;\n let minDifference = 9999999;\n for (let i = 0; i < minutesPerDay; i++)\n {\n const mittlereSteigungAktuell = mittlereSteigungBedarfskennlinie * (i + 1);\n const difference = minutenwerteEnergiebedarf[i] - mittlereSteigungAktuell;\n\n maxDifference = Math.max(maxDifference, difference);\n minDifference = Math.min(minDifference, difference);\n }\n minDifference = Math.abs(minDifference);\n maxDifference = Math.abs(maxDifference);\n\n const result = minDifference + maxDifference;\n\n logger.logIntermediateResult({ minDifference, maxDifference });\n logger.logResult({ qStoMax: result });\n return result;\n }\n\n private energiespeicherVolumenLiter(\n qStoMax: number,\n vorlauftemperatur: number,\n eintrittstemperaturSpeicher: number\n )\n {\n const logger = new MathLogger('EnergiespeicherVolumenLiter');\n logger.logInputs({\n qStoMax,\n vorlauftemperatur,\n eintrittstemperaturSpeicher\n });\n\n const x = (1000 - 0.005 * Math.pow(vorlauftemperatur - 4, 2)) / 1000;\n const result = (qStoMax * 3600) / (x * StorageMath.waermekapazitaetWasser * (vorlauftemperatur - eintrittstemperaturSpeicher));\n\n logger.logResult({ energiespeicherVolumenLiter: result });\n return result;\n }\n\n private qStoMaxFromSpeichervolumenDirekteingabe(\n energiespeicherVolumenLiterDirekteingabe: number,\n vorlauftemperatur: number,\n eintrittstemperaturSpeicher: number\n )\n {\n const logger = new MathLogger('QStoMaxFromSpeichervolumenDirekteingabe');\n logger.logInputs({\n energiespeicherVolumenLiterDirekteingabe,\n vorlauftemperatur,\n eintrittstemperaturSpeicher\n });\n\n const x = (1000 - 0.005 * Math.pow(vorlauftemperatur - 4, 2)) / 1000;\n const result = energiespeicherVolumenLiterDirekteingabe * x * StorageMath.waermekapazitaetWasser / 3600 * (vorlauftemperatur - eintrittstemperaturSpeicher);\n\n logger.logResult({ qStoMax: result });\n return result;\n }\n\n private verlustleistungSpeicherKw(\n energiespeicherVolumenLiter: number,\n storageEnergyEfficiency: StorageEnergyEfficiencyCategoryRow\n )\n {\n const logger = new MathLogger('VerlustleistungSpeicher');\n logger.logInputs({\n energiespeicherVolumenLiter,\n storageEnergyEfficiency\n });\n\n const a: number = storageEnergyEfficiency.VerlustleistungFormelKonstanteA;\n const b: number = storageEnergyEfficiency.VerlustleistungFormelKonstanteB;\n const c: number = storageEnergyEfficiency.VerlustleistungFormelKonstanteC;\n const result = (a + (b * Math.pow(energiespeicherVolumenLiter, c))) / 1000;\n\n logger.logResult({ verlustleistungSpeicherKw: result });\n return result;\n }\n}\n","import { Component, OnInit, Input } from '@angular/core';\n\n/**\n * This component supports content injection by using the following special attributes on the content elements:\n * [panel] - The content shown in the side bar below the viega yellow bar.\n * [panel-mobile] - The content shown in the side bar below the viega yellow bar when the start page is in mobile mode.\n */\n@Component({\n selector: 'viega-start-page',\n templateUrl: './start-page.component.html',\n styleUrls: ['./start-page.component.scss']\n})\nexport class StartPageComponent {\n @Input()\n public headlineText: string;\n\n @Input()\n public subHeadlineText: string;\n\n @Input()\n public backgroundUrl: string;\n}\n","
      \n
      \n
      \n

      \n {{headlineText}}\n

      \n

      \n {{subHeadlineText}}\n

      \n
      \n\n
      \n
      \n \n
      \n\n
      \n \n
      \n
      \n
      \n\n
      \n
      \n","export class TimeoutService\n{\n public setTimeout(time: number, callback: () => void): number\n {\n return window.setTimeout(callback, time);\n }\n\n public clearTimeout(timeoutId: number)\n {\n window.clearTimeout(timeoutId);\n }\n\n public setInterval(time: number, callback: () => void): number\n {\n return window.setInterval(callback, time);\n }\n\n public clearInterval(intervalId: number)\n {\n window.clearInterval(intervalId);\n }\n}\n","import { Deferred } from '@syncfusion/ej2-data';\nimport { Ajax, extend } from '@syncfusion/ej2-base';\nimport { environment } from 'src/environments/environment';\nimport { PimStatic } from './PimStatic';\n\nexport interface IRequestError\n{\n action: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH',\n requestUrl: string,\n request: XMLHttpRequest,\n responseStatus: number,\n responseText: string,\n odataErrorMsg: string\n}\n\nexport function executeHttpRequest(options: any, authorization?: string): Promise\n{\n let defer: Deferred = new Deferred();\n\n options = extend(\n {},\n {\n contentType: 'application/json; charset=utf-8',\n processData: false,\n }, options);\n\n let ajax: Ajax = new Ajax(options);\n\n ajax.beforeSend = () =>\n {\n if (authorization)\n ajax.httpRequest.setRequestHeader('Authorization', authorization);\n };\n ajax.onSuccess = (responseRaw: string, request: Ajax) =>\n {\n const responseObject = JSON.parse(responseRaw || '{}');\n defer.resolve(responseObject);\n };\n ajax.onFailure = (request: XMLHttpRequest) =>\n {\n let odataError = null;\n if (request.status !== 404 && request.response)\n odataError = JSON.parse(request.responseText)?.error;\n\n defer.reject(\n {\n action: options.type,\n request,\n requestUrl: ajax.url,\n responseStatus: request.status,\n responseText: request.statusText,\n odataErrorMsg: odataError\n } as IRequestError);\n };\n\n // to prevent promise unhandled errors that occur even when\n // the erros are handled (due to the defer promise)\n ajax.send().catch();\n\n return defer.promise as Promise;\n}\n","import { NgModule } from '@angular/core';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { StructureItemComponent } from '../structure-item/structure-item.component';\nimport { StructureDialogComponent } from './structure-dialog.component';\n\n\n@NgModule({\n imports:\n [\n SharedModule\n ],\n declarations:\n [\n StructureDialogComponent,\n StructureItemComponent\n\n ],\n exports:[\n StructureDialogComponent,\n StructureItemComponent\n\n\n ]\n\n\n})\nexport class StructureDialogModule { }","import { L10n, merge } from '@syncfusion/ej2-base';\n\nexport const localization = {\n 'de': {\n 'psp-contextual-help': {\n 'DocumentationLink': 'Zugehörige Hilfeseite öffnen'\n },\n },\n 'en-US': {\n 'psp-contextual-help': {\n 'DocumentationLink': 'Open Help Page'\n },\n },\n 'en-GB': {\n 'psp-contextual-help': {\n 'DocumentationLink': 'Open Help Page'\n },\n }\n};\n\nmerge(localization['en-US'], localization['en-GB']);\n","export const events = {\n created: 'createdEvent',\n destroyed: 'destroyedEvent',\n};\n","import { NgModule } from '@angular/core';\nimport { SharedModule } from 'src/app/shared/shared.module';\nimport { ProjectViewComponent } from '../project-view/project-view.component';\nimport { SelectionItemRadioComponent } from './selection-item-radio.component';\n\n\n\n@NgModule({\n declarations: [\n // SelectionItemRadioComponent\n ],\n imports: [\n SharedModule\n ],\n exports: [\n // SelectionItemRadioComponent\n ]\n})\nexport class SelectionItemRadioModule { }\n","import { INotifyPropertyChanged, Property, addClass, removeClass, select } from '@syncfusion/ej2-base';\nimport { IPspNotifyIconModel } from './IPspNotifyIconModel';\nimport { PspDropdownIcon } from '../../inputs/psp-dropdown-icon/PspDropdownIcon';\n\nexport class PspNotifyIcon extends PspDropdownIcon implements INotifyPropertyChanged\n{\n constructor(options?: IPspNotifyIconModel, element?: string | HTMLButtonElement)\n {\n super(PspNotifyIcon.initOptions(options), element);\n }\n\n private static initOptions(options?: IPspNotifyIconModel): IPspNotifyIconModel\n {\n options = options || {};\n if (!options.popupWidth)\n options.popupWidth = '340px';\n if (!options.popupHeight)\n options.popupHeight = '500px';\n if (!options.popupPosition)\n options.popupPosition = { X: 'right', Y: 'bottom' };\n\n return options;\n }\n\n /** @ignore */\n public getModuleName(): string\n {\n return 'psp-notify-icon';\n }\n\n protected render(): void\n {\n addClass([this.element], 'pspc-notify-icon');\n if (this.cssClass)\n addClass([this.element], this.cssClass.split(' '));\n\n super.render();\n }\n\n protected getDropDownCssClass(): string {\n return 'pspc-notify-icon-dropdown wrapped-dropdown ' + this.dropDownCssClass;\n }\n}\n","import { enableProdMode } from '@angular/core';\n\nimport { RuntimeService } from './core-lib/ej2/services/RuntimeService';\nimport { LangService } from './core-lib/ej2/services/LangService';\nimport { AppModule } from './app/app.module';\nimport { log } from './core-lib/logging';\nimport { environment } from './environments/environment';\nimport './core-lib/ej2/extensions';\n\n// note that imported json files are bundled into the compiled javascript by webpack\nimport * as labeldata_deDE from './labels/labels.de-DE.json';\nimport * as labeldata_enUS from './labels/labels.en-US.json';\nimport * as labeldata_enGB from './labels/labels.en-GB.json';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\nimport { GuidService } from './core-lib/ej2/services/GuidService';\n\n// set to true to overlay the loading skeleton with the actual content\nlet debugOverlaySkeleton: boolean = false;\n\n// set to zero to disable load time simulation\nlet debugSimulatedLoadingTimeMs: number = 0;\n// when the angular app starts and loads the route there is more data to retrieve\n// and content to render. to hide this from the user the skeleton keeps overlaying\n// the actual app for the given duration\nlet additionalRenderTimeMs: number = 100;\n\nconst isProdEnvironment = environment.buildEnvironment === 'Release';\nif (isProdEnvironment)\n{\n debugOverlaySkeleton = false;\n debugSimulatedLoadingTimeMs = 0;\n enableProdMode();\n}\n\nconst langService = new LangService();\nconst guidService = new GuidService();\nconst runtimeService = new RuntimeService();\ndocument.cookie = \"pspappsid=\" + guidService.newGuid();\n\nlangService.setLabelData(labeldata_deDE['default'], 'de-DE');\nlangService.setLabelData(labeldata_enUS['default'], 'en-US');\nlangService.setLabelData(labeldata_enGB['default'], 'en-GB');\n\nconst desiredLocale = { result: 'de-DE', mappedBy: 'constant' }; //langService.getDesiredLocale();\nlog.information(desiredLocale, 'Desired locale has been determined.');\n\nconst setLanguagePromise = langService.setLanguage(desiredLocale.result);\nconst runtimeInfoPromise = runtimeService.refreshRuntimeInfo();\n\nPromise.all([setLanguagePromise, runtimeInfoPromise])\n .then(() =>\n {\n if (debugSimulatedLoadingTimeMs > 0)\n return new Promise(resolve => setTimeout(() => resolve(''), debugSimulatedLoadingTimeMs));\n else\n return Promise.resolve();\n }).then(() =>\n {\n hideSkeleton();\n return platformBrowserDynamic().bootstrapModule(AppModule);\n }).then(ref => {\n // Ensure Angular destroys itself on hot reloads.\n if (window['ngRef'])\n window['ngRef'].destroy();\n\n window['ngRef'] = ref;\n })\n .catch(err => log.fatal(err, 'Bootstrapping the Angular app has failed.'));\n\nfunction hideSkeleton(): void\n{\n if (debugOverlaySkeleton)\n {\n document.getElementById('psp-loading-skeleton').style.background = 'transparent';\n }\n else\n {\n // simulate a bit more loading time to prevent flickering\n new Promise(resolve =>\n {\n setTimeout(() => resolve(''), additionalRenderTimeMs);\n }).then(() =>\n {\n document.body.removeChild(document.getElementById('psp-loading-skeleton'));\n document.body.classList.add('app-loaded');\n });\n }\n}\n","function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"zn8P\";"]}