{"version":3,"sources":["./src/core-lib/ej2/services/UserStorageService.ts","./src/app/shared/slider/slider.module.ts","./src/core-lib/ej2/utils/PimStatic.ts","./src/app/shared/collapsible-panel/collapsible-panel.component.ts","./src/app/shared/collapsible-panel/collapsible-panel.component.html","./src/core-lib/angular/util.ts","./src/app/core/AppStateService.ts","./src/core-lib/ej2/services/GuidService.ts","./src/core-lib/angular/components/buttons/psp-button/psp-button.component.ts","./src/app/shared/help-icon/help-icon.component.ts","./src/app/shared/help-icon/help-icon.component.html","./src/core-lib/ej2/services/RuntimeService.ts","./src/app/routes/hot-water-demand/hot-water-demand.module.ts","./src/core-lib/angular/constants.ts","./src/app/shared/header/header.component.ts","./src/app/shared/header/header.component.html","./src/app/shared/zapfstellen-dialog-data/zapfstellen-dialog-data.component.ts","./src/app/shared/zapfstellen-dialog-data/zapfstellen-dialog-data.component.html","./src/app/routes/structure-dialog/structure-dialog.component.ts","./src/app/routes/structure-dialog/structure-dialog.component.html","./src/app/core/ProjectService.ts","./src/core-lib/ej2/components/search/psp-search-box/events.ts","./src/app/shared/start-page/start-page.module.ts","./src/app/shared/collapsible-panel/index.ts","./src/core-lib/angular/components/navigation/psp-help-notify-icon/psp-help-notify-icon.module.ts","./src/core-lib/ej2/extensions/index.ts","./src/core-lib/ej2/services/ServiceLocator.ts","./src/core-lib/ej2/services/FileDownloadService.ts","./src/core-lib/ej2/components/buttons/psp-button/events.ts","./src/core-lib/ej2/components/other/psp-contextual-help/PspContextualHelp.ts","./src/core-lib/ej2/components/utility/psp-loading-spinner/PspLoadingSpinner.ts","./src/core-lib/ej2/components/inputs/psp-dropdown-icon/events.ts","./src/app/core/AggregatorDataService.ts","./src/app/shared/collapsible-panel/panel-header/panel-header.component.ts","./src/app/shared/collapsible-panel/panel-header/panel-header.component.html","./src/core-lib/ej2/components/lists-tables/grid/localization.ts","./src/core-lib/angular/components/navigation/psp-roof-site-header/psp-roof-site-header.component.ts","./src/core-lib/angular/components/utility/psp-loading-spinner/psp-loading-spinner.component.ts","./src/environments/environment.ts","./src/core-lib/ej2/services/ErrorProtocolService.ts","./src/core-lib/angular/context-util.ts","./src/app/routes/pipeline/pipeline.module.ts","./src/core-lib/logging.ts","./src/app/routes/circulation-volumetric-flow/circulation-volumetric-flow.component.ts","./src/app/routes/circulation-volumetric-flow/circulation-volumetric-flow.component.html","./src/core-lib/ej2/components/lists-tables/listbox/localization.ts","./src/app/routes/home/home.module.ts","./src/app/routes/base-data-dialog/base-data-dialog.component.ts","./src/app/routes/base-data-dialog/base-data-dialog.component.html","./src/core-lib/angular/components/navigation/psp-roof-site-header/psp-roof-site-header.module.ts","./src/app/shared/slider-text-combo-component/slider-text-combo.component.ts","./src/app/shared/slider-text-combo-component/slider-text-combo.component.html","./src/core-lib/ej2/services/ODataHttpService.ts","./src/app/shared/card/card.component.ts","./src/app/shared/card/card.component.html","./src/app/routes/hot-water-demand/hot-water-demand.component.ts","./src/app/routes/hot-water-demand/hot-water-demand.component.html","./src/app/routes/demand-volumetric-flow-other/demand-volumetric-flow-other.component.ts","./src/app/routes/demand-volumetric-flow-other/demand-volumetric-flow-other.component.html","./src/app/shared/logo/index.ts","./src/app/core/BuildingTypeResolver.ts","./src/app/routes/heat-generating-types/heat-generating-types.component.ts","./src/app/routes/heat-generating-types/heat-generating-types.component.html","./src/app/routes/selection-item-radio/selection-item-radio.component.ts","./src/app/routes/selection-item-radio/selection-item-radio.component.html","./src/core-lib/angular/components/navigation/psp-notify-icon/psp-notify-icon.module.ts","./src/app/core/math/CirculationFlowMath.ts","./src/app/core/math/MathLogger.ts","./src/core-lib/ej2/components/navigation/psp-site-header/events.ts","./src/app/shared/header/header.module.ts","./src/core-lib/ej2/extensions/arrayExt.ts","./src/core-lib/angular/pipes/string-replace.pipe.ts","./src/app/routes/example-page/example-page.component.ts","./src/app/routes/example-page/example-page.component.html","./src/core-lib/angular/components/navigation/psp-help-notify-icon/psp-help-notify-icon.component.ts","./src/core-lib/angular/components/navigation/psp-user-notify-icon/psp-user-notify-icon.component.ts","./src/core-lib/ej2/components/navigation/psp-user-notify-icon/PspUserNotifyIcon.ts","./src/app/shared/shared.module.ts","./src/app/routes/base-data-dialog/base-data-dialog.module.ts","./src/core-lib/ej2/components/navigation/psp-site-header/PspSiteHeader.ts","./src/core-lib/ej2/components/buttons/localization.ts","./src/app/core/math/UfcMath.ts","./src/app/shared/dimensioning-schematic/dimensioning-schematic.component.ts","./src/app/shared/dimensioning-schematic/dimensioning-schematic.component.html","./src/app/routes/pipeline/pipeline.component.ts","./src/app/routes/pipeline/pipeline.component.html","./src/app/routes/result/result.component.ts","./src/app/routes/result/result.component.html","./src/app/routes/home/home.component.ts","./src/app/routes/home/home.component.html","./src/core-lib/angular/components/navigation/psp-user-notify-icon/psp-user-notify-icon.module.ts","./src/core-lib/angular/components/search/psp-search-box/psp-search-box.component.ts","./src/app/shared/card/card.module.ts","./src/app/shared/slider/index.ts","./src/app/app.component.ts","./src/app/app.component.html","./src/app/shared/logo/logo.module.ts","./src/core-lib/ej2/services/GlobalizationService.ts","./src/app/routes/overview/overview.component.ts","./src/app/routes/overview/overview.component.html","./src/core-lib/angular/components/forms/psp-form-field/psp-form-field.component.ts","./src/core-lib/angular/components/forms/psp-form-field/psp-form-field.component.html","./src/app/core/math/DteMath.ts","./src/app/routes/config-details-dialog/config-details-dialog.module.ts","./src/app/shared/logo/logo.component.ts","./src/app/shared/logo/logo.component.html","./src/core-lib/ej2/components/other/localization.ts","./src/app/routes/dte/dte.component.ts","./src/app/routes/dte/dte.component.html","./src/core-lib/ej2/utils/ServiceStatic.ts","./src/core-lib/angular/directives/local-var/loval-var.directive.ts","./src/core-lib/ej2/components/buttons/psp-button/PspButton.ts","./src/core-lib/ej2/services/GenericDialogService.ts","./src/app/routes/structure-item/structure-item.component.ts","./src/app/routes/structure-item/structure-item.component.html","./src/app/shared/wohnungsgruppe-dialog-data/wohnungsgruppe-dialog-data.component.ts","./src/app/shared/wohnungsgruppe-dialog-data/wohnungsgruppe-dialog-data.component.html","./src/core-lib/ej2/components/navigation/psp-help-notify-icon/events.ts","./src/core-lib/angular/components/forms/PspFormFieldGroup.ts","./src/app/routes/config-details-dialog/config-details-dialog.component.ts","./src/app/routes/config-details-dialog/config-details-dialog.component.html","./src/app/shared/dte-schematic/dte-schematic.component.ts","./src/app/core/WebTrekkService.ts","./src/core-lib/ej2/components/inputs/psp-dropdown-icon/PspDropdownIcon.ts","./src/app/shared/select-image/select-image.component.ts","./src/app/shared/select-image/select-image.component.html","./src/app/shared/step-bar/step-bar.module.ts","./src/app/shared/ufc-schematic/ufc-schematic.component.ts","./src/core-lib/angular/components/forms/PspFormField.ts","./src/app/routes/project-configuration-item/project-configuration-item.module.ts","./src/app/routes/demand-volumetric-flow-residential/demand-volumetric-flow-residential.module.ts","./src/core-lib/angular/components/search/psp-search-box/psp-search-box.module.ts","./src/app/shared/select-image/select-image.module.ts","./src/app/routes/project-view/project-view.module.ts","./src/core-lib/angular/components/other/psp-contextual-help/psp-contextual-help.module.ts","./src/core-lib/angular/components/navigation/psp-site-header/psp-site-header.component.ts","./src/app/app.module.ts","./src/app/routes/further-details/further-details.component.ts","./src/app/routes/further-details/further-details.component.html","./src/core-lib/ej2/components/utility/psp-loading-spinner/events.ts","./src/core-lib/angular/components/utility/psp-loading-spinner/psp-loading-spinner.module.ts","./src/app/routes.ts","./src/core-lib/ej2/services/shell-services/AppShellHostService.ts","./src/app/shared/dte-standardbetrieb-schematic/dte-standardbetrieb-schematic.component.ts","./src/core-lib/ej2/services/ToastService.ts","./src/app/shared/collapsible-panel/collapsible-panel.module.ts","./src/app/routes/project-configuration-item/project-configuration-item.component.ts","./src/app/routes/project-configuration-item/project-configuration-item.component.html","./src/core-lib/ej2/components/search/psp-search-box/PspSearchBox.ts","./src/app/shared/step-bar/step-bar.component.ts","./src/app/shared/step-bar/step-bar.component.html","./src/core-lib/angular/components/buttons/psp-button/psp-button.module.ts","./src/core-lib/ej2/services/UrlResolverService.ts","./src/core-lib/angular/components/other/psp-contextual-help/psp-contextual-help.component.ts","./src/app/shared/slider/slider.component.ts","./src/app/shared/slider/slider.component.html","./src/app/shared/step-bar/index.ts","./src/app/routes/project-view/project-view.component.ts","./src/app/routes/project-view/project-view.component.html","./src/app/core/project-data.service.ts","./src/app/core/math/HotWaterMath.ts","./src/app/core/Enums.ts","./src/app/shared/ValueAccessor.ts","./src/app/routes/config-dte-dialog/config-dte-dialog.module.ts","./src/app/routes/demand-volumetric-flow-residential/demand-volumetric-flow-residential.component.ts","./src/app/routes/demand-volumetric-flow-residential/demand-volumetric-flow-residential.component.html","./src/app/core/DemandVolumetricFlowBaseComponent.ts","./src/core-lib/ej2/components/navigation/psp-user-notify-icon/events.ts","./src/app/routes/dte-temperature/dte-temperature.component.ts","./src/app/routes/dte-temperature/dte-temperature.component.html","./src/core-lib/angular/pipes/translate.pipe.ts","./src/app/routes/select-calculation-reservoir/select-calculation-reservoir.component.ts","./src/app/routes/select-calculation-reservoir/select-calculation-reservoir.component.html","./src/app/core/math/PipeDiameterMath.ts","./src/app/core/ProjectResolver.ts","./src/core-lib/angular/core-lib.module.ts","./src/app/routes/demand-volumetric-flow-other/demand-volumetric-flow-other.module.ts","./src/app/core/ValueFormatterService.ts","./src/core-lib/ej2/services/LangService.ts","./src/core-lib/ej2/components/navigation/psp-help-notify-icon/PspHelpNotifyIcon.ts","./src/core-lib/ej2/services/shell-services/AppShellClientService.ts","./src/core-lib/angular/components/navigation/psp-site-header/psp-site-header.module.ts","./src/app/core/math/VolumetricFlowRateMath.ts","./src/app/shared/start-page/index.ts","./src/app/shared/card/index.ts","./src/app/routes/config-dte-dialog/config-dte-dialog.component.ts","./src/app/routes/config-dte-dialog/config-dte-dialog.component.html","./src/app/routes/select-calculation-ufc/select-calculation-ufc.component.ts","./src/app/routes/select-calculation-ufc/select-calculation-ufc.component.html","./src/app/routes/heat-generator-power/heat-generator-power.component.ts","./src/app/routes/heat-generator-power/heat-generator-power.component.html","./src/app/shared/header/index.ts","./src/app/shared/viega-button-image/viega-button-image.module.ts","./src/app/core/core.module.ts","./src/app/shared/viega-button-image/viega-button-image.component.ts","./src/app/shared/viega-button-image/viega-button-image.component.html","./src/app/routes/overview/overview.module.ts","./src/core-lib/angular/components/forms/forms.module.ts","./src/app/routes/daily-load-profile/daily-load-profile.component.ts","./src/app/routes/daily-load-profile/daily-load-profile.component.html","./src/core-lib/angular/pipes/trust-html.pipe.ts","./src/core-lib/ej2/components/navigation/psp-roof-site-header/PspRoofSiteHeader.ts","./src/core-lib/ej2/components/inputs/localization.ts","./src/core-lib/ej2/components/other/psp-contextual-help/events.ts","./src/core-lib/angular/components/navigation/psp-notify-icon/psp-notify-icon.component.ts","./src/app/core/UserService.ts","./src/app/core/math/StorageMath.ts","./src/app/shared/start-page/start-page.component.ts","./src/app/shared/start-page/start-page.component.html","./src/core-lib/ej2/services/TimeoutService.ts","./src/core-lib/ej2/utils/httpUtils.ts","./src/app/routes/structure-dialog/structure-dialog.module.ts","./src/core-lib/ej2/components/other/psp-contextual-help/localization.ts","./src/core-lib/ej2/components/navigation/psp-roof-site-header/events.ts","./src/app/routes/selection-item-radio/selection-item-radio.module.ts","./src/core-lib/ej2/components/navigation/psp-notify-icon/PspNotifyIcon.ts","./src/main.ts","./$_lazy_route_resource lazy namespace object"],"names":[],"mappings":"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","file":"main-es2015.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","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","\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 { 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","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","\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, 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","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","\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 { 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\";"],"sourceRoot":"webpack:///"}