{"version":3,"sources":["webpack:///./src/components/molecules/formScriptButton/FormScriptButton.vue?d787","webpack:///./src/components/molecules/formScriptButton/FormScriptButton.vue","webpack:///./src/components/molecules/formScriptButton/FormScriptButton.vue?dcdf","webpack:///./src/components/molecules/formScriptButton/FormScriptButton.vue?d8e2","webpack:///./src/types/forms/formGroups/referenceFormGroup.ts","webpack:///./src/services/percentage.ts","webpack:///./src/services/form/utilities/application/plantPerformance.ts","webpack:///./src/components/molecules/formRadioGroupTiles/FormRadioGroupTiles.vue?faaf","webpack:///./src/components/molecules/formRadioGroupTiles/FormRadioGroupTiles.vue","webpack:///./src/components/molecules/formRadioGroupTiles/FormRadioGroupTiles.vue?56e5","webpack:///./src/components/molecules/formRadioGroupTiles/FormRadioGroupTiles.vue?ef56","webpack:///./src/services/form/appConfiguration.ts","webpack:///./src/components/molecules/buttonSpacer/ButtonSpacer.vue?4877","webpack:///./src/components/molecules/buttonSpacer/ButtonSpacer.vue","webpack:///./src/components/molecules/buttonSpacer/ButtonSpacer.vue?c006","webpack:///./src/components/molecules/buttonSpacer/ButtonSpacer.vue?4547","webpack:///./node_modules/core-js/internals/same-value.js","webpack:///./src/components/molecules/formInputGeoCoordinates/FormInputGeoCoordinates.vue?f0c6","webpack:///./src/components/molecules/formInputGeoCoordinates/FormInputGeoCoordinates.vue","webpack:///./src/components/molecules/formInputGeoCoordinates/FormInputGeoCoordinates.vue?9a79","webpack:///./src/components/molecules/formInputGeoCoordinates/FormInputGeoCoordinates.vue?9c78","webpack:///./src/components/molecules/formField/FormField.vue?c629","webpack:///./src/components/molecules/formField/FormField.vue","webpack:///./src/components/molecules/formField/FormField.vue?a910","webpack:///./src/components/molecules/formField/FormField.vue?ea48","webpack:///./src/components/atoms/stepNumber/StepNumber.vue?0a23","webpack:///./src/components/molecules/datePicker/DatePicker.vue?3e5e","webpack:///./src/services/keys.ts","webpack:///./src/components/molecules/formList/FormInputTextFormList.vue?3a7f","webpack:///./src/validators/minNumber.ts","webpack:///./src/validators/maxNumber.ts","webpack:///./src/types/forms/fields/countField.ts","webpack:///./src/components/atoms/formLabel/FormLabel.vue?8d00","webpack:///./src/components/atoms/formLabel/FormLabel.vue","webpack:///./src/components/atoms/formLabel/FormLabel.vue?987d","webpack:///./src/components/atoms/formLabel/FormLabel.vue?69e9","webpack:///./src/services/form/appState.ts","webpack:///./src/services/floatComparison.ts","webpack:///./src/components/atoms/formInputOption/FormInputOption.vue?d0bb","webpack:///./src/components/atoms/formInputCheckbox/FormInputCheckbox.vue?88e9","webpack:///./src/components/atoms/formInputCheckbox/FormInputCheckbox.vue","webpack:///./src/components/atoms/formInputCheckbox/FormInputCheckbox.vue?7408","webpack:///./src/components/atoms/formInputCheckbox/FormInputCheckbox.vue?3ffd","webpack:///./src/enums/stepState.ts","webpack:///./src/validators/number.ts","webpack:///./src/components/molecules/formLinkButton/FormLinkButton.vue?ac2a","webpack:///./src/components/molecules/formLinkButton/FormLinkButton.vue","webpack:///./src/components/molecules/formLinkButton/FormLinkButton.vue?390c","webpack:///./src/components/molecules/formLinkButton/FormLinkButton.vue?a893","webpack:///./src/components/atoms/formInputRadio/FormInputRadio.vue?b4d5","webpack:///./src/components/atoms/formInputRadio/FormInputRadio.vue","webpack:///./src/components/atoms/formInputRadio/FormInputRadio.vue?8d18","webpack:///./src/components/atoms/formInputRadio/FormInputRadio.vue?216b","webpack:///./src/components/molecules/formCheckboxList/FormCheckboxList.vue?0747","webpack:///./src/components/molecules/formCheckboxList/FormCheckboxList.vue","webpack:///./src/components/molecules/formCheckboxList/FormCheckboxList.vue?0134","webpack:///./src/components/molecules/formCheckboxList/FormCheckboxList.vue?195d","webpack:///./src/validators/alwaysFalse.ts","webpack:///./src/components/atoms/closeButton/CloseButton.vue?0861","webpack:///./node_modules/core-js/modules/es.regexp.constructor.js","webpack:///./src/components/atoms/formInputMultiLineText/FormInputMultiLineText.vue?0598","webpack:///./src/components/atoms/formInputMultiLineText/FormInputMultiLineText.vue","webpack:///./src/components/atoms/formInputMultiLineText/FormInputMultiLineText.vue?c980","webpack:///./src/components/atoms/formInputMultiLineText/FormInputMultiLineText.vue?3ce5","webpack:///./src/mixins/formStepMixin.ts","webpack:///./src/components/organisms/generationTypeForm/GenerationTypeForm.vue?abfd","webpack:///./src/services/form/rules/application/common.ts","webpack:///./src/components/organisms/locationForm/LocationForm.vue?2ce6","webpack:///./src/enums/checkboxStyle.ts","webpack:///./src/services/form/modelService.ts","webpack:///./src/components/atoms/formInputText/FormInputText.vue?d2fe","webpack:///./src/components/atoms/formInputText/FormInputText.vue","webpack:///./src/components/atoms/formInputText/FormInputText.vue?d1e6","webpack:///./src/components/atoms/formInputText/FormInputText.vue?b128","webpack:///./src/validators/float.ts","webpack:///./src/components/atoms/formInputSelectCustomized/FormInputSelectCustomized.vue?f577","webpack:///./src/types/forms/fields/selectField.ts","webpack:///./src/components/molecules/accordion/Accordion.vue?6867","webpack:///./src/components/atoms/documentDownload/DocumentDownload.vue?711d","webpack:///./src/components/atoms/documentDownload/DocumentDownload.vue","webpack:///./src/components/atoms/documentDownload/DocumentDownload.vue?bdc8","webpack:///./src/components/atoms/documentDownload/DocumentDownload.vue?4d1d","webpack:///./src/components/atoms/formInputText/FormInputText.vue?526d","webpack:///./src/components/molecules/formTextBlock/FormTextBlock.vue?f5eb","webpack:///./src/components/molecules/formTextBlock/FormTextBlock.vue","webpack:///./src/components/molecules/formTextBlock/FormTextBlock.vue?80d3","webpack:///./src/components/molecules/formTextBlock/FormTextBlock.vue?7c51","webpack:///./src/services/form/validationErrors.ts","webpack:///./src/components/molecules/functionalityButton/FunctionalityButton.vue?6186","webpack:///./node_modules/core-js/modules/es.string.search.js","webpack:///./src/enums/formInputPosition.ts","webpack:///./src/components/pages/applicationForm/ApplicationForm.vue?472d","webpack:///./src/components/templates/applicationFormTemplate/ApplicationFormTemplate.vue?1e61","webpack:///./src/components/organisms/locationForm/LocationForm.vue?0063","webpack:///./src/services/cookieService.ts","webpack:///./src/components/atoms/formInputTextWithSuggestions/FormInputTextWithSuggestions.vue?f2f3","webpack:///./src/components/atoms/formInputTextWithSuggestions/FormInputTextWithSuggestions.vue","webpack:///./src/components/atoms/formInputTextWithSuggestions/FormInputTextWithSuggestions.vue?1950","webpack:///./src/components/atoms/formInputTextWithSuggestions/FormInputTextWithSuggestions.vue?fff2","webpack:///./src/components/atoms/locationMap/LocationMap.vue?681f","webpack:///./node_modules/@googlemaps/js-api-loader/dist/index.esm.js","webpack:///./src/components/atoms/locationMap/LocationMap.vue","webpack:///./src/components/atoms/locationMap/LocationMap.vue?5dee","webpack:///./src/components/atoms/locationMap/LocationMap.vue?40db","webpack:///./src/components/molecules/mapWrapper/MapWrapper.vue?2baa","webpack:///./src/components/molecules/mapWrapper/MapWrapper.vue","webpack:///./src/components/molecules/mapWrapper/MapWrapper.vue?1724","webpack:///./src/components/molecules/mapWrapper/MapWrapper.vue?9789","webpack:///./src/services/address/addressesService.ts","webpack:///./src/components/organisms/locationForm/addressCheckFeedbackFormGroup/AddressCheckFeedbackFormGroup.vue?4afa","webpack:///./src/components/organisms/plantPerformance/photovoltaicModuleFormList/PhotovoltaicModuleFormList.vue?c190","webpack:///./src/components/organisms/plantPerformance/photovoltaicModuleFormGroup/PhotovoltaicModuleFormGroup.vue?d0f9","webpack:///./src/components/organisms/plantPerformance/photovoltaicModuleFormGroup/PhotovoltaicModuleFormGroup.vue","webpack:///./src/components/organisms/plantPerformance/photovoltaicModuleFormGroup/PhotovoltaicModuleFormGroup.vue?9c40","webpack:///./src/components/organisms/plantPerformance/photovoltaicModuleFormGroup/PhotovoltaicModuleFormGroup.vue?f731","webpack:///./src/components/organisms/plantPerformance/photovoltaicModuleFormList/PhotovoltaicModuleFormList.vue","webpack:///./src/components/organisms/plantPerformance/photovoltaicModuleFormList/PhotovoltaicModuleFormList.vue?01ad","webpack:///./src/components/organisms/plantPerformance/photovoltaicModuleFormList/PhotovoltaicModuleFormList.vue?7495","webpack:///./src/components/organisms/locationForm/addressCheckFeedbackFormGroup/AddressCheckFeedbackFormGroup.vue","webpack:///./src/components/organisms/locationForm/addressCheckFeedbackFormGroup/AddressCheckFeedbackFormGroup.vue?7e0f","webpack:///./src/components/organisms/locationForm/addressCheckFeedbackFormGroup/AddressCheckFeedbackFormGroup.vue?9a4c","webpack:///./src/components/organisms/locationForm/LocationForm.vue","webpack:///./src/components/organisms/locationForm/LocationForm.vue?66e3","webpack:///./src/components/organisms/locationForm/LocationForm.vue?2f94","webpack:///./src/components/organisms/generationTypeForm/GenerationTypeForm.vue?77bf","webpack:///./src/components/molecules/accordion/Accordion.vue?01db","webpack:///./src/components/molecules/accordion/Accordion.vue","webpack:///./src/components/molecules/accordion/Accordion.vue?f834","webpack:///./src/components/molecules/accordion/Accordion.vue?9687","webpack:///./src/services/form/checkboxListService.ts","webpack:///./src/components/organisms/generationTypeForm/GenerationTypeForm.vue","webpack:///./src/components/organisms/generationTypeForm/GenerationTypeForm.vue?2f55","webpack:///./src/components/organisms/generationTypeForm/GenerationTypeForm.vue?86cd","webpack:///./src/components/organisms/measuringConceptsForm/MeasuringConceptsFormGroup.vue?a71d","webpack:///./src/components/organisms/measuringConceptsForm/MeasuringConceptsFormGroup.vue","webpack:///./src/components/organisms/measuringConceptsForm/MeasuringConceptsFormGroup.vue?4700","webpack:///./src/components/organisms/measuringConceptsForm/MeasuringConceptsFormGroup.vue?7e57","webpack:///./src/components/organisms/controllableConsumptionDevicesForm/ControllableConsumptionDevicesForm.vue?ae16","webpack:///./src/components/molecules/formList/FormInputTextFormList.vue?97c2","webpack:///./src/components/molecules/formList/FormInputTextFormList.vue","webpack:///./src/components/molecules/formList/FormInputTextFormList.vue?b258","webpack:///./src/components/molecules/formList/FormInputTextFormList.vue?cda4","webpack:///./src/components/organisms/controllableConsumptionDevicesForm/ControllableConsumptionDevicesForm.vue","webpack:///./src/components/organisms/controllableConsumptionDevicesForm/ControllableConsumptionDevicesForm.vue?31ef","webpack:///./src/components/organisms/controllableConsumptionDevicesForm/ControllableConsumptionDevicesForm.vue?313e","webpack:///./src/components/organisms/powerConnectionForm/PowerConnectionForm.vue?58f0","webpack:///./src/components/molecules/formInputPowerOldNewSum/FormInputPowerOldNewSum.vue?d9c6","webpack:///./src/components/molecules/formInputPowerOldNewSum/FormInputPowerOldNewSum.vue","webpack:///./src/components/molecules/formInputPowerOldNewSum/FormInputPowerOldNewSum.vue?2499","webpack:///./src/components/molecules/formInputPowerOldNewSum/FormInputPowerOldNewSum.vue?b817","webpack:///./src/components/organisms/powerConnectionForm/generationUnitsFeedback/GenerationUnitsFeedbackFormGroup.vue?5fdd","webpack:///./src/components/organisms/powerConnectionForm/generationUnitsFeedback/GenerationUnitsFeedbackFormGroup.vue","webpack:///./src/components/organisms/powerConnectionForm/generationUnitsFeedback/GenerationUnitsFeedbackFormGroup.vue?3263","webpack:///./src/components/organisms/powerConnectionForm/generationUnitsFeedback/GenerationUnitsFeedbackFormGroup.vue?5f59","webpack:///./src/components/organisms/powerConnectionForm/PowerConnectionForm.vue","webpack:///./src/components/organisms/powerConnectionForm/PowerConnectionForm.vue?f0bb","webpack:///./src/components/organisms/powerConnectionForm/PowerConnectionForm.vue?8631","webpack:///./src/components/organisms/plantOperatorForm/PlantOperatorForm.vue?7cd5","webpack:///./src/services/address/addressService.ts","webpack:///./src/components/organisms/operatorFormList/OperatorFormList.vue?70f7","webpack:///./src/components/organisms/operatorFormGroup/OperatorFormGroup.vue?a4fa","webpack:///./src/components/organisms/operatorFormGroup/OperatorFormGroup.vue","webpack:///./src/components/organisms/operatorFormGroup/OperatorFormGroup.vue?ad61","webpack:///./src/components/organisms/operatorFormGroup/OperatorFormGroup.vue?6924","webpack:///./src/components/organisms/operatorFormList/OperatorFormList.vue","webpack:///./src/components/organisms/operatorFormList/OperatorFormList.vue?4db6","webpack:///./src/components/organisms/operatorFormList/OperatorFormList.vue?6000","webpack:///./src/components/organisms/plantOperatorForm/PlantOperatorForm.vue","webpack:///./src/components/organisms/plantOperatorForm/PlantOperatorForm.vue?7372","webpack:///./src/components/organisms/plantOperatorForm/PlantOperatorForm.vue?11b3","webpack:///./src/components/organisms/plantBuilderForm/PlantBuilderForm.vue?f51f","webpack:///./src/components/organisms/plantBuilderForm/PlantBuilderForm.vue","webpack:///./src/components/organisms/plantBuilderForm/PlantBuilderForm.vue?7943","webpack:///./src/components/organisms/plantBuilderForm/PlantBuilderForm.vue?c43a","webpack:///./src/components/organisms/plantDataForm/PlantDataForm.vue?d3f1","webpack:///./src/components/organisms/plantDataForm/infeedManagementFormGroup/InfeedManagementFormGroup.vue?edb4","webpack:///./src/components/organisms/plantDataForm/infeedManagementFormGroup/InfeedManagementFormGroup.vue","webpack:///./src/components/organisms/plantDataForm/infeedManagementFormGroup/InfeedManagementFormGroup.vue?ae46","webpack:///./src/components/organisms/plantDataForm/infeedManagementFormGroup/InfeedManagementFormGroup.vue?769d","webpack:///./src/components/organisms/plantDataForm/PlantDataForm.vue","webpack:///./src/components/organisms/plantDataForm/PlantDataForm.vue?5e7c","webpack:///./src/components/organisms/plantDataForm/PlantDataForm.vue?152a","webpack:///./src/components/organisms/propertyOwnerForm/PropertyOwnerForm.vue?3ca1","webpack:///./src/components/organisms/ownerFormList/OwnerFormList.vue?2199","webpack:///./src/components/organisms/ownerFormGroup/OwnerFormGroup.vue?3158","webpack:///./src/components/organisms/ownerFormGroup/OwnerFormGroup.vue","webpack:///./src/components/organisms/ownerFormGroup/OwnerFormGroup.vue?f5ce","webpack:///./src/components/organisms/ownerFormGroup/OwnerFormGroup.vue?3a10","webpack:///./src/components/organisms/ownerFormList/OwnerFormList.vue","webpack:///./src/components/organisms/ownerFormList/OwnerFormList.vue?ce4a","webpack:///./src/components/organisms/ownerFormList/OwnerFormList.vue?1fa5","webpack:///./src/components/organisms/propertyOwnerForm/PropertyOwnerForm.vue","webpack:///./src/components/organisms/propertyOwnerForm/PropertyOwnerForm.vue?5cb2","webpack:///./src/components/organisms/propertyOwnerForm/PropertyOwnerForm.vue?3c2c","webpack:///./src/components/organisms/billingForm/BillingForm.vue?fa82","webpack:///./src/components/organisms/billingForm/BillingForm.vue","webpack:///./src/components/organisms/billingForm/BillingForm.vue?b224","webpack:///./src/components/organisms/billingForm/BillingForm.vue?d8cf","webpack:///./src/components/organisms/plantPerformance/PlantPerformanceForm.vue?d4eb","webpack:///./src/components/organisms/plantPerformance/photovoltaicFormGroup/PhotovoltaicFormGroup.vue?6830","webpack:///./src/components/organisms/plantPerformance/photovoltaicFormGroup/PhotovoltaicFormGroup.vue","webpack:///./src/components/organisms/plantPerformance/photovoltaicFormGroup/PhotovoltaicFormGroup.vue?56d9","webpack:///./src/components/organisms/plantPerformance/photovoltaicFormGroup/PhotovoltaicFormGroup.vue?9bf9","webpack:///./src/components/organisms/plantPerformance/storageFormGroup/StorageFormGroup.vue?fb5c","webpack:///./src/components/organisms/plantPerformance/storageModuleFormList/StorageModuleFormList.vue?dfe6","webpack:///./src/components/organisms/plantPerformance/storageModuleFormGroup/StorageModuleFormGroup.vue?b4c6","webpack:///./src/components/organisms/plantPerformance/storageModuleFormGroup/StorageModuleFormGroup.vue","webpack:///./src/components/organisms/plantPerformance/storageModuleFormGroup/StorageModuleFormGroup.vue?ba10","webpack:///./src/components/organisms/plantPerformance/storageModuleFormGroup/StorageModuleFormGroup.vue?c525","webpack:///./src/components/organisms/plantPerformance/storageModuleFormList/StorageModuleFormList.vue","webpack:///./src/components/organisms/plantPerformance/storageModuleFormList/StorageModuleFormList.vue?4856","webpack:///./src/components/organisms/plantPerformance/storageModuleFormList/StorageModuleFormList.vue?f6b5","webpack:///./src/components/organisms/plantPerformance/storageFormGroup/StorageFormGroup.vue","webpack:///./src/components/organisms/plantPerformance/storageFormGroup/StorageFormGroup.vue?53ae","webpack:///./src/components/organisms/plantPerformance/storageFormGroup/StorageFormGroup.vue?5fb6","webpack:///./src/components/organisms/plantPerformance/inverterFormGroup/InverterFormGroup.vue?4fe2","webpack:///./src/components/organisms/plantPerformance/inverterModuleFormList/InverterModuleFormList.vue?596f","webpack:///./src/components/organisms/plantPerformance/inverterModuleFormGroup/InverterModuleFormGroup.vue?8143","webpack:///./src/components/organisms/plantPerformance/inverterModuleFormGroup/InverterModuleFormGroup.vue","webpack:///./src/components/organisms/plantPerformance/inverterModuleFormGroup/InverterModuleFormGroup.vue?93d1","webpack:///./src/components/organisms/plantPerformance/inverterModuleFormGroup/InverterModuleFormGroup.vue?ad56","webpack:///./src/components/organisms/plantPerformance/inverterModuleFormList/InverterModuleFormList.vue","webpack:///./src/components/organisms/plantPerformance/inverterModuleFormList/InverterModuleFormList.vue?e272","webpack:///./src/components/organisms/plantPerformance/inverterModuleFormList/InverterModuleFormList.vue?bdeb","webpack:///./src/components/organisms/plantPerformance/inverterFormGroup/InverterFormGroup.vue","webpack:///./src/components/organisms/plantPerformance/inverterFormGroup/InverterFormGroup.vue?4612","webpack:///./src/components/organisms/plantPerformance/inverterFormGroup/InverterFormGroup.vue?9db0","webpack:///./src/components/organisms/plantPerformance/generatorFormGroup/GeneratorFormGroup.vue?38fe","webpack:///./src/components/organisms/plantPerformance/generatorModuleFormList/GeneratorModuleFormList.vue?1093","webpack:///./src/components/organisms/plantPerformance/generatorModuleFormGroup/GeneratorModuleFormGroup.vue?dba0","webpack:///./src/components/organisms/plantPerformance/generatorModuleFormGroup/GeneratorModuleFormGroup.vue","webpack:///./src/components/organisms/plantPerformance/generatorModuleFormGroup/GeneratorModuleFormGroup.vue?fd45","webpack:///./src/components/organisms/plantPerformance/generatorModuleFormGroup/GeneratorModuleFormGroup.vue?bb88","webpack:///./src/components/organisms/plantPerformance/generatorModuleFormList/GeneratorModuleFormList.vue","webpack:///./src/components/organisms/plantPerformance/generatorModuleFormList/GeneratorModuleFormList.vue?23d5","webpack:///./src/components/organisms/plantPerformance/generatorModuleFormList/GeneratorModuleFormList.vue?9dd6","webpack:///./src/components/organisms/plantPerformance/generatorFormGroup/GeneratorFormGroup.vue","webpack:///./src/components/organisms/plantPerformance/generatorFormGroup/GeneratorFormGroup.vue?4998","webpack:///./src/components/organisms/plantPerformance/generatorFormGroup/GeneratorFormGroup.vue?20cb","webpack:///./src/components/organisms/plantPerformance/PlantPerformanceForm.vue","webpack:///./src/components/organisms/plantPerformance/PlantPerformanceForm.vue?6595","webpack:///./src/components/organisms/plantPerformance/PlantPerformanceForm.vue?cb31","webpack:///./src/components/organisms/checkAndSendForm/CheckAndSendForm.vue?f0bf","webpack:///./src/components/organisms/checkAndSendForm/CheckAndSendForm.vue","webpack:///./src/components/organisms/checkAndSendForm/CheckAndSendForm.vue?f313","webpack:///./src/components/organisms/checkAndSendForm/CheckAndSendForm.vue?ee52","webpack:///./src/components/organisms/documents/DocumentsForm.vue?dc22","webpack:///./src/components/organisms/documents/DocumentsFormStorageSection.vue?d726","webpack:///./src/components/organisms/documents/DocumentsFormStorageSection.vue","webpack:///./src/components/organisms/documents/DocumentsFormStorageSection.vue?c7fe","webpack:///./src/components/organisms/documents/DocumentsFormStorageSection.vue?4015","webpack:///./src/components/organisms/documents/DocumentsForm.vue","webpack:///./src/components/organisms/documents/DocumentsForm.vue?2010","webpack:///./src/components/organisms/documents/DocumentsForm.vue?e699","webpack:///./src/components/templates/applicationFormTemplate/ApplicationFormTemplate.vue","webpack:///./src/components/templates/applicationFormTemplate/ApplicationFormTemplate.vue?6d2f","webpack:///./src/components/templates/applicationFormTemplate/ApplicationFormTemplate.vue?52df","webpack:///./src/services/configurationService.ts","webpack:///./src/debug/form/application/index.ts","webpack:///./src/services/form/editActions/application/measuringConcepts.ts","webpack:///./src/services/form/editActions/application.ts","webpack:///./src/components/pages/applicationForm/ApplicationForm.vue","webpack:///./src/components/pages/applicationForm/ApplicationForm.vue?5bd6","webpack:///./src/components/pages/applicationForm/ApplicationForm.vue?fd2a","webpack:///./src/components/molecules/formField/FormField.vue?4b53","webpack:///./src/components/molecules/functionalityButton/FunctionalityButton.vue?e34d","webpack:///./src/components/molecules/functionalityButton/FunctionalityButton.vue","webpack:///./src/components/molecules/functionalityButton/FunctionalityButton.vue?238e","webpack:///./src/components/molecules/functionalityButton/FunctionalityButton.vue?06e7","webpack:///./src/validators/positive.ts","webpack:///./src/types/forms/formSteps/plantPerformanceFormStep.ts","webpack:///./src/types/forms/formGroups/plantPerformance/photovoltaic/photovoltaicModuleFormGroup.ts","webpack:///./src/types/forms/formGroups/plantPerformance/photovoltaic/quantityAndNominalPowerFormGroup.ts","webpack:///./src/types/forms/formGroups/plantPerformance/photovoltaic/photovoltaicFormGroup.ts","webpack:///./src/services/form/config/application/plantPerformance/boundaryValues.ts","webpack:///./src/validators/maxNominalPowerPlugInGeneratingPlant.ts","webpack:///./src/services/form/config/application/plantPerformance/photovoltaic.ts","webpack:///./src/types/forms/formGroups/plantPerformance/storage/storageModuleFormGroup.ts","webpack:///./src/types/forms/formGroups/plantPerformance/storage/storageFormGroup.ts","webpack:///./src/types/forms/formGroups/plantPerformance/storage/manufacturerAndStorageTypeFormGroup.ts","webpack:///./src/types/forms/formGroups/plantPerformance/storage/dischargePowerAndStorageCapacityFormGroup.ts","webpack:///./src/services/form/config/application/plantPerformance/storage.ts","webpack:///./src/types/forms/formGroups/plantPerformance/activePowerAndApparentPowerFormGroup.ts","webpack:///./src/types/forms/formGroups/plantPerformance/generator/generatorFormGroup.ts","webpack:///./src/types/forms/formGroups/plantPerformance/generator/generatorModuleFormGroup.ts","webpack:///./src/types/forms/formGroups/plantPerformance/quantityAndGeneratorTypeFormGroup.ts","webpack:///./src/types/forms/formGroups/plantPerformance/manufacturerAndModuleTypeFormGroup.ts","webpack:///./src/validators/maxApparentPowerPlugInGeneratingPlant.ts","webpack:///./src/types/forms/formGroups/plantPerformance/zerezIdAndNormFormGroup.ts","webpack:///./src/types/forms/fields/hiddenFormField.ts","webpack:///./src/services/form/config/application/plantPerformance/generator.ts","webpack:///./src/types/forms/formGroups/plantPerformance/inverter/inverterFormGroup.ts","webpack:///./src/types/forms/formGroups/plantPerformance/inverter/inverterModuleFormGroup.ts","webpack:///./src/validators/apparentPowerMustBeBiggerThanActualPower.ts","webpack:///./src/services/form/config/application/plantPerformance/inverter.ts","webpack:///./src/services/form/config/application/plantPerformance.ts","webpack:///./src/services/form/utilities/application/powerConnection.ts","webpack:///./src/services/form/validations.ts","webpack:///./src/validators/addressRequiredIfNoCadastral.ts","webpack:///./src/components/atoms/formInputSelect/FormInputSelect.vue?bb33","webpack:///./src/components/molecules/formInputCount/FormInputCount.vue?ad9b","webpack:///./src/types/forms/enumerableGetterAttribute.ts","webpack:///./src/services/form/applicationType.ts","webpack:///./src/types/forms/specific/applicationForm.ts","webpack:///./src/components/atoms/formInputTextWithSuggestions/FormInputTextWithSuggestions.vue?96b6","webpack:///./src/validators/checked.ts","webpack:///./src/components/molecules/datePicker/DatePicker.vue?46be","webpack:///./src/components/molecules/datePicker/DatePicker.vue","webpack:///./src/components/molecules/datePicker/DatePicker.vue?b5ef","webpack:///./src/components/molecules/datePicker/DatePicker.vue?3616","webpack:///./src/validators/houseNumber.ts","webpack:///./src/validators/util.ts","webpack:///./src/validators/lt.ts","webpack:///./src/validators/requiredIfAny.ts","webpack:///./src/validators/geoCoordinates.ts","webpack:///./src/types/forms/fields/geoCoordinatesFormGroup.ts","webpack:///./src/types/forms/formSteps/locationFormStep.ts","webpack:///./src/types/forms/formGroups/zipAndCityFormGroup.ts","webpack:///./src/types/forms/formGroups/streetAndHousenumberFormGroup.ts","webpack:///./src/types/forms/formGroups/meadowAndLotFormGroup.ts","webpack:///./src/types/forms/formGroups/electricityUnavailableAtAddressFormGroup.ts","webpack:///./src/validators/length.ts","webpack:///./src/services/form/config/application/location.ts","webpack:///./src/validators/maxDate.ts","webpack:///./src/validators/requiredDate.ts","webpack:///./src/types/forms/fields/dateField.ts","webpack:///./src/types/forms/formSteps/generationTypeFormStep.ts","webpack:///./src/types/forms/fields/radioButtonsField.ts","webpack:///./src/services/form/config/application/generationType.ts","webpack:///./src/types/forms/formSteps/powerConnectionFormStep.ts","webpack:///./src/validators/positiveInteger.ts","webpack:///./src/validators/mustBeLowerThanToExistingPlantsTotalPower.ts","webpack:///./src/validators/mustBeLowerThanFeedInPowerRecommendation.ts","webpack:///./src/types/forms/formGroups/powerConnection/GenerationUnitsFeedbackFormGroup.ts","webpack:///./src/services/form/config/application/powerConnection.ts","webpack:///./src/types/forms/formGroups/firstAndLastNameFormGroup.ts","webpack:///./src/types/forms/formGroups/operatorFormGroup.ts","webpack:///./src/types/forms/formSteps/plantOperatorFormStep.ts","webpack:///./src/validators/maxDateNow.ts","webpack:///./src/validators/name.ts","webpack:///./src/validators/zip.ts","webpack:///./src/validators/emailRepeatMustBeIdentical.ts","webpack:///./node_modules/ibantools/jsnext/ibantools.js","webpack:///./src/services/form/config/application/plantOperator.ts","webpack:///./src/types/forms/formSteps/plantBuilderFormStep.ts","webpack:///./src/services/form/config/application/plantBuilder.ts","webpack:///./src/types/forms/formSteps/plantDataFormStep.ts","webpack:///./src/validators/iban.ts","webpack:///./src/types/forms/formGroups/plantData/infeedManagement/infeedManagementFormGroup.ts","webpack:///./src/services/form/config/application/plantData/infeedManagement.ts","webpack:///./src/services/form/config/application/plantData.ts","webpack:///./src/types/forms/formGroups/ownerFormGroup.ts","webpack:///./src/types/forms/formSteps/propertyOwnerFormStep.ts","webpack:///./src/services/form/config/application/propertyOwner.ts","webpack:///./src/types/forms/formSteps/measuringConceptsFormStep.ts","webpack:///./src/validators/mustBeLowerThanOrEqualToSelfGenerationQuantity.ts","webpack:///./src/validators/mustBeNoMoreThan20PercentAboveSuggestion.ts","webpack:///./src/services/form/config/application/measuringConcepts.ts","webpack:///./src/types/forms/formSteps/controllableConsumptionDevicesFormStep.ts","webpack:///./src/validators/registeredConsumptionDeviceIdentificationNumber.ts","webpack:///./src/validators/registeredConsumptionDeviceIdentificationNumbers.ts","webpack:///./src/services/form/config/application/controllableConsumptionDevices.ts","webpack:///./src/types/forms/formSteps/billingFormStep.ts","webpack:///./src/validators/minDate.ts","webpack:///./src/validators/minDateNow.ts","webpack:///./src/validators/maxDate3Months.ts","webpack:///./src/services/form/config/application/billing.ts","webpack:///./src/types/forms/formSteps/checkAndSendFormStep.ts","webpack:///./src/services/form/config/application/checkAndSend.ts","webpack:///./src/types/forms/fields/uploadField.ts","webpack:///./src/types/forms/formSteps/documentsFormStep.ts","webpack:///./src/validators/fileType.ts","webpack:///./src/validators/maxFileSize.ts","webpack:///./src/services/form/config/application/documents.ts","webpack:///./src/services/form/config/application.ts","webpack:///./src/types/forms/dummy/kitchenSinkForm.ts","webpack:///./src/validators/inDateRange.ts","webpack:///./src/types/forms/dummy/kitchensinkFormStep1.ts","webpack:///./src/services/form/config/kitchenSink/step1.ts","webpack:///./src/types/forms/dummy/kitchensinkFormStep2.ts","webpack:///./src/services/form/config/kitchenSink/step2.ts","webpack:///./src/types/forms/dummy/kitchensinkFormStep3.ts","webpack:///./src/services/form/config/kitchenSink/step3.ts","webpack:///./src/types/forms/dummy/kitchensinkFormStep4.ts","webpack:///./src/types/forms/dummy/formGroups/kitchenSinkPlantFormGroup.ts","webpack:///./src/types/forms/dummy/formGroups/kitchenSinkUserFormGroup.ts","webpack:///./src/services/form/config/kitchenSink/step4.ts","webpack:///./src/services/form/config/kitchenSink.ts","webpack:///./src/services/form/config.ts","webpack:///./node_modules/core-js/modules/es.math.trunc.js","webpack:///./src/components/molecules/fieldWithInfoIcon/FieldWithInfoIcon.vue?be68","webpack:///./src/components/molecules/fieldWithInfoIcon/FieldWithInfoIcon.vue","webpack:///./src/components/molecules/fieldWithInfoIcon/FieldWithInfoIcon.vue?7e1d","webpack:///./src/components/molecules/fieldWithInfoIcon/FieldWithInfoIcon.vue?bea9","webpack:///./src/components/molecules/formSelect/FormSelect.vue?ae41","webpack:///./src/components/atoms/formInputSelect/FormInputSelect.vue?8f4d","webpack:///./src/components/atoms/formInputSelect/FormInputSelect.vue","webpack:///./src/components/atoms/formInputSelect/FormInputSelect.vue?d90b","webpack:///./src/components/atoms/formInputSelect/FormInputSelect.vue?8f65","webpack:///./src/components/atoms/formInputSelectCustomized/FormInputSelectCustomized.vue?fabf","webpack:///./src/components/atoms/formInputSelectCustomized/FormInputSelectCustomized.vue","webpack:///./src/components/atoms/formInputSelectCustomized/FormInputSelectCustomized.vue?ec90","webpack:///./src/components/atoms/formInputSelectCustomized/FormInputSelectCustomized.vue?497c","webpack:///./src/components/atoms/formInputOption/FormInputOption.vue?66bd","webpack:///src/components/atoms/formInputOption/FormInputOption.vue","webpack:///./src/components/atoms/formInputOption/FormInputOption.vue?5ba6","webpack:///./src/components/atoms/formInputOption/FormInputOption.vue","webpack:///./src/components/molecules/formSelect/FormSelect.vue","webpack:///./src/components/molecules/formSelect/FormSelect.vue?8b3d","webpack:///./src/components/molecules/formSelect/FormSelect.vue?5ba0","webpack:///./src/mixins/formInputMixin.ts","webpack:///./src/components/molecules/buttonSpacer/ButtonSpacer.vue?8b94","webpack:///./node_modules/core-js/modules/es.array.find-index.js","webpack:///./src/components/atoms/formInputCheckbox/FormInputCheckbox.vue?1e2c","webpack:///./src/components/molecules/formRadioGroup/FormRadioGroup.vue?12d6","webpack:///./src/components/molecules/formRadioGroup/FormRadioGroup.vue","webpack:///./src/components/molecules/formRadioGroup/FormRadioGroup.vue?fb92","webpack:///./src/components/molecules/formRadioGroup/FormRadioGroup.vue?5151","webpack:///./src/services/form/rules/kitchenSink.ts","webpack:///./src/services/form/rules/application/general.ts","webpack:///./src/utilities/addRequiredValidator.ts","webpack:///./src/utilities/removeRequiredValidator.ts","webpack:///./src/utilities/toggleRequiredValidator.ts","webpack:///./src/services/form/rules/application/location.ts","webpack:///./src/services/form/rules/application/generationType.ts","webpack:///./src/utilities/findFirstValidKey.ts","webpack:///./src/utilities/stringParsingUtils.ts","webpack:///./src/services/form/rules/application/powerConnection.ts","webpack:///./src/services/form/rules/application/plantOperator.ts","webpack:///./src/services/form/rules/application/plantBuilder.ts","webpack:///./src/services/form/rules/application/plantData/infeedManagement.ts","webpack:///./src/services/form/rules/application/plantData.ts","webpack:///./src/services/form/rules/application/propertyOwner.ts","webpack:///./src/services/form/rules/application/plantPerformance/photovoltaic.ts","webpack:///./src/services/form/rules/application/plantPerformance/storage.ts","webpack:///./src/services/form/rules/application/plantPerformance/generator.ts","webpack:///./src/services/form/rules/application/plantPerformance/inverter.ts","webpack:///./src/services/form/rules/application/plantPerformance.ts","webpack:///./src/services/form/rules/application/measuringConcepts.ts","webpack:///./src/services/form/rules/application/controllableConsumptionDevices.ts","webpack:///./src/services/form/rules/application/billing.ts","webpack:///./src/services/form/rules/application/documents.ts","webpack:///./src/services/form/rules/application/checkAndSend.ts","webpack:///./src/services/form/rules/application/confirmation.ts","webpack:///./src/services/form/rules/application.ts","webpack:///./src/services/form/rules.ts","webpack:///./src/components/atoms/locationMap/LocationMap.vue?df93","webpack:///./src/components/atoms/formInputRadio/FormInputRadio.vue?bf97","webpack:///./node_modules/vue-simple-suggest/dist/cjs.js","webpack:///./src/components/atoms/formInputMultiLineText/FormInputMultiLineText.vue?24f3","webpack:///./src/components/molecules/formRadioGroupTiles/FormRadioGroupTiles.vue?17b4","webpack:///./src/components/molecules/formBooleanCheckbox/FormBooleanCheckbox.vue?217b","webpack:///./src/components/molecules/formBooleanCheckbox/FormBooleanCheckbox.vue","webpack:///./src/components/molecules/formBooleanCheckbox/FormBooleanCheckbox.vue?ae1b","webpack:///./src/components/molecules/formBooleanCheckbox/FormBooleanCheckbox.vue?c6e4","webpack:///./src/mixins/formElementMixin.ts","webpack:///./src/components/molecules/formInputCount/FormInputCount.vue?bd42","webpack:///./src/components/molecules/formInputCount/FormInputCount.vue","webpack:///./src/components/molecules/formInputCount/FormInputCount.vue?9f63","webpack:///./src/components/molecules/formInputCount/FormInputCount.vue?9c4e","webpack:///./src/components/molecules/formFileUpload/FormFileUpload.vue?5c79","webpack:///./src/components/molecules/formStep/FormStep.vue?3128","webpack:///./src/components/atoms/stepNumber/StepNumber.vue?87c2","webpack:///./src/components/atoms/stepNumber/StepNumber.vue","webpack:///./src/components/atoms/stepNumber/StepNumber.vue?aefe","webpack:///./src/components/atoms/stepNumber/StepNumber.vue?453b","webpack:///./src/components/atoms/closeButton/CloseButton.vue?ebba","webpack:///./src/components/atoms/closeButton/CloseButton.vue","webpack:///./src/components/atoms/closeButton/CloseButton.vue?d53b","webpack:///./src/components/atoms/closeButton/CloseButton.vue?78f5","webpack:///./src/components/molecules/formStep/FormStep.vue","webpack:///./src/components/molecules/formStep/FormStep.vue?8b9a","webpack:///./src/components/molecules/formStep/FormStep.vue?e7fa","webpack:///./src/mixins/formInputTextMixin.ts","webpack:///./src/components/molecules/formFileUpload/FormFileUpload.vue?410e","webpack:///./src/components/molecules/formFileUpload/FormFileUpload.vue","webpack:///./src/components/molecules/formFileUpload/FormFileUpload.vue?bf3f","webpack:///./src/components/molecules/formFileUpload/FormFileUpload.vue?914d"],"names":["render","_vm","this","_h","$createElement","_c","_self","model","disabled","_e","staticClass","attrs","fullWidth","showInfoIcon","showSummary","content","text","character","characterIsLeft","theme","on","func","staticRenderFns","extend","name","components","FormRow","InfoIconWrapper","AppButton","props","type","Object","default","Function","undefined","String","raquo","Boolean","buttonPrimary","component","config","id","value","getPercentageChange","previousValue","Error","isOverallActivePowerWarningEnabled","referenceValue","percentageChange","limit","getOverallNominalPower","plantPerformanceModel","photovoltaic","pvOverallNominalPower","storage","storageOverallDischargePower","generator","generatorOverallActivePower","getOverallActivePower","applicationType","inverter","inverterOverallActivePower","getOverallApparentPower","inverterOverallApparentPower","generatorOverallApparentPower","calculateSelfGenerationQuantity","formModel","editModel","PV_OVERALLNOMINALPOWER_TO_SELFGENERATIONQUANTITY_FACTOR","modelSelfGenerationQuantity","plantPerformance","editSelfGenerationQuantity","parsedSelfGenerationQuantity","measuringConcepts","selfGenerationQuantity","finalSelfGenerationQuantity","decimals","thousandsSeparator","_l","option","key","$event","selectRadioButton","image","_v","_s","label","radioButtonGroupName","FieldWithInfoIcon","FormLabel","FormInputRadio","AppImage","data","computed","enabledOptions","options","filter","enabledOptionsWithContent","map","watch","handler","some","$nextTick","length","immediate","methods","appConfiguration","observable","fileUploadConfigurations","class","align","requiredFieldsText","spinnerState","spinnerSize","_t","buttonThemeSecondary","handleDebugFillClick","buttonText","handleClick","SpinnerArea","required","common","isLoading","showDebugFillButton","formStep","buttonSecondary","transparent","off","$emit","module","exports","is","x","y","degrees","validations","minutes","seconds","FormInputText","created","$watch","touchAllInputs","$touch","hidden","summaryValue","hideFieldInSummary","domProps","summaryLabel","summaryLabelColon","alignAsSingleRow","hideLabel","labelAlignTop","labelClasses","subLabel","hasErrors","error","identifier","message","provide","formField","alignField","nextToLabel","Number","showAsterisk","formInputComponents","singleLine","isRequired","isRequiredValidation","$anyError","errors","reduce","formErrors","formInput","formInputErrors","formInputError","push","error1","error2","charAt","summaryIsBoolean","registerFormInputComponent","formInputComponent","keys","$params","validatorIdentifier","nestedValidations","isFunctionKey","includes","digitKeys","min","withParams","req","number","max","countFieldDefaultConfig","step","resolvedConfig","validators","minNumber","maxNumber","getJsonSchema","appState","pendingFileUploads","epsilon","defaultEpsilon","eq","value1","value2","Math","abs","gt","lt","gte","lte","directives","rawName","expression","userChangeable","Array","isArray","_i","cbClicked","$$a","$$el","target","$$c","checked","$$v","$$i","$set","concat","slice","isSlide","Icon","e","preventDefault","checkboxStyle","standard","slide","StepState","isFinite","link","url","linkHoverBehavior","title","AppLink","inputValue","_q","modelWithListValue","FormInputCheckbox","activeOptionsWithContent","fallbackModel","alwaysFalse","DESCRIPTORS","global","isForced","inheritIfRequired","defineProperty","f","getOwnPropertyNames","isRegExp","getFlags","stickyHelpers","redefine","fails","setInternalState","set","setSpecies","wellKnownSymbol","MATCH","NativeRegExp","RegExp","RegExpPrototype","prototype","re1","re2","CORRECT_NEW","UNSUPPORTED_Y","FORCED","RegExpWrapper","pattern","flags","sticky","thisIsRegExp","patternIsRegExp","flagsAreUndefined","constructor","source","call","indexOf","replace","result","proxy","configurable","get","it","index","_g","modifiers","inputClasses","placeholder","minLength","maxLength","onFocus","onBlur","$forceUpdate","onKeydown","composing","trim","inputEvents","unit","innerLabel","icon","getFormStepMixin","formContent","configuration","debugDto","rules","disableWatch","isAuthenticated","hasRoles","allValidationsAreValid","$invalid","deep","isFormValid","debugFillSubmit","Promise","loadFormIntoModel","validateAndSubmit","isApplicationType","isPv","isPluginGeneratingPlant","isPluginGeneratingPlantGenerationTypeModel","generationType","plugInGeneratingPlant","isPluginGeneratingPlantSimplified","pv","plantType","plugin","proceed","proceedWithFullRegistrationForEEGCompensation","isPowerHeatCoupling","isStorage","isPvAndStorageLte30","isDea","isUnknown","isLowVoltage","powerConnection","isMediumVoltage","whichVoltageLevel","isNominalPowerAboveTippingPoint","tippingPoint","isNominalPowerBelowOrEqualTippingPoint","isActivePowerAboveTippingPoint","isActivePowerBelowOrEqualTippingPoint","getStorageOverallDischargePower","isDischargePowerBelowOrEqualTippingPoint","isStorageCouplingAcCoupled","plantData","storageCoupling","isStorageCouplingDcCoupled","isStorageConnectionConceptWithoutPowerGeneration","storageConnectionConcept","isStorageConnectionConceptWithoutPowerGenerationAndWithConsumptionPlant","isStorageConnectionConceptWithPowerGeneration","isStorageConnectionConceptStorageInGenerationPath","isStorageConnectionConceptStorageInConsumerPath","isStorageChargeFromPublicGrid","storageCharge","isStorageDischargeCustomersGridAndPublicGrid","storageDischarge","isStorageDischargeIntoPublicGrid","isNonHighEfficiencyChpPlant","powerHeatCouplingPlantType","isHighEfficiencyChpPlant","isRequestWithPlanning","applicationForm","requestType","isRequestWithoutPlanning","isTotalPlantPerformanceBelow300","totalPlantPerformance","isTotalPlantPerformanceAbove300","lawParagraph14aConditionsMet","newOrExistingPlant","plantWasAlreadyCommissioned","initialCommissioningDate","isBefore","Date","lawParagraph14aIsPowerAboveTippingPoint","TIPPING_POINT","inverterTotalActivePower","storageHasSeparateInverter","inverterStorage","CheckboxStyle","formCustomizer","objValue","srcValue","forEach","item","items","createItem","_model","createModel","_validations","getModelClone","createClone","resetModel","formReference","dto","path","obj","migrateApplicationFormData","serverSideMigration","version","currentStep","removeDataAfterCurrentStep","stepId","formKey","currentForm","currentConfig","currentStepIndex","steps","currentStepId","resetStateAfterCurrentStep","currentFormsConfig","currentValidations","modelService","application","initialValidations","currentStepIdFormKey","currentStepIdApplicationRulesKey","modelOption","matchingConfigOption","find","configOption","currentValidationStep","initialValidationStep","currentVal","initialVal","currentValKeys","initialValKeys","diff","diffKey","stepRules","cloneSource","ModelService","errorClass","embeddedClass","readonlyClass","textAlignmentClass","readonly","formatValueWithSeparator","hasOwnProperty","cursorPosition","document","activeElement","$el","selectionStart","setSelectionRange","float","test","selectFieldDefaultConfig","preselectExactlyOneOption","select","optionKey","optionToPreselect","loadingState","downloadFile","serverErrorMessage","documentId","applicationId","setLoading","downloadDocument","then","response","bytes","fileName","catch","messageService","getErrorMessage","messageCode","finally","unsetLoading","getValidationErrorMessage","placeholders","form","errorMessage","validationErrorsContent","getErrorsByValidation","validation","$error","fixRegExpWellKnownSymbolLogic","anObject","requireObjectCoercible","sameValue","regExpExec","SEARCH","nativeSearch","maybeCallNative","regexp","O","searcher","res","done","rx","S","previousLastIndex","lastIndex","FormInputPosition","spinner","ref","applicationFormContent","applicationFormConfiguration","editValidations","selectStep","editStep","cancelEdit","submitForm","_b","stageContent","state","refInFor","tag","getStepRules","handleSubmitClick","focusFirstErrorField","showLayer","scopedSlots","_u","fn","editConfirmationLayer","confirmationText","buttonAccept","handleLayerAcceptClick","buttonCancel","handleLayerCancelClick","stepIntro","zipAndCity","_f","zip","city","getZipSuggestions","clearableSuggestionFields","handleAddressBlur","getCitySuggestions","streetAndHousenumber","street","housenumber","getStreetSuggestions","addressCheckFeedback","availabilityResult","addressCheckIsLoading","addressCheckInInitState","proceedWithCadastral","subdistrict","meadowAndLot","meadow","lot","building","geographicMap","mapHeadline","currentAddress","handleCoordinatesChanged","mapCheckboxModel","mapConsentEnabled","mapHint","isMapVisible","mapConsentHeadline","mapConsentText","mapConsentDisabled","mapConsentHint","geographicLatCoordinates","geographicLngCoordinates","buttonNext","setCookie","expireDays","date","setTime","getTime","expires","toUTCString","cookie","getCookie","cookieName","cookies","split","i","substring","deleteCookie","getSuggestionsMethod","filterByInput","maxSuggestions","suggestAfterCharacters","debounce","vueSimpleSuggest","inputWrapper","defaultInput","inputClassesString","suggestions","suggestItem","nativeOn","callback","VueSimpleSuggest","clearableSuggestions","join","$refs","suggest","clearSuggestions","_m","fastDeepEqual","equal","a","b","valueOf","toString","DEFAULT_ID","LoaderStatus","Loader","apiKey","authReferrerPolicy","channel","client","language","libraries","mapIds","nonce","region","retries","CALLBACK","callbacks","loading","instance","JSON","stringify","FAILURE","SUCCESS","LOADING","INITIALIZED","script","getElementById","remove","loadPromise","resolve","reject","loadCallback","err","window","google","execute","createUrl","createElement","src","onerror","loadErrorCallback","bind","defer","async","head","appendChild","deleteScript","onerrorEvent","failed","reset","delay","pow","console","log","setTimeout","setScript","__googleMapsCallback","cb","resetIfRetryingFailed","maps","warn","setCallback","plantLocationAddress","handleMap","mounted","VUE_APP_GOOGLE_MAPS_APIKEY","mapElement","loader","load","address","geocoder","Geocoder","geocode","results","status","location","geometry","position","lat","lng","Map","center","zoom","streetViewControl","mapTypeId","tilt","Marker","draggable","getGPSData","event","addListener","markerPosition","getPosition","currentLatitude","currentLongitude","convertToDegreesMinutesAndSeconds","coordinate","absolute","floor","minutesNotTruncated","secondsNotTruncated","secondsNonFormatted","trunc","convertedGpsData","latitude","longitude","gpsData","getCitySuggestionsByZip","getCitySuggestionsByCity","getAvailability","parseToBadResponseType","parts","parsedType","addHasErrorsClass","addressCheckFeedbackCheckingHeadline","addressCheckFeedbackAvailableHeadline","addressCheckFeedbackEnterAddressHeadline","addressCheckFeedbackUnavailableHeadline","addressCheckFeedbackUnavailableInfoText","pvModule","canRemoveItem","handleModuleFunctionalityButtonClick","canAddItem","pvAddRemovePvModule","functionalityButtonValue","handleFunctionalityButtonClick","pvQuantityAndNominalPower","validationProps","quantity","nominalPower","pvQuantityAndNominalPowerValidations","pvTotalNominalPower","totalNominalPowerDisplayValue","showRemoveButton","FormInputCount","FormField","FormFileUpload","FunctionalityButton","newValue","setTotalNominalPower","rawQuantity","rawNominalPower","parsedNominalPower","PhotovoltaicModuleFormGroup","removeItem","FormTextBlock","PhotovoltaicModuleFormList","isVisible","addressRequiredIfNoCadastral","$parent","FormRadioGroup","FormBooleanCheckbox","FormInputTextWithSuggestions","LocationMap","FormInputGeoCoordinates","ButtonSpacer","MapWrapper","AddressCheckFeedbackFormGroup","addressesService","activeAddressesSuggestions","zipQuery","zipResult","cityQuery","cityResult","streetQuery","streetResult","consentGranted","enableMap","disableMap","oldValue","isValid","resetCitySuggestions","resetStreetSuggestions","startsWith","resetZipSuggestions","resetSuggestions","initMapData","getCurrentAddress","evaluateAvailability","hasMapConsentCookie","isValidAddress","alertService","clear","pushAlert","alert","coordinatesData","energyType","simplifiedRegistrationProcessNotice","plantStructureType","requestWithPlanningInfo","requestWithoutPlanningInfo","emergencyGeneratorOperatingMode","emergencyGeneratorOperatingModeSummaryValue","specifiedEmergencyGeneratorOperatingMode","simplifiedProcedureHint","bidirectionalMeter","bidirectionalMeterInfo","consumption","infeed","readingDate","plugInGeneratingPlantInfo","expand","accordionExpanded","toggleAccordion","getCheckboxListSummaryValue","field","selectedOptions","FormCheckboxList","FormDatePicker","Accordion","FormSelect","FormLinkButton","operatingMode","fullInfeedBonusHeadline","fullInfeedBonus","meterNumber","measuringPointOperation","measuringPointOperator","priceSheetMeasuringPointOperation","selfSupplyQuantity","remainingElectricityInfo","storageHeadline","operatingModeStorage","measuringPointOperatorInfo","measuringPointOperationInfoEwe","measuringPointOperationFollowingConditionsAndGtacEwe","measuringPointOperationInfoOther","PV_SELFGENERATIONQUANTITY_TO_SELFSUPPLYQUANTITY_FACTOR","updateSelfSupplyQuantity","initializeSelfGenerationQuantity","$reset","controllableConsumptionDevicesInfo","gridControlConditionsAccepted","gridControlImplementationPreference","connectionTypeSelector","identificationNumbersOfRegisteredConsumptionDevices","controllableConsumptionFacilitiesRequirementInfo","showIcon","invisible","handleIconClick","mode","removeAt","FormInputTextFormList","doesConnectionExist","orderNumber","hasExistingPlants","onlyInverterCapacityOfExistingGenerationPlant","existingPlantsTotalPower","repoweringPlanned","repoweringTotalPower","feedInPowerInstalled","generationUnitsFeedback","invalidGenerationUnits","feedInPowerShallBeLimitedByAController","feedInPower","plannedReferencePower","ofWhichOwnUseGeneratingPlant","ownUseExceedsPlannedPowerWarning","noConnectionAvailable","reactivePowerCompensationSystemExists","unitCapacity","unitIsPrototype","buildingPowerDemand","requiredPower","fromWhen","old","new","summary","total","sum","generationUnitsFeedbackHeadline","generationUnitsFeedbackInfoText","invalidGenerationUnit","manufacturer","moduleType","zerezId","generationUnitsFeedbackButton","openPlantPerformanceFormStep","FormScriptButton","inject","from","scrollToStep","show","norm","FormRadioGroupTiles","DatePicker","FormInputPowerOldNewSum","GenerationUnitsFeedbackFormGroup","calculateFeedInPowerWatchValues","separatePropertyOwner","plantBuilder","operators","country","usePlantLocation","handleZipBlur","email","emailRepeat","phoneNumber1","phoneNumber2","addressSuggestions","zips","cities","districts","streets","getAddressSuggestions","order","district","fetchSuggestions","d","AddressService","query","getDistrictSuggestions","setCity","clearSuggestionFields","fields","noDistrictFoundServiceValue","operator","addRemovePlantOperator","salutation","companyName","operatorName","firstName","lastName","operatorNameValidations","isFirstOperator","contactPersonName","contactPersonNameValidations","birthday","$vnode","OperatorFormGroup","pop","OperatorFormList","addressService","builderName","newOrExistingApplication","applicationNumber","getFilteredPlantOptions","powerHeatCouplingPaymentsBasedOnLawHint","bafaApprovalWillBeSubmittedLater","plantBuildingType","plantPosition","pvInstallationType","pvInstallationTypeForAgriculturalLandOrParkingLots","tenantElectricitySurcharge","plantBuildingTypeForTenantElectricitySurcharge","requirementTenantElectricitySurchargeHint","minimumRequirementLivingSpace","noResidentialExemptions","electricityConsumptionWithinThisBuilding","noAdditionalNetworkForEndConsumer","federalNetworkAgencyHint","proofOfRegistrationPhotovoltaic","proofOfAllocationOfTenantElectricitySurcharge","declarationEnwgHint","plantOperatorKnowsEnwgSpecifications","infeedManagement","activePowerLimit60","storageConnection","electricityTaxExemptionHint","storagePublicDischargeWarning","storageBalancingEnergyMarketParticipation","storageBalancingEnergyMarketParticipationType","imHeadline","imPowerReductionType","toneFrequencyReceiverToPlantOperatorOrBuilder","imAudioFrequencyControlReceiverContract","imProvisionThrough","imTechnicalSpecificationsNote","imBilling","imDirectDebitMandate","imIban","imCreditInstitutionName","imBillingDate","imAccountHolderName","InfeedManagementFormGroup","newOrExistingPlantStorage","prefillStorageChargingAndDischarging","propertyOwnerAgreement","owners","owner","handleOwnerFunctionalityButtonClick","addRemovePropertyOwner","ownerName","ownerNameValidations","zipAndCityValidations","streetAndHousenumberValidations","OwnerFormGroup","OwnerFormList","paymentRequirements","noEegRemuneration","reasonNoEegRemuneration","explanationNoEegRemuneration","noEegRemunerationHint","plantSalesMethodAssignment","tax","smallPVTaxAdvisorHint","matchingTaxIDHint","noFinancialDistress","noPendingEURecoveryClaims","taxNumberWillFollow","taxNumber","directDebitMandate","iban","nameAndDomicileCreditInstitution","accountOwnerName","FormInputMultiLineText","overallNominalPowerNotMatchingTotalPlantPerformanceValueTypeWarning","certificateHint","pvHeadline","pvModules","overallNominalPowerDisplayValue","pvTotalPower30","overallNominalPower","setOverallNominalPower","storageModules","overallDischargePowerDisplayValue","storageOverallStorageCapacity","overallStorageCapacityDisplayValue","storageTotalPower30","storageModule","storageAddRemoveModule","storageManufacturerAndStorageType","storageType","storageManufacturerAndStorageTypeValidations","storageQuantity","storageDischargePowerAndStorageCapacity","dischargePower","storageCapacity","storageDischargePowerAndStorageCapacityValidations","storageMemoryExpansion","storageTotalDischargePower","totalDischargePowerDisplayValue","storageTotalStorageCapacity","totalStorageCapacityDisplayValue","setTotalDischargePower","setTotalStorageCapacity","rawDischargePower","parsedDischargePower","rawStorageCapacity","parsedStorageCapacity","StorageModuleFormGroup","StorageModuleFormList","overallDischargePower","setOverallDischargePower","overallStorageCapacity","setOverallStorageCapacity","inverterHeadline","inverterModules","overallActivePowerDisplayValue","inverterOverallActivePowerWarning","overallApparentPowerDisplayValue","inverterAddRemoveModule","inverterManufacturerAndModuleType","manufacturerText","inverterManufacturerAndModuleTypeValidations","manufacturerSelect","moduleTypeText","moduleTypeSelect","inverterZerezIdAndNorm","normText","inverterZerezIdAndNormValidations","inverterManualInputManufacturerTypeZerezId","unitCertificateInvalidForInstalledPower","inverterQuantity","inverterActivePowerAndApparentPower","activePower","apparentPower","totalActivePowerDisplayValue","inverterTotalApparentPower","totalApparentPowerDisplayValue","inverterActivePowerAndApparentPowerValidations","getTotalPower","getInverter","manufacturerName","updateInverterFields","translated","enumsContent","connectionRulesType","rawPower","power","parsedPower","search","contentService","invertersContent","serviceDrivenContent","showingDropdownFields","connectionRulesTypes","parsedActivePower","parsedApparentPower","InverterModuleFormGroup","FormFieldComponent","InverterModuleFormList","getOverallPowerDisplayValue","rawValue","stringToInterpolate","formList","getFormField","generatorHeadline","generatorModules","generatorAddRemoveModule","generatorManufacturerAndModuleType","generatorManufacturerAndModuleTypeValidations","generatorZerezIdAndNorm","generatorZerezIdAndNormValidations","generatorManualInputManufacturerTypeZerezId","generatorQuantityAndGeneratorType","generatorType","generatorQuantityAndGeneratorTypeValidations","generatorActivePowerAndApparentPower","generatorActivePowerAndApparentPowerValidations","generatorTotalActivePowerIsGreaterThanTotalApparentPowerWarning","generatorTotalActivePower","generatorTotalApparentPower","getGenerator","updateGeneratorFields","generatorsContent","GeneratorModuleFormGroup","GeneratorModuleFormList","getDisplayValue","overallActivePower","overallApparentPower","PhotovoltaicFormGroup","StorageFormGroup","InverterFormGroup","GeneratorFormGroup","checkNotice","comments","summaryDocument","privacyInformation","generalTermsConsent","generalTermsConsentContent","marketingConsent","correctnessNotice","DocumentDownload","generalTermsConsentNS","generalTermsConsentMS","meterPicture","bafaApproval","gridAndPlantProtectionProofOfConformity","showAsteriskForGridAndPlantProtectionProofOfConformity","inverterModuleKey","inverterModule","inverterConformityConfirmationOrUnitCertificate","inverterTechnicalDataSheet","inverterProofOfConformity","inverterUnitCertificate","generatorModule","generatorTechnicalDataSheet","generatorConformityConfirmationOrUnitCertificate","generatorProofOfConformity","generatorUnitOrPrototypeConfirmation","generatorComponentCertificate","performanceMonitoringCertificate","sitePlanWithLotNumber","electricalSystemCircuitDiagram","proofOfReadyForPlanning","storageManufacturerDataSheet","DocumentsFormStorageSection","showPlantPerformanceHeadline","showPowerConnectionHeadline","Stage","FormStepComponent","AppLayer","AppContent","enabledSteps","maxReachedStepIndex","maxReachedStep","GenerationTypeForm","generationTypeContent","LocationForm","locationContent","PlantPerformanceForm","plantPerformanceContent","PowerConnectionForm","powerConnectionContent","PlantDataForm","plantDataContent","measuringConceptsContent","ControllableConsumptionDevicesForm","controllableConsumptionDevicesContent","controllableConsumptionDevices","PlantOperatorForm","plantOperatorContent","plantOperator","PlantBuilderForm","plantBuilderContent","PropertyOwnerForm","propertyOwnerContent","propertyOwner","BillingForm","billingContent","billing","DocumentsForm","documentsContent","documents","documentsConfiguration","CheckAndSendForm","checkAndSendContent","checkAndSend","checkAndSendConfiguration","stepIsEdit","isStepBeingEdited","stepState","getStepState","stepHeading","current","vm","general","edit","remainingWithData","remaining","promise","displayDuration","communicateSubmitFormError","redirect","redirects","router","errorRow","querySelector","errorField","focus","scrollIntoView","block","inline","getConfigurationPromise","currentPromise","loadedConfiguration","requestConfigurationOnce","requestConfiguration","configurationServices","fetchFormConfiguration","size","mainsConnectionType","context","ApplicationFormTemplate","opaque","rawEditModel","rawEditValidations","contentLoaded","authService","formsConfig","resetEditModels","initializeContent","$route","params","$router","saveApplication","getApplicationData","advanceStep","showErrorMessageInDialogue","scrollToCurrentStep","requestContentOnce","prepareUploadFieldValidations","initializeMeasuringConceptsContent","measuringPointOperatorsContent","fileUploadConfiguration","configurations","c","scId","currentStepPassesMaxReachedStep","saveServiceResponse","sendApplication","hasNextStep","nextStepId","dialogueMessageService","toSafety","newApplication","scrollToClass","className","addLabel","removeLabel","positive","numericValue","restrictedApparentPower","restrictedNominalPower","parsedValue","photovoltaicFormGroup","initializeItems","minItemCount","maxItemCount","maxNominalPowerPlugInGeneratingPlant","storageFormGroup","generatorFormGroup","excludeFromDto","excludeFromSchema","hasServiceDrivenOptions","onMountOptionsSetter","values","jsonSchema","enum","maxApparentPowerPlugInGeneratingPlant","inverterFormGroup","apparentPowerMustBeBiggerThanActualPower","minOverallApparentPowerValidator","proofOfConformityValidator","plantPerformanceFormStep","calculateFeedInPower","powerConnectionFormStep","getOverallActivePowerWithPreExisting","powerText","getInvalidGenerationUnitsWithPreExisting","getInvalidGenerationUnitsInternal","invalidUnits","enableManualInput","getFormGroupAndElementValidations","formGroup","ret","prop","getFormValidations","formProp","getValidations","forms","getFormGroupAndElementValues","formGroupProp","getFormElementValues","getFormListValues","formElement","getFormValues","getValues","createValidations","extendedValidationComponent","modelValidations","formValidations","$v","validationComponent","createFormValidations","use","locationVueContainer","enumerableGetterAttribute","propertyKey","getter","enumerable","getApplicationType","applicationTypeFunction","assign","formDtoAttribute","focusDatePickerInput","isDragging","isRange","start","contentDateStartWithFallback","end","contentDateEndWithFallback","setDateToday","isIe","msToWaitForDatePicker","showTodayButton","contentDateStart","contentDateEnd","datePickerSupported","classList","contains","click","currentDateString","format","currentStart","houseNumber","regex","getComparableNumber","parseFloat","isNaN","comparedValue","comparableValue","comparableComparedValue","requiredIfAny","parentVm","getDegreesValidators","orientation","GeoOrientation","integer","minValue","maxValue","getMinutesValidators","getSecondsValidators","null","valueWithLength","locationFormStep","maxDate","validateValue","isSameOrBefore","dateFieldDefaultConfig","availableStart","availableEnd","generationTypeFormStep","toDate","requiredDate","positiveInteger","val","recommendation","mustBeLowerThanToExistingPlantsTotalPower","mustBeLowerThanFeedInPowerRecommendation","maxDateNow","modelCountryPath","localModelCountryPath","normalizedValue","matches","exec","subPath","listElementName","listElements","listElementIndex","listElement","listElementZip","ValidationErrorsIBAN","ValidationErrorsBIC","emailRepeatMustBeIdentical","plantOperatorFormStep","phoneNumber","plantBuilderFormStep","isValidIBAN","reg","spec","countrySpecs","bban_regexp","chars","checkFormatBBAN","isValidIBANChecksum","bban","bformat","providedChecksum","parseInt","temp","validationString","n","charCodeAt","part","rest","AD","IBANRegistry","SEPA","AE","AF","AG","AI","AL","AM","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CR","CU","CV","CW","CX","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","EH","ER","ES","ET","FI","FJ","FK","FM","FO","FR","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SV","SX","SY","SZ","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XK","YE","YT","ZA","ZM","ZW","infeedManagementFormGroup","plantDataFormStep","propertyOwnerFormStep","selfGenerationQuantitySuggestion","measuringConceptsFormStep","alphaNum","mustBeNoMoreThan20PercentAboveSuggestion","mustBeLowerThanOrEqualToSelfGenerationQuantity","registeredConsumptionDeviceIdentificationNumber","registeredConsumptionDeviceIdentificationNumbers","numbers","every","controllableConsumptionDevicesFormStep","minDate","isSameOrAfter","minDateNow","maxDate3Months","add","billingFormStep","checkAndSendFormStep","uploadFieldDefaultConfig","properties","inverterStorageModules","allowedTypes","fileTypes","toLowerCase","maxSize","maxFileSize","fileType","documentsFormStep","step1","step2","step3","step4","validateValueMin","validateValueMax","isBetween","textBlock","requiredField","multiLineField","numberField","wideField","innerLabelField","geoCoordinatesField","checkboxField1","checkboxField2","selectField","selectFieldSingleOption","selectFieldSearch","selectFieldMsb","fileUpload","datePickerField","datePickerRangeField","countField","documentDownload","formLinkButton","formScriptButton","kitchenSinkFormStep1","inDateRange","selected","selectedTiles","kitchenSinkFormStep2","option3RightAnswer","everybodyIsInterestedInNetzanschluessen","checkedOptions1","checkedOptions2","dropdownCheckedOptions","kitchenSinkFormStep3","radioIsForbidden","primary","secondary","users","plants","checkbox","kitchenSinkFormStep4","kitchenSinkForm","kitchenSink","$","ceil","stat","alignTop","inlineElement","selectCustomized","isInitialized","selectCustomizedShowSearch","classes","$$selectedVal","o","_value","inputVal","multiple","isDropdownVisible","ghostInputVal","toggleDropdown","_k","keyCode","ctrlKey","shiftKey","altKey","metaKey","closeDropdown","cursorUp","cursorDown","hovered","hoveredOption","searchTerm","active","selectedOption","hoverOption","selectOption","filteredOptions","noResults","showSearch","isSearchEnabled","cursorOption","vClickOutsideConfig","middleware","events","vClickOutsideHandler","vClickOutsideMiddleware","openDropdown","searchInput","nextTick","keepFocused","input","unselectOption","ensureOpenDropdown","optionIndex","list","behavior","findIndex","filteredOptionsCountMinusOne","closest","reloadSelectedOption","FormInputSelect","FormInputSelectCustomized","FormInputOption","countRanEnabledOptionsWatcher","handleEnabledOptionsChange","getFormInputMixin","injectedFormField","formFieldHasErrors","formFieldErrors","$findIndex","addToUnscopables","arrayMethodUsesToLength","FIND_INDEX","SKIPS_HOLES","USES_TO_LENGTH","proto","forced","callbackfn","arguments","kitchenSinkRules","addRequiredValidator","removeRequiredValidator","delete","toggleRequiredValidator","addOrRemove","isPvButNoPluginGeneratingPlant","PLANT_TYPE_RULES","energyStorage","sun","sunAndEnergyStorageLte30","wind","water","biogas","biowaste","biodiesel","slurry","plantOil","woodGas","mineGas","sewageGas","landfillGas","geothermics","naturalGas","liquidGas","dieselOil","isEnergyStorageOrSunOrWind","optionRules","pluginSimplified","findFirstValidKey","ruleset","isHigherThanOrEqual","valueToCompareTo","parsedValueToCompareTo","hasLowVoltage","isOther","requestWithoutPlanning","existingPlantsTotalPowerConditionInfo","pvInfo","storageInfo","otherInfo","conditionalInfoKey","isLvStorageBelow30","requestTypeIsWithPlanningOrDisabled","doesConnectionExistIsOrderedOrNo","doesConnectionExistIsOrderedOrNoWithRequestTypePlanning","isStreetAndHouseNumberAvailable","setPowerReductionTypeOptions","powerReductionRules","isPvNominalPowerInRange","isPhcActivePowerInRange","isDeaUnknownMiddleRangeActivePower","isPlugin","infeedManagementConditionInfo","isAudioFrequencyControlReceiver","noPowerReduction","audioFrequencyControlReceiverInternal","audioFrequencyControlReceiverExternal","isAudioFrequencyControlReceiverInternal","isAudioFrequencyControlReceiverExternal","isSepa","hasStorage","isStorageHasSeparateInverterEnabled","isEligibleApplicationType","storageChargeFromPublicGrid","storageDischargeIntoPublicGrid","hasTotalPlantPerformanceAbove300","getGenerators","hasTotalPlantPerformanceBelow300","overallActivePowerWithPreexisting","generators","dependantFieldsHaveValues","getInverters","pluginGeneratingPlant","inverters","isInverterEnabled","isStorageInverterEnabled","isGeneratorEnabled","zeroInfeed","commercialTransfer","storageOperatingMode","isLowVoltageWithExistingConnection","noPvOrDeaWithNominalPowerLte100AndNotMv","noEegRenumerationIsChecked","isphotovoltaicAndStorageLte30","hasMediumVoltage","hasUnknownVoltage","newAndExistingActivePower","hasLvApparentBelowOrEqual30","hasLvApparentAbove30","hasMvAbove135","hasUnBelowOrEqual300","hasUnAbove300","hasLvWithPreExistingAbove30","hasMvWithPreExistingAbove30","hasMvWithPreExistingAbove270","requestWithPlanning","moduleField","syncArray","isNotStorageOrNotPowerGenerationPlantWithStorageFacilityInTheGenerationPathAndConsumptionPlant","allGenerators","g","generatorIsUnknownOrigin","allInverters","inverterIsUnknownOrigin","destination","sourceIds","Set","has","sudoRemoveAt","sourceItem","destItem","applicationRules","confirmation","defaultControls","selectionUp","selectionDown","hideList","showList","autocomplete","modes","fromPath","hasKeyCode","arr","hasKeyCodeByCode","code","array","_typeof","Symbol","iterator","_empty","_awaitIgnored","direct","_invoke","body","_await","_invokeIgnored","_catch","recover","_finally","finalizer","styles","designed","destyled","isInFocus","isTabbed","listId","listShown","removeList","$attrs","$scopedSlots","suggestion","getId","isSelected","hover","isHovered","suggestionClick","displayProperty","autocompleteText","inheritAttrs","controls","displayAttribute","valueAttribute","filterByQuery","el","nullableSelect","validator","_this","updateTextOutside","inputElement","canSend","timeoutInstance","isPlainSuggestion","isClicking","isFalseFocus","controlScheme","_uid","listIsRequest","inputIsComponent","$slots","componentInstance","hoveredIndex","valueProperty","textLength","isSelectedUpToDate","setInputAriaAttributes","prepareEventHandlers","beforeDestroy","isEqual","setAttribute","enable","binder","keyEventsList","showSuggestions","keydown","onKeyDown","keyup","onListKeyUp","eventsList","blur","onInput","listenerBinder","_event","isScopedSlotEmpty","slot","vNode","children","miscSlotsAreEmpty","_this2","slots","s","getPropertyByAttribute","attr","display","process","setText","_this3","elem","elemId","_this5","research","onShowList","moveSelection","isMovingDown","direction","listEdge","hoversBetweenEdges","onAutocomplete","_this6","isTrusted","inputEvent","clearTimeout","_this8","textBeforeRequest","getSuggestions","newList","_this10","_this9$list","splice","getFormElementMixin","containerClassList","decrementButtonClassList","decrement","inputModel","onFormInputFocus","onFormInputBlur","incrementButtonClassList","increment","formInputIsFocused","isMin","isMax","getButtonClassList","isLimit","inactiveClass","_obj","isRemaining","isRemainingWithData","isEdit","isCurrent","isDone","stepScrollClass","formStepButtonEditText","formStepIconRemainingWithDataText","formStepButtonCancelText","heading","isIE","StepNumber","AppAlerts","CloseButton","BackgroundOverlay","stepIdentifier","buttonEdit","formStepIconRemainingWithData","getFormInputTextMixin","alignText","allowedCharacters","forbiddenCharacters","handleBlurEvent","focusable","embedded","accept","uploadFile","files","deleteFile","acceptedExtensions","extension","showUploadButton","file","fileInfo"],"mappings":"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","file":"js/Application.df9c855e.js","sourcesContent":["var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.model.disabled)?_c('FormRow',{staticClass:\"content mb-6\",attrs:{\"full-width\":_vm.fullWidth}},[_c('div',{staticClass:\"flex justify-center\"},[_c('InfoIconWrapper',{attrs:{\"show-info-icon\":_vm.showInfoIcon && !_vm.showSummary,\"content\":_vm.content,\"model\":_vm.model,\"align-top\":\"\",\"inline-element\":\"\"}},[_c('AppButton',{attrs:{\"label\":_vm.content.text,\"character\":_vm.character,\"character-is-left\":_vm.characterIsLeft,\"theme\":_vm.theme},on:{\"button-click\":_vm.func}})],1)],1)]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { ScriptButtonContent } from '@/api/interfaces/content/form/base/scriptButtonContent';\r\nimport AppButton from '@/components/atoms/appButton/AppButton.vue';\r\nimport { ButtonCharacter } from '@/enums/buttonCharacter';\r\nimport { ButtonTheme } from '@/enums/buttonTheme';\r\nimport { getFormElementMixin } from '@/mixins/formElementMixin';\r\nimport { NoValueField } from '@/types/forms/fields/noValueField';\r\nimport { PropType } from 'vue';\r\nimport FormRow from '../formRow/FormRow.vue';\r\nimport InfoIconWrapper from '../infoIconWrapper/InfoIconWrapper.vue';\r\n\r\nexport default getFormElementMixin<\r\n NoValueField,\r\n Record\r\n>().extend({\r\n name: 'FormScriptButton',\r\n components: {\r\n FormRow,\r\n InfoIconWrapper,\r\n AppButton,\r\n },\r\n props: {\r\n content: {\r\n type: Object as PropType,\r\n default: () => {\r\n return {};\r\n },\r\n },\r\n func: {\r\n type: Function,\r\n default: undefined,\r\n },\r\n model: {\r\n type: Object,\r\n default: () => {\r\n return {};\r\n },\r\n },\r\n character: {\r\n type: String as PropType,\r\n default: ButtonCharacter.raquo,\r\n },\r\n characterIsLeft: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n fullWidth: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n showSummary: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n showInfoIcon: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n theme: {\r\n type: String as PropType,\r\n default: ButtonTheme.buttonPrimary,\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FormScriptButton.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FormScriptButton.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FormScriptButton.vue?vue&type=template&id=3b4aed94&\"\nimport script from \"./FormScriptButton.vue?vue&type=script&lang=ts&\"\nexport * from \"./FormScriptButton.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { v4 as uuidv4 } from 'uuid';\r\nimport { FormField } from '../fields/formField';\r\nimport { FormGroup } from '../formGroup';\r\nimport { WithOptional } from '../utility';\r\n\r\ntype ConfigProps = WithOptional;\r\n\r\nexport class ReferenceFormGroup extends FormGroup {\r\n public id?: FormField;\r\n\r\n public constructor(\r\n config: ConfigProps,\r\n id: string | undefined = undefined,\r\n ) {\r\n super(config);\r\n\r\n this.id = new FormField({ value: id ?? uuidv4() });\r\n }\r\n}\r\n","/**\r\n *\r\n * @param value current value\r\n * @param previousValue previous value\r\n * @returns difference as floating-type number (e.g. \"0.5\" for a 50% increase)\r\n */\r\nexport function getPercentageChange(\r\n value: number,\r\n previousValue: number,\r\n): number {\r\n if (!previousValue) {\r\n throw new Error(\r\n 'Can not determine percentage change, if the previous value is 0.',\r\n );\r\n }\r\n\r\n return value / previousValue - 1;\r\n}\r\n\r\nexport function getPercentageDifference(\r\n value1: number,\r\n value2: number,\r\n): number {\r\n const sum = value1 + value2;\r\n\r\n if (!sum) {\r\n throw new Error(\r\n 'Can not determine percentage difference, if the value sum is 0.',\r\n );\r\n }\r\n\r\n return Math.abs(value1 - value2) / Math.abs(sum / 2);\r\n}\r\n","import { gt, lt } from '@/services/floatComparison';\r\nimport { getPercentageChange } from '@/services/percentage';\r\nimport { PlantPerformanceFormStep } from '@/types/forms/formSteps/plantPerformanceFormStep';\r\nimport {\r\n ApplicationForm,\r\n ApplicationType,\r\n} from '@/types/forms/specific/applicationForm';\r\nimport {\r\n formatGermanNumber,\r\n parseGermanFloat,\r\n} from '@/utilities/germanFormats';\r\n\r\nexport function isOverallActivePowerWarningEnabled(\r\n value: number | null,\r\n referenceValue: number | null,\r\n): boolean {\r\n if (!value || !referenceValue) {\r\n return false;\r\n }\r\n\r\n const percentageChange = getPercentageChange(value, referenceValue);\r\n const limit = 0.1;\r\n\r\n return gt(percentageChange, limit) || lt(percentageChange, -limit);\r\n}\r\n\r\nexport function getOverallNominalPower(\r\n plantPerformanceModel: PlantPerformanceFormStep,\r\n): number | null {\r\n if (!plantPerformanceModel) {\r\n return null;\r\n }\r\n\r\n if (\r\n !plantPerformanceModel.photovoltaic.disabled &&\r\n !plantPerformanceModel.photovoltaic.pvOverallNominalPower.disabled\r\n ) {\r\n return plantPerformanceModel.photovoltaic.pvOverallNominalPower\r\n .value !== null\r\n ? plantPerformanceModel.photovoltaic.pvOverallNominalPower.value\r\n : null;\r\n }\r\n\r\n if (\r\n !plantPerformanceModel.storage.disabled &&\r\n !plantPerformanceModel.storage.storageOverallDischargePower.disabled\r\n ) {\r\n return plantPerformanceModel.storage.storageOverallDischargePower\r\n .value !== null\r\n ? plantPerformanceModel.storage.storageOverallDischargePower.value\r\n : null;\r\n }\r\n\r\n if (\r\n !plantPerformanceModel.generator.disabled &&\r\n !plantPerformanceModel.generator.generatorOverallActivePower.disabled\r\n ) {\r\n return plantPerformanceModel.generator.generatorOverallActivePower\r\n .value;\r\n }\r\n\r\n return null;\r\n}\r\n\r\nexport function getOverallActivePower(\r\n applicationType: ApplicationType | undefined,\r\n plantPerformanceModel: PlantPerformanceFormStep,\r\n): number | null {\r\n if (!plantPerformanceModel) {\r\n return null;\r\n }\r\n\r\n if (\r\n applicationType == 'photovoltaic' ||\r\n applicationType == 'photovoltaicAndStorageLte30' ||\r\n applicationType == 'storage'\r\n ) {\r\n if (\r\n !plantPerformanceModel.inverter.disabled &&\r\n !plantPerformanceModel.inverter.inverterOverallActivePower.disabled\r\n ) {\r\n return plantPerformanceModel.inverter.inverterOverallActivePower\r\n .value;\r\n }\r\n } else {\r\n if (\r\n !plantPerformanceModel.generator.disabled &&\r\n !plantPerformanceModel.generator.generatorOverallActivePower\r\n .disabled\r\n ) {\r\n return plantPerformanceModel.generator.generatorOverallActivePower\r\n .value;\r\n }\r\n }\r\n\r\n return null;\r\n}\r\n\r\nexport function getOverallApparentPower(\r\n applicationType: ApplicationType | undefined,\r\n plantPerformanceModel: PlantPerformanceFormStep,\r\n): number | null {\r\n if (!plantPerformanceModel) {\r\n return null;\r\n }\r\n\r\n if (\r\n applicationType == 'photovoltaic' ||\r\n applicationType == 'photovoltaicAndStorageLte30' ||\r\n applicationType == 'storage'\r\n ) {\r\n if (\r\n !plantPerformanceModel.inverter.disabled &&\r\n !plantPerformanceModel.inverter.inverterOverallApparentPower\r\n .disabled\r\n ) {\r\n return plantPerformanceModel.inverter.inverterOverallApparentPower\r\n .value;\r\n }\r\n } else {\r\n if (\r\n !plantPerformanceModel.generator.disabled &&\r\n !plantPerformanceModel.generator.generatorOverallApparentPower\r\n .disabled\r\n ) {\r\n return plantPerformanceModel.generator.generatorOverallApparentPower\r\n .value;\r\n }\r\n }\r\n\r\n return null;\r\n}\r\n\r\nexport function calculateSelfGenerationQuantity(\r\n formModel: ApplicationForm,\r\n editModel: ApplicationForm | null = null,\r\n): string | null {\r\n const PV_OVERALLNOMINALPOWER_TO_SELFGENERATIONQUANTITY_FACTOR = 850;\r\n\r\n const modelSelfGenerationQuantity =\r\n (formModel.plantPerformance.photovoltaic.pvOverallNominalPower.value ??\r\n 0) * PV_OVERALLNOMINALPOWER_TO_SELFGENERATIONQUANTITY_FACTOR;\r\n const editSelfGenerationQuantity = editModel\r\n ? (editModel.plantPerformance.photovoltaic.pvOverallNominalPower\r\n .value ?? 0) *\r\n PV_OVERALLNOMINALPOWER_TO_SELFGENERATIONQUANTITY_FACTOR\r\n : modelSelfGenerationQuantity;\r\n\r\n const parsedSelfGenerationQuantity = parseGermanFloat(\r\n formModel.measuringConcepts.selfGenerationQuantity.value ?? '',\r\n );\r\n\r\n const finalSelfGenerationQuantity =\r\n parsedSelfGenerationQuantity === 0 ||\r\n modelSelfGenerationQuantity === parsedSelfGenerationQuantity\r\n ? formatGermanNumber(editSelfGenerationQuantity, {\r\n decimals: 2,\r\n thousandsSeparator: true,\r\n })\r\n : formModel.measuringConcepts.selfGenerationQuantity.value;\r\n\r\n return finalSelfGenerationQuantity;\r\n}\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.model.disabled)?_c('FieldWithInfoIcon',{attrs:{\"show-info-icon\":_vm.showInfoIcon,\"content\":_vm.content}},[_c('div',{staticClass:\"radio-group w-full text-center flex flex-wrap flex-col md:flex-row items-stretch\"},_vm._l((_vm.enabledOptionsWithContent),function(option){return _c('div',{key:option.key,staticClass:\"radio-group-tile mb-4 cursor-pointer bg-surface-variant pb-6\",on:{\"click\":function($event){return _vm.selectRadioButton(option)}}},[_c('div',{staticClass:\"pb-3\"},[_c('AppImage',{attrs:{\"content\":option.content.image}})],1),_c('div',{staticClass:\"font-semibold pb-3 px-3\"},[_vm._v(\" \"+_vm._s(option.content.label)+\" \")]),_c('div',{staticClass:\"pb-3\"},[_c('FormInputRadio',{attrs:{\"model\":_vm.model,\"name\":_vm.radioButtonGroupName,\"input-value\":option.key}})],1)])}),0)]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { v4 as uuidv4 } from 'uuid';\r\nimport { getFormInputMixin } from '@/mixins/formInputMixin';\r\nimport FormLabel from '@/components/atoms/formLabel/FormLabel.vue';\r\nimport FormInputRadio from '@/components/atoms/formInputRadio/FormInputRadio.vue';\r\nimport AppImage from '@/components/atoms/appImage/AppImage.vue';\r\nimport { RadioButtonsField } from '@/types/forms/fields/radioButtonsField';\r\nimport { FormOption } from '@/types/forms/formOption';\r\nimport { RadioButtonTileContent } from '@/api/interfaces/content/form/base/radioButtonTileContent';\r\nimport { RadioButtonTilesContent } from '@/api/interfaces/content/form/base/radioButtonTilesContent';\r\nimport FieldWithInfoIcon from '@/components/molecules/fieldWithInfoIcon/FieldWithInfoIcon.vue';\r\n\r\nexport default getFormInputMixin<\r\n RadioButtonsField,\r\n RadioButtonTilesContent\r\n>().extend({\r\n name: 'FormRadioGroupTiles',\r\n components: {\r\n FieldWithInfoIcon,\r\n FormLabel,\r\n FormInputRadio,\r\n AppImage,\r\n },\r\n data: () => {\r\n return {\r\n radioButtonGroupName: uuidv4(),\r\n };\r\n },\r\n computed: {\r\n enabledOptions(): FormOption[] {\r\n return this.model.options.filter((options) => !options.disabled);\r\n },\r\n enabledOptionsWithContent(): (FormOption & {\r\n content: RadioButtonTileContent;\r\n })[] {\r\n return this.enabledOptions\r\n .filter((option) => !option.disabled)\r\n .map((option) => ({\r\n ...option,\r\n content: this.content.options[option.key],\r\n }));\r\n },\r\n },\r\n watch: {\r\n enabledOptions: {\r\n async handler() {\r\n // do not change value, if it is still enabled\r\n if (\r\n this.enabledOptions.some(\r\n (option) => option.key === this.model.value,\r\n )\r\n ) {\r\n return;\r\n }\r\n\r\n // wait additional step to trigger rules again\r\n await this.$nextTick();\r\n\r\n // reset value to first option, if there is any\r\n this.model.value =\r\n this.enabledOptions.length > 0\r\n ? this.enabledOptions[0].key\r\n : null;\r\n },\r\n immediate: true,\r\n },\r\n },\r\n methods: {\r\n selectRadioButton(option: FormOption): void {\r\n this.model.value = option.key;\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FormRadioGroupTiles.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FormRadioGroupTiles.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FormRadioGroupTiles.vue?vue&type=template&id=590afc22&scoped=true&\"\nimport script from \"./FormRadioGroupTiles.vue?vue&type=script&lang=ts&\"\nexport * from \"./FormRadioGroupTiles.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./FormRadioGroupTiles.vue?vue&type=style&index=0&id=590afc22&lang=postcss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"590afc22\",\n null\n \n)\n\nexport default component.exports","import { FileUploadValidationsConfiguration } from '@/api/interfaces/configuration/form/base/fielUploadValidationsConfiguration';\r\nimport Vue from 'vue';\r\n\r\nexport const appConfiguration = Vue.observable({\r\n fileUploadConfigurations: {} as {\r\n [key: string]: FileUploadValidationsConfiguration;\r\n },\r\n});\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"my-4 lg:w-11/12 flex justify-between items-end\",class:_vm.align},[(!!_vm.requiredFieldsText)?_c('span',{staticClass:\"inline-block\"},[_vm._v(\" \"+_vm._s(_vm.requiredFieldsText)+\" \")]):_vm._e(),_c('span',{staticClass:\"inline-block flex-grow\"},[_c('SpinnerArea',{attrs:{\"state\":_vm.spinnerState,\"size\":_vm.spinnerSize}},[_vm._t(\"default\",[(_vm.showDebugFillButton)?_c('AppButton',{staticClass:\"mr-2 bg-secondary hover:bg-secondary-variant focus:bg-secondary-variant text-on-secondary\",attrs:{\"label\":\"Debug-Fill\",\"theme\":_vm.buttonThemeSecondary},on:{\"button-click\":_vm.handleDebugFillClick}}):_vm._e(),_c('AppButton',{attrs:{\"label\":_vm.buttonText},on:{\"button-click\":_vm.handleClick}})])],2)],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport Vue, { PropType } from 'vue';\r\nimport AppButton from '@/components/atoms/appButton/AppButton.vue';\r\nimport SpinnerArea from '@/components/molecules/spinnerArea/SpinnerArea.vue';\r\nimport { SpinnerState } from '@/enums/spinnerState';\r\nimport { SpinnerSize } from '@/enums/spinnerSize';\r\nimport { ButtonTheme } from '@/enums/buttonTheme';\r\nimport { BaseFormContent } from '@/api/interfaces/content/form/base/baseFormContent';\r\nimport { ApplicationFormCommonContent } from '@/api/interfaces/content/form/common/applicationFormCommonContent';\r\n\r\nexport default Vue.extend({\r\n name: 'ButtonSpacer',\r\n components: {\r\n AppButton,\r\n SpinnerArea,\r\n },\r\n props: {\r\n content: {\r\n type: Object as PropType,\r\n required: false,\r\n default: () => {\r\n return {\r\n common: {} as ApplicationFormCommonContent,\r\n };\r\n },\r\n },\r\n buttonText: {\r\n type: String,\r\n default: null,\r\n },\r\n align: {\r\n type: String,\r\n default: 'left',\r\n },\r\n isLoading: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n showDebugFillButton: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n },\r\n computed: {\r\n requiredFieldsText() {\r\n return (\r\n this.content?.common?.formStep?.requiredFieldsText?.text ?? ''\r\n );\r\n },\r\n buttonThemeSecondary() {\r\n return ButtonTheme.buttonSecondary;\r\n },\r\n spinnerSize: () => SpinnerSize.small,\r\n spinnerState(): SpinnerState {\r\n return this.isLoading ? SpinnerState.transparent : SpinnerState.off;\r\n },\r\n },\r\n methods: {\r\n handleClick(): void {\r\n this.$emit('button-click');\r\n },\r\n handleDebugFillClick(): void {\r\n this.$emit('debug-fill-button-click');\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ButtonSpacer.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ButtonSpacer.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ButtonSpacer.vue?vue&type=template&id=1f405d72&scoped=true&\"\nimport script from \"./ButtonSpacer.vue?vue&type=script&lang=ts&\"\nexport * from \"./ButtonSpacer.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ButtonSpacer.vue?vue&type=style&index=0&id=1f405d72&lang=postcss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1f405d72\",\n null\n \n)\n\nexport default component.exports","// `SameValue` abstract operation\n// https://tc39.github.io/ecma262/#sec-samevalue\nmodule.exports = Object.is || function is(x, y) {\n // eslint-disable-next-line no-self-compare\n return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;\n};\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.model.disabled)?_c('FieldWithInfoIcon',{attrs:{\"show-info-icon\":_vm.showInfoIcon,\"content\":_vm.content}},[_c('div',{staticClass:\"flex\"},[_c('div',{staticClass:\"flex-grow mr-4 md:mr-8 lg:mr-10\"},[_c('FormInputText',{attrs:{\"model\":_vm.model.degrees,\"content\":_vm.content.degrees,\"validations\":_vm.validations ? _vm.validations.degrees : null,\"align-text\":\"right\"}})],1),_c('div',{staticClass:\"flex-shrink-0 w-1/4 mr-4 md:mr-8 lg:mr-10\"},[_c('FormInputText',{attrs:{\"model\":_vm.model.minutes,\"content\":_vm.content.minutes,\"validations\":_vm.validations ? _vm.validations.minutes : null,\"align-text\":\"right\"}})],1),_c('div',{staticClass:\"flex-grow\"},[_c('FormInputText',{attrs:{\"model\":_vm.model.seconds,\"content\":_vm.content.seconds,\"validations\":_vm.validations ? _vm.validations.seconds : null,\"align-text\":\"right\"}})],1)])]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport FormInputText from '@/components/atoms/formInputText/FormInputText.vue';\r\nimport { getFormInputMixin } from '@/mixins/formInputMixin';\r\nimport FieldWithInfoIcon from '@/components/molecules/fieldWithInfoIcon/FieldWithInfoIcon.vue';\r\n\r\nexport default getFormInputMixin().extend({\r\n name: 'FormInputGeoCoordinates',\r\n components: {\r\n FormInputText,\r\n FieldWithInfoIcon,\r\n },\r\n created() {\r\n this.$watch('validations.degrees.$dirty', () => this.touchAllInputs());\r\n this.$watch('validations.minutes.$dirty', () => this.touchAllInputs());\r\n this.$watch('validations.seconds.$dirty', () => this.touchAllInputs());\r\n },\r\n methods: {\r\n touchAllInputs() {\r\n if (!this.validations) {\r\n return;\r\n }\r\n if (this.validations.degrees) {\r\n this.validations.degrees.$touch();\r\n }\r\n if (this.validations.minutes) {\r\n this.validations.minutes.$touch();\r\n }\r\n if (this.validations.seconds) {\r\n this.validations.seconds.$touch();\r\n }\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FormInputGeoCoordinates.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FormInputGeoCoordinates.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FormInputGeoCoordinates.vue?vue&type=template&id=55f05273&\"\nimport script from \"./FormInputGeoCoordinates.vue?vue&type=script&lang=ts&\"\nexport * from \"./FormInputGeoCoordinates.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.model.disabled && !_vm.model.hidden)?_c('FormRow',{attrs:{\"full-width\":_vm.fullWidth}},[(_vm.showSummary && _vm.summaryValue && !_vm.hideFieldInSummary)?_c('div',{staticClass:\"mb-1\"},[(_vm.summaryIsBoolean)?_c('div',[_c('span',{staticClass:\"dea-rich-text font-medium\",domProps:{\"innerHTML\":_vm._s(_vm.summaryLabel)}})]):_c('div',[_c('span',{staticClass:\"dea-rich-text\",domProps:{\"innerHTML\":_vm._s(_vm.summaryLabel)}}),_vm._v(_vm._s(_vm.summaryLabelColon)+\" \"),_c('span',{staticClass:\"dea-rich-text font-medium\",domProps:{\"innerHTML\":_vm._s(_vm.summaryValue)}})])]):_vm._e(),(!_vm.showSummary)?_c('div',{staticClass:\"mb-6\"},[_c('div',{class:{ 'md:flex': _vm.alignAsSingleRow }},[(!_vm.hideLabel)?_c('div',{class:{\n 'pr-2 mb-2 md:mb-0 md:w-1/3 md:flex md:flex-shrink-0 flex-wrap': _vm.alignAsSingleRow,\n 'pr-2 mb-2': !_vm.alignAsSingleRow,\n 'content-start md:items-start': _vm.labelAlignTop,\n 'content-center md:items-center': !_vm.labelAlignTop,\n }},[_c('InfoIconWrapper',{attrs:{\"show-info-icon\":_vm.showInfoIcon,\"content\":_vm.content,\"model\":_vm.model,\"align-top\":\"\",\"inline-element\":\"\"}},[_c('span',{staticClass:\"dea-rich-text\",class:_vm.labelClasses,domProps:{\"innerHTML\":_vm._s(_vm.label)}}),(_vm.subLabel)?_c('span',{staticClass:\"w-full text-xs md:text-sm block dea-rich-text\",domProps:{\"innerHTML\":_vm._s(_vm.subLabel)}}):_vm._e()])],1):_vm._e(),_c('div',{class:{\n 'md:flex-grow md:w-2/3': _vm.alignAsSingleRow && !_vm.hideLabel,\n 'has-errors': _vm.hasErrors,\n }},[_vm._t(\"default\")],2)]),_vm._l((_vm.errors),function(error){return _c('div',{key:error.identifier,staticClass:\"mt-2 text-error dea-rich-text\",domProps:{\"innerHTML\":_vm._s(error.message)}})})],2):_vm._e()]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport Vue, { PropType } from 'vue';\r\nimport InfoIconWrapper from '@/components/molecules/infoIconWrapper/InfoIconWrapper.vue';\r\nimport { FormInputPosition } from '@/enums/formInputPosition';\r\nimport { ValidationGroups, ValidationProperties } from 'vue/types/vue';\r\nimport { Validation } from 'vuelidate';\r\nimport {\r\n ValidationError,\r\n getErrorsByValidation,\r\n} from '@/services/form/validationErrors';\r\nimport { uniqWith as _uniqWith } from 'lodash';\r\nimport { LabelContent } from '@/api/interfaces/content/form/base/labelContent';\r\nimport { FormInputComponent } from '@/mixins/formInputMixin';\r\nimport { FormField } from '@/types/forms/fields/formField';\r\nimport FormRow from '@/components/molecules/formRow/FormRow.vue';\r\n\r\nexport default Vue.extend({\r\n name: 'FormField',\r\n components: {\r\n FormRow,\r\n InfoIconWrapper,\r\n },\r\n provide(this: Vue) {\r\n return {\r\n formField: this,\r\n };\r\n },\r\n props: {\r\n content: {\r\n type: Object as PropType,\r\n default: () => {\r\n return {} as LabelContent;\r\n },\r\n },\r\n model: {\r\n type: Object as PropType>,\r\n default: () => {\r\n return new FormField();\r\n },\r\n },\r\n validations: {\r\n type: Object as PropType<\r\n | (Validation &\r\n ValidationGroups &\r\n ValidationProperties)\r\n | null\r\n >,\r\n default: null,\r\n },\r\n alignField: {\r\n type: String as PropType,\r\n default: FormInputPosition.nextToLabel,\r\n },\r\n showSummary: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n hideFieldInSummary: {\r\n // can be used to hide fields explicitly even if there is a summaryValue\r\n type: Boolean,\r\n default: false,\r\n },\r\n summaryValue: {\r\n type: [String, Number, Boolean],\r\n default: null,\r\n },\r\n fullWidth: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n showInfoIcon: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n labelAlignTop: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n labelClasses: {\r\n type: String,\r\n default: null,\r\n },\r\n showAsterisk: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n },\r\n data() {\r\n return {\r\n formInputComponents: [] as FormInputComponent[],\r\n };\r\n },\r\n computed: {\r\n alignAsSingleRow(): boolean {\r\n return this.alignField === FormInputPosition.nextToLabel;\r\n },\r\n hideLabel(): boolean {\r\n return this.alignField === FormInputPosition.singleLine;\r\n },\r\n isRequired(): boolean {\r\n return this.isRequiredValidation(this.validations);\r\n },\r\n hasErrors(): boolean {\r\n return !!this.validations && this.validations.$anyError;\r\n },\r\n errors(): ValidationError[] {\r\n if (!this.validations || !this.hasErrors) {\r\n return [];\r\n }\r\n return _uniqWith(\r\n this.formInputComponents.reduce((formErrors, formInput) => {\r\n const formInputErrors = getErrorsByValidation(\r\n formInput.validations as Validation & ValidationGroups,\r\n );\r\n for (const formInputError of formInputErrors) {\r\n formErrors.push(formInputError);\r\n }\r\n return formErrors;\r\n }, getErrorsByValidation(this.validations as Validation & ValidationGroups)),\r\n (error1: ValidationError, error2: ValidationError) =>\r\n error1.identifier === error2.identifier,\r\n );\r\n },\r\n label(): string {\r\n return `${this.content.label}${\r\n (this.isRequired || this.showAsterisk) && !this.showSummary\r\n ? '*'\r\n : ''\r\n }`;\r\n },\r\n subLabel(): string {\r\n return this.content.subLabel ?? '';\r\n },\r\n summaryLabel(): string {\r\n return this.content.summaryLabel || this.label;\r\n },\r\n summaryLabelColon(): string {\r\n return this.summaryLabel.charAt(this.summaryLabel.length - 1) ===\r\n ':'\r\n ? ''\r\n : ':';\r\n },\r\n summaryIsBoolean(): boolean {\r\n // summary value can be a string, number or boolean -- in case of boolean (aka checkbox),\r\n // we're supposed to only show the label\r\n return typeof this.summaryValue === 'boolean';\r\n },\r\n },\r\n methods: {\r\n registerFormInputComponent(\r\n formInputComponent: FormInputComponent,\r\n ): void {\r\n this.formInputComponents.push(formInputComponent);\r\n },\r\n isRequiredValidation(\r\n validations:\r\n | (Validation &\r\n ValidationGroups &\r\n ValidationProperties)\r\n | null,\r\n ): boolean {\r\n if (!validations) {\r\n return false;\r\n }\r\n if (\r\n 'required' in validations ||\r\n 'checked' in validations ||\r\n 'requiredDate' in validations\r\n ) {\r\n return true;\r\n }\r\n return Object.keys(validations.$params).some(\r\n (validatorIdentifier) => {\r\n const nestedValidations = validations[validatorIdentifier];\r\n return (\r\n typeof nestedValidations === 'object' &&\r\n this.isRequiredValidation(\r\n nestedValidations as Validation &\r\n ValidationGroups &\r\n ValidationProperties,\r\n )\r\n );\r\n },\r\n );\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FormField.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FormField.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FormField.vue?vue&type=template&id=3c651d19&scoped=true&\"\nimport script from \"./FormField.vue?vue&type=script&lang=ts&\"\nexport * from \"./FormField.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./FormField.vue?vue&type=style&index=0&id=3c651d19&lang=postcss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3c651d19\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StepNumber.vue?vue&type=style&index=0&id=39cd0218&lang=postcss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DatePicker.vue?vue&type=style&index=0&id=a5d30b24&lang=postcss&scoped=true&\"","/*\r\n * Returns true, if the given key indicates a function key of\r\n * the keyboard.\r\n */\r\nexport function isFunctionKey(key: string): boolean {\r\n return [\r\n 'Escape',\r\n 'Tab',\r\n 'Enter',\r\n 'Backspace',\r\n 'Insert',\r\n 'Delete',\r\n 'ArrowTop',\r\n 'ArrowRight',\r\n 'ArrowBottom',\r\n 'ArrowLeft',\r\n 'Home',\r\n 'End',\r\n 'PageUp',\r\n 'PageDown',\r\n 'Control',\r\n 'AltGraph',\r\n ].includes(key);\r\n}\r\n\r\nexport const digitKeys = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'];\r\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FormInputTextFormList.vue?vue&type=style&index=0&id=35108006&lang=postcss&scoped=true&\"","import { helpers, ValidationRule } from 'vuelidate/lib/validators';\r\nimport { number } from './number';\r\n\r\nexport const minNumber = (min: number): ValidationRule => {\r\n return helpers.withParams({ type: 'minNumber', min }, (value: unknown) => {\r\n return (\r\n !helpers.req(value) || !number(value) || (value as number) >= min\r\n );\r\n });\r\n};\r\n","import { helpers, ValidationRule } from 'vuelidate/lib/validators';\r\nimport { number } from './number';\r\n\r\nexport const maxNumber = (max: number): ValidationRule => {\r\n return helpers.withParams({ type: 'maxNumber', max }, (value: unknown) => {\r\n return (\r\n !helpers.req(value) || !number(value) || (value as number) <= max\r\n );\r\n });\r\n};\r\n","import { JSONSchema7Definition } from 'json-schema';\r\nimport { defaults as _defaults } from 'lodash';\r\nimport {\r\n FormFieldConfig,\r\n formFieldDefaultConfig,\r\n FormField,\r\n} from './formField';\r\nimport { number } from '@/validators/number';\r\nimport { minNumber } from '@/validators/minNumber';\r\nimport { maxNumber } from '@/validators/maxNumber';\r\n\r\nexport interface CountFieldConfig extends FormFieldConfig {\r\n min?: number;\r\n max?: number;\r\n step?: number;\r\n}\r\n\r\nexport const countFieldDefaultConfig = {\r\n ...formFieldDefaultConfig,\r\n min: 1,\r\n max: 99999999,\r\n step: 1,\r\n};\r\n\r\nexport class CountField extends FormField {\r\n public readonly min: number;\r\n public readonly max: number;\r\n public readonly step: number;\r\n\r\n public constructor(config?: CountFieldConfig) {\r\n const resolvedConfig = _defaults(\r\n config || ({} as CountFieldConfig),\r\n countFieldDefaultConfig,\r\n ) as Required;\r\n\r\n resolvedConfig.validators = {\r\n ...resolvedConfig.validators,\r\n number,\r\n minNumber: minNumber(resolvedConfig.min),\r\n maxNumber: maxNumber(resolvedConfig.max),\r\n };\r\n\r\n super(resolvedConfig);\r\n\r\n this.min = resolvedConfig.min;\r\n this.max = resolvedConfig.max;\r\n this.step = resolvedConfig.step;\r\n }\r\n\r\n public getJsonSchema(): JSONSchema7Definition {\r\n return {\r\n type: 'number',\r\n };\r\n }\r\n}\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('label',{staticClass:\"label\"},[_vm._t(\"default\"),_c('span',{staticClass:\"dea-rich-text\",domProps:{\"innerHTML\":_vm._s(_vm.text)}})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\r\nimport Vue from 'vue';\r\n\r\nexport default Vue.extend({\r\n name: 'FormLabel',\r\n props: {\r\n text: {\r\n type: String,\r\n default: null,\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FormLabel.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FormLabel.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FormLabel.vue?vue&type=template&id=4180e2cc&\"\nimport script from \"./FormLabel.vue?vue&type=script&lang=ts&\"\nexport * from \"./FormLabel.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue';\r\n\r\nexport const appState = Vue.observable({\r\n pendingFileUploads: 0,\r\n});\r\n","export const epsilon = 0.000000001;\r\nconst defaultEpsilon = epsilon;\r\n\r\nexport const eq = (\r\n value1: number,\r\n value2: number,\r\n epsilon = defaultEpsilon,\r\n): boolean => {\r\n return Math.abs(value1 - value2) < epsilon;\r\n};\r\n\r\nexport const gt = (\r\n value1: number,\r\n value2: number,\r\n epsilon = defaultEpsilon,\r\n): boolean => {\r\n return value1 - value2 > epsilon;\r\n};\r\n\r\nexport const lt = (\r\n value1: number,\r\n value2: number,\r\n epsilon = defaultEpsilon,\r\n): boolean => {\r\n return gt(value2, value1, epsilon);\r\n};\r\n\r\nexport const gte = (\r\n value1: number,\r\n value2: number,\r\n epsilon = defaultEpsilon,\r\n): boolean => {\r\n return gt(value1, value2, epsilon) || eq(value1, value2, epsilon);\r\n};\r\n\r\nexport const lte = (\r\n value1: number,\r\n value2: number,\r\n epsilon = defaultEpsilon,\r\n): boolean => {\r\n return gte(value2, value1, epsilon);\r\n};\r\n\r\nexport const clamp = (\r\n value: number,\r\n min: number,\r\n max: number,\r\n epsilon = defaultEpsilon,\r\n): number => {\r\n return lt(value, min, epsilon)\r\n ? min\r\n : gt(value, max, epsilon)\r\n ? max\r\n : value;\r\n};\r\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FormInputOption.vue?vue&type=style&index=0&id=23d04c5e&lang=postcss&scoped=true&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.model.value),expression:\"model.value\"}],staticClass:\"checkbox hidden\",attrs:{\"type\":\"checkbox\",\"readonly\":!_vm.model.userChangeable},domProps:{\"value\":_vm.value,\"checked\":Array.isArray(_vm.model.value)?_vm._i(_vm.model.value,_vm.value)>-1:(_vm.model.value)},on:{\"click\":_vm.cbClicked,\"change\":function($event){var $$a=_vm.model.value,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=_vm.value,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.$set(_vm.model, \"value\", $$a.concat([$$v])))}else{$$i>-1&&(_vm.$set(_vm.model, \"value\", $$a.slice(0,$$i).concat($$a.slice($$i+1))))}}else{_vm.$set(_vm.model, \"value\", $$c)}}}}),(!_vm.isSlide)?_c('span',{staticClass:\"fake-input inline-block w-8 h-8 border border-primary bg-surface-variant rounded align-middle mr-4 inline-flex items-center justify-center\"},[_c('Icon',{staticClass:\"checkmark hidden text-primary\",attrs:{\"id\":\"haken\"}})],1):_vm._e(),(_vm.isSlide)?_c('span',{staticClass:\"align-middle mr-4 slider round\"}):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { PropType } from 'vue';\r\nimport Icon from '@/components/atoms/icon/Icon.vue';\r\nimport { getFormInputMixin } from '@/mixins/formInputMixin';\r\nimport { CheckboxField } from '@/types/forms/fields/checkboxField';\r\nimport { CheckboxContent } from '@/api/interfaces/content/form/base/checkboxContent';\r\nimport { CheckboxStyle } from '@/enums/checkboxStyle';\r\n\r\nexport default getFormInputMixin().extend({\r\n name: 'FormInputCheckbox',\r\n components: {\r\n Icon,\r\n },\r\n methods: {\r\n cbClicked(e: Event) {\r\n if (!this.model.userChangeable) {\r\n e.preventDefault();\r\n }\r\n },\r\n },\r\n props: {\r\n value: {\r\n type: String as PropType,\r\n default: undefined,\r\n },\r\n checkboxStyle: {\r\n type: String as PropType,\r\n default: CheckboxStyle.standard,\r\n },\r\n },\r\n computed: {\r\n isSlide(): boolean {\r\n return this.checkboxStyle === CheckboxStyle.slide;\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FormInputCheckbox.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FormInputCheckbox.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FormInputCheckbox.vue?vue&type=template&id=1fc87b32&scoped=true&\"\nimport script from \"./FormInputCheckbox.vue?vue&type=script&lang=ts&\"\nexport * from \"./FormInputCheckbox.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./FormInputCheckbox.vue?vue&type=style&index=0&id=1fc87b32&lang=postcss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1fc87b32\",\n null\n \n)\n\nexport default component.exports","export enum StepState {\r\n done = 'done',\r\n current = 'current',\r\n edit = 'edit',\r\n remainingWithData = 'remainingWithData',\r\n remaining = 'remaining',\r\n}\r\n","import { helpers } from 'vuelidate/lib/validators';\r\n\r\nexport const number = (value: unknown): boolean => {\r\n return (\r\n !helpers.req(value) || (typeof value === 'number' && isFinite(value))\r\n );\r\n};\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.model.disabled && _vm.content.link !== null)?_c('FormRow',{staticClass:\"content mb-6\",attrs:{\"full-width\":_vm.fullWidth}},[_c('div',{staticClass:\"flex justify-center\"},[_c('InfoIconWrapper',{attrs:{\"show-info-icon\":_vm.showInfoIcon && !_vm.showSummary,\"content\":_vm.content,\"model\":_vm.model,\"align-top\":\"\",\"inline-element\":\"\"}},[_c('AppLink',{attrs:{\"url\":_vm.content.link.url,\"hover-behavior\":_vm.linkHoverBehavior,\"render-as-button\":true,\"target\":_vm.content.link && _vm.content.link.target,\"title\":_vm.content.link && _vm.content.link.title},domProps:{\"innerHTML\":_vm._s(_vm.content.link.text)}})],1)],1)]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { PropType } from 'vue';\r\nimport { LinkButtonContent } from '@/api/interfaces/content/form/base/linkButtonContent';\r\nimport InfoIconWrapper from '@/components/molecules/infoIconWrapper/InfoIconWrapper.vue';\r\nimport FormRow from '@/components/molecules/formRow/FormRow.vue';\r\nimport { NoValueField } from '@/types/forms/fields/noValueField';\r\nimport { getFormElementMixin } from '@/mixins/formElementMixin';\r\nimport AppLink from '@/components/atoms/appLink/AppLink.vue';\r\nimport { LinkHoverBehavior } from '@/enums/linkHoverBehavior';\r\n\r\nexport default getFormElementMixin<\r\n NoValueField,\r\n Record\r\n>().extend({\r\n name: 'FormLinkButton',\r\n components: {\r\n FormRow,\r\n InfoIconWrapper,\r\n AppLink,\r\n },\r\n props: {\r\n content: {\r\n type: Object as PropType,\r\n default: () => {\r\n return {} as LinkButtonContent;\r\n },\r\n },\r\n model: {\r\n type: Object,\r\n default: () => {\r\n return {};\r\n },\r\n },\r\n fullWidth: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n showSummary: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n },\r\n computed: {\r\n linkHoverBehavior(): LinkHoverBehavior.default {\r\n return LinkHoverBehavior.default;\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FormLinkButton.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FormLinkButton.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FormLinkButton.vue?vue&type=template&id=5a42ffd8&\"\nimport script from \"./FormLinkButton.vue?vue&type=script&lang=ts&\"\nexport * from \"./FormLinkButton.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.model.value),expression:\"model.value\"}],staticClass:\"radio hidden\",attrs:{\"type\":\"radio\",\"name\":_vm.name},domProps:{\"value\":_vm.inputValue,\"checked\":_vm._q(_vm.model.value,_vm.inputValue)},on:{\"change\":function($event){return _vm.$set(_vm.model, \"value\", _vm.inputValue)}}}),_c('span',{staticClass:\"fake-input w-6 h-6 inline-block relative border border-primary rounded-full bg-surface-variant align-top\"})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { getFormInputMixin } from '@/mixins/formInputMixin';\r\nimport { PropType } from 'vue';\r\n\r\nexport default getFormInputMixin().extend({\r\n name: 'FormInputRadio',\r\n props: {\r\n value: {\r\n type: String as PropType,\r\n default: undefined,\r\n },\r\n name: {\r\n type: String,\r\n required: true,\r\n },\r\n inputValue: {\r\n type: String,\r\n required: true,\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FormInputRadio.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FormInputRadio.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FormInputRadio.vue?vue&type=template&id=d0fdcf9c&scoped=true&\"\nimport script from \"./FormInputRadio.vue?vue&type=script&lang=ts&\"\nexport * from \"./FormInputRadio.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./FormInputRadio.vue?vue&type=style&index=0&id=d0fdcf9c&lang=postcss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"d0fdcf9c\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.model.disabled)?_c('FieldWithInfoIcon',{attrs:{\"show-info-icon\":_vm.showInfoIcon,\"content\":_vm.content}},[_c('div',{staticClass:\"checkbox-list flex flex-wrap flex-col gap-2\"},[_vm._l((_vm.activeOptionsWithContent),function(option){return [(!option.disabled)?_c('div',{key:option.key,staticClass:\"mr-auto\"},[_c('FormLabel',{staticClass:\"mr-4 cursor-pointer inline-flex\",attrs:{\"text\":option.content.label}},[_c('FormInputCheckbox',{attrs:{\"model\":_vm.modelWithListValue,\"value\":option.key}})],1)],1):_vm._e()]})],2)]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport Vue from 'vue';\r\nimport FormLabel from '@/components/atoms/formLabel/FormLabel.vue';\r\nimport FormInputCheckbox from '@/components/atoms/formInputCheckbox/FormInputCheckbox.vue';\r\nimport { getFormInputMixin } from '@/mixins/formInputMixin';\r\nimport { FormOption } from '@/types/forms/formOption';\r\nimport { CheckboxesField } from '@/types/forms/fields/checkboxesField';\r\nimport { CheckboxListContent } from '@/api/interfaces/content/form/base/checkboxListContent';\r\nimport { LabelContent } from '@/api/interfaces/content/form/base/labelContent';\r\nimport FieldWithInfoIcon from '@/components/molecules/fieldWithInfoIcon/FieldWithInfoIcon.vue';\r\n\r\nexport default getFormInputMixin<\r\n CheckboxesField,\r\n CheckboxListContent\r\n>().extend({\r\n name: 'FormCheckboxList',\r\n components: {\r\n FieldWithInfoIcon,\r\n FormLabel,\r\n FormInputCheckbox,\r\n },\r\n computed: {\r\n activeOptionsWithContent(): (FormOption & {\r\n content: LabelContent;\r\n })[] {\r\n return this.model.options\r\n .filter((option) => !option.disabled)\r\n .map((option) => ({\r\n ...option,\r\n content: this.content.options[option.key],\r\n }));\r\n },\r\n /*\r\n * This computed property is used as a model for the checkboxes instead\r\n * of this.model to ensure that the checkboxes work on a list, even if\r\n * the model value is null in case the user hasn't made any inputs yet.\r\n *\r\n * The watcher then passes changes on to the actual model.\r\n */\r\n modelWithListValue(): CheckboxesField {\r\n if (this.model.value !== null) {\r\n return this.model;\r\n }\r\n\r\n const fallbackModel = Vue.observable(\r\n new CheckboxesField({\r\n ...this.model,\r\n value: [],\r\n }),\r\n );\r\n\r\n this.$watch(\r\n () => fallbackModel.value,\r\n () => (this.model.value = fallbackModel.value),\r\n );\r\n\r\n return fallbackModel;\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FormCheckboxList.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FormCheckboxList.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FormCheckboxList.vue?vue&type=template&id=4853e3de&\"\nimport script from \"./FormCheckboxList.vue?vue&type=script&lang=ts&\"\nexport * from \"./FormCheckboxList.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export const alwaysFalse = (): boolean => false;\r\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CloseButton.vue?vue&type=style&index=0&id=c4a10be6&lang=postcss&scoped=true&\"","var DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar isRegExp = require('../internals/is-regexp');\nvar getFlags = require('../internals/regexp-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar redefine = require('../internals/redefine');\nvar fails = require('../internals/fails');\nvar setInternalState = require('../internals/internal-state').set;\nvar setSpecies = require('../internals/set-species');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\nvar NativeRegExp = global.RegExp;\nvar RegExpPrototype = NativeRegExp.prototype;\nvar re1 = /a/g;\nvar re2 = /a/g;\n\n// \"new\" should create a new object, old webkit bug\nvar CORRECT_NEW = new NativeRegExp(re1) !== re1;\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;\n\nvar FORCED = DESCRIPTORS && isForced('RegExp', (!CORRECT_NEW || UNSUPPORTED_Y || fails(function () {\n re2[MATCH] = false;\n // RegExp constructor can alter flags and IsRegExp works correct with @@match\n return NativeRegExp(re1) != re1 || NativeRegExp(re2) == re2 || NativeRegExp(re1, 'i') != '/a/i';\n})));\n\n// `RegExp` constructor\n// https://tc39.github.io/ecma262/#sec-regexp-constructor\nif (FORCED) {\n var RegExpWrapper = function RegExp(pattern, flags) {\n var thisIsRegExp = this instanceof RegExpWrapper;\n var patternIsRegExp = isRegExp(pattern);\n var flagsAreUndefined = flags === undefined;\n var sticky;\n\n if (!thisIsRegExp && patternIsRegExp && pattern.constructor === RegExpWrapper && flagsAreUndefined) {\n return pattern;\n }\n\n if (CORRECT_NEW) {\n if (patternIsRegExp && !flagsAreUndefined) pattern = pattern.source;\n } else if (pattern instanceof RegExpWrapper) {\n if (flagsAreUndefined) flags = getFlags.call(pattern);\n pattern = pattern.source;\n }\n\n if (UNSUPPORTED_Y) {\n sticky = !!flags && flags.indexOf('y') > -1;\n if (sticky) flags = flags.replace(/y/g, '');\n }\n\n var result = inheritIfRequired(\n CORRECT_NEW ? new NativeRegExp(pattern, flags) : NativeRegExp(pattern, flags),\n thisIsRegExp ? this : RegExpPrototype,\n RegExpWrapper\n );\n\n if (UNSUPPORTED_Y && sticky) setInternalState(result, { sticky: sticky });\n\n return result;\n };\n var proxy = function (key) {\n key in RegExpWrapper || defineProperty(RegExpWrapper, key, {\n configurable: true,\n get: function () { return NativeRegExp[key]; },\n set: function (it) { NativeRegExp[key] = it; }\n });\n };\n var keys = getOwnPropertyNames(NativeRegExp);\n var index = 0;\n while (keys.length > index) proxy(keys[index++]);\n RegExpPrototype.constructor = RegExpWrapper;\n RegExpWrapper.prototype = RegExpPrototype;\n redefine(global, 'RegExp', RegExpWrapper);\n}\n\n// https://tc39.github.io/ecma262/#sec-get-regexp-@@species\nsetSpecies('RegExp');\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.model.disabled)?_c('FieldWithInfoIcon',{attrs:{\"show-info-icon\":_vm.showInfoIcon,\"content\":_vm.content}},[_c('div',{staticClass:\"relative\"},[_c('textarea',_vm._g({directives:[{name:\"model\",rawName:\"v-model.trim\",value:(_vm.model.value),expression:\"model.value\",modifiers:{\"trim\":true}}],staticClass:\"textarea text-primary bg-surface-variant border border-primary rounded px-4 py-3 lg:text-lg xl:text-xl w-full\",class:_vm.inputClasses,attrs:{\"type\":_vm.type,\"rows\":\"4\",\"placeholder\":_vm.content.placeholder,\"minlength\":_vm.minLength,\"maxlength\":_vm.maxLength},domProps:{\"value\":(_vm.model.value)},on:{\"focus\":_vm.onFocus,\"blur\":[_vm.onBlur,function($event){return _vm.$forceUpdate()}],\"keydown\":_vm.onKeydown,\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.model, \"value\", $event.target.value.trim())}}},_vm.inputEvents)),_vm._v(\" \"),(_vm.content.unit)?_c('span',{staticClass:\"unit absolute text-primary py-3 lg:text-lg xl:text-xl font-normal pointer-events-none\"},[_vm._v(\" \"+_vm._s(_vm.content.unit)+\" \")]):_vm._e(),(_vm.content.innerLabel)?_c('span',{staticClass:\"inner-label absolute px-2 text-xs font-normal pointer-events-none\"},[_vm._v(\" \"+_vm._s(_vm.content.innerLabel)+\" \")]):_vm._e(),(_vm.icon)?_c('span',{staticClass:\"icon absolute block top-0 right-0 bottom-0 flex items-center pointer-events-none pr-3\"},[_c('Icon',{staticClass:\"text-3xl text-primary\",attrs:{\"id\":_vm.icon}})],1):_vm._e()])]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { getFormInputTextMixin } from '@/mixins/formInputTextMixin';\r\nimport { TextField } from '@/types/forms/fields/textField';\r\nimport { TextInputWithUnitContent } from '@/api/interfaces/content/form/base/textInputWithUnitContent';\r\nimport FieldWithInfoIcon from '@/components/molecules/fieldWithInfoIcon/FieldWithInfoIcon.vue';\r\nimport Icon from '@/components/atoms/icon/Icon.vue';\r\n\r\nexport default getFormInputTextMixin<\r\n TextField,\r\n TextInputWithUnitContent\r\n>().extend({\r\n name: 'FormInputMultiLineText',\r\n components: {\r\n FieldWithInfoIcon,\r\n Icon,\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FormInputMultiLineText.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FormInputMultiLineText.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FormInputMultiLineText.vue?vue&type=template&id=0c24b3c7&scoped=true&\"\nimport script from \"./FormInputMultiLineText.vue?vue&type=script&lang=ts&\"\nexport * from \"./FormInputMultiLineText.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./FormInputMultiLineText.vue?vue&type=style&index=0&id=0c24b3c7&lang=postcss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0c24b3c7\",\n null\n \n)\n\nexport default component.exports","import Vue, { PropType } from 'vue';\r\nimport { noop as _noop, isEmpty as _isEmpty } from 'lodash';\r\nimport { ValidationGroups, ValidationProperties } from 'vue/types/vue';\r\nimport { Validation } from 'vuelidate';\r\nimport { VueConstructor } from 'vue/types/umd';\r\nimport { appState } from '@/services/form/appState';\r\nimport { Form } from '@/types/forms/form';\r\nimport { FormDto } from '@/services/form/dto';\r\nimport { modelService } from '@/services/form/modelService';\r\nimport { authService } from '@/services/authService';\r\nimport { FormContent } from '@/api/interfaces/content/form/formContent';\r\n\r\n// eslint-disable-next-line @typescript-eslint/comma-dangle\r\ninterface FormStepComponent<\r\n TModel,\r\n TContent,\r\n TConfiguration,\r\n TFormType extends Form = Form\r\n> extends Vue {\r\n readonly content: TContent;\r\n readonly formContent: FormContent;\r\n readonly configuration: TConfiguration;\r\n readonly model: TModel;\r\n readonly formModel: TFormType;\r\n readonly validations:\r\n | (Validation & ValidationGroups & ValidationProperties)\r\n | null;\r\n readonly rules: (component: this) => void;\r\n readonly showSummary: boolean;\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/comma-dangle\r\nexport function getFormStepMixin<\r\n TModel,\r\n TContent,\r\n TConfiguration,\r\n TFormType extends Form = Form\r\n>(): VueConstructor<\r\n FormStepComponent\r\n> {\r\n return Vue.extend({\r\n props: {\r\n content: {\r\n type: Object as PropType,\r\n default: () => ({} as TContent),\r\n },\r\n formContent: {\r\n type: Object as PropType,\r\n default: () => ({} as FormContent),\r\n },\r\n configuration: {\r\n type: Object as PropType,\r\n default: () => ({} as TConfiguration),\r\n },\r\n identifier: {\r\n type: String,\r\n default: null,\r\n },\r\n debugDto: {\r\n type: Object as PropType,\r\n default: () => ({}),\r\n },\r\n model: {\r\n type: Object as PropType,\r\n default: () => ({} as TModel),\r\n },\r\n formModel: {\r\n type: Object as PropType,\r\n default: () => ({} as TFormType),\r\n },\r\n validations: {\r\n type: Object as PropType<\r\n | (Validation &\r\n ValidationGroups &\r\n ValidationProperties)\r\n | null\r\n >,\r\n default: null,\r\n },\r\n rules: {\r\n type: Function as PropType<\r\n (\r\n component: FormStepComponent<\r\n TModel,\r\n TContent,\r\n TConfiguration\r\n >,\r\n cb: () => void,\r\n ) => void\r\n >,\r\n default: () => {\r\n return _noop;\r\n },\r\n },\r\n showSummary: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n },\r\n data() {\r\n return {\r\n disableWatch: false,\r\n appState,\r\n };\r\n },\r\n computed: {\r\n showDebugFillButton(): boolean {\r\n return (\r\n authService.isAuthenticated &&\r\n authService.hasRoles('DEA Debug') &&\r\n !_isEmpty(this.debugDto)\r\n );\r\n },\r\n allValidationsAreValid(): boolean {\r\n return !this.validations?.$invalid;\r\n },\r\n },\r\n watch: {\r\n model: {\r\n handler() {\r\n if (!this.rules || this.disableWatch) {\r\n return;\r\n }\r\n this.disableWatch = true;\r\n this.rules(this, () => {\r\n this.disableWatch = false;\r\n });\r\n },\r\n deep: true,\r\n immediate: true,\r\n },\r\n },\r\n methods: {\r\n isFormValid(): boolean {\r\n this.validations?.$touch();\r\n return this.allValidationsAreValid;\r\n },\r\n async debugFillSubmit(): Promise {\r\n await this.$nextTick();\r\n modelService.loadFormIntoModel(\r\n this.debugDto,\r\n `application.${this.identifier}`,\r\n );\r\n await this.$nextTick();\r\n return this.validateAndSubmit();\r\n },\r\n async validateAndSubmit(): Promise {\r\n if (this.isFormValid()) {\r\n this.$emit('submit');\r\n } else {\r\n await this.$nextTick();\r\n this.$emit('validation-failed');\r\n }\r\n },\r\n },\r\n });\r\n}\r\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GenerationTypeForm.vue?vue&type=style&index=0&id=33a5ad36&lang=postcss&scoped=true&\"","import { gt, lte } from '@/services/floatComparison';\r\nimport { GenerationTypeFormStep } from '@/types/forms/formSteps/generationTypeFormStep';\r\nimport { MeasuringConceptsFormStep } from '@/types/forms/formSteps/measuringConceptsFormStep';\r\nimport { PlantDataFormStep } from '@/types/forms/formSteps/plantDataFormStep';\r\nimport { PlantPerformanceFormStep } from '@/types/forms/formSteps/plantPerformanceFormStep';\r\nimport { PowerConnectionFormStep } from '@/types/forms/formSteps/powerConnectionFormStep';\r\nimport { WhichVoltageLevelType } from '@/types/forms/shared/whichVoltageLevelType';\r\nimport { ApplicationForm } from '@/types/forms/specific/applicationForm';\r\nimport { parseGermanDate, parseGermanFloat } from '@/utilities/germanFormats';\r\n\r\n/**\r\n * Returns true if the application type matches the given type\r\n * @param formModel ApplicationForm\r\n * @param applicationType string\r\n */\r\nconst isApplicationType = (\r\n formModel: ApplicationForm,\r\n applicationType: string,\r\n) => formModel.applicationType === applicationType;\r\n\r\n/**\r\n * PV\r\n * @param formModel ApplicationForm\r\n */\r\nexport function isPv(formModel: ApplicationForm): boolean {\r\n return (\r\n isApplicationType(formModel, 'photovoltaic') ||\r\n isApplicationType(formModel, 'photovoltaicAndStorageLte30')\r\n );\r\n}\r\n\r\n/**\r\n * PluginGeneratingPlant\r\n * @param formModel ApplicationForm\r\n */\r\nexport function isPluginGeneratingPlant(formModel: ApplicationForm): boolean {\r\n return isPluginGeneratingPlantGenerationTypeModel(formModel.generationType);\r\n}\r\n\r\n/**\r\n * PluginGeneratingPlant\r\n * @param model GenerationTypeFormStep\r\n */\r\nexport function isPluginGeneratingPlantGenerationTypeModel(\r\n model: GenerationTypeFormStep,\r\n): boolean {\r\n return (\r\n !model.plugInGeneratingPlant.disabled &&\r\n !!model.plugInGeneratingPlant.value\r\n );\r\n}\r\n\r\n/**\r\n * PV & PluginGeneratingPlant & Simplified process\r\n * @param model GenerationTypeFormStep\r\n */\r\nexport function isPluginGeneratingPlantSimplified(\r\n model: GenerationTypeFormStep,\r\n): boolean {\r\n const pv =\r\n model.plantType.value === null ||\r\n model.plantType.value === 'photovoltaicPowerPlant';\r\n const plugin = isPluginGeneratingPlantGenerationTypeModel(model);\r\n const proceed =\r\n model.proceedWithFullRegistrationForEEGCompensation.disabled ||\r\n !!model.proceedWithFullRegistrationForEEGCompensation.value;\r\n return pv && plugin && !proceed;\r\n}\r\n\r\n/**\r\n * KWK\r\n * @param formModel ApplicationForm\r\n */\r\nexport function isPowerHeatCoupling(formModel: ApplicationForm): boolean {\r\n return isApplicationType(formModel, 'powerHeatCoupling');\r\n}\r\n\r\n/**\r\n * Speicher\r\n * @param formModel ApplicationForm\r\n */\r\nexport function isStorage(formModel: ApplicationForm): boolean {\r\n return (\r\n isApplicationType(formModel, 'storage') ||\r\n isApplicationType(formModel, 'photovoltaicAndStorageLte30')\r\n );\r\n}\r\n\r\n/**\r\n * Solaranlage + Speicher bis 30 kW\r\n * @param formModel ApplicationForm\r\n */\r\nexport function isPvAndStorageLte30(formModel: ApplicationForm): boolean {\r\n return isApplicationType(formModel, 'photovoltaicAndStorageLte30');\r\n}\r\n\r\n/**\r\n * DEA\r\n * @param formModel ApplicationForm\r\n */\r\nexport function isDea(formModel: ApplicationForm): boolean {\r\n return isApplicationType(formModel, 'dea');\r\n}\r\n\r\n/**\r\n * Unbekannt\r\n * @param formModel ApplicationForm\r\n */\r\nexport function isUnknown(formModel: ApplicationForm): boolean {\r\n return isApplicationType(formModel, 'unknown');\r\n}\r\n\r\n/**\r\n * Whether the user selected the power connection to be low voltage\r\n * @param powerConnection\r\n * @returns\r\n * @deprecated with {@link isMediumVoltage} not handling all other cases of {@link WhichVoltageLevelType}, this method doesn't actually do exactly what it is supposed to do. That said, changing the current logic might have unforeseen consequences\r\n */\r\nexport function isLowVoltage(\r\n powerConnection: PowerConnectionFormStep,\r\n): boolean {\r\n return !isMediumVoltage(powerConnection);\r\n}\r\n\r\nexport function isMediumVoltage(\r\n powerConnection: PowerConnectionFormStep,\r\n): boolean {\r\n return powerConnection.whichVoltageLevel.value === 'mediumVoltage';\r\n}\r\n\r\nexport function isFullInfeed(\r\n measuringConcepts: MeasuringConceptsFormStep,\r\n): boolean {\r\n return (\r\n !measuringConcepts.operatingMode.disabled &&\r\n measuringConcepts.operatingMode.value === 'fullInfeed'\r\n );\r\n}\r\n\r\nexport function isSurplusInfeed(\r\n measuringConcepts: MeasuringConceptsFormStep,\r\n): boolean {\r\n return (\r\n !measuringConcepts.operatingMode.disabled &&\r\n measuringConcepts.operatingMode.value === 'surplusInfeed'\r\n );\r\n}\r\n\r\nexport function isZeroInfeed(\r\n measuringConcepts: MeasuringConceptsFormStep,\r\n): boolean {\r\n return (\r\n !measuringConcepts.operatingMode.disabled &&\r\n measuringConcepts.operatingMode.value === 'zeroInfeed'\r\n );\r\n}\r\n\r\nexport function isNominalPowerAboveTippingPoint(\r\n plantPerformance: PlantPerformanceFormStep,\r\n tippingPoint: number,\r\n): boolean {\r\n return (\r\n !plantPerformance.photovoltaic.disabled &&\r\n !plantPerformance.photovoltaic.pvOverallNominalPower.disabled &&\r\n plantPerformance.photovoltaic.pvOverallNominalPower.value !== null &&\r\n gt(\r\n plantPerformance.photovoltaic.pvOverallNominalPower.value,\r\n tippingPoint,\r\n )\r\n );\r\n}\r\n\r\nexport function isNominalPowerBelowOrEqualTippingPoint(\r\n plantPerformance: PlantPerformanceFormStep,\r\n tippingPoint: number,\r\n): boolean {\r\n return (\r\n !plantPerformance.photovoltaic.disabled &&\r\n !plantPerformance.photovoltaic.pvOverallNominalPower.disabled &&\r\n plantPerformance.photovoltaic.pvOverallNominalPower.value !== null &&\r\n lte(\r\n plantPerformance.photovoltaic.pvOverallNominalPower.value,\r\n tippingPoint,\r\n )\r\n );\r\n}\r\n\r\nexport function isSelfSupplyQuantityAboveTippingPoint(\r\n measuringConcept: MeasuringConceptsFormStep,\r\n tippingPoint: number,\r\n): boolean {\r\n return (\r\n !measuringConcept.selfSupplyQuantity.disabled &&\r\n !!measuringConcept.selfSupplyQuantity.value &&\r\n gt(\r\n parseGermanFloat(measuringConcept.selfSupplyQuantity.value),\r\n tippingPoint,\r\n )\r\n );\r\n}\r\n\r\nexport function isSelfSupplyQuantityBelowOrEqualTippingPoint(\r\n measuringConcept: MeasuringConceptsFormStep,\r\n tippingPoint: number,\r\n): boolean {\r\n return (\r\n !measuringConcept.selfSupplyQuantity.disabled &&\r\n !!measuringConcept.selfSupplyQuantity.value &&\r\n lte(\r\n parseGermanFloat(measuringConcept.selfSupplyQuantity.value),\r\n tippingPoint,\r\n )\r\n );\r\n}\r\n\r\nexport function isActivePowerAboveTippingPoint(\r\n plantPerformance: PlantPerformanceFormStep,\r\n tippingPoint: number,\r\n): boolean {\r\n return (\r\n !plantPerformance.generator.disabled &&\r\n !plantPerformance.generator.generatorOverallActivePower.disabled &&\r\n gt(\r\n plantPerformance.generator.generatorOverallActivePower.value ??\r\n Math.min(),\r\n tippingPoint,\r\n )\r\n );\r\n}\r\n\r\nexport function isActivePowerBelowOrEqualTippingPoint(\r\n plantPerformance: PlantPerformanceFormStep,\r\n tippingPoint: number,\r\n): boolean {\r\n return (\r\n !plantPerformance.generator.disabled &&\r\n !plantPerformance.generator.generatorOverallActivePower.disabled &&\r\n lte(\r\n plantPerformance.generator.generatorOverallActivePower.value ??\r\n Math.max(),\r\n tippingPoint,\r\n )\r\n );\r\n}\r\n\r\n/**\r\n * Safely retrieve\r\n * @param plantPerformance\r\n * @returns\r\n */\r\nexport function getStorageOverallDischargePower(\r\n plantPerformance: PlantPerformanceFormStep,\r\n): number | undefined | null {\r\n if (\r\n plantPerformance.storage.disabled ||\r\n plantPerformance.storage.storageOverallDischargePower.disabled\r\n ) {\r\n return undefined;\r\n }\r\n\r\n return plantPerformance.storage.storageOverallDischargePower.value;\r\n}\r\n\r\nexport function isDischargePowerAboveTippingPoint(\r\n plantPerformance: PlantPerformanceFormStep,\r\n tippingPoint: number,\r\n): boolean {\r\n return (\r\n !plantPerformance.storage.disabled &&\r\n !plantPerformance.storage.storageOverallDischargePower.disabled &&\r\n plantPerformance.storage.storageOverallDischargePower.value !== null &&\r\n gt(\r\n plantPerformance.storage.storageOverallDischargePower.value,\r\n tippingPoint,\r\n )\r\n );\r\n}\r\n\r\nexport function isDischargePowerBelowOrEqualTippingPoint(\r\n plantPerformance: PlantPerformanceFormStep,\r\n tippingPoint: number,\r\n): boolean {\r\n return (\r\n !plantPerformance.storage.disabled &&\r\n !plantPerformance.storage.storageOverallDischargePower.disabled &&\r\n plantPerformance.storage.storageOverallDischargePower.value !== null &&\r\n lte(\r\n plantPerformance.storage.storageOverallDischargePower.value,\r\n tippingPoint,\r\n )\r\n );\r\n}\r\n\r\n/**\r\n * AC-gekoppelt: Anschluss im Verbraucherpfad. Be- und Entladung über seperaten WR.\r\n * @param plantData PlantDataFormStep\r\n */\r\nexport function isStorageCouplingAcCoupled(\r\n plantData: PlantDataFormStep,\r\n): boolean {\r\n return (\r\n !plantData.storageCoupling.disabled &&\r\n plantData.storageCoupling.value === 'acCoupled'\r\n );\r\n}\r\n\r\n/**\r\n * DC-gekoppelt: Anschluss im Erzeugungspfad. Beladung DC-seitig. Entladung über gemeinsamen WR.\r\n * @param plantData PlantDataFormStep\r\n */\r\nexport function isStorageCouplingDcCoupled(\r\n plantData: PlantDataFormStep,\r\n): boolean {\r\n return (\r\n !plantData.storageCoupling.disabled &&\r\n plantData.storageCoupling.value === 'dcCoupled'\r\n );\r\n}\r\n\r\n/**\r\n * Speicher ohne Stromerzeugungsanlage und ohne Verbrauchsanlage\r\n * @param plantData PlantDataFormStep\r\n */\r\nexport function isStorageConnectionConceptWithoutPowerGeneration(\r\n plantData: PlantDataFormStep,\r\n): boolean {\r\n return (\r\n !plantData.storageConnectionConcept.disabled &&\r\n plantData.storageConnectionConcept.value ===\r\n 'storageWithoutPowerGenerationPlantAndWithoutConsumptionPlant'\r\n );\r\n}\r\n/**\r\n * Speicher ohne Stromerzeugungsanlage und ohne Verbrauchsanlage\r\n * @param plantData PlantDataFormStep\r\n */\r\nexport function isStorageConnectionConceptWithoutPowerGenerationAndWithConsumptionPlant(\r\n plantData: PlantDataFormStep,\r\n): boolean {\r\n return (\r\n !plantData.storageConnectionConcept.disabled &&\r\n plantData.storageConnectionConcept.value ===\r\n 'storageWithoutPowerGenerationPlantAndWithConsumptionPlant'\r\n );\r\n}\r\n\r\n/**\r\n * Speicher mit Stromerzeugungsanlage und ohne Verbrauchsanlage\r\n * @param plantData PlantDataFormStep\r\n */\r\nexport function isStorageConnectionConceptWithPowerGeneration(\r\n plantData: PlantDataFormStep,\r\n): boolean {\r\n return (\r\n !plantData.storageConnectionConcept.disabled &&\r\n plantData.storageConnectionConcept.value ===\r\n 'storageFacilityWithPowerGenerationPlantAndWithoutConsumptionPlant'\r\n );\r\n}\r\n\r\n/**\r\n * Stromerzeugungsanlage mit Speicher im Erzeugungspfad und Verbrauchsanlage\r\n * @param plantData PlantDataFormStep\r\n */\r\nexport function isStorageConnectionConceptStorageInGenerationPath(\r\n plantData: PlantDataFormStep,\r\n): boolean {\r\n return (\r\n !plantData.storageConnectionConcept.disabled &&\r\n plantData.storageConnectionConcept.value ===\r\n 'powerGenerationPlantWithStorageFacilityInTheGenerationPathAndConsumptionPlant'\r\n );\r\n}\r\n\r\n/**\r\n * Stromerzeugungsanlage mit Speicher im Verbrauchspfad und Verbrauchsanlage\r\n * @param plantData PlantDataFormStep\r\n */\r\nexport function isStorageConnectionConceptStorageInConsumerPath(\r\n plantData: PlantDataFormStep,\r\n): boolean {\r\n return (\r\n !plantData.storageConnectionConcept.disabled &&\r\n plantData.storageConnectionConcept.value ===\r\n 'powerGenerationPlantWithStorageInTheConsumerPathAndConsumptionPlant'\r\n );\r\n}\r\n\r\n/**\r\n * nur aus der EEG - Anlage\r\n * @param plantData PlantDataFormStep\r\n */\r\nexport function isStorageChargeOnlyFromEeg(\r\n plantData: PlantDataFormStep,\r\n): boolean {\r\n return (\r\n !plantData.storageCharge.disabled &&\r\n plantData.storageCharge.value === 'onlyFromEeg'\r\n );\r\n}\r\n/**\r\n * nur aus der KWKG - Anlage\r\n * @param plantData PlantDataFormStep\r\n */\r\nexport function isStorageChargeOnlyFromKwkg(\r\n plantData: PlantDataFormStep,\r\n): boolean {\r\n return (\r\n !plantData.storageCharge.disabled &&\r\n plantData.storageCharge.value === 'onlyFromKwkg'\r\n );\r\n}\r\n\r\n/**\r\n * aus der EEG - und KWKG - Anlage\r\n * @param plantData PlantDataFormStep\r\n */\r\nexport function isStorageChargeFromEegAndKwkg(\r\n plantData: PlantDataFormStep,\r\n): boolean {\r\n return (\r\n !plantData.storageCharge.disabled &&\r\n plantData.storageCharge.value === 'fromEegAndKwkg'\r\n );\r\n}\r\n\r\n/**\r\n * aus dem öffentlichen Netz und EEG - Anlage\r\n * @param plantData PlantDataFormStep\r\n */\r\nexport function isStorageChargeFromPublicGridAndEeg(\r\n plantData: PlantDataFormStep,\r\n): boolean {\r\n return (\r\n !plantData.storageCharge.disabled &&\r\n plantData.storageCharge.value === 'fromPublicGridAndEeg'\r\n );\r\n}\r\n\r\n/**\r\n * aus dem öffentlichen Netz und KWKG - Anlage\r\n * @param plantData PlantDataFormStep\r\n */\r\nexport function isStorageChargeFromPublicGridAndKwkg(\r\n plantData: PlantDataFormStep,\r\n): boolean {\r\n return (\r\n !plantData.storageCharge.disabled &&\r\n plantData.storageCharge.value === 'fromPublicGridAndKwkg'\r\n );\r\n}\r\n\r\n/**\r\n * aus dem öffentlichen Netz, KWKG und EEG - Anlagen\r\n * @param form ApplicationForm\r\n */\r\nexport function isStorageChargeFromPublicGridEegAndKwkg(\r\n plantData: PlantDataFormStep,\r\n): boolean {\r\n return (\r\n !plantData.storageCharge.disabled &&\r\n plantData.storageCharge.value === 'fromPublicGridAndEegAndKwkg'\r\n );\r\n}\r\n\r\n/**\r\n * nur aus dem öffentlichen Netz\r\n * @param plantData PlantDataFormStep\r\n */\r\nexport function isStorageChargeOnlyFromPublicGrid(\r\n plantData: PlantDataFormStep,\r\n): boolean {\r\n return (\r\n !plantData.storageCharge.disabled &&\r\n plantData.storageCharge.value === 'onlyFromPublicGrid'\r\n );\r\n}\r\n\r\n/**\r\n * nur aus dem öffentlichen Netz,\r\n * aus dem öffentlichen Netz und EEG - Anlage,\r\n * aus dem öffentlichen Netz und KWKG - Anlage,\r\n * aus dem öffentlichen Netz, KWKG und EEG - Anlagen,\r\n * @param plantData PlantDataFormStep\r\n */\r\nexport function isStorageChargeFromPublicGrid(\r\n plantData: PlantDataFormStep,\r\n): boolean {\r\n return (\r\n !plantData.storageCharge.disabled &&\r\n (plantData.storageCharge.value === 'onlyFromPublicGrid' ||\r\n plantData.storageCharge.value === 'fromPublicGridAndEeg' ||\r\n plantData.storageCharge.value === 'fromPublicGridAndKwkg' ||\r\n plantData.storageCharge.value === 'fromPublicGridAndEegAndKwkg')\r\n );\r\n}\r\n\r\n/**\r\n * kundeneigenes Netz - Eigenversorgung\r\n * @param plantData PlantDataFormStep\r\n */\r\nexport function isStorageDischargeOnlySelfSupply(\r\n plantData: PlantDataFormStep,\r\n): boolean {\r\n return (\r\n !plantData.storageDischarge.disabled &&\r\n plantData.storageDischarge.value === 'onlyIntoCustomersGridSelfSupply'\r\n );\r\n}\r\n\r\n/**\r\n * öffentliches Netz - Netzeinspeisung\r\n * @param plantData PlantDataFormStep\r\n */\r\nexport function isStorageDischargeOnlyPublicGridFeedIn(\r\n plantData: PlantDataFormStep,\r\n): boolean {\r\n return (\r\n !plantData.storageDischarge.disabled &&\r\n plantData.storageDischarge.value === 'onlyIntoPublicGridGridFeedIn'\r\n );\r\n}\r\n\r\n/**\r\n * kundeneigenes und öffentliches Netz (bivalent)\r\n * @param plantData PlantDataFormStep\r\n */\r\nexport function isStorageDischargeCustomersGridAndPublicGrid(\r\n plantData: PlantDataFormStep,\r\n): boolean {\r\n return (\r\n !plantData.storageDischarge.disabled &&\r\n plantData.storageDischarge.value ===\r\n 'intoCustomersGridAndPublicGridBivalent'\r\n );\r\n}\r\n\r\n/**\r\n * öffentliches Netz - Netzeinspeisung,\r\n * kundeneigenes und öffentliches Netz (bivalent)\r\n * @param plantData PlantDataFormStep\r\n */\r\nexport function isStorageDischargeIntoPublicGrid(\r\n plantData: PlantDataFormStep,\r\n): boolean {\r\n return (\r\n !plantData.storageDischarge.disabled &&\r\n (plantData.storageDischarge.value === 'onlyIntoPublicGridGridFeedIn' ||\r\n plantData.storageDischarge.value ===\r\n 'intoCustomersGridAndPublicGridBivalent')\r\n );\r\n}\r\n\r\n/**\r\n * Nicht hocheffiziente KWK-Anlage oder konventionelle Erzeugungsanlage\r\n * @param plantData PlantDataFormStep\r\n */\r\nexport function isNonHighEfficiencyChpPlant(\r\n plantData: PlantDataFormStep,\r\n): boolean {\r\n return (\r\n !plantData.powerHeatCouplingPlantType.disabled &&\r\n plantData.powerHeatCouplingPlantType.value ===\r\n 'nonHighEfficiencyChpPlant'\r\n );\r\n}\r\n\r\n/**\r\n * Hocheffiziente KWK-Anlage\r\n * @param plantData PlantDataFormStep\r\n */\r\nexport function isHighEfficiencyChpPlant(\r\n plantData: PlantDataFormStep,\r\n): boolean {\r\n return (\r\n !plantData.powerHeatCouplingPlantType.disabled &&\r\n plantData.powerHeatCouplingPlantType.value === 'highEfficiencyChpPlant'\r\n );\r\n}\r\n\r\nexport function isRequestWithPlanning(\r\n applicationForm: ApplicationForm,\r\n): boolean {\r\n return (\r\n !applicationForm.generationType.requestType.disabled &&\r\n applicationForm.generationType.requestType.value ==\r\n 'requestWithPlanning'\r\n );\r\n}\r\n\r\nexport function isRequestWithoutPlanning(\r\n applicationForm: ApplicationForm,\r\n): boolean {\r\n return (\r\n !applicationForm.generationType.requestType.disabled &&\r\n applicationForm.generationType.requestType.value ==\r\n 'requestWithoutPlanning'\r\n );\r\n}\r\n\r\nexport function isTotalPlantPerformanceBelow300(\r\n applicationForm: ApplicationForm,\r\n): boolean {\r\n return (\r\n !applicationForm.generationType.totalPlantPerformance.disabled &&\r\n applicationForm.generationType.totalPlantPerformance.value == 'below300'\r\n );\r\n}\r\n\r\nexport function isTotalPlantPerformanceAbove300(\r\n applicationForm: ApplicationForm,\r\n): boolean {\r\n return (\r\n !applicationForm.generationType.totalPlantPerformance.disabled &&\r\n applicationForm.generationType.totalPlantPerformance.value == 'above300'\r\n );\r\n}\r\n\r\n/**\r\n * Determines whether conditions for §14a are met,\r\n * which then affects/dictates some behaviour of the form\r\n * @param applicationForm\r\n * @returns {boolean}\r\n */\r\nexport function lawParagraph14aConditionsMet(\r\n applicationForm: ApplicationForm,\r\n): boolean {\r\n return (\r\n // Must be storage\r\n isStorage(applicationForm) &&\r\n // Must have plant performance below 300kw\r\n (applicationForm.generationType.totalPlantPerformance.disabled ||\r\n applicationForm.generationType.totalPlantPerformance.value ===\r\n 'below300') &&\r\n // Must be unknown or low voltage\r\n (applicationForm.powerConnection.whichVoltageLevel.disabled ||\r\n applicationForm.powerConnection.whichVoltageLevel.value ===\r\n 'lowVoltage' ||\r\n applicationForm.powerConnection.whichVoltageLevel.value ===\r\n 'unknown') &&\r\n // Mustn't be an already existing plant that doesn't require a discharge dapacity change\r\n !(\r\n !applicationForm.plantData.newOrExistingPlant.disabled &&\r\n applicationForm.plantData.newOrExistingPlant.value ===\r\n 'capacityIncrease'\r\n ) &&\r\n // Mustn't be an already commissioned plant, that was commissioned before 2024\r\n !(\r\n !applicationForm.plantData.plantWasAlreadyCommissioned.disabled &&\r\n applicationForm.plantData.plantWasAlreadyCommissioned.value &&\r\n !applicationForm.plantData.initialCommissioningDate.disabled &&\r\n applicationForm.plantData.initialCommissioningDate.value !== null &&\r\n parseGermanDate(\r\n applicationForm.plantData.initialCommissioningDate.value,\r\n ).isBefore(new Date(2024, 0, 1))\r\n ) &&\r\n // Certain power(s) must be above certain tipping point\r\n lawParagraph14aIsPowerAboveTippingPoint(applicationForm)\r\n );\r\n}\r\n\r\n/**\r\n * Contains the more complicated check regarding\r\n * whether a certain power value ends upbeing above the tipping point\r\n * @param applicationForm\r\n * @returns\r\n */\r\nfunction lawParagraph14aIsPowerAboveTippingPoint(\r\n applicationForm: ApplicationForm,\r\n): boolean {\r\n const TIPPING_POINT = 4.2;\r\n\r\n // Determine valuesfor possibly relevant power sources\r\n const storageOverallDischargePower = getStorageOverallDischargePower(\r\n applicationForm.plantPerformance,\r\n );\r\n\r\n const inverterTotalActivePower =\r\n !applicationForm.plantPerformance.storageHasSeparateInverter.disabled &&\r\n applicationForm.plantPerformance.storageHasSeparateInverter.value\r\n ? applicationForm.plantPerformance.inverterStorage\r\n .inverterOverallActivePower.value\r\n : applicationForm.plantPerformance.inverter\r\n .inverterOverallActivePower.value;\r\n\r\n // Validate tipping point against the correct power\r\n if (\r\n storageOverallDischargePower != null &&\r\n inverterTotalActivePower != null\r\n ) {\r\n // Both have value, so we take the smaller one\r\n return (\r\n Math.min(storageOverallDischargePower, inverterTotalActivePower) >\r\n TIPPING_POINT\r\n );\r\n } else if (storageOverallDischargePower == null) {\r\n // Storage overall discharge isn't available, so we either take inverterTotalActive,\r\n // or don't have either available\r\n return inverterTotalActivePower != null\r\n ? inverterTotalActivePower > TIPPING_POINT\r\n : false;\r\n }\r\n\r\n // After previous checks, the only use case left is only storageOverallDischarge having a value available\r\n return storageOverallDischargePower > TIPPING_POINT;\r\n}\r\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LocationForm.vue?vue&type=style&index=0&id=72a115ec&lang=postcss&scoped=true&\"","export enum CheckboxStyle {\r\n standard = 'standard',\r\n slide = 'slide',\r\n}\r\n","import Vue from 'vue';\r\nimport {\r\n cloneDeep as _cloneDeep,\r\n mergeWith as _mergeWith,\r\n difference as _difference,\r\n keys as _keys,\r\n get as _get,\r\n set as _set,\r\n} from 'lodash';\r\nimport { formsConfig } from './config';\r\nimport { Forms } from '@/types/forms/forms';\r\nimport { FormDto } from './dto';\r\nimport { FormField } from '@/types/forms/fields/formField';\r\nimport { FormList } from '@/types/forms/fields/formList';\r\nimport { Form } from '@/types/forms/form';\r\nimport { ValidationGroups, ValidationProperties } from 'vue/types/vue';\r\nimport { Validation } from 'vuelidate';\r\nimport { createFormValidations } from './validations';\r\nimport { FormFieldWithOptions } from '@/types/forms/fields/formFieldWithOptions';\r\nimport { FormElement } from '@/types/forms/formElement';\r\nimport { rules } from './rules';\r\nimport { ApplicationForm } from '@/types/forms/specific/applicationForm';\r\nimport { FormStep } from '@/types/forms/formStep';\r\nimport { applicationRules } from '@/services/form/rules/application';\r\n\r\n/**\r\n * Customizes value setting during a lodash mergeWith\r\n */\r\nfunction formCustomizer(objValue: unknown, srcValue: unknown) {\r\n if (objValue instanceof FormList) {\r\n if (!Array.isArray(srcValue)) {\r\n throw 'SrcValue is not an array';\r\n }\r\n\r\n srcValue.forEach((item, index) => {\r\n if (!objValue.items[index]) {\r\n objValue.createItem();\r\n }\r\n\r\n typeof item === 'string'\r\n ? (objValue.items[index].value = srcValue[index])\r\n : _mergeWith(objValue.items[index], item, formCustomizer);\r\n });\r\n\r\n return objValue;\r\n } else if (objValue instanceof FormField) {\r\n objValue.value = srcValue;\r\n return objValue;\r\n }\r\n return undefined;\r\n}\r\n\r\n/**\r\n * Handles instantiation of the model by creating writable copies of the form config\r\n */\r\nclass ModelService {\r\n private _model: Forms;\r\n private _validations: ValidationProperties &\r\n ValidationGroups &\r\n Validation;\r\n\r\n constructor() {\r\n this._model = this.createModel();\r\n this._validations = createFormValidations(this._model);\r\n }\r\n\r\n /**\r\n * Creates a deep clone of the model\r\n */\r\n public getModelClone(): Forms {\r\n return this.createClone(this._model);\r\n }\r\n\r\n /**\r\n * Repopulates the model and validations to reset model state\r\n */\r\n public resetModel(formReference?: Vue) {\r\n this._model = this.createModel();\r\n this._validations = createFormValidations(this._model, formReference);\r\n }\r\n\r\n /**\r\n * The main form state object. Writable copy of config.ts and source for dto.ts and validations.ts.\r\n */\r\n get model(): Forms {\r\n return this._model;\r\n }\r\n\r\n /**\r\n * The generated validations for the current model state\r\n */\r\n get validations(): ValidationProperties &\r\n ValidationGroups &\r\n Validation {\r\n return this._validations;\r\n }\r\n\r\n /**\r\n * Main method for loading data from a dto into the model.\r\n * @param dto See dto.ts\r\n * @param path The property name of the form to use on the model. Can also be a path to reach subproperties.\r\n */\r\n public loadFormIntoModel(dto: FormDto, path: string): void {\r\n const obj = _get(this._model, path);\r\n _mergeWith(obj, dto, formCustomizer);\r\n _set(this._model, path, obj);\r\n }\r\n\r\n /**\r\n * Perform migrations on raw form data before loading it into the model.\r\n * Specific to ApplicationForm model. Create new methods for other forms.\r\n * You also need to add new migrations to the backend: ApplicationRepository.ApplyDataMigrations()\r\n * To add a new migration, you also need to change the main data version in src\\services\\form\\config\\application.ts\r\n * @param dto See dto.ts\r\n */\r\n public migrateApplicationFormData(dto: FormDto): FormDto {\r\n if (dto.serverSideMigration) {\r\n // Server-side migration happened. So the data is already migrated, but maybe we need to reset the current step or something else.\r\n const version = dto.version as number;\r\n switch (true) {\r\n case version >= 1 && version <= 10: // 1-10\r\n dto.currentStep = null;\r\n break;\r\n }\r\n }\r\n\r\n return dto;\r\n }\r\n\r\n /**\r\n * Removes any data that may exist in the model passed the current step\r\n * @param stepId The current step as an index of the steps array\r\n * @param formKey The property name of the form to use on the model\r\n */\r\n public removeDataAfterCurrentStep(\r\n stepId: string,\r\n formKey: keyof Forms,\r\n ): void {\r\n const currentForm = this._model[formKey];\r\n const currentConfig = this.createModel()[formKey];\r\n const currentStepIndex = currentForm.steps.indexOf(stepId);\r\n\r\n for (let index = 0; index < currentForm.steps.length; index++) {\r\n const currentStepId = currentForm.steps[index];\r\n if (index > currentStepIndex) {\r\n _mergeWith(\r\n currentForm[currentStepId as keyof Form],\r\n currentConfig[currentStepId as keyof Form],\r\n );\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Resets disabled state in the model passed the current step\r\n * @param stepId The current step as an index of the steps array\r\n * @param formKey The property name of the form to use on the model\r\n */\r\n public resetStateAfterCurrentStep(\r\n stepId: string,\r\n formKey: keyof Forms,\r\n formReference?: Vue,\r\n ): void {\r\n const currentForm = this._model[formKey];\r\n const currentFormsConfig = this.createModel();\r\n const currentConfig = currentFormsConfig[formKey];\r\n const currentStepIndex = currentForm.steps.indexOf(stepId);\r\n const currentValidations = modelService.validations.application;\r\n const initialValidations = createFormValidations(\r\n currentFormsConfig,\r\n formReference,\r\n ).application;\r\n\r\n if (currentForm instanceof ApplicationForm) {\r\n // Only for application form. Not needed for kitchen sink. For future other forms we have to adjust the logic.\r\n\r\n for (let index = 0; index < currentForm.steps.length; index++) {\r\n const currentStepId = currentForm.steps[index];\r\n const currentStepIdFormKey = currentStepId as keyof Form;\r\n const currentStepIdApplicationRulesKey = currentStepId as keyof typeof applicationRules;\r\n\r\n // if step comes after edited step\r\n if (index > currentStepIndex) {\r\n _mergeWith(\r\n currentForm[currentStepIdFormKey],\r\n currentConfig[currentStepIdFormKey],\r\n (model, config) => {\r\n // reset disabled for all field groups ...\r\n if (\r\n model instanceof FormElement &&\r\n config instanceof FormElement\r\n ) {\r\n model.disabled = config.disabled;\r\n }\r\n\r\n // ... and fields\r\n if (\r\n model instanceof FormFieldWithOptions &&\r\n config instanceof FormFieldWithOptions\r\n ) {\r\n model.options.forEach((modelOption) => {\r\n const matchingConfigOption = config.options.find(\r\n (configOption) =>\r\n configOption.key ===\r\n modelOption.key,\r\n );\r\n if (matchingConfigOption) {\r\n modelOption.disabled =\r\n matchingConfigOption.disabled;\r\n }\r\n });\r\n }\r\n\r\n return model;\r\n },\r\n );\r\n\r\n const currentFormStepModel =\r\n currentForm[currentStepIdFormKey];\r\n\r\n if (!(currentFormStepModel instanceof FormStep)) {\r\n return; // ApplicationForm contains applicationId etc. so we need to tell TypeScript that we only use FormStep types.\r\n }\r\n\r\n // loop validation keys, check if any keys were removed and delete them\r\n for (const key of _keys(\r\n currentValidations[currentStepIdFormKey],\r\n )) {\r\n const currentValidationStep =\r\n currentValidations[currentStepIdFormKey];\r\n const initialValidationStep =\r\n initialValidations[currentStepIdFormKey];\r\n\r\n if (!currentValidationStep || !initialValidationStep) {\r\n continue;\r\n }\r\n\r\n const currentVal = currentValidationStep[key];\r\n const initialVal = initialValidationStep[key];\r\n const currentValKeys = _keys(currentVal);\r\n const initialValKeys = _keys(initialVal);\r\n const diff = _difference(\r\n currentValKeys,\r\n initialValKeys,\r\n );\r\n\r\n for (const diffKey of diff) {\r\n delete currentVal[diffKey];\r\n // TODO: check if diff works in both directions. What if prop exists in initialVal but was removed in currentVal?\r\n }\r\n\r\n _mergeWith(currentVal, initialVal);\r\n }\r\n\r\n const stepRules = rules.application[\r\n currentStepIdApplicationRulesKey\r\n ] as (formStep: {\r\n model: typeof currentFormStepModel;\r\n formModel: ApplicationForm;\r\n }) => void;\r\n\r\n // run step rules\r\n stepRules({\r\n model: currentFormStepModel,\r\n formModel: currentForm,\r\n });\r\n\r\n _mergeWith(\r\n currentForm[currentStepIdFormKey],\r\n currentConfig[currentStepIdFormKey],\r\n (model, config) => {\r\n // set value to default value for disabled fields\r\n if (\r\n model instanceof FormFieldWithOptions &&\r\n config instanceof FormFieldWithOptions &&\r\n model.disabled\r\n ) {\r\n model.value = config.value;\r\n }\r\n\r\n return model;\r\n },\r\n );\r\n }\r\n }\r\n }\r\n }\r\n\r\n private createModel() {\r\n return this.createClone(formsConfig);\r\n }\r\n\r\n private createClone(cloneSource: Forms): Forms {\r\n return Vue.observable(_cloneDeep(cloneSource));\r\n }\r\n}\r\n\r\nexport const modelService = new ModelService();\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.model.disabled)?_c('FieldWithInfoIcon',{staticClass:\"form-input-text-root\",attrs:{\"show-info-icon\":_vm.showInfoIcon,\"content\":_vm.content,\"model\":_vm.model}},[_c('div',{staticClass:\"input-field relative table w-full bg-surface-variant border border-primary rounded\",class:[_vm.errorClass, _vm.embeddedClass, _vm.readonlyClass]},[_c('input',_vm._g({directives:[{name:\"model\",rawName:\"v-model.trim\",value:(_vm.model.value),expression:\"model.value\",modifiers:{\"trim\":true}}],staticClass:\"input table-cell text-primary pl-4 pr-2 py-3 lg:text-lg xl:text-xl w-full\",class:_vm.textAlignmentClass,attrs:{\"type\":_vm.type,\"placeholder\":_vm.content.placeholder,\"minlength\":_vm.minLength,\"maxlength\":_vm.maxLength,\"readonly\":_vm.readonly || _vm.model.userChangeable === false},domProps:{\"value\":(_vm.model.value)},on:{\"focus\":_vm.onFocus,\"blur\":[_vm.onBlur,function($event){return _vm.$forceUpdate()}],\"keydown\":_vm.onKeydown,\"input\":[function($event){if($event.target.composing){ return; }_vm.$set(_vm.model, \"value\", $event.target.value.trim())},_vm.formatValueWithSeparator]}},_vm.inputEvents)),(_vm.content.unit)?_c('span',{staticClass:\"unit table-cell align-middle w-1 text-primary py-3 pr-2 lg:text-lg xl:text-xl font-normal pointer-events-none whitespace-no-wrap\"},[_vm._v(\" \"+_vm._s(_vm.content.unit)+\" \")]):_vm._e(),(_vm.content.innerLabel)?_c('span',{staticClass:\"inner-label absolute px-2 text-xs font-normal pointer-events-none\"},[_vm._v(\" \"+_vm._s(_vm.content.innerLabel)+\" \")]):_vm._e(),(_vm.icon)?_c('span',{staticClass:\"icon table-cell align-middle w-1 block top-0 right-0 bottom-0 flex items-center pointer-events-none pr-3\"},[_c('Icon',{staticClass:\"text-3xl text-primary\",attrs:{\"id\":_vm.icon}})],1):_vm._e()])]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { getFormInputTextMixin } from '@/mixins/formInputTextMixin';\r\nimport { TextField } from '@/types/forms/fields/textField';\r\nimport { TextInputWithUnitContent } from '@/api/interfaces/content/form/base/textInputWithUnitContent';\r\nimport FieldWithInfoIcon from '@/components/molecules/fieldWithInfoIcon/FieldWithInfoIcon.vue';\r\nimport Icon from '@/components/atoms/icon/Icon.vue';\r\n\r\nexport default getFormInputTextMixin<\r\n TextField,\r\n TextInputWithUnitContent\r\n>().extend({\r\n name: 'FormInputText',\r\n components: {\r\n FieldWithInfoIcon,\r\n Icon,\r\n },\r\n props: {\r\n readonly: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n },\r\n methods: {\r\n formatValueWithSeparator() {\r\n if (\r\n !this.validations ||\r\n !Object.prototype.hasOwnProperty.call(\r\n this.validations,\r\n 'float',\r\n ) ||\r\n !this.model.value\r\n ) {\r\n return;\r\n }\r\n\r\n let { value } = this.model;\r\n let cursorPosition =\r\n document.activeElement === this.$el\r\n ? (this.$el as HTMLInputElement).selectionStart\r\n : null;\r\n\r\n value = value.replace(/\\.+/g, '');\r\n value = value.replace(/\\B(?=(\\d{3})+(?!\\d))/g, '.');\r\n\r\n this.model.value = value;\r\n\r\n if (cursorPosition !== null) {\r\n (this.$el as HTMLInputElement).setSelectionRange(\r\n cursorPosition,\r\n cursorPosition,\r\n );\r\n }\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FormInputText.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FormInputText.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FormInputText.vue?vue&type=template&id=5a819b6b&scoped=true&\"\nimport script from \"./FormInputText.vue?vue&type=script&lang=ts&\"\nexport * from \"./FormInputText.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./FormInputText.vue?vue&type=style&index=0&id=5a819b6b&lang=postcss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5a819b6b\",\n null\n \n)\n\nexport default component.exports","import { ValidationRule, helpers } from 'vuelidate/lib/validators';\r\n\r\nexport const float = ((value: string | number): boolean => {\r\n return (\r\n !helpers.req(value) ||\r\n typeof value === 'number' ||\r\n /^-?\\d{1,3}(?:\\.\\d{3})*(?:,\\d{0,2})?$/.test(value)\r\n );\r\n}) as ValidationRule;\r\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FormInputSelectCustomized.vue?vue&type=style&index=0&id=6689e7a3&lang=postcss&scoped=true&\"","import { defaults as _defaults } from 'lodash';\r\nimport {\r\n FormFieldWithOptions,\r\n FormFieldWithOptionsConfig,\r\n formFieldWithOptionsDefaultConfig,\r\n} from './formFieldWithOptions';\r\n\r\nexport const selectFieldDefaultConfig = {\r\n ...formFieldWithOptionsDefaultConfig,\r\n};\r\n\r\nexport class SelectField extends FormFieldWithOptions<\r\n TOptionKey,\r\n TOptionKey\r\n> {\r\n public constructor(\r\n config: FormFieldWithOptionsConfig,\r\n ) {\r\n const resolvedConfig = _defaults(\r\n config ||\r\n ({} as FormFieldWithOptionsConfig),\r\n selectFieldDefaultConfig,\r\n );\r\n\r\n super(resolvedConfig);\r\n }\r\n\r\n public static preselectExactlyOneOption(\r\n select: SelectField,\r\n optionKey: TOptionKey,\r\n ): void {\r\n for (const option of select.options) {\r\n option.disabled = true;\r\n }\r\n const optionToPreselect = select.options.find(\r\n (option) => option.key === optionKey,\r\n );\r\n if (optionToPreselect) {\r\n optionToPreselect.disabled = false;\r\n }\r\n select.value = optionKey;\r\n }\r\n}\r\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Accordion.vue?vue&type=style&index=0&id=7518e617&lang=postcss&scoped=true&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.model.disabled)?_c('FieldWithInfoIcon',{attrs:{\"show-info-icon\":_vm.showInfoIcon,\"content\":_vm.content,\"inline-element\":\"\"}},[_c('div',{staticClass:\"relative\"},[_c('SpinnerArea',{staticClass:\"inline-block\",attrs:{\"state\":_vm.loadingState,\"size\":_vm.spinnerSize}},[_c('span',{staticClass:\"inline-block relative bg-primary text-on-primary hover:bg-primary-variant leading-5 py-4 pr-8 pl-16 rounded uppercase cursor-pointer\",on:{\"click\":function($event){return _vm.downloadFile(_vm.model.value)}}},[_c('Icon',{staticClass:\"icon absolute left-0 ml-4 text-2xl\",attrs:{\"id\":\"Download-filled\"}}),_vm._v(\" Herunterladen \")],1),(_vm.serverErrorMessage !== null)?_c('div',{staticClass:\"text-error mt-2\"},[_vm._v(\" \"+_vm._s(_vm.serverErrorMessage)+\" \")]):_vm._e()])],1)]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { PropType } from 'vue';\r\nimport FieldWithInfoIcon from '@/components/molecules/fieldWithInfoIcon/FieldWithInfoIcon.vue';\r\nimport Icon from '@/components/atoms/icon/Icon.vue';\r\nimport SpinnerArea from '@/components/molecules/spinnerArea/SpinnerArea.vue';\r\nimport { SpinnerState } from '@/enums/spinnerState';\r\nimport { documentRepository } from '@/api';\r\nimport { SpinnerSize } from '@/enums/spinnerSize';\r\nimport { appState } from '@/services/form/appState';\r\nimport { downloadFile } from '@/services/fileDownloadService';\r\nimport { ServiceError } from '@/api/interfaces/serviceError';\r\nimport { messageService } from '@/services/messageService';\r\nimport { LabelContent } from '@/api/interfaces/content/form/base/labelContent';\r\nimport { FormElement } from '@/types/forms/formElement';\r\nimport { NoValueField } from '@/types/forms/fields/noValueField';\r\nimport { getFormElementMixin } from '@/mixins/formElementMixin';\r\nimport { DocumentId } from '@/api/interfaces/document/documentId';\r\n\r\nexport default getFormElementMixin<\r\n NoValueField,\r\n Record\r\n>().extend({\r\n name: 'DocumentDownload',\r\n components: {\r\n FieldWithInfoIcon,\r\n Icon,\r\n SpinnerArea,\r\n },\r\n props: {\r\n content: {\r\n type: Object as PropType,\r\n default: () => {\r\n return {};\r\n },\r\n },\r\n model: {\r\n type: Object as PropType,\r\n default: () => {\r\n return {};\r\n },\r\n },\r\n documentId: {\r\n type: String as PropType,\r\n required: true,\r\n },\r\n applicationId: {\r\n type: String,\r\n required: true,\r\n },\r\n },\r\n data() {\r\n return {\r\n serverErrorMessage: null as string | null,\r\n isLoading: false,\r\n };\r\n },\r\n computed: {\r\n loadingState(): SpinnerState {\r\n return this.isLoading ? SpinnerState.transparent : SpinnerState.off;\r\n },\r\n spinnerSize: () => SpinnerSize.small,\r\n },\r\n methods: {\r\n async downloadFile() {\r\n this.serverErrorMessage = null;\r\n await this.$nextTick();\r\n\r\n this.setLoading();\r\n\r\n documentRepository\r\n .downloadDocument(this.documentId, this.applicationId)\r\n .then((response) => {\r\n downloadFile(response.bytes, response.fileName);\r\n })\r\n .catch((error: ServiceError) => {\r\n this.serverErrorMessage = messageService.getErrorMessage(\r\n error.messageCode,\r\n );\r\n })\r\n .finally(() => {\r\n this.unsetLoading();\r\n });\r\n },\r\n setLoading(): void {\r\n this.isLoading = true;\r\n appState.pendingFileUploads++;\r\n },\r\n unsetLoading(): void {\r\n this.isLoading = false;\r\n appState.pendingFileUploads--;\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DocumentDownload.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DocumentDownload.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DocumentDownload.vue?vue&type=template&id=16746f2c&\"\nimport script from \"./DocumentDownload.vue?vue&type=script&lang=ts&\"\nexport * from \"./DocumentDownload.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FormInputText.vue?vue&type=style&index=0&id=5a819b6b&lang=postcss&scoped=true&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.model.disabled && _vm.content.text !== null)?_c('FormRow',{staticClass:\"content mb-6\",class:{ 'has-errors': _vm.hasErrors },attrs:{\"full-width\":_vm.fullWidth}},[_c('InfoIconWrapper',{attrs:{\"show-info-icon\":_vm.showInfoIcon && !_vm.showSummary,\"content\":_vm.content,\"model\":_vm.model,\"align-top\":\"\",\"inline-element\":\"\"}},[_c('span',{staticClass:\"dea-rich-text\",domProps:{\"innerHTML\":_vm._s(_vm.content.text)}})])],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { PropType } from 'vue';\r\nimport { TextBlockContent } from '@/api/interfaces/content/form/base/textBlockContent';\r\nimport InfoIconWrapper from '@/components/molecules/infoIconWrapper/InfoIconWrapper.vue';\r\nimport FormRow from '@/components/molecules/formRow/FormRow.vue';\r\nimport { NoValueField } from '@/types/forms/fields/noValueField';\r\nimport { getFormElementMixin } from '@/mixins/formElementMixin';\r\n\r\nexport default getFormElementMixin<\r\n NoValueField,\r\n Record\r\n>().extend({\r\n name: 'FormTextBlock',\r\n components: {\r\n FormRow,\r\n InfoIconWrapper,\r\n },\r\n props: {\r\n content: {\r\n type: Object as PropType,\r\n default: () => {\r\n return {} as TextBlockContent;\r\n },\r\n },\r\n model: {\r\n type: Object,\r\n default: () => {\r\n return {};\r\n },\r\n },\r\n fullWidth: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n showSummary: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n },\r\n computed: {\r\n hasErrors(): boolean {\r\n return !!this.validations && this.validations.$anyError;\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FormTextBlock.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FormTextBlock.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FormTextBlock.vue?vue&type=template&id=52ecba73&\"\nimport script from \"./FormTextBlock.vue?vue&type=script&lang=ts&\"\nexport * from \"./FormTextBlock.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { get as _get } from 'lodash';\r\nimport { ValidationGroups } from 'vue/types/vue';\r\nimport { Validation } from 'vuelidate';\r\nimport { contentServices } from '../contentService';\r\nimport { interpolate } from '../interpolationService';\r\n\r\nexport interface ValidationError {\r\n identifier: string;\r\n message: string;\r\n}\r\n\r\nfunction getValidationErrorMessage(\r\n identifier: string,\r\n placeholders?: Record,\r\n): string {\r\n if (!contentServices.form.content) {\r\n return identifier;\r\n }\r\n\r\n const errorMessage = _get(\r\n contentServices.form.content.validationErrorsContent,\r\n identifier,\r\n );\r\n\r\n return typeof errorMessage === 'string'\r\n ? interpolate(errorMessage, placeholders)\r\n : identifier;\r\n}\r\n\r\nexport function getErrorsByValidation(\r\n validation: Validation & ValidationGroups,\r\n): ValidationError[] {\r\n if (!validation || !validation.$error) {\r\n return [];\r\n }\r\n return Object.keys(validation.$params).reduce(\r\n (errors, validatorIdentifier) => {\r\n if (!validation[validatorIdentifier]) {\r\n errors.push({\r\n identifier: validatorIdentifier,\r\n message: getValidationErrorMessage(\r\n validatorIdentifier,\r\n validation.$params[validatorIdentifier],\r\n ),\r\n });\r\n }\r\n return errors;\r\n },\r\n [] as ValidationError[],\r\n );\r\n}\r\n\r\nexport interface ValidationErrorProvider {\r\n readonly errors: ValidationError[];\r\n}\r\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FunctionalityButton.vue?vue&type=style&index=0&id=78ef4de2&lang=postcss&scoped=true&\"","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar sameValue = require('../internals/same-value');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@search logic\nfixRegExpWellKnownSymbolLogic('search', 1, function (SEARCH, nativeSearch, maybeCallNative) {\n return [\n // `String.prototype.search` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.search\n function search(regexp) {\n var O = requireObjectCoercible(this);\n var searcher = regexp == undefined ? undefined : regexp[SEARCH];\n return searcher !== undefined ? searcher.call(regexp, O) : new RegExp(regexp)[SEARCH](String(O));\n },\n // `RegExp.prototype[@@search]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@search\n function (regexp) {\n var res = maybeCallNative(nativeSearch, regexp, this);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n\n var previousLastIndex = rx.lastIndex;\n if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0;\n var result = regExpExec(rx, S);\n if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex;\n return result === null ? -1 : result.index;\n }\n ];\n});\n","export enum FormInputPosition {\r\n nextToLabel = 'nextToLabel',\r\n belowLabel = 'belowLabel',\r\n singleLine = 'singleLine',\r\n}\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('SpinnerArea',{attrs:{\"state\":_vm.spinner}},[(_vm.contentLoaded)?_c('ApplicationFormTemplate',{ref:\"applicationFormTemplate\",attrs:{\"content\":_vm.applicationFormContent,\"configuration\":_vm.applicationFormConfiguration,\"model\":_vm.model,\"debug-dto\":_vm.debugDto,\"edit-model\":_vm.editModel,\"rules\":_vm.rules,\"validations\":_vm.validations,\"edit-validations\":_vm.editValidations},on:{\"select-step\":_vm.selectStep,\"edit-step\":_vm.editStep,\"cancel-edit\":_vm.cancelEdit,\"submit-form\":_vm.submitForm}}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"form\"},[_c('Stage',_vm._b({staticClass:\"mb-4 md:mb-8 lg:mb-10 xl:mb-12\",class:{\n 'scroll-to-current-step': _vm.currentStepIndex === 0,\n }},'Stage',_vm.content.stageContent,false)),_c('div',{staticClass:\"container mb-4 md:mb-8 lg:mb-10 xl:mb-12\"},_vm._l((_vm.steps),function(step,index){return _c('div',{key:index},[_c('FormStepComponent',{attrs:{\"step\":index + 1,\"step-identifier\":step.identifier,\"content\":_vm.content,\"configuration\":_vm.configuration,\"heading\":step.title,\"state\":step.state},on:{\"cancel-edit\":function($event){return _vm.$emit('cancel-edit', step.identifier)},\"edit-current-step\":function($event){return _vm.$emit('edit-step', step.identifier)}}},[_c('SpinnerArea',{attrs:{\"state\":step.spinnerState}},[_c(step.component,{ref:step.identifier,refInFor:true,tag:\"component\",attrs:{\"content\":step.content,\"form-content\":_vm.content,\"configuration\":step.configuration,\"identifier\":step.identifier,\"debug-dto\":step.debugDto,\"model\":step.model,\"form-model\":_vm.model,\"rules\":_vm.getStepRules(step),\"validations\":step.validations,\"show-summary\":step.showSummary},on:{\"submit\":function($event){return _vm.handleSubmitClick()},\"validation-failed\":function($event){return _vm.focusFirstErrorField()}}})],1)],1)],1)}),0),_c('AppLayer',{attrs:{\"show\":_vm.showLayer},scopedSlots:_vm._u([{key:\"text\",fn:function(){return [_c('AppContent',{attrs:{\"use-large-font\":true,\"content\":_vm.content.editConfirmationLayer.confirmationText}})]},proxy:true},{key:\"action1\",fn:function(){return [_c('AppButton',{attrs:{\"label\":_vm.content.editConfirmationLayer.buttonAccept.text},on:{\"button-click\":function($event){return _vm.handleLayerAcceptClick()}}})]},proxy:true},{key:\"action2\",fn:function(){return [_c('AppButton',{attrs:{\"label\":_vm.content.editConfirmationLayer.buttonCancel.text,\"character\":\"cross\"},on:{\"button-click\":function($event){return _vm.handleLayerCancelClick()}}})]},proxy:true}])})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"container\",class:{ 'mb-4 md:mb-8 lg:mb-10 xl:mb-12': !_vm.showSummary }},[(!_vm.showSummary)?_c('FormTextBlock',{attrs:{\"model\":_vm.model.stepIntro,\"content\":_vm.content.stepIntro}}):_vm._e(),_c('FormField',{staticClass:\"zip-and-city\",attrs:{\"model\":_vm.model.zipAndCity,\"content\":_vm.content.zipAndCity,\"validations\":_vm.validations.zipAndCity,\"show-summary\":_vm.showSummary,\"summary-value\":_vm._f(\"concat\")([_vm.model.zipAndCity.zip.value, ' ', _vm.model.zipAndCity.city.value])}},[_c('div',{staticClass:\"flex\"},[_c('div',{staticClass:\"w-1/3 mr-4 md:mr-10\"},[_c('FormInputTextWithSuggestions',{attrs:{\"model\":_vm.model.zipAndCity.zip,\"content\":_vm.content.zipAndCity.zip,\"validations\":_vm.validations.zipAndCity.zip,\"get-suggestions-method\":_vm.getZipSuggestions,\"max-suggestions\":0,\"clearable-suggestions\":_vm.clearableSuggestionFields.zip,\"filter-by-input\":true,\"debounce\":10},on:{\"form-input-blur\":_vm.handleAddressBlur}})],1),_c('div',{staticClass:\"w-2/3\"},[_c('FormInputTextWithSuggestions',{attrs:{\"model\":_vm.model.zipAndCity.city,\"content\":_vm.content.zipAndCity.city,\"validations\":_vm.validations.zipAndCity.city,\"get-suggestions-method\":_vm.getCitySuggestions,\"max-suggestions\":0,\"suggest-after-characters\":0,\"clearable-suggestions\":_vm.clearableSuggestionFields.city,\"filter-by-input\":true,\"debounce\":10},on:{\"form-input-blur\":_vm.handleAddressBlur}})],1)])]),_c('FormField',{staticClass:\"street-and-housenumber\",attrs:{\"model\":_vm.model.streetAndHousenumber,\"content\":_vm.content.streetAndHousenumber,\"validations\":_vm.validations.streetAndHousenumber,\"show-summary\":_vm.showSummary,\"summary-value\":_vm._f(\"concat\")([\n _vm.model.streetAndHousenumber.street.value,\n ' ',\n _vm.model.streetAndHousenumber.housenumber.value ])}},[_c('div',{staticClass:\"flex\"},[_c('div',{staticClass:\"w-2/3 mr-4 md:mr-10\"},[_c('FormInputTextWithSuggestions',{attrs:{\"model\":_vm.model.streetAndHousenumber.street,\"content\":_vm.content.streetAndHousenumber.street,\"validations\":_vm.validations.streetAndHousenumber.street,\"get-suggestions-method\":_vm.getStreetSuggestions,\"max-suggestions\":0,\"clearable-suggestions\":_vm.clearableSuggestionFields.street,\"filter-by-input\":true,\"suggest-after-characters\":0,\"debounce\":10},on:{\"form-input-blur\":_vm.handleAddressBlur}})],1),_c('div',{staticClass:\"w-1/3\"},[_c('FormInputText',{attrs:{\"model\":_vm.model.streetAndHousenumber.housenumber,\"content\":_vm.content.streetAndHousenumber.housenumber,\"validations\":_vm.validations.streetAndHousenumber.housenumber},on:{\"form-input-blur\":_vm.handleAddressBlur}})],1)])]),_c('AddressCheckFeedbackFormGroup',{attrs:{\"model\":_vm.model.addressCheckFeedback,\"availability-result\":_vm.model.availabilityResult && _vm.model.availabilityResult.value,\"form-model\":_vm.formModel,\"content\":_vm.content,\"validations\":_vm.validations.addressCheckFeedback,\"show-summary\":_vm.showSummary,\"is-loading\":_vm.addressCheckIsLoading,\"address-check-in-init-state\":_vm.addressCheckInInitState}}),_c('FormField',{staticClass:\"proceed-with-cadastral\",attrs:{\"model\":_vm.model.proceedWithCadastral,\"content\":_vm.content.proceedWithCadastral,\"align-field\":\"singleLine\",\"show-summary\":_vm.showSummary,\"summary-value\":_vm.model.proceedWithCadastral.value}},[_c('FormBooleanCheckbox',{attrs:{\"model\":_vm.model.proceedWithCadastral,\"content\":_vm.content.proceedWithCadastral}})],1),_c('FormField',{staticClass:\"subdistrict\",attrs:{\"model\":_vm.model.subdistrict,\"content\":_vm.content.subdistrict,\"validations\":_vm.validations.subdistrict,\"show-summary\":_vm.showSummary,\"summary-value\":_vm.model.subdistrict.value}},[_c('FormInputText',{attrs:{\"model\":_vm.model.subdistrict,\"content\":_vm.content.subdistrict,\"validations\":_vm.validations.subdistrict}})],1),_c('FormField',{staticClass:\"meadow-and-lot\",attrs:{\"model\":_vm.model.meadowAndLot,\"content\":_vm.content.meadowAndLot,\"validations\":_vm.validations.meadowAndLot,\"show-summary\":_vm.showSummary,\"summary-value\":_vm._f(\"concat\")([\n _vm.model.meadowAndLot.meadow.value,\n ' ',\n _vm.model.meadowAndLot.lot.value ])}},[_c('div',{staticClass:\"flex\"},[_c('div',{staticClass:\"w-1/2 mr-4 md:mr-10\"},[_c('FormInputText',{attrs:{\"model\":_vm.model.meadowAndLot.meadow,\"content\":_vm.content.meadowAndLot.meadow,\"validations\":_vm.validations.meadowAndLot.meadow}})],1),_c('div',{staticClass:\"w-1/2\"},[_c('FormInputText',{attrs:{\"model\":_vm.model.meadowAndLot.lot,\"content\":_vm.content.meadowAndLot.lot,\"validations\":_vm.validations.meadowAndLot.lot,\"show-info-icon\":\"\"}})],1)])]),_c('FormField',{staticClass:\"building\",attrs:{\"model\":_vm.model.building,\"content\":_vm.content.building,\"validations\":_vm.validations.building,\"show-summary\":_vm.showSummary,\"summary-value\":_vm.model.building.value}},[_c('FormInputText',{attrs:{\"model\":_vm.model.building,\"content\":_vm.content.building,\"validations\":_vm.validations.building,\"show-info-icon\":\"\"}})],1),(!_vm.showSummary)?_c('MapWrapper',{attrs:{\"model\":_vm.model.geographicMap}},[_c('FormTextBlock',{staticClass:\"plant-location-headline font-normal text-xl lg:text-2xl xl:text-2xl\",attrs:{\"model\":_vm.model.mapHeadline,\"content\":_vm.content.mapHeadline}}),(_vm.isMapVisible)?_c('LocationMap',{staticClass:\"location-map\",attrs:{\"plant-location-address\":_vm.currentAddress},on:{\"coordinates-changed\":_vm.handleCoordinatesChanged}}):_vm._e(),(_vm.isMapVisible)?_c('FormField',{staticClass:\"consent-enabled\",attrs:{\"model\":_vm.mapCheckboxModel,\"content\":_vm.content.mapConsentEnabled,\"align-field\":\"singleLine\"}},[_c('FormBooleanCheckbox',{attrs:{\"model\":_vm.mapCheckboxModel,\"content\":_vm.content.mapConsentEnabled,\"checkbox-style\":\"slide\"}})],1):_vm._e(),(_vm.isMapVisible)?_c('FormTextBlock',{staticClass:\"maps-hint\",attrs:{\"model\":_vm.model.mapHint,\"content\":_vm.content.mapHint}}):_vm._e(),(!_vm.isMapVisible)?_c('div',{staticClass:\"map-consent bg-surface-variant content mb-6 lg:w-11/12 pr-6 lg:pr-0 pl-6 pt-6 pb-1\"},[_c('FormTextBlock',{staticClass:\"font-normal text-xl lg:text-2xl xl:text-2xl\",attrs:{\"model\":_vm.model.mapConsentHeadline,\"content\":_vm.content.mapConsentHeadline}}),_c('FormTextBlock',{attrs:{\"model\":_vm.model.mapConsentText,\"content\":_vm.content.mapConsentText}}),_c('FormField',{attrs:{\"model\":_vm.mapCheckboxModel,\"content\":_vm.content.mapConsentDisabled,\"align-field\":\"singleLine\"}},[_c('FormBooleanCheckbox',{attrs:{\"model\":_vm.mapCheckboxModel,\"content\":_vm.content.mapConsentDisabled,\"checkbox-style\":\"slide\"}})],1),_c('FormTextBlock',{staticClass:\"consent-hint\",attrs:{\"model\":_vm.model.mapConsentHint,\"content\":_vm.content.mapConsentHint}})],1):_vm._e()],1):_vm._e(),_c('FormField',{staticClass:\"geographic-lat-coordinates\",attrs:{\"model\":_vm.model.geographicLatCoordinates,\"content\":_vm.content.geographicLatCoordinates,\"validations\":_vm.validations.geographicLatCoordinates,\"show-summary\":_vm.showSummary,\"hide-field-in-summary\":!_vm.model.geographicLatCoordinates.degrees.value,\"summary-value\":_vm._f(\"concat\")([\n _vm.model.geographicLatCoordinates.degrees.value,\n _vm.content.geographicLatCoordinates.degrees.unit,\n ' ',\n _vm.model.geographicLatCoordinates.minutes.value,\n _vm.content.geographicLatCoordinates.minutes.unit,\n ' ',\n _vm.model.geographicLatCoordinates.seconds.value,\n _vm.content.geographicLatCoordinates.seconds.unit ])}},[_c('FormInputGeoCoordinates',{attrs:{\"model\":_vm.model.geographicLatCoordinates,\"content\":_vm.content.geographicLatCoordinates,\"validations\":_vm.validations.geographicLatCoordinates,\"show-info-icon\":\"\"}})],1),_c('FormField',{staticClass:\"geographic-lng-coordinates\",attrs:{\"model\":_vm.model.geographicLngCoordinates,\"content\":_vm.content.geographicLngCoordinates,\"validations\":_vm.validations.geographicLngCoordinates,\"show-summary\":_vm.showSummary,\"hide-field-in-summary\":!_vm.model.geographicLngCoordinates.degrees.value,\"summary-value\":_vm._f(\"concat\")([\n _vm.model.geographicLngCoordinates.degrees.value,\n _vm.content.geographicLngCoordinates.degrees.unit,\n ' ',\n _vm.model.geographicLngCoordinates.minutes.value,\n _vm.content.geographicLngCoordinates.minutes.unit,\n ' ',\n _vm.model.geographicLngCoordinates.seconds.value,\n _vm.content.geographicLngCoordinates.seconds.unit ])}},[_c('FormInputGeoCoordinates',{attrs:{\"model\":_vm.model.geographicLngCoordinates,\"content\":_vm.content.geographicLngCoordinates,\"validations\":_vm.validations.geographicLngCoordinates,\"show-info-icon\":\"\"}})],1),(!_vm.showSummary)?_c('ButtonSpacer',{attrs:{\"align\":\"right\",\"content\":_vm.content,\"is-loading\":_vm.appState.pendingFileUploads > 0,\"button-text\":_vm.content.buttonNext.text,\"show-debug-fill-button\":_vm.showDebugFillButton},on:{\"button-click\":_vm.validateAndSubmit,\"debug-fill-button-click\":_vm.debugFillSubmit}}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export function setCookie(\r\n name: string,\r\n value: boolean,\r\n expireDays: number,\r\n): void {\r\n const date = new Date();\r\n date.setTime(date.getTime() + expireDays * 24 * 60 * 60 * 1000);\r\n const expires = 'expires=' + date.toUTCString();\r\n document.cookie = name + '=' + value + ';' + expires + ';path=/';\r\n}\r\n\r\nexport function getCookie(name: string): string {\r\n const cookieName = name + '=';\r\n const cookies = document.cookie.split(';');\r\n\r\n for (let i = 0; i < cookies.length; i++) {\r\n let cookie = cookies[i];\r\n\r\n while (cookie.charAt(0) == ' ') {\r\n cookie = cookie.substring(1);\r\n }\r\n\r\n if (cookie.indexOf(cookieName) == 0) {\r\n return cookie.substring(cookieName.length, cookie.length);\r\n }\r\n }\r\n\r\n return '';\r\n}\r\n\r\nexport function deleteCookie(name: string): void {\r\n document.cookie =\r\n name + '=; Path=/; Expires=Thu, 01 Jan 1970 00:00:01 GMT;';\r\n}\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.model.disabled)?_c('FieldWithInfoIcon',{attrs:{\"show-info-icon\":_vm.showInfoIcon,\"content\":_vm.content}},[_c('div',{staticClass:\"autosuggest\"},[_c('VueSimpleSuggest',{ref:\"suggest\",attrs:{\"list\":_vm.getSuggestionsMethod,\"filter-by-query\":_vm.filterByInput,\"destyled\":true,\"placeholder\":_vm.content.placeholder,\"max-suggestions\":_vm.maxSuggestions,\"min-length\":_vm.suggestAfterCharacters,\"maxlength\":_vm.maxLength,\"debounce\":_vm.debounce,\"styles\":{\n vueSimpleSuggest: 'relative',\n inputWrapper: '',\n defaultInput: (\"input text-primary bg-surface-variant border border-primary rounded px-4 py-3 lg:text-lg xl:text-xl w-full \" + _vm.inputClassesString),\n suggestions:\n 'results absolute bg-surface-variant border border-surface-variant-100 z-10 inset-x-0',\n suggestItem: 'px-4 py-1 cursor-pointer',\n }},on:{\"blur\":_vm.onBlur},nativeOn:{\"keydown\":function($event){return _vm.onKeydown($event)}},model:{value:(_vm.inputValue),callback:function ($$v) {_vm.inputValue=(typeof $$v === 'string'? $$v.trim(): $$v)},expression:\"inputValue\"}})],1)]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport Vue from 'vue';\r\nimport VueSimpleSuggest from 'vue-simple-suggest/dist/cjs';\r\nimport { getFormInputTextMixin } from '@/mixins/formInputTextMixin';\r\nimport { TextField } from '@/types/forms/fields/textField';\r\nimport { TextInputWithUnitContent } from '@/api/interfaces/content/form/base/textInputWithUnitContent';\r\nimport FieldWithInfoIcon from '@/components/molecules/fieldWithInfoIcon/FieldWithInfoIcon.vue';\r\n\r\n//types have not been specified with the VueSimpleSuggest plugin. To avoid declaring the whole module,\r\n//which is quite a bit of overhead, we use an interface here to scope the props and methods we will use\r\ninterface VueSimpleSuggestScope extends Vue {\r\n clearSuggestions(): void;\r\n}\r\n\r\nexport default getFormInputTextMixin<\r\n TextField,\r\n TextInputWithUnitContent\r\n>().extend({\r\n name: 'FormInputTextWithSuggestions',\r\n components: {\r\n FieldWithInfoIcon,\r\n VueSimpleSuggest,\r\n },\r\n props: {\r\n clearableSuggestions: {\r\n type: Object,\r\n default: null,\r\n },\r\n getSuggestionsMethod: {\r\n type: Function,\r\n required: true,\r\n },\r\n maxSuggestions: {\r\n type: Number,\r\n default: 5,\r\n },\r\n suggestAfterCharacters: {\r\n type: Number,\r\n default: 2,\r\n },\r\n filterByInput: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n debounce: {\r\n type: Number,\r\n default: 0,\r\n },\r\n /* minLength for the html input.minlength attribute is not possible because of a bug\r\n in vue-simple-suggest (it uses the same property name for a different thing) */\r\n },\r\n computed: {\r\n inputClassesString(): string {\r\n return this.inputClasses.join(' ');\r\n },\r\n inputValue: {\r\n get(): string {\r\n return this.model.value === null ? '' : this.model.value;\r\n },\r\n set(value: string): void {\r\n if (value === '' && this.model.value === null) {\r\n return;\r\n }\r\n this.model.value = value;\r\n },\r\n },\r\n },\r\n watch: {\r\n clearableSuggestions: function () {\r\n (this.$refs.suggest as VueSimpleSuggestScope).clearSuggestions();\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FormInputTextWithSuggestions.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FormInputTextWithSuggestions.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FormInputTextWithSuggestions.vue?vue&type=template&id=159449ee&scoped=true&\"\nimport script from \"./FormInputTextWithSuggestions.vue?vue&type=script&lang=ts&\"\nexport * from \"./FormInputTextWithSuggestions.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./FormInputTextWithSuggestions.vue?vue&type=style&index=0&id=159449ee&lang=postcss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"159449ee\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _vm._m(0)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"content mb-6 lg:w-11/12\"},[_c('div',{staticClass:\"map-container\",attrs:{\"id\":\"map\"}})])}]\n\nexport { render, staticRenderFns }","// do not edit .js files directly - edit src/index.jst\n\n\n\nvar fastDeepEqual = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n\n/**\n * Copyright 2019 Google LLC. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at.\n *\n * Http://www.apache.org/licenses/LICENSE-2.0.\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nconst DEFAULT_ID = \"__googleMapsScriptId\";\n/**\n * The status of the [[Loader]].\n */\nvar LoaderStatus;\n(function (LoaderStatus) {\n LoaderStatus[LoaderStatus[\"INITIALIZED\"] = 0] = \"INITIALIZED\";\n LoaderStatus[LoaderStatus[\"LOADING\"] = 1] = \"LOADING\";\n LoaderStatus[LoaderStatus[\"SUCCESS\"] = 2] = \"SUCCESS\";\n LoaderStatus[LoaderStatus[\"FAILURE\"] = 3] = \"FAILURE\";\n})(LoaderStatus || (LoaderStatus = {}));\n/**\n * [[Loader]] makes it easier to add Google Maps JavaScript API to your application\n * dynamically using\n * [Promises](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise).\n * It works by dynamically creating and appending a script node to the the\n * document head and wrapping the callback function so as to return a promise.\n *\n * ```\n * const loader = new Loader({\n * apiKey: \"\",\n * version: \"weekly\",\n * libraries: [\"places\"]\n * });\n *\n * loader.load().then((google) => {\n * const map = new google.maps.Map(...)\n * })\n * ```\n */\nclass Loader {\n /**\n * Creates an instance of Loader using [[LoaderOptions]]. No defaults are set\n * using this library, instead the defaults are set by the Google Maps\n * JavaScript API server.\n *\n * ```\n * const loader = Loader({apiKey, version: 'weekly', libraries: ['places']});\n * ```\n */\n constructor({ apiKey, authReferrerPolicy, channel, client, id = DEFAULT_ID, language, libraries = [], mapIds, nonce, region, retries = 3, url = \"https://maps.googleapis.com/maps/api/js\", version, }) {\n this.CALLBACK = \"__googleMapsCallback\";\n this.callbacks = [];\n this.done = false;\n this.loading = false;\n this.errors = [];\n this.apiKey = apiKey;\n this.authReferrerPolicy = authReferrerPolicy;\n this.channel = channel;\n this.client = client;\n this.id = id || DEFAULT_ID; // Do not allow empty string\n this.language = language;\n this.libraries = libraries;\n this.mapIds = mapIds;\n this.nonce = nonce;\n this.region = region;\n this.retries = retries;\n this.url = url;\n this.version = version;\n if (Loader.instance) {\n if (!fastDeepEqual(this.options, Loader.instance.options)) {\n throw new Error(`Loader must not be called again with different options. ${JSON.stringify(this.options)} !== ${JSON.stringify(Loader.instance.options)}`);\n }\n return Loader.instance;\n }\n Loader.instance = this;\n }\n get options() {\n return {\n version: this.version,\n apiKey: this.apiKey,\n channel: this.channel,\n client: this.client,\n id: this.id,\n libraries: this.libraries,\n language: this.language,\n region: this.region,\n mapIds: this.mapIds,\n nonce: this.nonce,\n url: this.url,\n authReferrerPolicy: this.authReferrerPolicy,\n };\n }\n get status() {\n if (this.errors.length) {\n return LoaderStatus.FAILURE;\n }\n if (this.done) {\n return LoaderStatus.SUCCESS;\n }\n if (this.loading) {\n return LoaderStatus.LOADING;\n }\n return LoaderStatus.INITIALIZED;\n }\n get failed() {\n return this.done && !this.loading && this.errors.length >= this.retries + 1;\n }\n /**\n * CreateUrl returns the Google Maps JavaScript API script url given the [[LoaderOptions]].\n *\n * @ignore\n */\n createUrl() {\n let url = this.url;\n url += `?callback=${this.CALLBACK}`;\n if (this.apiKey) {\n url += `&key=${this.apiKey}`;\n }\n if (this.channel) {\n url += `&channel=${this.channel}`;\n }\n if (this.client) {\n url += `&client=${this.client}`;\n }\n if (this.libraries.length > 0) {\n url += `&libraries=${this.libraries.join(\",\")}`;\n }\n if (this.language) {\n url += `&language=${this.language}`;\n }\n if (this.region) {\n url += `®ion=${this.region}`;\n }\n if (this.version) {\n url += `&v=${this.version}`;\n }\n if (this.mapIds) {\n url += `&map_ids=${this.mapIds.join(\",\")}`;\n }\n if (this.authReferrerPolicy) {\n url += `&auth_referrer_policy=${this.authReferrerPolicy}`;\n }\n return url;\n }\n deleteScript() {\n const script = document.getElementById(this.id);\n if (script) {\n script.remove();\n }\n }\n /**\n * Load the Google Maps JavaScript API script and return a Promise.\n */\n load() {\n return this.loadPromise();\n }\n /**\n * Load the Google Maps JavaScript API script and return a Promise.\n *\n * @ignore\n */\n loadPromise() {\n return new Promise((resolve, reject) => {\n this.loadCallback((err) => {\n if (!err) {\n resolve(window.google);\n }\n else {\n reject(err.error);\n }\n });\n });\n }\n /**\n * Load the Google Maps JavaScript API script with a callback.\n */\n loadCallback(fn) {\n this.callbacks.push(fn);\n this.execute();\n }\n /**\n * Set the script on document.\n */\n setScript() {\n if (document.getElementById(this.id)) {\n // TODO wrap onerror callback for cases where the script was loaded elsewhere\n this.callback();\n return;\n }\n const url = this.createUrl();\n const script = document.createElement(\"script\");\n script.id = this.id;\n script.type = \"text/javascript\";\n script.src = url;\n script.onerror = this.loadErrorCallback.bind(this);\n script.defer = true;\n script.async = true;\n if (this.nonce) {\n script.nonce = this.nonce;\n }\n document.head.appendChild(script);\n }\n /**\n * Reset the loader state.\n */\n reset() {\n this.deleteScript();\n this.done = false;\n this.loading = false;\n this.errors = [];\n this.onerrorEvent = null;\n }\n resetIfRetryingFailed() {\n if (this.failed) {\n this.reset();\n }\n }\n loadErrorCallback(e) {\n this.errors.push(e);\n if (this.errors.length <= this.retries) {\n const delay = this.errors.length * Math.pow(2, this.errors.length);\n console.log(`Failed to load Google Maps script, retrying in ${delay} ms.`);\n setTimeout(() => {\n this.deleteScript();\n this.setScript();\n }, delay);\n }\n else {\n this.onerrorEvent = e;\n this.callback();\n }\n }\n setCallback() {\n window.__googleMapsCallback = this.callback.bind(this);\n }\n callback() {\n this.done = true;\n this.loading = false;\n this.callbacks.forEach((cb) => {\n cb(this.onerrorEvent);\n });\n this.callbacks = [];\n }\n execute() {\n this.resetIfRetryingFailed();\n if (this.done) {\n this.callback();\n }\n else {\n // short circuit and warn if google.maps is already loaded\n if (window.google && window.google.maps && window.google.maps.version) {\n console.warn(\"Google Maps already loaded outside @googlemaps/js-api-loader.\" +\n \"This may result in undesirable behavior as options and script parameters may not match.\");\n this.callback();\n return;\n }\n if (this.loading) ;\n else {\n this.loading = true;\n this.setCallback();\n this.setScript();\n }\n }\n }\n}\n\nexport { DEFAULT_ID, Loader, LoaderStatus };\n//# sourceMappingURL=index.esm.js.map\n","\n\n\n\n\n\n\r\n/* global google:readonly */\r\nimport Vue from 'vue';\r\nimport { Loader } from '@googlemaps/js-api-loader';\r\nimport { LocationMapContent } from '@/api/interfaces/content/form/base/locationMapContent';\r\n\r\nexport default Vue.extend({\r\n name: 'LocationMap',\r\n props: {\r\n plantLocationAddress: {\r\n type: String,\r\n default: null,\r\n },\r\n },\r\n watch: {\r\n plantLocationAddress(): void {\r\n this.handleMap();\r\n },\r\n },\r\n async mounted() {\r\n this.handleMap();\r\n },\r\n methods: {\r\n handleMap() {\r\n const apiKey = process.env?.VUE_APP_GOOGLE_MAPS_APIKEY;\r\n const mapElement = document.getElementById('map') as HTMLElement;\r\n\r\n if (mapElement) {\r\n const loader = new Loader({\r\n apiKey: apiKey,\r\n version: 'weekly',\r\n libraries: ['places'],\r\n });\r\n\r\n loader.load().then(() => {\r\n let map: google.maps.Map;\r\n const address = this.plantLocationAddress\r\n ? this.plantLocationAddress\r\n : '26122 Oldenburg';\r\n const geocoder = new google.maps.Geocoder();\r\n\r\n geocoder.geocode(\r\n { address: address },\r\n (results, status) => {\r\n if (status == 'OK' && results) {\r\n const location = results[0].geometry.location;\r\n const position = {\r\n lat: location.lat(),\r\n lng: location.lng(),\r\n };\r\n\r\n map = new google.maps.Map(mapElement, {\r\n center: position,\r\n zoom: 18,\r\n streetViewControl: false,\r\n mapTypeId: 'satellite',\r\n tilt: 45,\r\n });\r\n\r\n const marker = new google.maps.Marker({\r\n position: position,\r\n map,\r\n draggable: true,\r\n });\r\n\r\n if (this.plantLocationAddress) {\r\n this.$emit(\r\n 'coordinates-changed',\r\n this.getGPSData(\r\n location.lat(),\r\n location.lng(),\r\n ),\r\n );\r\n }\r\n\r\n google.maps.event.addListener(\r\n marker,\r\n 'dragend',\r\n () => {\r\n const markerPosition = marker.getPosition();\r\n\r\n if (markerPosition) {\r\n const currentLatitude = markerPosition.lat();\r\n const currentLongitude = markerPosition.lng();\r\n\r\n this.$emit(\r\n 'coordinates-changed',\r\n this.getGPSData(\r\n currentLatitude,\r\n currentLongitude,\r\n ),\r\n );\r\n }\r\n },\r\n );\r\n }\r\n },\r\n );\r\n });\r\n }\r\n },\r\n convertToDegreesMinutesAndSeconds(coordinate: number) {\r\n const absolute = Math.abs(coordinate);\r\n const degrees = Math.floor(absolute);\r\n const minutesNotTruncated = (absolute - degrees) * 60;\r\n const minutes = Math.floor(minutesNotTruncated);\r\n const secondsNotTruncated = (minutesNotTruncated - minutes) * 60;\r\n const secondsNonFormatted =\r\n Math.trunc(secondsNotTruncated * 10) / 10;\r\n const seconds = secondsNonFormatted.toString().replace('.', ',');\r\n\r\n const convertedGpsData = {\r\n degrees: degrees.toString(),\r\n minutes: minutes.toString(),\r\n seconds: seconds.toString(),\r\n };\r\n\r\n return convertedGpsData;\r\n },\r\n getGPSData(lat: number, lng: number) {\r\n const latitude = this.convertToDegreesMinutesAndSeconds(lat);\r\n const longitude = this.convertToDegreesMinutesAndSeconds(lng);\r\n\r\n const gpsData: LocationMapContent = {\r\n latitude: {\r\n degrees: latitude.degrees,\r\n minutes: latitude.minutes,\r\n seconds: latitude.seconds,\r\n },\r\n longitude: {\r\n degrees: longitude.degrees,\r\n minutes: longitude.minutes,\r\n seconds: longitude.seconds,\r\n },\r\n };\r\n\r\n return gpsData;\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LocationMap.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LocationMap.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./LocationMap.vue?vue&type=template&id=112a9a48&scoped=true&\"\nimport script from \"./LocationMap.vue?vue&type=script&lang=ts&\"\nexport * from \"./LocationMap.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./LocationMap.vue?vue&type=style&index=0&id=112a9a48&lang=postcss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"112a9a48\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.model.disabled)?_c('div',[_vm._t(\"default\")],2):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\r\nimport Vue from 'vue';\r\nimport { PropType } from 'vue';\r\nimport { FormElement } from '@/types/forms/formElement';\r\n\r\nexport default Vue.extend({\r\n name: 'MapWrapper',\r\n props: {\r\n model: {\r\n type: Object as PropType,\r\n default: () => {\r\n return {};\r\n },\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MapWrapper.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MapWrapper.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MapWrapper.vue?vue&type=template&id=470ab75c&\"\nimport script from \"./MapWrapper.vue?vue&type=script&lang=ts&\"\nexport * from \"./MapWrapper.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { addressesRepository } from '@/api';\r\nimport { ServiceError } from '@/api/interfaces/serviceError';\r\nimport { AddressesApiBadResponse } from '@/types/forms/shared/addressesApi/addressesApiBadResponse';\r\nimport { isAddressesApiBadResponse } from '@/api/interfaces/typeGuards';\r\n\r\n/**\r\n * Implements various methods for getting and validating addresses.\r\n *\r\n * Whether this service deprecates {@link AddressService}, or instead both need better labeling while continuing to be used together,\r\n * is not yet cleared up with the customer\r\n *\r\n * @see [Implementation Epic](https://netzkern.atlassian.net/browse/ED-571)\r\n */\r\nexport class AddressesService {\r\n public async getZipSuggestions(zip: string): Promise {\r\n return addressesRepository.getZipSuggestions(zip);\r\n }\r\n\r\n public async getCitySuggestionsByZip(zip: string): Promise {\r\n return addressesRepository.getCitySuggestionsByZip(zip);\r\n }\r\n\r\n public async getCitySuggestionsByCity(city: string): Promise {\r\n return addressesRepository.getCitySuggestionsByCity(city);\r\n }\r\n\r\n public async getStreetSuggestions(\r\n zip: string,\r\n city: string,\r\n street?: string | undefined | null,\r\n ): Promise {\r\n return addressesRepository.getStreetSuggestions(zip, city, street);\r\n }\r\n\r\n public async getAvailability(\r\n zip: string,\r\n city: string,\r\n street: string,\r\n ): Promise {\r\n return addressesRepository.getAvailability(zip, city, street);\r\n }\r\n\r\n /**\r\n * Parses the error response object to the corresponding bad response type\r\n * @param error error response object\r\n * @returns The matching response type based on the convention that the last part of the code use the exact same name. If no match is found, the generic fallback value is used\r\n */\r\n public parseToBadResponseType(\r\n error: ServiceError,\r\n ): AddressesApiBadResponse {\r\n const parts = error.messageCode.split('.');\r\n const parsedType = parts[parts.length - 1];\r\n\r\n return isAddressesApiBadResponse(parsedType)\r\n ? parsedType\r\n : 'unspecifiedError';\r\n }\r\n}\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.isVisible)?_c('SpinnerArea',{staticClass:\"address-check-feedback-form-group bg-surface-variant content mb-6 lg:w-11/12 pr-6 lg:pr-0 pl-6 pt-6 pb-1\",class:{ 'has-errors': _vm.addHasErrorsClass },attrs:{\"state\":_vm.loadingState,\"size\":_vm.spinnerSize}},[(_vm.isLoading)?_c('FormTextBlock',{staticClass:\"address-check-feedback-checking-headline font-normal text-xl lg:text-2xl xl:text-2xl\",attrs:{\"model\":_vm.model.addressCheckFeedbackCheckingHeadline,\"content\":_vm.content.addressCheckFeedbackCheckingHeadline,\"validations\":_vm.validations.addressCheckFeedbackCheckingHeadline}}):_vm._e(),(!_vm.isLoading)?_c('div',[(_vm.availabilityResult == 'available')?_c('FormTextBlock',{staticClass:\"address-check-feedback-available-headline text-success font-normal text-xl lg:text-2xl xl:text-2xl\",attrs:{\"model\":_vm.model.addressCheckFeedbackAvailableHeadline,\"content\":_vm.content.addressCheckFeedbackAvailableHeadline,\"validations\":_vm.validations.addressCheckFeedbackAvailableHeadline}}):_vm._e(),(!_vm.addressCheckInInitState && _vm.availabilityResult == null)?_c('FormTextBlock',{staticClass:\"address-check-feedback-enter-address-headline font-normal text-xl lg:text-2xl xl:text-2xl\",attrs:{\"model\":_vm.model.addressCheckFeedbackEnterAddressHeadline,\"content\":_vm.content.addressCheckFeedbackEnterAddressHeadline,\"validations\":_vm.validations.addressCheckFeedbackEnterAddressHeadline}}):_vm._e(),(_vm.availabilityResult == 'unavailable')?_c('FormTextBlock',{staticClass:\"address-check-feedback-unavailable-headline text-error font-normal text-xl lg:text-2xl xl:text-2xl\",attrs:{\"model\":_vm.model.addressCheckFeedbackUnavailableHeadline,\"content\":_vm.content.addressCheckFeedbackUnavailableHeadline,\"validations\":_vm.validations.addressCheckFeedbackUnavailableHeadline}}):_vm._e(),(_vm.availabilityResult == 'unavailable')?_c('FormTextBlock',{staticClass:\"address-check-feedback-unavailable-info-text\",attrs:{\"model\":_vm.model.addressCheckFeedbackUnavailableInfoText,\"content\":_vm.content.addressCheckFeedbackUnavailableInfoText}}):_vm._e()],1):_vm._e()],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_vm._l((_vm.model.items),function(pvModule,index){return [_c('PhotovoltaicModuleFormGroup',{key:index,staticClass:\"photovoltaic-module-form-group\",attrs:{\"model\":pvModule,\"content\":_vm.content,\"configuration\":_vm.configuration,\"validations\":_vm.validations[index],\"application-id\":_vm.applicationId,\"show-remove-button\":_vm.canRemoveItem,\"show-summary\":_vm.showSummary},on:{\"functionality-button-click\":function($event){return _vm.handleModuleFunctionalityButtonClick($event, pvModule)}}})]}),(!_vm.showSummary && _vm.canAddItem)?_c('FunctionalityButton',{staticClass:\"pv-add-button\",attrs:{\"content\":_vm.content.pvAddRemovePvModule,\"value\":_vm.functionalityButtonValue},on:{\"click\":function($event){return _vm.handleFunctionalityButtonClick($event)}}}):_vm._e()],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('FormField',{staticClass:\"pv-quantity-nominal-power\",attrs:{\"model\":_vm.model.pvQuantityAndNominalPower,\"content\":_vm.content.pvQuantityAndNominalPower,\"validations\":_vm.validationProps.pvQuantityAndNominalPower,\"show-summary\":_vm.showSummary,\"summary-value\":_vm._f(\"concat\")([\n _vm.model.pvQuantityAndNominalPower.quantity.value,\n ' x ',\n _vm.model.pvQuantityAndNominalPower.nominalPower.value,\n ' ',\n _vm.content.pvQuantityAndNominalPower.nominalPower.unit ])}},[_c('div',{staticClass:\"flex\"},[_c('div',{staticClass:\"w-1/2 mr-4 md:mr-10\"},[_c('FormInputCount',{attrs:{\"model\":_vm.model.pvQuantityAndNominalPower.quantity,\"content\":_vm.content.pvQuantityAndNominalPower.quantity,\"validations\":_vm.pvQuantityAndNominalPowerValidations.quantity}})],1),_c('div',{staticClass:\"w-1/2\"},[_c('FormInputText',{attrs:{\"model\":_vm.model.pvQuantityAndNominalPower.nominalPower,\"content\":_vm.content.pvQuantityAndNominalPower.nominalPower,\"validations\":_vm.pvQuantityAndNominalPowerValidations.nominalPower,\"align-text\":\"right\"}})],1)])]),_c('FormField',{staticClass:\"pv-total-nominal-power\",attrs:{\"model\":_vm.model.pvTotalNominalPower,\"content\":_vm.content.pvTotalNominalPower,\"validations\":_vm.validationProps.pvTotalNominalPower,\"show-summary\":_vm.showSummary,\"summary-value\":_vm.totalNominalPowerDisplayValue}},[_c('span',{staticClass:\"pv-total-nominal-power-display\"},[_vm._v(_vm._s(_vm.totalNominalPowerDisplayValue))])]),(_vm.showSummary)?_c('div',{staticClass:\"h-4\"}):_vm._e(),(!_vm.showSummary && _vm.showRemoveButton)?_c('FunctionalityButton',{staticClass:\"pv-remove-button\",attrs:{\"content\":_vm.content.pvAddRemovePvModule,\"value\":_vm.functionalityButtonValue},on:{\"click\":function($event){return _vm.$emit('functionality-button-click', $event)}}}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport FormInputCount from '@/components/molecules/formInputCount/FormInputCount.vue';\r\nimport FormInputText from '@/components/atoms/formInputText/FormInputText.vue';\r\nimport FormField from '@/components/molecules/formField/FormField.vue';\r\nimport FormFileUpload from '@/components/molecules/formFileUpload/FormFileUpload.vue';\r\nimport FunctionalityButton, {\r\n FunctionalityButtonValueType,\r\n} from '@/components/molecules/functionalityButton/FunctionalityButton.vue';\r\nimport { getFormInputMixin } from '@/mixins/formInputMixin';\r\nimport { PhotovoltaicModuleFormGroup } from '@/types/forms/formGroups/plantPerformance/photovoltaic/photovoltaicModuleFormGroup';\r\nimport type { PhotovoltaicModuleFormGroupContent } from '@/api/interfaces/content/form/steps/plantPerformance/photovoltaicContent';\r\nimport type { ValidationsCommonType } from '@/services/form/validations';\r\nimport { number } from '@/validators/number';\r\nimport { interpolate } from '@/services/interpolationService';\r\nimport {\r\n formatGermanNumber,\r\n parseGermanFloat,\r\n} from '@/utilities/germanFormats';\r\nimport { roundToDecimals } from '@/utilities/math';\r\n\r\nexport default getFormInputMixin<\r\n PhotovoltaicModuleFormGroup,\r\n PhotovoltaicModuleFormGroupContent\r\n>().extend({\r\n name: 'PhotovoltaicModuleFormGroup',\r\n components: {\r\n FormInputCount,\r\n FormInputText,\r\n FormField,\r\n FormFileUpload,\r\n FunctionalityButton,\r\n },\r\n props: {\r\n applicationId: {\r\n type: String,\r\n required: true,\r\n },\r\n showRemoveButton: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n },\r\n data() {\r\n return {\r\n functionalityButtonValue: 'remove' as FunctionalityButtonValueType,\r\n };\r\n },\r\n computed: {\r\n pvQuantityAndNominalPowerValidations():\r\n | ValidationsCommonType\r\n | unknown {\r\n return this.validations?.pvQuantityAndNominalPower || {};\r\n },\r\n totalNominalPowerDisplayValue(): string {\r\n const value = (this.model.pvTotalNominalPower.value ?? 0) / 1000;\r\n\r\n return interpolate(this.content.pvTotalNominalPower.unit, {\r\n value: formatGermanNumber(value, {\r\n decimals: 3,\r\n thousandsSeparator: true,\r\n }),\r\n });\r\n },\r\n },\r\n watch: {\r\n 'model.pvQuantityAndNominalPower.quantity.value': {\r\n handler(newValue: number | null) {\r\n this.setTotalNominalPower(\r\n newValue,\r\n this.model.pvQuantityAndNominalPower.nominalPower.value,\r\n );\r\n },\r\n immediate: true,\r\n },\r\n 'model.pvQuantityAndNominalPower.nominalPower.value': {\r\n handler(newValue: string | null) {\r\n this.setTotalNominalPower(\r\n this.model.pvQuantityAndNominalPower.quantity.value,\r\n newValue,\r\n );\r\n },\r\n immediate: true,\r\n },\r\n },\r\n methods: {\r\n setTotalNominalPower(\r\n rawQuantity: number | null,\r\n rawNominalPower: string | null,\r\n ): void {\r\n // nominalPower as number; default: 0\r\n let nominalPower = 0;\r\n if (rawNominalPower != null) {\r\n const parsedNominalPower = parseGermanFloat(rawNominalPower);\r\n\r\n nominalPower = number(parsedNominalPower)\r\n ? parsedNominalPower\r\n : 0;\r\n }\r\n\r\n // quantity as number; default: 0\r\n let quantity = 0;\r\n if (rawQuantity != null) {\r\n quantity = number(rawQuantity) ? rawQuantity : 0;\r\n }\r\n\r\n this.model.pvTotalNominalPower.value = roundToDecimals(\r\n quantity * nominalPower,\r\n );\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PhotovoltaicModuleFormGroup.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PhotovoltaicModuleFormGroup.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PhotovoltaicModuleFormGroup.vue?vue&type=template&id=5159671c&\"\nimport script from \"./PhotovoltaicModuleFormGroup.vue?vue&type=script&lang=ts&\"\nexport * from \"./PhotovoltaicModuleFormGroup.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport FunctionalityButton, {\r\n FunctionalityButtonValueType,\r\n} from '@/components/molecules/functionalityButton/FunctionalityButton.vue';\r\nimport PhotovoltaicModuleFormGroup from '@/components/organisms/plantPerformance/photovoltaicModuleFormGroup/PhotovoltaicModuleFormGroup.vue';\r\nimport { getFormInputMixin } from '@/mixins/formInputMixin';\r\nimport type { PhotovoltaicModuleFormList } from '@/types/forms/formGroups/plantPerformance/photovoltaic/photovoltaicModuleFormList';\r\nimport type { PhotovoltaicModuleFormListContent } from '@/api/interfaces/content/form/steps/plantPerformance/photovoltaicContent';\r\nimport type { PhotovoltaicModuleFormGroup as PhotovoltaicModuleFormGroupType } from '@/types/forms/formGroups/plantPerformance/photovoltaic/photovoltaicModuleFormGroup';\r\n\r\nexport default getFormInputMixin<\r\n PhotovoltaicModuleFormList,\r\n PhotovoltaicModuleFormListContent\r\n>().extend({\r\n name: 'PhotovoltaicModuleFormList',\r\n components: {\r\n FunctionalityButton,\r\n PhotovoltaicModuleFormGroup,\r\n },\r\n props: {\r\n applicationId: {\r\n type: String,\r\n required: true,\r\n },\r\n },\r\n data() {\r\n return {\r\n functionalityButtonValue: 'add' as FunctionalityButtonValueType,\r\n };\r\n },\r\n computed: {\r\n canAddItem(): boolean {\r\n return this.model.canAddItem();\r\n },\r\n canRemoveItem(): boolean {\r\n return this.model.canRemoveItem();\r\n },\r\n },\r\n methods: {\r\n handleFunctionalityButtonClick(): void {\r\n this.model.createItem();\r\n },\r\n handleModuleFunctionalityButtonClick(\r\n value: FunctionalityButtonValueType,\r\n pvModule: PhotovoltaicModuleFormGroupType,\r\n ): void {\r\n if (value === 'remove') {\r\n this.model.removeItem(pvModule);\r\n }\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PhotovoltaicModuleFormList.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PhotovoltaicModuleFormList.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PhotovoltaicModuleFormList.vue?vue&type=template&id=04f3cfea&\"\nimport script from \"./PhotovoltaicModuleFormList.vue?vue&type=script&lang=ts&\"\nexport * from \"./PhotovoltaicModuleFormList.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { getFormInputMixin } from '@/mixins/formInputMixin';\r\nimport FormField from '@/components/molecules/formField/FormField.vue';\r\nimport FormTextBlock from '@/components/molecules/formTextBlock/FormTextBlock.vue';\r\nimport PhotovoltaicModuleFormList from '@/components/organisms/plantPerformance/photovoltaicModuleFormList/PhotovoltaicModuleFormList.vue';\r\nimport { AddressCheckFeedbackFormGroup } from '@/types/forms/formGroups/electricityUnavailableAtAddressFormGroup';\r\nimport { AddressCheckFeedbackFormGroupContent } from '@/api/interfaces/content/form/steps/location/addressCheckFeedbackFormGroupContent';\r\nimport { addressRequiredIfNoCadastral } from '@/validators/addressRequiredIfNoCadastral';\r\nimport { ApplicationForm } from '@/types/forms/specific/applicationForm';\r\nimport SpinnerArea from '@/components/molecules/spinnerArea/SpinnerArea.vue';\r\nimport { SpinnerState } from '@/enums/spinnerState';\r\nimport { SpinnerSize } from '@/enums/spinnerSize';\r\nimport { AddressesApiAvailabilityResult } from '@/types/forms/shared/addressesApi/addressesApiAvailabilityResult';\r\nimport { PropType } from 'vue';\r\n\r\nexport default getFormInputMixin<\r\n AddressCheckFeedbackFormGroup,\r\n AddressCheckFeedbackFormGroupContent,\r\n unknown,\r\n ApplicationForm\r\n>().extend({\r\n name: 'AddressCheckFeedbackFormGroup',\r\n components: {\r\n FormField,\r\n FormTextBlock,\r\n PhotovoltaicModuleFormList,\r\n SpinnerArea,\r\n },\r\n props: {\r\n isLoading: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n addressCheckInInitState: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n availabilityResult: {\r\n type: String as PropType,\r\n },\r\n },\r\n computed: {\r\n isVisible(): boolean {\r\n return (\r\n !this.showSummary &&\r\n (this.isLoading ||\r\n (!this.isLoading &&\r\n (this.availabilityResult == 'available' ||\r\n (!this.addressCheckInInitState &&\r\n this.availabilityResult == null) ||\r\n this.availabilityResult == 'unavailable')))\r\n );\r\n },\r\n addHasErrorsClass(): boolean {\r\n return (\r\n !this.formModel.location.proceedWithCadastral.disabled &&\r\n !this.formModel.location.proceedWithCadastral.value &&\r\n !addressRequiredIfNoCadastral.call(this.$parent)\r\n );\r\n },\r\n loadingState(): SpinnerState {\r\n return this.isLoading ? SpinnerState.transparent : SpinnerState.off;\r\n },\r\n spinnerSize: () => SpinnerSize.small,\r\n },\r\n});\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AddressCheckFeedbackFormGroup.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AddressCheckFeedbackFormGroup.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AddressCheckFeedbackFormGroup.vue?vue&type=template&id=814327a4&\"\nimport script from \"./AddressCheckFeedbackFormGroup.vue?vue&type=script&lang=ts&\"\nexport * from \"./AddressCheckFeedbackFormGroup.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { setCookie, getCookie, deleteCookie } from '@/services/cookieService';\r\nimport { LocationFormStepContent } from '@/api/interfaces/content/form/steps/locationFormStepContent';\r\nimport { LocationMapContent } from '@/api/interfaces/content/form/base/locationMapContent';\r\nimport { getFormStepMixin } from '@/mixins/formStepMixin';\r\nimport FormTextBlock from '@/components/molecules/formTextBlock/FormTextBlock.vue';\r\nimport FormField from '@/components/molecules/formField/FormField.vue';\r\nimport FormRadioGroup from '@/components/molecules/formRadioGroup/FormRadioGroup.vue';\r\nimport FormInputText from '@/components/atoms/formInputText/FormInputText.vue';\r\nimport FormBooleanCheckbox from '@/components/molecules/formBooleanCheckbox/FormBooleanCheckbox.vue';\r\nimport FormInputGeoCoordinates from '@/components/molecules/formInputGeoCoordinates/FormInputGeoCoordinates.vue';\r\nimport FormInputTextWithSuggestions from '@/components/atoms/formInputTextWithSuggestions/FormInputTextWithSuggestions.vue';\r\nimport LocationMap from '@/components/atoms/locationMap/LocationMap.vue';\r\nimport MapWrapper from '@/components/molecules/mapWrapper/MapWrapper.vue';\r\nimport ButtonSpacer from '@/components/molecules/buttonSpacer/ButtonSpacer.vue';\r\nimport { LocationFormStep } from '@/types/forms/formSteps/locationFormStep';\r\nimport FieldWithInfoIcon from '@/components/molecules/fieldWithInfoIcon/FieldWithInfoIcon.vue';\r\nimport { FormStepConfiguration } from '@/api/interfaces/configuration/form/base/formStepConfiguration';\r\nimport { AddressesService } from '@/services/address/addressesService';\r\nimport { ServiceError } from '@/api/interfaces/serviceError';\r\nimport { MessageType } from '@/enums/messageType';\r\nimport { AlertWithIdentifier, alertService } from '@/services/alertService';\r\nimport { AddressesSuggestions } from '@/api/interfaces/address/addressesSuggestions';\r\nimport AddressCheckFeedbackFormGroup from './addressCheckFeedbackFormGroup/AddressCheckFeedbackFormGroup.vue';\r\n\r\nexport default getFormStepMixin<\r\n LocationFormStep,\r\n LocationFormStepContent,\r\n FormStepConfiguration\r\n>().extend({\r\n name: 'LocationForm',\r\n components: {\r\n FormTextBlock,\r\n FormField,\r\n FormRadioGroup,\r\n FormInputText,\r\n FormBooleanCheckbox,\r\n FormInputTextWithSuggestions,\r\n LocationMap,\r\n FormInputGeoCoordinates,\r\n ButtonSpacer,\r\n FieldWithInfoIcon,\r\n MapWrapper,\r\n AddressCheckFeedbackFormGroup,\r\n },\r\n data() {\r\n return {\r\n addressesService: new AddressesService(),\r\n\r\n activeAddressesSuggestions: {\r\n zipQuery: null,\r\n zipResult: [],\r\n cityQuery: null,\r\n cityResult: [],\r\n streetQuery: null,\r\n streetResult: [],\r\n } as AddressesSuggestions,\r\n //used to trigger the clearSuggestions method of the VueSimpleSuggest plugin\r\n clearableSuggestionFields: {\r\n zip: {},\r\n city: {},\r\n street: {},\r\n },\r\n currentAddress: null as string | null,\r\n consentGranted: false,\r\n mapCheckboxModel: {\r\n value: false,\r\n userChangeable: true,\r\n },\r\n addressCheckIsLoading: false,\r\n addressCheckInInitState: true,\r\n };\r\n },\r\n computed: {\r\n isMapVisible(): boolean {\r\n return this.consentGranted;\r\n },\r\n },\r\n watch: {\r\n 'mapCheckboxModel.value'() {\r\n this.mapCheckboxModel.value ? this.enableMap() : this.disableMap();\r\n },\r\n\r\n /**\r\n * Pre-load cities or handle cached data\r\n */\r\n 'model.zipAndCity.zip.value': {\r\n handler(newValue: string | null, oldValue: string | null): void {\r\n // First of all, if the value has changed in ANY way, then a possibly existing availability result must be reset\r\n if (newValue !== oldValue) {\r\n if (this.model.availabilityResult.value !== null) {\r\n this.addressCheckInInitState = false;\r\n }\r\n this.model.availabilityResult.value = null;\r\n this.model.zipAndCity.city.value = null;\r\n this.model.streetAndHousenumber.street.value = null;\r\n this.model.streetAndHousenumber.housenumber.value = null;\r\n }\r\n\r\n // If zip input has finished with a valid zip, make sure proper city suggestions are immediately loaded after\r\n if (this.model.zipAndCity.zip.isValid()) {\r\n this.getCitySuggestions();\r\n return;\r\n }\r\n\r\n // Otherwise handle cache\r\n if (this.activeAddressesSuggestions.zipQuery === null) {\r\n return;\r\n }\r\n\r\n // If zip was completely removed, just reset all suggestions\r\n if (newValue === null) {\r\n this.resetSuggestions();\r\n return;\r\n }\r\n\r\n // Otherwise, how much we reset depends on how much of the zip has changed\r\n this.resetCitySuggestions();\r\n this.resetStreetSuggestions();\r\n if (\r\n !newValue.startsWith(\r\n this.activeAddressesSuggestions.zipQuery,\r\n )\r\n ) {\r\n this.resetZipSuggestions();\r\n }\r\n },\r\n immediate: false,\r\n },\r\n\r\n /**\r\n * Reset cached data, if necessary\r\n */\r\n 'model.zipAndCity.city.value': {\r\n handler(newValue: string | null, oldValue: string | null): void {\r\n // First of all, if the value has changed in ANY way, then a possibly existing availability result must be reset\r\n if (newValue !== oldValue) {\r\n if (this.model.availabilityResult.value !== null) {\r\n this.addressCheckInInitState = false;\r\n }\r\n this.model.availabilityResult.value = null;\r\n this.model.streetAndHousenumber.street.value = null;\r\n this.model.streetAndHousenumber.housenumber.value = null;\r\n }\r\n\r\n if (this.activeAddressesSuggestions.streetQuery === null) {\r\n return;\r\n }\r\n\r\n this.resetStreetSuggestions();\r\n },\r\n immediate: false,\r\n },\r\n\r\n /**\r\n * Reset cached data, if necessary\r\n */\r\n 'model.streetAndHousenumber.street.value': {\r\n handler(newValue: string | null, oldValue: string | null): void {\r\n // First of all, if the value has changed in ANY way, then a possibly existing availability result must be reset\r\n if (newValue !== oldValue) {\r\n if (this.model.availabilityResult.value !== null) {\r\n this.addressCheckInInitState = false;\r\n }\r\n this.model.availabilityResult.value = null;\r\n this.model.streetAndHousenumber.housenumber.value = null;\r\n }\r\n },\r\n immediate: false,\r\n },\r\n },\r\n mounted(): void {\r\n this.initMapData();\r\n\r\n this.handleAddressBlur();\r\n },\r\n methods: {\r\n handleAddressBlur(): void {\r\n this.currentAddress = this.getCurrentAddress();\r\n\r\n // If all address fields are filled, we need to check availability\r\n if (\r\n this.model.zipAndCity.zip.isValid() &&\r\n this.model.zipAndCity.city.isValid() &&\r\n this.model.streetAndHousenumber.street.isValid() &&\r\n this.model.streetAndHousenumber.housenumber.isValid()\r\n ) {\r\n this.evaluateAvailability();\r\n }\r\n },\r\n enableMap(): void {\r\n // Set cookie with a validity of six months\r\n setCookie('googleMapsConsent', true, 182);\r\n this.consentGranted = true;\r\n },\r\n disableMap(): void {\r\n deleteCookie('googleMapsConsent');\r\n this.consentGranted = false;\r\n },\r\n initMapData(): void {\r\n this.consentGranted = this.hasMapConsentCookie();\r\n this.mapCheckboxModel.value = this.hasMapConsentCookie();\r\n },\r\n hasMapConsentCookie(): boolean {\r\n return getCookie('googleMapsConsent') ? true : false;\r\n },\r\n isValidAddress(): boolean {\r\n return (\r\n this.model.zipAndCity.zip.isValid() &&\r\n this.model.zipAndCity.city.isValid() &&\r\n this.model.streetAndHousenumber.street.isValid()\r\n );\r\n },\r\n getCurrentAddress(): string {\r\n const street = this.model.streetAndHousenumber.street.value || '';\r\n const housenumber =\r\n this.model.streetAndHousenumber.housenumber.value || '';\r\n const zip = this.model.zipAndCity.zip.value || '26133';\r\n const city = this.model.zipAndCity.city.value || 'Oldenburg';\r\n\r\n return `${street} ${housenumber}, ${zip} ${city}`.trim();\r\n },\r\n /** Reset all currently active/cached suggestions */\r\n resetSuggestions(): void {\r\n this.resetZipSuggestions();\r\n this.resetCitySuggestions();\r\n this.resetStreetSuggestions();\r\n },\r\n resetZipSuggestions(): void {\r\n this.activeAddressesSuggestions.zipQuery = null;\r\n this.activeAddressesSuggestions.zipResult = [];\r\n },\r\n resetCitySuggestions(): void {\r\n this.activeAddressesSuggestions.cityQuery = null;\r\n this.activeAddressesSuggestions.cityResult = [];\r\n },\r\n resetStreetSuggestions(): void {\r\n this.activeAddressesSuggestions.streetQuery = null;\r\n this.activeAddressesSuggestions.streetResult = [];\r\n },\r\n getZipSuggestions(): Promise {\r\n // If cached results are available, use those\r\n if (this.activeAddressesSuggestions.zipQuery !== null) {\r\n return Promise.resolve().then(\r\n () => this.activeAddressesSuggestions.zipResult,\r\n );\r\n }\r\n\r\n return this.addressesService\r\n .getZipSuggestions(this.model.zipAndCity.zip.value ?? '')\r\n .then((response: string[]) => {\r\n this.activeAddressesSuggestions.zipQuery = this.model.zipAndCity.zip.value;\r\n this.activeAddressesSuggestions.zipResult = response;\r\n\r\n return response;\r\n })\r\n .catch((error: ServiceError) => {\r\n this.activeAddressesSuggestions.zipQuery = null;\r\n this.activeAddressesSuggestions.zipResult = [];\r\n\r\n alertService.clear();\r\n switch (error.messageCode) {\r\n case 'external.addresses.badSuccess':\r\n alertService.pushAlert({\r\n alert: {\r\n type: MessageType.error,\r\n identifier: error.messageCode,\r\n } as AlertWithIdentifier,\r\n });\r\n break;\r\n default:\r\n // Ignore by choice. Visitor should not see an error.\r\n break;\r\n }\r\n\r\n return [];\r\n });\r\n },\r\n getCitySuggestions(): Promise {\r\n // Can only retrieve proper suggestions with a valid zip\r\n if (!this.model.zipAndCity.zip.isValid()) {\r\n return Promise.resolve().then(() => []);\r\n }\r\n\r\n // If cached results are available, use those\r\n if (this.activeAddressesSuggestions.cityQuery !== null) {\r\n return Promise.resolve().then(\r\n () => this.activeAddressesSuggestions.cityResult,\r\n );\r\n }\r\n\r\n return this.addressesService\r\n .getCitySuggestionsByZip(this.model.zipAndCity.zip.value ?? '')\r\n .then((response: string[]) => {\r\n this.activeAddressesSuggestions.cityQuery = this.model.zipAndCity.zip.value;\r\n this.activeAddressesSuggestions.cityResult = response;\r\n\r\n if (response.length === 1) {\r\n this.model.zipAndCity.city.value = response[0];\r\n this.getStreetSuggestions();\r\n }\r\n\r\n return response;\r\n })\r\n .catch((error: ServiceError) => {\r\n alertService.clear();\r\n switch (error.messageCode) {\r\n case 'external.addresses.badSuccess':\r\n alertService.pushAlert({\r\n alert: {\r\n type: MessageType.error,\r\n identifier: error.messageCode,\r\n } as AlertWithIdentifier,\r\n });\r\n break;\r\n default:\r\n // Ignore by choice. Visitor should not see an error.\r\n break;\r\n }\r\n\r\n return [];\r\n });\r\n },\r\n getStreetSuggestions(): Promise {\r\n // Can only retrieve proper suggestions with a valid zip and city\r\n if (\r\n !this.model.zipAndCity.zip.isValid() ||\r\n !this.model.zipAndCity.city.isValid()\r\n ) {\r\n return Promise.resolve().then(() => []);\r\n }\r\n\r\n // If cached results are available, use those\r\n if (this.activeAddressesSuggestions.streetQuery !== null) {\r\n return Promise.resolve().then(\r\n () => this.activeAddressesSuggestions.streetResult,\r\n );\r\n }\r\n\r\n return this.addressesService\r\n .getStreetSuggestions(\r\n this.model.zipAndCity.zip.value ?? '',\r\n this.model.zipAndCity.city.value ?? '',\r\n )\r\n .then((response: string[]) => {\r\n this.activeAddressesSuggestions.streetQuery = {\r\n zip: this.model.zipAndCity.zip.value ?? '',\r\n city: this.model.zipAndCity.city.value ?? '',\r\n };\r\n this.activeAddressesSuggestions.streetResult = response;\r\n\r\n if (response.length === 1) {\r\n this.model.streetAndHousenumber.street.value =\r\n response[0];\r\n }\r\n\r\n return response;\r\n })\r\n .catch((error: ServiceError) => {\r\n alertService.clear();\r\n switch (error.messageCode) {\r\n case 'external.addresses.badSuccess':\r\n alertService.pushAlert({\r\n alert: {\r\n type: MessageType.error,\r\n identifier: error.messageCode,\r\n } as AlertWithIdentifier,\r\n });\r\n break;\r\n default:\r\n // Ignore by choice. Visitor should not see an error.\r\n break;\r\n }\r\n\r\n return [];\r\n });\r\n },\r\n evaluateAvailability(): void {\r\n if (!this.isValidAddress()) {\r\n return;\r\n }\r\n this.addressCheckIsLoading = true;\r\n this.addressesService\r\n .getAvailability(\r\n this.model.zipAndCity.zip.value ?? '',\r\n this.model.zipAndCity.city.value ?? '',\r\n this.model.streetAndHousenumber.street.value ?? '',\r\n )\r\n .then((response: boolean) => {\r\n this.model.availabilityResult.value = response\r\n ? 'available'\r\n : 'unavailable';\r\n\r\n this.addressCheckInInitState = false;\r\n })\r\n .catch((error: ServiceError) => {\r\n alertService.clear();\r\n switch (error.messageCode) {\r\n case 'external.addresses.badSuccess':\r\n alertService.pushAlert({\r\n alert: {\r\n type: MessageType.error,\r\n identifier: error.messageCode,\r\n } as AlertWithIdentifier,\r\n });\r\n break;\r\n default:\r\n // Ignore by choice. Visitor should not see an error.\r\n break;\r\n }\r\n\r\n this.model.availabilityResult.value = this.addressesService.parseToBadResponseType(\r\n error,\r\n );\r\n })\r\n .finally(() => {\r\n this.addressCheckIsLoading = false;\r\n });\r\n },\r\n handleCoordinatesChanged(coordinatesData: LocationMapContent): void {\r\n // Latitude values\r\n this.model.geographicLatCoordinates.degrees.value =\r\n coordinatesData.latitude.degrees;\r\n this.model.geographicLatCoordinates.minutes.value =\r\n coordinatesData.latitude.minutes;\r\n this.model.geographicLatCoordinates.seconds.value =\r\n coordinatesData.latitude.seconds;\r\n\r\n // Longitude values\r\n this.model.geographicLngCoordinates.degrees.value =\r\n coordinatesData.longitude.degrees;\r\n this.model.geographicLngCoordinates.minutes.value =\r\n coordinatesData.longitude.minutes;\r\n this.model.geographicLngCoordinates.seconds.value =\r\n coordinatesData.longitude.seconds;\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LocationForm.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LocationForm.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./LocationForm.vue?vue&type=template&id=72a115ec&scoped=true&\"\nimport script from \"./LocationForm.vue?vue&type=script&lang=ts&\"\nexport * from \"./LocationForm.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./LocationForm.vue?vue&type=style&index=0&id=72a115ec&lang=postcss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"72a115ec\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"container\",class:{ 'mb-4 md:mb-8 lg:mb-10 xl:mb-12': !_vm.showSummary }},[(!_vm.showSummary)?_c('FormTextBlock',{staticClass:\"step-intro\",attrs:{\"model\":_vm.model.stepIntro,\"content\":_vm.content.stepIntro}}):_vm._e(),_c('FormField',{staticClass:\"plug-in-generating-plant\",attrs:{\"model\":_vm.model.plugInGeneratingPlant,\"content\":_vm.content.plugInGeneratingPlant,\"validations\":_vm.validations.plugInGeneratingPlant,\"align-field\":\"singleLine\",\"show-summary\":_vm.showSummary,\"summary-value\":_vm.model.plugInGeneratingPlant.value}},[_c('FormBooleanCheckbox',{attrs:{\"model\":_vm.model.plugInGeneratingPlant,\"content\":_vm.content.plugInGeneratingPlant,\"validations\":_vm.validations.plugInGeneratingPlant,\"show-info-icon\":\"\"}})],1),_c('FormField',{staticClass:\"energy-type\",attrs:{\"model\":_vm.model.energyType,\"content\":_vm.content.energyType,\"validations\":_vm.validations.energyType,\"show-summary\":_vm.showSummary,\"summary-value\":_vm.content.energyType.options[_vm.model.energyType.value] &&\n _vm.content.energyType.options[_vm.model.energyType.value].label}},[_c('FormSelect',{attrs:{\"model\":_vm.model.energyType,\"content\":_vm.content.energyType,\"validations\":_vm.validations.energyType}})],1),_c('FormField',{staticClass:\"plant-type\",attrs:{\"model\":_vm.model.plantType,\"content\":_vm.content.plantType,\"validations\":_vm.validations.plantType,\"show-summary\":_vm.showSummary,\"summary-value\":_vm.content.plantType.options[_vm.model.plantType.value] &&\n _vm.content.plantType.options[_vm.model.plantType.value].label}},[_c('FormSelect',{attrs:{\"model\":_vm.model.plantType,\"content\":_vm.content.plantType,\"validations\":_vm.validations.plantType}})],1),(!_vm.showSummary)?_c('FormTextBlock',{staticClass:\"simplified-registration-process-notice\",attrs:{\"model\":_vm.model.simplifiedRegistrationProcessNotice,\"content\":_vm.content.simplifiedRegistrationProcessNotice}}):_vm._e(),(!_vm.model.simplifiedRegistrationProcessNotice.disabled)?_c('div',{staticClass:\"my-12\"},[_c('FormLinkButton',{attrs:{\"model\":_vm.model.simplifiedRegistrationProcessNotice,\"content\":_vm.content.simplifiedRegistrationProcessNotice,\"show-info-icon\":\"\"}})],1):_vm._e(),_c('FormField',{staticClass:\"proceed-with-full-registration-for-eeg-compensation\",attrs:{\"model\":_vm.model.proceedWithFullRegistrationForEEGCompensation,\"content\":_vm.content.proceedWithFullRegistrationForEEGCompensation,\"validations\":_vm.validations.proceedWithFullRegistrationForEEGCompensation,\"align-field\":\"singleLine\",\"show-summary\":_vm.showSummary,\"summary-value\":_vm.model.proceedWithFullRegistrationForEEGCompensation.value}},[_c('FormBooleanCheckbox',{attrs:{\"model\":_vm.model.proceedWithFullRegistrationForEEGCompensation,\"content\":_vm.content.proceedWithFullRegistrationForEEGCompensation,\"validations\":_vm.validations.proceedWithFullRegistrationForEEGCompensation,\"show-info-icon\":\"\"}})],1),_c('FormField',{staticClass:\"plant-structure-type\",attrs:{\"model\":_vm.model.plantStructureType,\"content\":_vm.content.plantStructureType,\"validations\":_vm.validations.plantStructureType,\"align-field\":\"belowLabel\",\"show-summary\":_vm.showSummary,\"summary-value\":_vm.content.plantStructureType.options[\n _vm.model.plantStructureType.value\n ] &&\n _vm.content.plantStructureType.options[\n _vm.model.plantStructureType.value\n ].label,\"show-info-icon\":\"\"}},[_c('FormRadioGroup',{attrs:{\"model\":_vm.model.plantStructureType,\"content\":_vm.content.plantStructureType,\"validations\":_vm.validations.plantStructureType,\"orientation\":\"vertical\"}})],1),_c('FormField',{staticClass:\"plant-structure-type\",attrs:{\"model\":_vm.model.totalPlantPerformance,\"content\":_vm.content.totalPlantPerformance,\"validations\":_vm.validations.totalPlantPerformance,\"align-field\":\"belowLabel\",\"show-summary\":_vm.showSummary,\"summary-value\":_vm.content.totalPlantPerformance.options[\n _vm.model.totalPlantPerformance.value\n ] &&\n _vm.content.totalPlantPerformance.options[\n _vm.model.totalPlantPerformance.value\n ].label,\"show-info-icon\":\"\"}},[_c('FormRadioGroup',{attrs:{\"model\":_vm.model.totalPlantPerformance,\"content\":_vm.content.totalPlantPerformance,\"validations\":_vm.validations.totalPlantPerformance,\"orientation\":\"vertical\"}})],1),_c('FormField',{staticClass:\"request-type\",attrs:{\"model\":_vm.model.requestType,\"content\":_vm.content.requestType,\"validations\":_vm.validations.requestType,\"align-field\":\"belowLabel\",\"show-summary\":_vm.showSummary,\"summary-value\":_vm.content.requestType.options[_vm.model.requestType.value]\n ? _vm.content.requestType.options[_vm.model.requestType.value].label\n : ''}},[_c('FormRadioGroup',{attrs:{\"model\":_vm.model.requestType,\"content\":_vm.content.requestType,\"validations\":_vm.validations.requestType,\"orientation\":\"horizontal\",\"show-info-icon\":true}})],1),(!_vm.showSummary)?_c('FormTextBlock',{staticClass:\"request-with-planning-info\",attrs:{\"model\":_vm.model.requestWithPlanningInfo,\"content\":_vm.content.requestWithPlanningInfo}}):_vm._e(),(!_vm.showSummary)?_c('FormTextBlock',{staticClass:\"request-without-planning-info\",attrs:{\"model\":_vm.model.requestWithoutPlanningInfo,\"content\":_vm.content.requestWithoutPlanningInfo}}):_vm._e(),_c('FormField',{staticClass:\"emergency-generator-operating-mode\",attrs:{\"model\":_vm.model.emergencyGeneratorOperatingMode,\"content\":_vm.content.emergencyGeneratorOperatingMode,\"validations\":_vm.validations.emergencyGeneratorOperatingMode,\"show-summary\":_vm.showSummary,\"summary-value\":_vm.emergencyGeneratorOperatingModeSummaryValue,\"align-field\":\"belowLabel\"}},[_c('FormCheckboxList',{attrs:{\"model\":_vm.model.emergencyGeneratorOperatingMode,\"content\":_vm.content.emergencyGeneratorOperatingMode,\"validations\":_vm.validations.emergencyGeneratorOperatingMode,\"orientation\":\"vertical\"}})],1),_c('FormField',{staticClass:\"specified-emergency-generator-operating-mode\",attrs:{\"model\":_vm.model.specifiedEmergencyGeneratorOperatingMode,\"content\":_vm.content.specifiedEmergencyGeneratorOperatingMode,\"validations\":_vm.validations.specifiedEmergencyGeneratorOperatingMode,\"show-summary\":_vm.showSummary,\"summary-value\":_vm.model.specifiedEmergencyGeneratorOperatingMode.value}},[_c('FormInputText',{attrs:{\"model\":_vm.model.specifiedEmergencyGeneratorOperatingMode,\"content\":_vm.content.specifiedEmergencyGeneratorOperatingMode,\"validations\":_vm.validations.specifiedEmergencyGeneratorOperatingMode}})],1),(!_vm.showSummary)?_c('FormTextBlock',{staticClass:\"simplified-procedure-hint\",attrs:{\"model\":_vm.model.simplifiedProcedureHint,\"content\":_vm.content.simplifiedProcedureHint}}):_vm._e(),_c('FormField',{staticClass:\"bidirectional-meter\",attrs:{\"model\":_vm.model.bidirectionalMeter,\"content\":_vm.content.bidirectionalMeter,\"validations\":_vm.validations.bidirectionalMeter,\"align-field\":\"singleLine\",\"show-summary\":_vm.showSummary,\"summary-value\":_vm.model.bidirectionalMeter.value}},[_c('FormBooleanCheckbox',{attrs:{\"model\":_vm.model.bidirectionalMeter,\"content\":_vm.content.bidirectionalMeter,\"validations\":_vm.validations.bidirectionalMeter,\"show-info-icon\":\"\"}})],1),(!_vm.showSummary)?_c('FormTextBlock',{staticClass:\"bidirectional-meter-info\",attrs:{\"model\":_vm.model.bidirectionalMeterInfo,\"content\":_vm.content.bidirectionalMeterInfo}}):_vm._e(),_c('FormField',{staticClass:\"consumption\",attrs:{\"model\":_vm.model.consumption,\"content\":_vm.content.consumption,\"validations\":_vm.validations.consumption,\"show-summary\":_vm.showSummary,\"summary-value\":_vm._f(\"concat\")([_vm.model.consumption.value, _vm.content.consumption.unit])}},[_c('FormInputText',{attrs:{\"model\":_vm.model.consumption,\"content\":_vm.content.consumption,\"validations\":_vm.validations.consumption,\"align-text\":\"right\",\"show-info-icon\":\"\"}})],1),_c('FormField',{staticClass:\"infeed\",attrs:{\"model\":_vm.model.infeed,\"content\":_vm.content.infeed,\"validations\":_vm.validations.infeed,\"show-summary\":_vm.showSummary,\"summary-value\":_vm._f(\"concat\")([_vm.model.infeed.value, _vm.content.infeed.unit])}},[_c('FormInputText',{attrs:{\"model\":_vm.model.infeed,\"content\":_vm.content.infeed,\"validations\":_vm.validations.infeed,\"align-text\":\"right\",\"show-info-icon\":\"\"}})],1),_c('FormField',{staticClass:\"reading-date\",attrs:{\"model\":_vm.model.readingDate,\"content\":_vm.content.readingDate,\"validations\":_vm.validations.readingDate,\"show-summary\":_vm.showSummary,\"summary-value\":_vm.model.readingDate.value}},[_c('FormDatePicker',{attrs:{\"model\":_vm.model.readingDate,\"content\":_vm.content.readingDate,\"validations\":_vm.validations.readingDate}})],1),(!_vm.showSummary)?_c('Accordion',{attrs:{\"model\":_vm.model.plugInGeneratingPlantInfo}},[_c('FormTextBlock',{staticClass:\"plug-in-generating-plant-info\",attrs:{\"model\":_vm.model.plugInGeneratingPlantInfo,\"content\":_vm.content.plugInGeneratingPlantInfo}})],1):_vm._e(),(!_vm.showSummary)?_c('ButtonSpacer',{attrs:{\"align\":\"right\",\"content\":_vm.content,\"button-text\":_vm.content.buttonNext.text,\"show-debug-fill-button\":_vm.showDebugFillButton},on:{\"button-click\":_vm.validateAndSubmit,\"debug-fill-button-click\":_vm.debugFillSubmit}}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.model.disabled)?_c('div',{staticClass:\"flex relative\"},[_c('div',{staticClass:\"text-container mr-10 h-40 overflow-hidden\",class:{ expand: _vm.accordionExpanded }},[_vm._t(\"default\")],2),_c('div',{staticClass:\"arrow-icon cursor-pointer absolute top-0 right-0\",on:{\"click\":function($event){return _vm.toggleAccordion()}}},[_c('Icon',{staticClass:\"text-4xl text-primary\",attrs:{\"id\":\"keyboard_arrow_down\"}})],1)]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport Vue from 'vue';\r\nimport { PropType } from 'vue';\r\nimport { FormElement } from '@/types/forms/formElement';\r\nimport Icon from '@/components/atoms/icon/Icon.vue';\r\n\r\nexport default Vue.extend({\r\n name: 'Accordion',\r\n components: {\r\n Icon,\r\n },\r\n props: {\r\n model: {\r\n type: Object as PropType,\r\n default: () => {\r\n return {};\r\n },\r\n },\r\n },\r\n data: () => {\r\n return {\r\n accordionExpanded: false,\r\n };\r\n },\r\n methods: {\r\n toggleAccordion: function (): void {\r\n this.accordionExpanded = !this.accordionExpanded;\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Accordion.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Accordion.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Accordion.vue?vue&type=template&id=7518e617&scoped=true&\"\nimport script from \"./Accordion.vue?vue&type=script&lang=ts&\"\nexport * from \"./Accordion.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Accordion.vue?vue&type=style&index=0&id=7518e617&lang=postcss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7518e617\",\n null\n \n)\n\nexport default component.exports","import { CheckboxListContent } from '@/api/interfaces/content/form/base/checkboxListContent';\r\nimport { LabelContent } from '@/api/interfaces/content/form/base/labelContent';\r\nimport { CheckboxesField } from '@/types/forms/fields/checkboxesField';\r\n\r\nexport function getCheckboxListSummaryValue(\r\n field: CheckboxesField,\r\n content: LabelContent & CheckboxListContent,\r\n): string {\r\n const selectedOptions = field.value;\r\n if (!selectedOptions) {\r\n return '';\r\n }\r\n\r\n return Object.keys(content.options)\r\n .filter((option) => selectedOptions.includes(option as TFieldValue))\r\n .map((option) => content.options[option].label)\r\n .join(', ');\r\n}\r\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { getFormStepMixin } from '@/mixins/formStepMixin';\r\nimport { GenerationTypeFormStepContent } from '@/api/interfaces/content/form/steps/generationTypeFormStepContent';\r\nimport { GenerationTypeFormStep } from '@/types/forms/formSteps/generationTypeFormStep';\r\nimport ButtonSpacer from '@/components/molecules/buttonSpacer/ButtonSpacer.vue';\r\nimport FormBooleanCheckbox from '@/components/molecules/formBooleanCheckbox/FormBooleanCheckbox.vue';\r\nimport FormCheckboxList from '@/components/molecules/formCheckboxList/FormCheckboxList.vue';\r\nimport FormDatePicker from '@/components/molecules/datePicker/DatePicker.vue';\r\nimport FormField from '@/components/molecules/formField/FormField.vue';\r\nimport Accordion from '@/components/molecules/accordion/Accordion.vue';\r\nimport FormFileUpload from '@/components/molecules/formFileUpload/FormFileUpload.vue';\r\nimport FormInputText from '@/components/atoms/formInputText/FormInputText.vue';\r\nimport FormSelect from '@/components/molecules/formSelect/FormSelect.vue';\r\nimport FormTextBlock from '@/components/molecules/formTextBlock/FormTextBlock.vue';\r\nimport FormRadioGroup from '@/components/molecules/formRadioGroup/FormRadioGroup.vue';\r\nimport { getCheckboxListSummaryValue } from '@/services/form/checkboxListService';\r\nimport { FormStepConfiguration } from '@/api/interfaces/configuration/form/base/formStepConfiguration';\r\nimport { ApplicationForm } from '@/types/forms/specific/applicationForm';\r\nimport FormLinkButton from '@/components/molecules/formLinkButton/FormLinkButton.vue';\r\nimport './generationTypeForm.css';\r\n\r\nexport default getFormStepMixin<\r\n GenerationTypeFormStep,\r\n GenerationTypeFormStepContent,\r\n FormStepConfiguration,\r\n ApplicationForm\r\n>().extend({\r\n name: 'GenerationTypeForm',\r\n components: {\r\n ButtonSpacer,\r\n FormBooleanCheckbox,\r\n FormCheckboxList,\r\n FormDatePicker,\r\n FormField,\r\n Accordion,\r\n FormFileUpload,\r\n FormInputText,\r\n FormSelect,\r\n FormTextBlock,\r\n FormRadioGroup,\r\n FormLinkButton,\r\n },\r\n data() {\r\n return {};\r\n },\r\n computed: {\r\n emergencyGeneratorOperatingModeSummaryValue(): string {\r\n return getCheckboxListSummaryValue(\r\n this.model.emergencyGeneratorOperatingMode,\r\n this.content.emergencyGeneratorOperatingMode,\r\n );\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GenerationTypeForm.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GenerationTypeForm.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./GenerationTypeForm.vue?vue&type=template&id=33a5ad36&scoped=true&\"\nimport script from \"./GenerationTypeForm.vue?vue&type=script&lang=ts&\"\nexport * from \"./GenerationTypeForm.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./GenerationTypeForm.vue?vue&type=style&index=0&id=33a5ad36&lang=postcss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"33a5ad36\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"container\",class:{ 'mb-4 md:mb-8 lg:mb-10 xl:mb-12': !_vm.showSummary }},[_c('FormField',{staticClass:\"operating-mode\",attrs:{\"model\":_vm.model.operatingMode,\"content\":_vm.content.operatingMode,\"validations\":_vm.validations.operatingMode,\"show-summary\":_vm.showSummary,\"summary-value\":_vm.content.operatingMode.options[_vm.model.operatingMode.value] &&\n _vm.content.operatingMode.options[_vm.model.operatingMode.value].label}},[_c('FormSelect',{attrs:{\"model\":_vm.model.operatingMode,\"content\":_vm.content.operatingMode,\"validations\":_vm.validations.operatingMode}})],1),(!_vm.showSummary)?_c('FormTextBlock',{staticClass:\"full-infeed-bonus-headline\",attrs:{\"model\":_vm.model.fullInfeedBonusHeadline,\"content\":_vm.content.fullInfeedBonusHeadline}}):_vm._e(),_c('FormField',{staticClass:\"full-infeed-bonus\",attrs:{\"model\":_vm.model.fullInfeedBonus,\"content\":_vm.content.fullInfeedBonus,\"validations\":_vm.validations.fullInfeedBonus,\"align-field\":\"singleLine\",\"show-summary\":_vm.showSummary,\"summary-value\":_vm.model.fullInfeedBonus.value}},[_c('FormBooleanCheckbox',{attrs:{\"model\":_vm.model.fullInfeedBonus,\"content\":_vm.content.fullInfeedBonus,\"validations\":_vm.validations.fullInfeedBonus,\"show-info-icon\":\"\"}})],1),_c('FormField',{staticClass:\"meter-number\",attrs:{\"model\":_vm.model.meterNumber,\"content\":_vm.content.meterNumber,\"validations\":_vm.validations.meterNumber,\"show-summary\":_vm.showSummary,\"summary-value\":_vm.model.meterNumber.value}},[_c('FormInputText',{attrs:{\"model\":_vm.model.meterNumber,\"content\":_vm.content.meterNumber,\"validations\":_vm.validations.meterNumber,\"show-info-icon\":\"\"}})],1),_c('FormField',{staticClass:\"measuring-point-operation\",attrs:{\"model\":_vm.model.measuringPointOperation,\"content\":_vm.content.measuringPointOperation,\"validations\":_vm.validations.measuringPointOperation,\"align-field\":\"belowLabel\",\"show-info-icon\":\"\",\"show-summary\":_vm.showSummary,\"summary-value\":_vm.model.measuringPointOperation.value &&\n _vm.content.measuringPointOperation.options[\n _vm.model.measuringPointOperation.value\n ].label}},[_c('FormRadioGroup',{attrs:{\"model\":_vm.model.measuringPointOperation,\"content\":_vm.content.measuringPointOperation,\"validations\":_vm.validations.measuringPointOperation,\"orientation\":\"vertical\"}})],1),_c('FormField',{staticClass:\"measuring-point-operator\",attrs:{\"model\":_vm.model.measuringPointOperator,\"content\":_vm.content.measuringPointOperator,\"validations\":_vm.validations.measuringPointOperator,\"show-summary\":_vm.showSummary,\"summary-value\":_vm.model.measuringPointOperator.value}},[_c('FormSelect',{attrs:{\"model\":_vm.model.measuringPointOperator,\"content\":_vm.content.measuringPointOperator,\"validations\":_vm.validations.measuringPointOperator,\"select-customized\":true,\"select-customized-show-search\":true}})],1),(!_vm.showSummary)?_c('FormTextBlock',{staticClass:\"price-sheet-measuring-point-operation\",attrs:{\"model\":_vm.model.priceSheetMeasuringPointOperation,\"content\":_vm.content.priceSheetMeasuringPointOperation}}):_vm._e(),_c('FormField',{staticClass:\"self-generation-quantity\",attrs:{\"model\":_vm.model.selfGenerationQuantity,\"content\":_vm.content.selfGenerationQuantity,\"validations\":_vm.validations.selfGenerationQuantity,\"show-summary\":_vm.showSummary,\"summary-value\":_vm._f(\"concat\")([\n _vm.model.selfGenerationQuantity.value || 0,\n ' ',\n _vm.content.selfGenerationQuantity.unit ])}},[_c('FormInputText',{attrs:{\"model\":_vm.model.selfGenerationQuantity,\"content\":_vm.content.selfGenerationQuantity,\"validations\":_vm.validations.selfGenerationQuantity,\"align-text\":\"right\",\"show-info-icon\":\"\"}})],1),_c('FormField',{staticClass:\"self-supply-quantity\",attrs:{\"model\":_vm.model.selfSupplyQuantity,\"content\":_vm.content.selfSupplyQuantity,\"validations\":_vm.validations.selfSupplyQuantity,\"show-summary\":_vm.showSummary,\"summary-value\":_vm._f(\"concat\")([\n _vm.model.selfSupplyQuantity.value || 0,\n ' ',\n _vm.content.selfSupplyQuantity.unit ])}},[_c('FormInputText',{attrs:{\"model\":_vm.model.selfSupplyQuantity,\"content\":_vm.content.selfSupplyQuantity,\"validations\":_vm.validations.selfSupplyQuantity,\"align-text\":\"right\",\"show-info-icon\":\"\"}})],1),(!_vm.showSummary)?_c('FormTextBlock',{staticClass:\"remaining-electricity-info\",attrs:{\"model\":_vm.model.remainingElectricityInfo,\"content\":_vm.content.remainingElectricityInfo}}):_vm._e(),_c('FormTextBlock',{staticClass:\"storage-headline font-normal\",class:{\n 'text-lg my-5': _vm.showSummary,\n 'text-xl lg:text-2xl xl:text-2xl': !_vm.showSummary,\n },attrs:{\"model\":_vm.model.storageHeadline,\"content\":_vm.content.storageHeadline}}),_c('FormField',{staticClass:\"operating-mode-storage\",attrs:{\"model\":_vm.model.operatingModeStorage,\"content\":_vm.content.operatingMode,\"validations\":_vm.validations.operatingModeStorage,\"show-summary\":_vm.showSummary,\"summary-value\":_vm.content.operatingMode.options[\n _vm.model.operatingModeStorage.value\n ] &&\n _vm.content.operatingMode.options[_vm.model.operatingModeStorage.value]\n .label}},[_c('span',[_vm._v(_vm._s(_vm.content.operatingMode.options[ _vm.model.operatingModeStorage.value ] && _vm.content.operatingMode.options[_vm.model.operatingModeStorage.value] .label))])]),(!_vm.showSummary)?_c('FormTextBlock',{staticClass:\"measuring-point-operator-info\",attrs:{\"model\":_vm.model.measuringPointOperatorInfo,\"content\":_vm.content.measuringPointOperatorInfo}}):_vm._e(),(!_vm.showSummary)?_c('FormTextBlock',{staticClass:\"measuring-point-operation-info-ewe\",attrs:{\"model\":_vm.model.measuringPointOperationInfoEwe,\"content\":_vm.content.measuringPointOperationInfoEwe}}):_vm._e(),_c('FormField',{staticClass:\"measuring-point-operation-following-conditions-and-gtac-ewe\",attrs:{\"model\":_vm.model.measuringPointOperationFollowingConditionsAndGtacEwe,\"content\":_vm.content.measuringPointOperationFollowingConditionsAndGtacEwe,\"validations\":_vm.validations.measuringPointOperationFollowingConditionsAndGtacEwe,\"align-field\":\"singleLine\",\"show-summary\":_vm.showSummary,\"summary-value\":_vm.model.measuringPointOperationFollowingConditionsAndGtacEwe.value}},[_c('FormBooleanCheckbox',{attrs:{\"model\":_vm.model.measuringPointOperationFollowingConditionsAndGtacEwe,\"content\":_vm.content.measuringPointOperationFollowingConditionsAndGtacEwe,\"validations\":_vm.validations.measuringPointOperationFollowingConditionsAndGtacEwe}})],1),(!_vm.showSummary)?_c('FormTextBlock',{staticClass:\"measuring-point-operation-info-other\",attrs:{\"model\":_vm.model.measuringPointOperationInfoOther,\"content\":_vm.content.measuringPointOperationInfoOther}}):_vm._e(),(!_vm.showSummary)?_c('ButtonSpacer',{attrs:{\"align\":\"right\",\"content\":_vm.content,\"is-loading\":_vm.appState.pendingFileUploads > 0,\"button-text\":_vm.content.buttonNext.text,\"show-debug-fill-button\":_vm.showDebugFillButton},on:{\"button-click\":_vm.validateAndSubmit,\"debug-fill-button-click\":_vm.debugFillSubmit}}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { MeasuringConceptsFormStepContent } from '@/api/interfaces/content/form/steps/measuringConceptsFormStepContent';\r\nimport ButtonSpacer from '@/components/molecules/buttonSpacer/ButtonSpacer.vue';\r\nimport FormBooleanCheckbox from '@/components/molecules/formBooleanCheckbox/FormBooleanCheckbox.vue';\r\nimport FormField from '@/components/molecules/formField/FormField.vue';\r\nimport FormFileUpload from '@/components/molecules/formFileUpload/FormFileUpload.vue';\r\nimport FormInputText from '@/components/atoms/formInputText/FormInputText.vue';\r\nimport FormRadioGroup from '@/components/molecules/formRadioGroup/FormRadioGroup.vue';\r\nimport FormRow from '@/components/molecules/formRow/FormRow.vue';\r\nimport FormSelect from '@/components/molecules/formSelect/FormSelect.vue';\r\nimport FormTextBlock from '@/components/molecules/formTextBlock/FormTextBlock.vue';\r\nimport { getFormStepMixin } from '@/mixins/formStepMixin';\r\nimport { MeasuringConceptsFormStep } from '@/types/forms/formSteps/measuringConceptsFormStep';\r\nimport { FormStepConfiguration } from '@/api/interfaces/configuration/form/base/formStepConfiguration';\r\nimport {\r\n formatGermanNumber,\r\n parseGermanFloat,\r\n} from '@/utilities/germanFormats';\r\nimport { ApplicationForm } from '@/types/forms/specific/applicationForm';\r\nimport { calculateSelfGenerationQuantity } from '@/services/form/utilities/application/plantPerformance';\r\nimport { isPv } from '@/services/form/rules/application/common';\r\n\r\nconst PV_SELFGENERATIONQUANTITY_TO_SELFSUPPLYQUANTITY_FACTOR = 0.7;\r\n\r\nexport default getFormStepMixin<\r\n MeasuringConceptsFormStep,\r\n MeasuringConceptsFormStepContent,\r\n FormStepConfiguration,\r\n ApplicationForm\r\n>().extend({\r\n name: 'MeasuringConcepts',\r\n components: {\r\n ButtonSpacer,\r\n FormBooleanCheckbox,\r\n FormField,\r\n FormFileUpload,\r\n FormInputText,\r\n FormRadioGroup,\r\n FormRow,\r\n FormSelect,\r\n FormTextBlock,\r\n },\r\n watch: {\r\n 'model.operatingMode.value': function () {\r\n this.updateSelfSupplyQuantity();\r\n },\r\n 'model.selfGenerationQuantity.value': function () {\r\n if (this.model.operatingMode.value !== 'fullInfeed') {\r\n this.updateSelfSupplyQuantity();\r\n }\r\n },\r\n },\r\n mounted(): void {\r\n this.initializeSelfGenerationQuantity();\r\n },\r\n methods: {\r\n updateSelfSupplyQuantity(): void {\r\n let selfSupplyQuantity = 0;\r\n if (this.model.operatingMode.value !== 'fullInfeed') {\r\n const selfGenerationQuantity = parseGermanFloat(\r\n this.model.selfGenerationQuantity?.value ?? '0',\r\n );\r\n selfSupplyQuantity =\r\n selfGenerationQuantity *\r\n PV_SELFGENERATIONQUANTITY_TO_SELFSUPPLYQUANTITY_FACTOR;\r\n }\r\n this.model.selfSupplyQuantity.value = formatGermanNumber(\r\n selfSupplyQuantity,\r\n { decimals: 2, thousandsSeparator: true },\r\n );\r\n this.$nextTick(() => {\r\n this.validations?.selfSupplyQuantity.$reset();\r\n this.rules(this);\r\n });\r\n },\r\n initializeSelfGenerationQuantity(): void {\r\n if (isPv(this.formModel)) {\r\n this.model.selfGenerationQuantity.value = calculateSelfGenerationQuantity(\r\n this.formModel,\r\n );\r\n this.$nextTick(() => {\r\n this.validations?.selfGenerationQuantity.$reset();\r\n });\r\n }\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MeasuringConceptsFormGroup.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MeasuringConceptsFormGroup.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MeasuringConceptsFormGroup.vue?vue&type=template&id=82ca93ea&\"\nimport script from \"./MeasuringConceptsFormGroup.vue?vue&type=script&lang=ts&\"\nexport * from \"./MeasuringConceptsFormGroup.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"container\",class:{ 'mb-4 md:mb-8 lg:mb-10 xl:mb-12': !_vm.showSummary }},[(!_vm.showSummary)?_c('FormTextBlock',{staticClass:\"controllable-consumption-devices-info\",attrs:{\"model\":_vm.model.controllableConsumptionDevicesInfo,\"content\":_vm.content.controllableConsumptionDevicesInfo}}):_vm._e(),_c('FormField',{staticClass:\"grid-control-conditions-accepted\",attrs:{\"model\":_vm.model.gridControlConditionsAccepted,\"content\":_vm.content.gridControlConditionsAccepted,\"validations\":_vm.validations.gridControlConditionsAccepted,\"align-field\":\"singleLine\",\"show-summary\":_vm.showSummary,\"summary-value\":_vm.model.gridControlConditionsAccepted.value}},[_c('FormBooleanCheckbox',{attrs:{\"model\":_vm.model.gridControlConditionsAccepted,\"content\":_vm.content.gridControlConditionsAccepted,\"validations\":_vm.validations.gridControlConditionsAccepted,\"show-info-icon\":\"\"}})],1),_c('FormField',{staticClass:\"grid-control-implementation-preference\",attrs:{\"model\":_vm.model.gridControlImplementationPreference,\"content\":_vm.content.gridControlImplementationPreference,\"validations\":_vm.validations.gridControlImplementationPreference,\"align-field\":\"belowLabel\",\"show-info-icon\":\"\",\"show-summary\":_vm.showSummary,\"summary-value\":_vm.model.gridControlImplementationPreference.value &&\n _vm.content.gridControlImplementationPreference.options[\n _vm.model.gridControlImplementationPreference.value\n ].label}},[_c('FormRadioGroup',{attrs:{\"model\":_vm.model.gridControlImplementationPreference,\"content\":_vm.content.gridControlImplementationPreference,\"validations\":_vm.validations.gridControlImplementationPreference,\"orientation\":\"vertical\"}})],1),_c('FormField',{staticClass:\"connection-type-selector\",attrs:{\"model\":_vm.model.connectionTypeSelector,\"content\":_vm.content.connectionTypeSelector,\"validations\":_vm.validations.connectionTypeSelector,\"align-field\":\"belowLabel\",\"show-info-icon\":\"\",\"show-summary\":_vm.showSummary,\"summary-value\":_vm.model.connectionTypeSelector.value &&\n _vm.content.connectionTypeSelector.options[\n _vm.model.connectionTypeSelector.value\n ].label}},[_c('FormRadioGroup',{attrs:{\"model\":_vm.model.connectionTypeSelector,\"content\":_vm.content.connectionTypeSelector,\"validations\":_vm.validations.connectionTypeSelector,\"orientation\":\"vertical\"}})],1),_c('FormInputTextFormList',{staticClass:\"identification-numbers-of-registered-consumption-devices\",attrs:{\"model\":_vm.model.identificationNumbersOfRegisteredConsumptionDevices,\"content\":_vm.content.identificationNumbersOfRegisteredConsumptionDevices,\"validations\":_vm.validations.identificationNumbersOfRegisteredConsumptionDevices,\"align-field\":\"belowLabel\",\"show-info-icon\":true,\"show-summary\":_vm.showSummary}}),(!_vm.showSummary)?_c('FormTextBlock',{staticClass:\"controllable-consumption-facilities-requirement-info\",attrs:{\"model\":_vm.model.controllableConsumptionFacilitiesRequirementInfo,\"content\":_vm.content.controllableConsumptionFacilitiesRequirementInfo}}):_vm._e(),(!_vm.showSummary)?_c('ButtonSpacer',{attrs:{\"align\":\"right\",\"content\":_vm.content,\"is-loading\":_vm.appState.pendingFileUploads > 0,\"button-text\":_vm.content.buttonNext.text,\"show-debug-fill-button\":_vm.showDebugFillButton},on:{\"button-click\":_vm.validateAndSubmit,\"debug-fill-button-click\":_vm.debugFillSubmit}}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('FormField',{staticClass:\"form-input-text-form-list-root\",attrs:{\"model\":_vm.model,\"content\":_vm.content,\"validations\":_vm.validations,\"align-field\":_vm.alignField,\"show-info-icon\":_vm.showInfoIcon,\"show-summary\":_vm.showSummary,\"summary-value\":_vm.model.value}},_vm._l((_vm.model.items),function(item,index){return _c('div',{key:index,staticClass:\"form-input-text-form-list__form-input-text-and-icon-wrapper flex items-center mb-3\"},[_c('FormInputText',{attrs:{\"model\":_vm.model.items[index],\"content\":_vm.content,\"validations\":_vm.validations[index]}}),_c('div',{staticClass:\"w-8 flex justify-center\",class:{\n 'cursor-pointer': _vm.showIcon(index),\n invisible: !_vm.showIcon(index),\n },on:{\"click\":function($event){_vm.showIcon(index) &&\n _vm.handleIconClick(index === 0 ? 'add' : 'remove', index)}}},[_c('Icon',{staticClass:\"text-3xl text-primary text-icon--bold pl-3\",attrs:{\"id\":index === 0 ? 'plus' : 'minus',\"is-text-icon\":true}})],1)],1)}),0)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { getFormInputMixin } from '@/mixins/formInputMixin';\r\nimport { FormList } from '@/types/forms/fields/formList';\r\nimport { FormElementConfig } from '@/types/forms/formElement';\r\nimport { PropType } from 'vue';\r\nimport FormField from '../formField/FormField.vue';\r\nimport { TextField } from '@/types/forms/fields/textField';\r\nimport { TextInputWithUnitContent } from '@/api/interfaces/content/form/base/textInputWithUnitContent';\r\nimport FormInputText from '@/components/atoms/formInputText/FormInputText.vue';\r\nimport { FormInputPosition } from '@/enums/formInputPosition';\r\nimport Icon from '@/components/atoms/icon/Icon.vue';\r\n\r\nexport default getFormInputMixin<\r\n FormList,\r\n TextInputWithUnitContent\r\n>().extend({\r\n name: 'FormInputTextFormList',\r\n components: {\r\n FormField,\r\n FormInputText,\r\n Icon,\r\n },\r\n props: {\r\n showInfoIcon: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n alignField: {\r\n type: String as PropType,\r\n default: FormInputPosition.nextToLabel,\r\n },\r\n },\r\n computed: {},\r\n methods: {\r\n showIcon(index: number): boolean {\r\n return index === 0 ? this.model.canAddItem() : true;\r\n },\r\n handleIconClick(mode: 'add' | 'remove', index: number): void {\r\n if (mode === 'remove') {\r\n this.model.removeAt(index);\r\n return;\r\n }\r\n\r\n if (this.model.canAddItem()) {\r\n this.model.createItem();\r\n }\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FormInputTextFormList.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FormInputTextFormList.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FormInputTextFormList.vue?vue&type=template&id=35108006&scoped=true&\"\nimport script from \"./FormInputTextFormList.vue?vue&type=script&lang=ts&\"\nexport * from \"./FormInputTextFormList.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./FormInputTextFormList.vue?vue&type=style&index=0&id=35108006&lang=postcss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"35108006\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { ControllableConsumptionDevicesFormStepContent } from '@/api/interfaces/content/form/steps/controllableConsumptionDevicesFormStepContent';\r\nimport ButtonSpacer from '@/components/molecules/buttonSpacer/ButtonSpacer.vue';\r\nimport { getFormStepMixin } from '@/mixins/formStepMixin';\r\nimport { ControllableConsumptionDevicesFormStep } from '@/types/forms/formSteps/controllableConsumptionDevicesFormStep';\r\nimport { FormStepConfiguration } from '@/api/interfaces/configuration/form/base/formStepConfiguration';\r\nimport { ApplicationForm } from '@/types/forms/specific/applicationForm';\r\nimport FormTextBlock from '@/components/molecules/formTextBlock/FormTextBlock.vue';\r\nimport FormBooleanCheckbox from '@/components/molecules/formBooleanCheckbox/FormBooleanCheckbox.vue';\r\nimport FormField from '@/components/molecules/formField/FormField.vue';\r\nimport FormRadioGroup from '@/components/molecules/formRadioGroup/FormRadioGroup.vue';\r\nimport { FormList } from '@/types/forms/fields/formList';\r\nimport FormInputText from '@/components/atoms/formInputText/FormInputText.vue';\r\nimport FormInputTextFormList from '@/components/molecules/formList/FormInputTextFormList.vue';\r\n\r\nexport default getFormStepMixin<\r\n ControllableConsumptionDevicesFormStep,\r\n ControllableConsumptionDevicesFormStepContent,\r\n FormStepConfiguration,\r\n ApplicationForm\r\n>().extend({\r\n name: 'ControllableConsumptionDevices',\r\n components: {\r\n ButtonSpacer,\r\n FormTextBlock,\r\n FormField,\r\n FormBooleanCheckbox,\r\n FormRadioGroup,\r\n FormInputText,\r\n FormInputTextFormList,\r\n },\r\n computed: {},\r\n watch: {},\r\n mounted() {\r\n //\r\n },\r\n methods: {},\r\n});\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ControllableConsumptionDevicesForm.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ControllableConsumptionDevicesForm.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ControllableConsumptionDevicesForm.vue?vue&type=template&id=b78f6582&\"\nimport script from \"./ControllableConsumptionDevicesForm.vue?vue&type=script&lang=ts&\"\nexport * from \"./ControllableConsumptionDevicesForm.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"container\",class:{ 'mb-4 md:mb-8 lg:mb-10 xl:mb-12': !_vm.showSummary }},[_c('FormField',{staticClass:\"does-connection-exist\",attrs:{\"model\":_vm.model.doesConnectionExist,\"content\":_vm.content.doesConnectionExist,\"validations\":_vm.validations.doesConnectionExist,\"align-field\":\"belowLabel\",\"show-summary\":_vm.showSummary,\"summary-value\":_vm.content.doesConnectionExist.options[\n _vm.model.doesConnectionExist.value\n ]\n ? _vm.content.doesConnectionExist.options[\n _vm.model.doesConnectionExist.value\n ].label\n : ''}},[_c('FormRadioGroup',{attrs:{\"model\":_vm.model.doesConnectionExist,\"content\":_vm.content.doesConnectionExist,\"validations\":_vm.validations.doesConnectionExist,\"orientation\":\"vertical\"}})],1),_c('FormField',{staticClass:\"order-number\",attrs:{\"model\":_vm.model.orderNumber,\"content\":_vm.content.orderNumber,\"validations\":_vm.validations.orderNumber,\"show-summary\":_vm.showSummary,\"summary-value\":_vm.model.orderNumber.value}},[_c('FormInputText',{attrs:{\"model\":_vm.model.orderNumber,\"content\":_vm.content.orderNumber,\"validations\":_vm.validations.orderNumber}})],1),_c('FormField',{staticClass:\"which-voltage\",attrs:{\"model\":_vm.model.whichVoltageLevel,\"content\":_vm.content.whichVoltageLevel,\"validations\":_vm.validations.whichVoltageLevel,\"align-field\":\"belowLabel\",\"show-summary\":_vm.showSummary,\"summary-value\":_vm.content.whichVoltageLevel.options[_vm.model.whichVoltageLevel.value]\n ? _vm.content.whichVoltageLevel.options[\n _vm.model.whichVoltageLevel.value\n ].label\n : '',\"show-info-icon\":\"\"}},[_c('FormRadioGroupTiles',{attrs:{\"model\":_vm.model.whichVoltageLevel,\"content\":_vm.content.whichVoltageLevel,\"validations\":_vm.validations.whichVoltageLevel}})],1),_c('FormField',{staticClass:\"has-existing-plants\",attrs:{\"model\":_vm.model.hasExistingPlants,\"content\":_vm.content.hasExistingPlants,\"validations\":_vm.validations.hasExistingPlants,\"align-field\":\"singleLine\",\"show-summary\":_vm.showSummary,\"summary-value\":_vm.model.hasExistingPlants.value}},[_c('FormBooleanCheckbox',{attrs:{\"model\":_vm.model.hasExistingPlants,\"content\":_vm.content.hasExistingPlants,\"validations\":_vm.validations.hasExistingPlants}})],1),_c('FormTextBlock',{staticClass:\"only-inverter-capacity-of-existin-generatio-plant\",attrs:{\"model\":_vm.model.onlyInverterCapacityOfExistingGenerationPlant,\"content\":_vm.content.onlyInverterCapacityOfExistingGenerationPlant,\"validations\":_vm.validations.onlyInverterCapacityOfExistingGenerationPlant}}),_c('FormField',{staticClass:\"existing-plants-total-power\",attrs:{\"model\":_vm.model.existingPlantsTotalPower,\"content\":_vm.content.existingPlantsTotalPower,\"validations\":_vm.validations.existingPlantsTotalPower,\"show-summary\":_vm.showSummary,\"summary-value\":_vm._f(\"concat\")([\n _vm.model.existingPlantsTotalPower.value || 0,\n ' ',\n _vm.content.existingPlantsTotalPower.unit ])}},[_c('FormInputText',{attrs:{\"model\":_vm.model.existingPlantsTotalPower,\"content\":_vm.content.existingPlantsTotalPower,\"validations\":_vm.validations.existingPlantsTotalPower,\"align-text\":\"right\",\"show-info-icon\":\"\"}})],1),_c('FormField',{staticClass:\"repowering-planned\",attrs:{\"model\":_vm.model.repoweringPlanned,\"content\":_vm.content.repoweringPlanned,\"validations\":_vm.validations.repoweringPlanned,\"align-field\":\"singleLine\",\"show-summary\":_vm.showSummary,\"summary-value\":_vm.model.repoweringPlanned.value}},[_c('FormBooleanCheckbox',{attrs:{\"model\":_vm.model.repoweringPlanned,\"content\":_vm.content.repoweringPlanned,\"validations\":_vm.validations.repoweringPlanned}})],1),_c('FormField',{staticClass:\"repowering-total-power\",attrs:{\"model\":_vm.model.repoweringTotalPower,\"content\":_vm.content.repoweringTotalPower,\"validations\":_vm.validations.repoweringTotalPower,\"show-summary\":_vm.showSummary,\"summary-value\":_vm._f(\"concat\")([\n _vm.model.repoweringTotalPower.value || 0,\n ' ',\n _vm.content.repoweringTotalPower.unit ])}},[_c('FormInputText',{attrs:{\"model\":_vm.model.repoweringTotalPower,\"content\":_vm.content.repoweringTotalPower,\"validations\":_vm.validations.repoweringTotalPower,\"align-text\":\"right\",\"show-info-icon\":\"\"}})],1),_c('FormField',{staticClass:\"feed-in-power-installed\",attrs:{\"model\":_vm.model.feedInPowerInstalled,\"content\":_vm.content.feedInPowerInstalled,\"validations\":_vm.validations.feedInPowerInstalled,\"show-summary\":_vm.showSummary,\"summary-value\":_vm._f(\"concat\")([\n _vm.model.feedInPowerInstalled.value || 0,\n ' ',\n _vm.content.feedInPowerInstalled.unit ])}},[_c('FormInputText',{attrs:{\"model\":_vm.model.feedInPowerInstalled,\"content\":_vm.content.feedInPowerInstalled,\"validations\":_vm.validations.feedInPowerInstalled,\"align-text\":\"right\",\"show-info-icon\":\"\"}})],1),_c('GenerationUnitsFeedbackFormGroup',{attrs:{\"model\":_vm.model.generationUnitsFeedback,\"content\":_vm.content,\"validations\":_vm.validations.generationUnitsFeedback,\"form-model\":_vm.formModel,\"invalid-generation-units\":_vm.invalidGenerationUnits}}),_c('FormField',{staticClass:\"feed-in-power-shall-be-limited-by-a-controller\",attrs:{\"model\":_vm.model.feedInPowerShallBeLimitedByAController,\"content\":_vm.content.feedInPowerShallBeLimitedByAController,\"validations\":_vm.validations.feedInPowerShallBeLimitedByAController,\"align-field\":\"singleLine\",\"show-summary\":_vm.showSummary,\"summary-value\":_vm.model.feedInPowerShallBeLimitedByAController.value}},[_c('FormBooleanCheckbox',{attrs:{\"model\":_vm.model.feedInPowerShallBeLimitedByAController,\"content\":_vm.content.feedInPowerShallBeLimitedByAController,\"validations\":_vm.validations.feedInPowerShallBeLimitedByAController}})],1),_c('FormField',{staticClass:\"feed-in-power\",attrs:{\"model\":_vm.model.feedInPower,\"content\":_vm.content.feedInPower,\"validations\":_vm.validations.feedInPower,\"show-summary\":_vm.showSummary,\"summary-value\":_vm._f(\"concat\")([_vm.model.feedInPower.value || 0, ' ', _vm.content.feedInPower.unit])}},[_c('FormInputText',{attrs:{\"model\":_vm.model.feedInPower,\"content\":_vm.content.feedInPower,\"validations\":_vm.validations.feedInPower,\"align-text\":\"right\",\"show-info-icon\":\"\"}})],1),_c('FormField',{staticClass:\"planned-reference-power\",attrs:{\"model\":_vm.model.plannedReferencePower,\"content\":_vm.content.plannedReferencePower,\"validations\":_vm.validations.plannedReferencePower,\"show-summary\":_vm.showSummary,\"summary-value\":_vm._f(\"concat\")([\n _vm.model.plannedReferencePower.value || 0,\n ' ',\n _vm.content.plannedReferencePower.unit ])}},[_c('FormInputText',{attrs:{\"model\":_vm.model.plannedReferencePower,\"content\":_vm.content.plannedReferencePower,\"validations\":_vm.validations.plannedReferencePower,\"align-text\":\"right\",\"show-info-icon\":\"\"}})],1),_c('FormField',{staticClass:\"of-which-own-use-generating-plant\",attrs:{\"model\":_vm.model.ofWhichOwnUseGeneratingPlant,\"content\":_vm.content.ofWhichOwnUseGeneratingPlant,\"validations\":_vm.validations.ofWhichOwnUseGeneratingPlant,\"show-summary\":_vm.showSummary,\"summary-value\":_vm._f(\"concat\")([\n _vm.model.ofWhichOwnUseGeneratingPlant.value || 0,\n ' ',\n _vm.content.ofWhichOwnUseGeneratingPlant.unit ])}},[_c('FormInputText',{attrs:{\"model\":_vm.model.ofWhichOwnUseGeneratingPlant,\"content\":_vm.content.ofWhichOwnUseGeneratingPlant,\"validations\":_vm.validations.ofWhichOwnUseGeneratingPlant,\"align-text\":\"right\",\"show-info-icon\":\"\"}})],1),_c('FormTextBlock',{staticClass:\"own-use-exceeds-planned-power-warning text-error\",attrs:{\"model\":_vm.model.ownUseExceedsPlannedPowerWarning,\"content\":_vm.content.ownUseExceedsPlannedPowerWarning}}),(!_vm.showSummary)?_c('FormTextBlock',{staticClass:\"no-connection-available\",attrs:{\"model\":_vm.model.noConnectionAvailable,\"content\":_vm.content.noConnectionAvailable,\"validations\":_vm.validations.noConnectionAvailable}}):_vm._e(),_c('FormField',{staticClass:\"reactive-power-compensation-system-exists\",attrs:{\"model\":_vm.model.reactivePowerCompensationSystemExists,\"content\":_vm.content.reactivePowerCompensationSystemExists,\"validations\":_vm.validations.reactivePowerCompensationSystemExists,\"align-field\":\"singleLine\",\"show-summary\":_vm.showSummary,\"summary-value\":_vm.model.reactivePowerCompensationSystemExists.value}},[_c('FormBooleanCheckbox',{attrs:{\"model\":_vm.model.reactivePowerCompensationSystemExists,\"content\":_vm.content.reactivePowerCompensationSystemExists,\"validations\":_vm.validations.reactivePowerCompensationSystemExists}})],1),_c('FormField',{staticClass:\"unit-capacity\",attrs:{\"model\":_vm.model.unitCapacity,\"content\":_vm.content.unitCapacity,\"validations\":_vm.validations.unitCapacity,\"show-summary\":_vm.showSummary,\"summary-value\":_vm.model.unitCapacity.value}},[_c('FormInputText',{attrs:{\"model\":_vm.model.unitCapacity,\"content\":_vm.content.unitCapacity,\"validations\":_vm.validations.unitCapacity}})],1),_c('FormField',{staticClass:\"unit-is-prototype\",attrs:{\"model\":_vm.model.unitIsPrototype,\"content\":_vm.content.unitIsPrototype,\"validations\":_vm.validations.unitIsPrototype,\"align-field\":\"singleLine\",\"show-summary\":_vm.showSummary,\"summary-value\":_vm.model.unitIsPrototype.value}},[_c('FormBooleanCheckbox',{attrs:{\"model\":_vm.model.unitIsPrototype,\"content\":_vm.content.unitIsPrototype,\"validations\":_vm.validations.unitIsPrototype}})],1),_c('FormField',{staticClass:\"building-power-demand\",attrs:{\"model\":_vm.model.buildingPowerDemand,\"content\":_vm.content.buildingPowerDemand,\"validations\":_vm.validations.buildingPowerDemand,\"align-field\":\"singleLine\",\"show-summary\":_vm.showSummary,\"summary-value\":_vm.model.buildingPowerDemand.value}},[_c('FormBooleanCheckbox',{attrs:{\"model\":_vm.model.buildingPowerDemand,\"content\":_vm.content.buildingPowerDemand,\"validations\":_vm.validations.buildingPowerDemand}})],1),_c('FormField',{staticClass:\"required-power\",attrs:{\"model\":_vm.model.requiredPower,\"content\":_vm.content.requiredPower,\"validations\":_vm.validations.requiredPower,\"show-summary\":_vm.showSummary,\"summary-value\":_vm.model.requiredPower.value}},[_c('FormInputText',{attrs:{\"model\":_vm.model.requiredPower,\"content\":_vm.content.requiredPower,\"validations\":_vm.validations.requiredPower}})],1),_c('FormField',{staticClass:\"from-when\",attrs:{\"model\":_vm.model.fromWhen,\"content\":_vm.content.fromWhen,\"validations\":_vm.validations.fromWhen,\"show-summary\":_vm.showSummary,\"summary-value\":_vm.model.fromWhen.value}},[_c('DatePicker',{attrs:{\"model\":_vm.model.fromWhen,\"content\":_vm.content.fromWhen,\"validations\":_vm.validations.fromWhen}})],1),(!_vm.showSummary)?_c('ButtonSpacer',{attrs:{\"align\":\"right\",\"content\":_vm.content,\"is-loading\":_vm.appState.pendingFileUploads > 0,\"button-text\":_vm.content.buttonNext.text,\"show-debug-fill-button\":_vm.showDebugFillButton},on:{\"button-click\":_vm.validateAndSubmit,\"debug-fill-button-click\":_vm.debugFillSubmit}}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.model.disabled)?_c('FieldWithInfoIcon',{attrs:{\"show-info-icon\":_vm.showInfoIcon,\"content\":_vm.content}},[_c('div',{staticClass:\"flex form-input-power-old-new-sum\"},[_c('div',{staticClass:\"w-1/3 mr-2 md:mr-4\"},[_c('FormInputText',{attrs:{\"model\":_vm.model.old,\"content\":_vm.content.old,\"validations\":_vm.validations.old,\"align-text\":\"right\"}})],1),_c('div',{staticClass:\"w-1/3 mr-2 md:mr-4\"},[_c('FormInputText',{attrs:{\"model\":_vm.model.new,\"content\":_vm.content.new,\"validations\":_vm.validations.new,\"align-text\":\"right\"}})],1),_c('div',{staticClass:\"w-1/3 flex items-center summary\"},[_vm._v(\" \"+_vm._s(_vm.summary)+\" \")])])]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { PowerOldNewSumContent } from '@/api/interfaces/content/form/base/powerOldNewSumContent';\r\nimport FormInputText from '@/components/atoms/formInputText/FormInputText.vue';\r\nimport { getFormInputMixin } from '@/mixins/formInputMixin';\r\nimport { interpolate } from '@/services/interpolationService';\r\nimport { PowerOldNewSumFormGroup } from '@/types/forms/formGroups/powerOldNewSumFormGroup';\r\nimport { formatGermanNumber } from '@/utilities/germanFormats';\r\nimport FieldWithInfoIcon from '@/components/molecules/fieldWithInfoIcon/FieldWithInfoIcon.vue';\r\n\r\nexport default getFormInputMixin<\r\n PowerOldNewSumFormGroup,\r\n PowerOldNewSumContent\r\n>().extend({\r\n name: 'FormInputPowerOldNewSum',\r\n components: {\r\n FormInputText,\r\n FieldWithInfoIcon,\r\n },\r\n created() {\r\n this.$watch('validations.old.$dirty', () => this.touchAllInputs());\r\n this.$watch('validations.new.$dirty', () => this.touchAllInputs());\r\n },\r\n methods: {\r\n touchAllInputs() {\r\n if (!this.validations) {\r\n return;\r\n }\r\n if (this.validations.old) {\r\n this.validations.old.$touch();\r\n }\r\n if (this.validations.new) {\r\n this.validations.new.$touch();\r\n }\r\n },\r\n },\r\n computed: {\r\n summary(): string {\r\n if (!this.content.summary.text) {\r\n return '';\r\n }\r\n\r\n return interpolate(this.content.summary.text, {\r\n total: formatGermanNumber(this.model.sum, {\r\n decimals: 2,\r\n thousandsSeparator: true,\r\n }),\r\n });\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FormInputPowerOldNewSum.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FormInputPowerOldNewSum.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FormInputPowerOldNewSum.vue?vue&type=template&id=b6ce2b54&\"\nimport script from \"./FormInputPowerOldNewSum.vue?vue&type=script&lang=ts&\"\nexport * from \"./FormInputPowerOldNewSum.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.show)?_c('div',{staticClass:\"generation-units-feedback-form-group bg-surface-variant content mb-6 lg:w-11/12 pr-6 lg:pr-0 pl-6 pt-6 pb-1\"},[_c('FormTextBlock',{staticClass:\"generation-units-feedback-headline text-error font-normal text-xl lg:text-2xl xl:text-2xl\",attrs:{\"model\":_vm.model.generationUnitsFeedbackHeadline,\"content\":_vm.content.generationUnitsFeedbackHeadline}}),_c('FormTextBlock',{staticClass:\"generation-units-feedback-info-text\",attrs:{\"model\":_vm.model.generationUnitsFeedbackInfoText,\"content\":_vm.content.generationUnitsFeedbackInfoText}}),(_vm.invalidGenerationUnits.length > 0)?_c('ul',{staticClass:\"generation-units-feedback-list list-disc list-inside mb-6\"},_vm._l((_vm.invalidGenerationUnits),function(invalidGenerationUnit,index){return _c('li',{key:index,staticClass:\"generation-units-feedback-list-item\"},[_vm._v(\" \"+_vm._s(invalidGenerationUnit.manufacturer)+\", \"+_vm._s(invalidGenerationUnit.moduleType)+\", \"+_vm._s(invalidGenerationUnit.zerezId)+\" \")])}),0):_vm._e(),_c('FormScriptButton',{staticClass:\"generation-units-feedback-button\",attrs:{\"model\":_vm.model.generationUnitsFeedbackButton,\"content\":_vm.content.generationUnitsFeedbackButton,\"func\":_vm.openPlantPerformanceFormStep}})],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { GenerationUnitsFeedbackFormGroupContent } from '@/api/interfaces/content/form/steps/powerConnection/GenerationUnitsFeedbackFormGroupContent';\r\nimport FormScriptButton from '@/components/molecules/formScriptButton/FormScriptButton.vue';\r\nimport FormTextBlock from '@/components/molecules/formTextBlock/FormTextBlock.vue';\r\nimport { getFormInputMixin } from '@/mixins/formInputMixin';\r\nimport { GenerationUnitsFeedbackFormGroup } from '@/types/forms/formGroups/powerConnection/GenerationUnitsFeedbackFormGroup';\r\nimport { ConnectionRulesType } from '@/types/forms/shared/connectionRulesType';\r\nimport { InvalidGenerationUnit } from '@/types/forms/shared/invalidGenerationUnit';\r\nimport { ApplicationForm } from '@/types/forms/specific/applicationForm';\r\nimport Vue, { PropType } from 'vue';\r\n\r\nexport default getFormInputMixin<\r\n GenerationUnitsFeedbackFormGroup,\r\n GenerationUnitsFeedbackFormGroupContent,\r\n unknown,\r\n ApplicationForm\r\n>().extend({\r\n name: 'GenerationUnitsFeedbackFormGroup',\r\n components: {\r\n FormTextBlock,\r\n FormScriptButton,\r\n },\r\n inject: {\r\n editStep: {\r\n from: 'editStep',\r\n },\r\n scrollToStep: {\r\n from: 'scrollToStep',\r\n },\r\n },\r\n props: {\r\n invalidGenerationUnits:\r\n (Array as PropType) ?? [],\r\n },\r\n computed: {\r\n /** Whether to show the form group, based on the same conditions as the disabling rules */\r\n show(): boolean {\r\n return (\r\n this.invalidGenerationUnits.length > 0 &&\r\n this.invalidGenerationUnits.some((unit) =>\r\n unit.norm.some(\r\n (norm) => norm === ConnectionRulesType.rules4105,\r\n ),\r\n )\r\n );\r\n },\r\n },\r\n methods: {\r\n /**\r\n * Opens the plant performance step in edit mode\r\n */\r\n openPlantPerformanceFormStep(\r\n this: Vue & {\r\n editStep: (identifier: string) => void;\r\n scrollToStep: (identifier: string) => void;\r\n },\r\n ): void {\r\n this.editStep('plantPerformance');\r\n this.scrollToStep('plantPerformance');\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GenerationUnitsFeedbackFormGroup.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GenerationUnitsFeedbackFormGroup.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./GenerationUnitsFeedbackFormGroup.vue?vue&type=template&id=58dd2bba&\"\nimport script from \"./GenerationUnitsFeedbackFormGroup.vue?vue&type=script&lang=ts&\"\nexport * from \"./GenerationUnitsFeedbackFormGroup.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { PowerConnectionFormStepContent } from '@/api/interfaces/content/form/steps/powerConnectionFormStepContent';\r\nimport { getFormStepMixin } from '@/mixins/formStepMixin';\r\nimport FormField from '@/components/molecules/formField/FormField.vue';\r\nimport FormRadioGroup from '@/components/molecules/formRadioGroup/FormRadioGroup.vue';\r\nimport ButtonSpacer from '@/components/molecules/buttonSpacer/ButtonSpacer.vue';\r\nimport FormTextBlock from '@/components/molecules/formTextBlock/FormTextBlock.vue';\r\nimport FormBooleanCheckbox from '@/components/molecules/formBooleanCheckbox/FormBooleanCheckbox.vue';\r\nimport FormRadioGroupTiles from '@/components/molecules/formRadioGroupTiles/FormRadioGroupTiles.vue';\r\nimport FormFileUpload from '@/components/molecules/formFileUpload/FormFileUpload.vue';\r\nimport FormInputText from '@/components/atoms/formInputText/FormInputText.vue';\r\nimport DatePicker from '@/components/molecules/datePicker/DatePicker.vue';\r\nimport FormInputPowerOldNewSum from '@/components/molecules/formInputPowerOldNewSum/FormInputPowerOldNewSum.vue';\r\nimport { PowerConnectionFormStep } from '@/types/forms/formSteps/powerConnectionFormStep';\r\nimport { FormStepConfiguration } from '@/api/interfaces/configuration/form/base/formStepConfiguration';\r\nimport { ApplicationForm } from '@/types/forms/specific/applicationForm';\r\nimport {\r\n calculateFeedInPower,\r\n getInvalidGenerationUnitsWithPreExisting,\r\n} from '@/services/form/utilities/application/powerConnection';\r\nimport GenerationUnitsFeedbackFormGroup from './generationUnitsFeedback/GenerationUnitsFeedbackFormGroup.vue';\r\n\r\nexport default getFormStepMixin<\r\n PowerConnectionFormStep,\r\n PowerConnectionFormStepContent,\r\n FormStepConfiguration,\r\n ApplicationForm\r\n>().extend({\r\n name: 'PowerConnectionForm',\r\n components: {\r\n FormField,\r\n FormRadioGroup,\r\n ButtonSpacer,\r\n FormTextBlock,\r\n FormBooleanCheckbox,\r\n FormRadioGroupTiles,\r\n FormFileUpload,\r\n FormInputText,\r\n DatePicker,\r\n FormInputPowerOldNewSum,\r\n GenerationUnitsFeedbackFormGroup,\r\n },\r\n data() {\r\n return {\r\n invalidGenerationUnits: [] as {\r\n manufacturer: string;\r\n moduleType: string;\r\n zerezId: string;\r\n }[],\r\n };\r\n },\r\n computed: {\r\n calculateFeedInPowerWatchValues() {\r\n return [\r\n this.model.hasExistingPlants.value,\r\n this.model.existingPlantsTotalPower.value,\r\n this.model.repoweringPlanned.value,\r\n this.model.repoweringTotalPower.value,\r\n this.model.whichVoltageLevel.value,\r\n ];\r\n },\r\n },\r\n watch: {\r\n calculateFeedInPowerWatchValues: {\r\n handler() {\r\n calculateFeedInPower(\r\n this.formModel.applicationType,\r\n this.formModel.plantPerformance,\r\n this.model,\r\n );\r\n\r\n this.invalidGenerationUnits = getInvalidGenerationUnitsWithPreExisting(\r\n this.formModel.applicationType,\r\n this.formModel.plantPerformance,\r\n this.model,\r\n );\r\n },\r\n immediate: true,\r\n },\r\n 'model.feedInPowerShallBeLimitedByAController.value': {\r\n handler(newValue: boolean | null) {\r\n if (newValue === false) {\r\n calculateFeedInPower(\r\n this.formModel.applicationType,\r\n this.formModel.plantPerformance,\r\n this.model,\r\n );\r\n }\r\n },\r\n immediate: true,\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PowerConnectionForm.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PowerConnectionForm.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PowerConnectionForm.vue?vue&type=template&id=03bcd269&\"\nimport script from \"./PowerConnectionForm.vue?vue&type=script&lang=ts&\"\nexport * from \"./PowerConnectionForm.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"container\",class:{ 'mb-4 md:mb-8 lg:mb-10 xl:mb-12': !_vm.showSummary }},[_c('FormField',{staticClass:\"separate-property-owner\",attrs:{\"model\":_vm.model.separatePropertyOwner,\"content\":_vm.content.separatePropertyOwner,\"validations\":_vm.validations.separatePropertyOwner,\"align-field\":\"belowLabel\",\"show-summary\":_vm.showSummary,\"summary-value\":_vm.content.separatePropertyOwner.options[\n _vm.model.separatePropertyOwner.value\n ]\n ? _vm.content.separatePropertyOwner.options[\n _vm.model.separatePropertyOwner.value\n ].label\n : ''}},[_c('FormRadioGroup',{attrs:{\"model\":_vm.model.separatePropertyOwner,\"content\":_vm.content.separatePropertyOwner,\"validations\":_vm.validations.separatePropertyOwner}})],1),_c('FormField',{staticClass:\"plant-builder\",attrs:{\"model\":_vm.model.plantBuilder,\"content\":_vm.content.plantBuilder,\"validations\":_vm.validations.plantBuilder,\"align-field\":\"belowLabel\",\"show-summary\":_vm.showSummary,\"summary-value\":_vm.content.plantBuilder.options[_vm.model.plantBuilder.value]\n ? _vm.content.plantBuilder.options[_vm.model.plantBuilder.value]\n .label\n : ''}},[_c('FormRadioGroup',{attrs:{\"model\":_vm.model.plantBuilder,\"content\":_vm.content.plantBuilder,\"validations\":_vm.validations.plantBuilder}})],1),_c('OperatorFormList',{attrs:{\"model\":_vm.model.operators,\"content\":_vm.content,\"validations\":_vm.validations.operators,\"show-summary\":_vm.showSummary}}),_c('FormField',{attrs:{\"model\":_vm.model.country,\"content\":_vm.content.country,\"validations\":_vm.validations.country,\"show-summary\":_vm.showSummary,\"summary-value\":_vm.content.country.options[_vm.model.country.value].label}},[_c('FormSelect',{attrs:{\"model\":_vm.model.country,\"content\":_vm.content.country,\"validations\":_vm.validations.country}})],1),_c('FormField',{staticClass:\"use-plant-location\",attrs:{\"model\":_vm.model.usePlantLocation,\"content\":_vm.content.usePlantLocation,\"validations\":_vm.validations.usePlantLocation,\"align-field\":\"singleLine\",\"show-summary\":_vm.showSummary,\"summary-value\":_vm.model.usePlantLocation.value}},[_c('FormBooleanCheckbox',{attrs:{\"model\":_vm.model.usePlantLocation,\"content\":_vm.content.usePlantLocation,\"validations\":_vm.validations.usePlantLocation}})],1),_c('FormField',{staticClass:\"zip-and-city\",attrs:{\"model\":_vm.model.zipAndCity,\"content\":_vm.content.zipAndCity,\"validations\":_vm.validations.zipAndCity,\"show-summary\":_vm.showSummary,\"summary-value\":_vm._f(\"concat\")([_vm.model.zipAndCity.zip.value, ' ', _vm.model.zipAndCity.city.value])}},[_c('div',{staticClass:\"flex\"},[_c('div',{staticClass:\"w-1/3 mr-4 md:mr-10\"},[_c('FormInputTextWithSuggestions',{attrs:{\"model\":_vm.model.zipAndCity.zip,\"content\":_vm.content.zipAndCity.zip,\"validations\":_vm.validations.zipAndCity.zip,\"get-suggestions-method\":_vm.getZipSuggestions,\"clearable-suggestions\":_vm.clearableSuggestionFields.zip},on:{\"form-input-blur\":_vm.handleZipBlur}})],1),_c('div',{staticClass:\"w-2/3\"},[_c('FormInputTextWithSuggestions',{attrs:{\"model\":_vm.model.zipAndCity.city,\"content\":_vm.content.zipAndCity.city,\"validations\":_vm.validations.zipAndCity.city,\"get-suggestions-method\":_vm.getCitySuggestions,\"suggest-after-characters\":0,\"clearable-suggestions\":_vm.clearableSuggestionFields.city},on:{\"form-input-blur\":_vm.resetSuggestions}})],1)])]),_c('FormField',{staticClass:\"street-and-housenumber\",attrs:{\"model\":_vm.model.streetAndHousenumber,\"content\":_vm.content.streetAndHousenumber,\"validations\":_vm.validations.streetAndHousenumber,\"show-summary\":_vm.showSummary,\"summary-value\":_vm._f(\"concat\")([\n _vm.model.streetAndHousenumber.street.value,\n ' ',\n _vm.model.streetAndHousenumber.housenumber.value ])}},[_c('div',{staticClass:\"flex\"},[_c('div',{staticClass:\"w-2/3 mr-4 md:mr-10\"},[_c('FormInputTextWithSuggestions',{attrs:{\"model\":_vm.model.streetAndHousenumber.street,\"content\":_vm.content.streetAndHousenumber.street,\"validations\":_vm.validations.streetAndHousenumber.street,\"get-suggestions-method\":_vm.getStreetSuggestions,\"clearable-suggestions\":_vm.clearableSuggestionFields.street,\"suggest-after-characters\":0},on:{\"form-input-blur\":_vm.resetSuggestions}})],1),_c('div',{staticClass:\"w-1/3\"},[_c('FormInputText',{attrs:{\"model\":_vm.model.streetAndHousenumber.housenumber,\"content\":_vm.content.streetAndHousenumber.housenumber,\"validations\":_vm.validations.streetAndHousenumber.housenumber}})],1)])]),_c('FormField',{attrs:{\"model\":_vm.model.email,\"content\":_vm.content.email,\"validations\":_vm.validations.email,\"show-summary\":_vm.showSummary,\"summary-value\":_vm.model.email.value}},[_c('FormInputText',{attrs:{\"model\":_vm.model.email,\"content\":_vm.content.email,\"validations\":_vm.validations.email,\"type\":\"email\"}})],1),_c('FormField',{attrs:{\"model\":_vm.model.emailRepeat,\"content\":_vm.content.emailRepeat,\"validations\":_vm.validations.emailRepeat,\"show-summary\":_vm.showSummary,\"summary-value\":_vm.model.emailRepeat.value}},[_c('FormInputText',{attrs:{\"model\":_vm.model.emailRepeat,\"content\":_vm.content.emailRepeat,\"validations\":_vm.validations.emailRepeat,\"type\":\"email\"}})],1),_c('FormField',{attrs:{\"model\":_vm.model.phoneNumber1,\"content\":_vm.content.phoneNumber1,\"validations\":_vm.validations.phoneNumber1,\"show-summary\":_vm.showSummary,\"summary-value\":_vm.model.phoneNumber1.value}},[_c('FormInputText',{attrs:{\"model\":_vm.model.phoneNumber1,\"content\":_vm.content.phoneNumber1,\"validations\":_vm.validations.phoneNumber1}})],1),_c('FormField',{attrs:{\"model\":_vm.model.phoneNumber2,\"content\":_vm.content.phoneNumber2,\"validations\":_vm.validations.phoneNumber2,\"show-summary\":_vm.showSummary,\"summary-value\":_vm.model.phoneNumber2.value}},[_c('FormInputText',{attrs:{\"model\":_vm.model.phoneNumber2,\"content\":_vm.content.phoneNumber2,\"validations\":_vm.validations.phoneNumber2}})],1),(!_vm.showSummary)?_c('ButtonSpacer',{attrs:{\"align\":\"right\",\"content\":_vm.content,\"button-text\":_vm.content.buttonNext.text,\"show-debug-fill-button\":_vm.showDebugFillButton},on:{\"button-click\":_vm.validateAndSubmit,\"debug-fill-button-click\":_vm.debugFillSubmit}}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { addressRepository } from '@/api';\r\nimport { AddressSuggestions } from '@/api/interfaces/address/addressSuggestions';\r\nimport { TextField } from '@/types/forms/fields/textField';\r\nimport { StreetAndHousenumberFormGroup } from '@/types/forms/formGroups/streetAndHousenumberFormGroup';\r\nimport { ZipAndCityFormGroup } from '@/types/forms/formGroups/zipAndCityFormGroup';\r\nimport { setAllProps } from '@/utilities/utils';\r\n\r\nexport class AddressService {\r\n static readonly noDistrictFoundServiceValue = 'kein Ortsteil';\r\n addressSuggestions: AddressSuggestions;\r\n\r\n constructor() {\r\n this.addressSuggestions = {\r\n zips: [],\r\n cities: [],\r\n districts: [],\r\n streets: [],\r\n } as AddressSuggestions;\r\n }\r\n\r\n private getAddressSuggestions(\r\n order: string[],\r\n zip: string | null,\r\n city: string | null,\r\n street: string | null,\r\n district: string | null,\r\n ): Promise {\r\n return addressRepository\r\n .fetchSuggestions(order, zip, city, street, district)\r\n .then((results) => {\r\n results.districts = results.districts.filter(\r\n (d) => d !== AddressService.noDistrictFoundServiceValue,\r\n );\r\n this.addressSuggestions = results;\r\n return results;\r\n });\r\n }\r\n\r\n public async getZipSuggestions(\r\n query: string,\r\n zipAndCity: ZipAndCityFormGroup,\r\n streetAndHousenumber: StreetAndHousenumberFormGroup,\r\n district?: TextField,\r\n ): Promise {\r\n return this.getAddressSuggestions(\r\n ['zip'],\r\n query,\r\n zipAndCity.city.value,\r\n streetAndHousenumber.street.value,\r\n district?.value ?? null,\r\n ).then((results) => {\r\n return results.zips;\r\n });\r\n }\r\n\r\n public async getCitySuggestions(\r\n query: string,\r\n zipAndCity: ZipAndCityFormGroup,\r\n streetAndHousenumber: StreetAndHousenumberFormGroup,\r\n district?: TextField,\r\n ): Promise {\r\n return this.getAddressSuggestions(\r\n ['zip', 'city'],\r\n zipAndCity.zip.value,\r\n query,\r\n streetAndHousenumber.street.value,\r\n district?.value ?? null,\r\n ).then((results) => results.cities);\r\n }\r\n\r\n public async getDistrictSuggestions(\r\n query: string,\r\n zipAndCity: ZipAndCityFormGroup,\r\n streetAndHousenumber: StreetAndHousenumberFormGroup,\r\n ): Promise {\r\n return this.getAddressSuggestions(\r\n ['zip', 'city', 'street', 'district'],\r\n zipAndCity.zip.value,\r\n zipAndCity.city.value,\r\n streetAndHousenumber.street.value,\r\n query,\r\n ).then((results) => results.districts);\r\n }\r\n\r\n public async getStreetSuggestions(\r\n query: string,\r\n zipAndCity: ZipAndCityFormGroup,\r\n district?: TextField,\r\n ): Promise {\r\n return this.getAddressSuggestions(\r\n ['zip', 'city', 'street'],\r\n zipAndCity.zip.value,\r\n zipAndCity.city.value,\r\n query,\r\n district?.value ?? null,\r\n ).then((results) => results.streets);\r\n }\r\n\r\n setCity(): string | null {\r\n // if a single city is found for this zip, insert immediately\r\n if (\r\n this.addressSuggestions != null &&\r\n this.addressSuggestions.cities.length === 1\r\n ) {\r\n return this.addressSuggestions.cities[0];\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n clearSuggestionFields(fields: Record): void {\r\n setAllProps(fields, {});\r\n }\r\n}\r\n\r\nexport const addressService = new AddressService();\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.model.disabled)?_c('div',[_vm._l((_vm.model.items),function(operator,index){return [(!operator.disabled)?_c('OperatorFormGroup',{key:index,attrs:{\"model\":operator,\"content\":_vm.content,\"validations\":_vm.validations[index],\"show-summary\":_vm.showSummary}}):_vm._e()]}),(!_vm.showSummary)?_c('FunctionalityButton',{attrs:{\"content\":_vm.content.addRemovePlantOperator,\"value\":_vm.functionalityButtonValue},on:{\"click\":function($event){return _vm.handleFunctionalityButtonClick($event)}}}):_vm._e()],2):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('FormField',{staticClass:\"salutation\",attrs:{\"model\":_vm.model.salutation,\"content\":_vm.content.salutation,\"validations\":_vm.validationProps.salutation,\"align-field\":\"belowLabel\",\"show-summary\":_vm.showSummary,\"summary-value\":_vm.model.salutation.value\n ? _vm.content.salutation.options[_vm.model.salutation.value].label\n : '-'}},[_c('FormRadioGroup',{attrs:{\"model\":_vm.model.salutation,\"content\":_vm.content.salutation,\"validations\":_vm.validationProps.salutation}})],1),_c('FormField',{staticClass:\"company-name\",attrs:{\"model\":_vm.model.companyName,\"content\":_vm.content.companyName,\"validations\":_vm.validationProps.companyName,\"show-summary\":_vm.showSummary,\"summary-value\":_vm.model.companyName.value}},[_c('FormInputText',{attrs:{\"model\":_vm.model.companyName,\"content\":_vm.content.companyName,\"validations\":_vm.validationProps.companyName}})],1),_c('FormField',{attrs:{\"model\":_vm.model.title,\"content\":_vm.content.title,\"validations\":_vm.validationProps.title,\"show-summary\":_vm.showSummary,\"summary-value\":_vm.content.title.options[_vm.model.title.value].label}},[_c('FormSelect',{attrs:{\"model\":_vm.model.title,\"content\":_vm.content.title,\"validations\":_vm.validationProps.title}})],1),_c('FormField',{staticClass:\"operator-name\",attrs:{\"model\":_vm.model.operatorName,\"content\":_vm.content.operatorName,\"validations\":_vm.validationProps.operatorName,\"show-summary\":_vm.showSummary,\"summary-value\":_vm._f(\"concat\")([\n _vm.model.operatorName.firstName.value,\n ' ',\n _vm.model.operatorName.lastName.value ])}},[_c('div',{staticClass:\"flex\"},[_c('div',{staticClass:\"w-1/2 mr-4 md:mr-10\"},[_c('FormInputText',{attrs:{\"model\":_vm.model.operatorName.firstName,\"content\":_vm.content.operatorName.firstName,\"validations\":_vm.operatorNameValidations.firstName}})],1),_c('div',{staticClass:\"w-1/2\"},[_c('FormInputText',{attrs:{\"model\":_vm.model.operatorName.lastName,\"content\":_vm.content.operatorName.lastName,\"validations\":_vm.operatorNameValidations.lastName,\"show-info-icon\":_vm.isFirstOperator}})],1)])]),_c('FormField',{staticClass:\"contact-person-name\",attrs:{\"model\":_vm.model.contactPersonName,\"content\":_vm.content.contactPersonName,\"validations\":_vm.validationProps.contactPersonName,\"show-summary\":_vm.showSummary,\"summary-value\":_vm._f(\"concat\")([\n _vm.model.contactPersonName.firstName.value,\n ' ',\n _vm.model.contactPersonName.lastName.value ])}},[_c('div',{staticClass:\"flex\"},[_c('div',{staticClass:\"w-1/2 mr-4 md:mr-10\"},[_c('FormInputText',{attrs:{\"model\":_vm.model.contactPersonName.firstName,\"content\":_vm.content.contactPersonName.firstName,\"validations\":_vm.contactPersonNameValidations.firstName}})],1),_c('div',{staticClass:\"w-1/2\"},[_c('FormInputText',{attrs:{\"model\":_vm.model.contactPersonName.lastName,\"content\":_vm.content.contactPersonName.lastName,\"validations\":_vm.contactPersonNameValidations.lastName,\"show-info-icon\":_vm.isFirstOperator}})],1)])]),_c('FormField',{staticClass:\"birthday\",attrs:{\"model\":_vm.model.birthday,\"content\":_vm.content.birthday,\"validations\":_vm.validationProps.birthday,\"show-summary\":_vm.showSummary,\"summary-value\":_vm.model.birthday.value}},[_c('DatePicker',{attrs:{\"model\":_vm.model.birthday,\"content\":_vm.content.birthday,\"validations\":_vm.validationProps.birthday,\"show-info-icon\":\"\"}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport FormInputText from '@/components/atoms/formInputText/FormInputText.vue';\r\nimport FormInputTextWithSuggestions from '@/components/atoms/formInputTextWithSuggestions/FormInputTextWithSuggestions.vue';\r\nimport DatePicker from '@/components/molecules/datePicker/DatePicker.vue';\r\nimport FormBooleanCheckbox from '@/components/molecules/formBooleanCheckbox/FormBooleanCheckbox.vue';\r\nimport FormField from '@/components/molecules/formField/FormField.vue';\r\nimport FormRadioGroup from '@/components/molecules/formRadioGroup/FormRadioGroup.vue';\r\nimport FormSelect from '@/components/molecules/formSelect/FormSelect.vue';\r\nimport { getFormInputMixin } from '@/mixins/formInputMixin';\r\nimport { OperatorFormGroup } from '@/types/forms/formGroups/operatorFormGroup';\r\nimport type { OperatorFormGroupContent } from '@/api/interfaces/content/form/steps/plantOperatorFormStepContent';\r\nimport type { ValidationsCommonType } from '@/services/form/validations';\r\n\r\nexport default getFormInputMixin<\r\n OperatorFormGroup,\r\n OperatorFormGroupContent\r\n>().extend({\r\n name: 'OperatorFormGroup',\r\n components: {\r\n FormInputText,\r\n FormInputTextWithSuggestions,\r\n DatePicker,\r\n FormBooleanCheckbox,\r\n FormField,\r\n FormRadioGroup,\r\n FormSelect,\r\n },\r\n computed: {\r\n isFirstOperator(): boolean {\r\n return this.$vnode.key === 0;\r\n },\r\n operatorNameValidations(): ValidationsCommonType | unknown {\r\n return this.validations?.operatorName || {};\r\n },\r\n contactPersonNameValidations(): ValidationsCommonType | unknown {\r\n return this.validations?.contactPersonName || {};\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OperatorFormGroup.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OperatorFormGroup.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./OperatorFormGroup.vue?vue&type=template&id=490d7f86&\"\nimport script from \"./OperatorFormGroup.vue?vue&type=script&lang=ts&\"\nexport * from \"./OperatorFormGroup.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport FunctionalityButton, {\r\n FunctionalityButtonValueType,\r\n} from '@/components/molecules/functionalityButton/FunctionalityButton.vue';\r\nimport OperatorFormGroup from '@/components/organisms/operatorFormGroup/OperatorFormGroup.vue';\r\nimport { getFormInputMixin } from '@/mixins/formInputMixin';\r\nimport type { OperatorFormListType } from '@/types/forms/formGroups/operatorFormList';\r\nimport type { OperatorFormListContent } from '@/api/interfaces/content/form/steps/plantOperatorFormStepContent';\r\n\r\nexport default getFormInputMixin<\r\n OperatorFormListType,\r\n OperatorFormListContent\r\n>().extend({\r\n name: 'OperatorFormList',\r\n components: {\r\n FunctionalityButton,\r\n OperatorFormGroup,\r\n },\r\n computed: {\r\n functionalityButtonValue(): FunctionalityButtonValueType {\r\n return this.model.items.length > 1 ? 'remove' : 'add';\r\n },\r\n },\r\n methods: {\r\n handleFunctionalityButtonClick(\r\n value: FunctionalityButtonValueType,\r\n ): void {\r\n if (value === 'add') {\r\n this.model.createItem();\r\n } else {\r\n this.model.pop();\r\n }\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OperatorFormList.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OperatorFormList.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./OperatorFormList.vue?vue&type=template&id=6fe83074&\"\nimport script from \"./OperatorFormList.vue?vue&type=script&lang=ts&\"\nexport * from \"./OperatorFormList.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { AddressService } from '@/services/address/addressService';\r\nimport { PlantOperatorFormStepContent } from '@/api/interfaces/content/form/steps/plantOperatorFormStepContent';\r\nimport { getFormStepMixin } from '@/mixins/formStepMixin';\r\nimport FormSelect from '@/components/molecules/formSelect/FormSelect.vue';\r\nimport FormField from '@/components/molecules/formField/FormField.vue';\r\nimport FormRadioGroup from '@/components/molecules/formRadioGroup/FormRadioGroup.vue';\r\nimport FormInputText from '@/components/atoms/formInputText/FormInputText.vue';\r\nimport FormBooleanCheckbox from '@/components/molecules/formBooleanCheckbox/FormBooleanCheckbox.vue';\r\nimport DatePicker from '@/components/molecules/datePicker/DatePicker.vue';\r\nimport FormInputTextWithSuggestions from '@/components/atoms/formInputTextWithSuggestions/FormInputTextWithSuggestions.vue';\r\nimport ButtonSpacer from '@/components/molecules/buttonSpacer/ButtonSpacer.vue';\r\nimport OperatorFormList from '@/components/organisms/operatorFormList/OperatorFormList.vue';\r\nimport type { PlantOperatorFormStep } from '@/types/forms/formSteps/plantOperatorFormStep';\r\nimport { FormStepConfiguration } from '@/api/interfaces/configuration/form/base/formStepConfiguration';\r\n\r\nexport default getFormStepMixin<\r\n PlantOperatorFormStep,\r\n PlantOperatorFormStepContent,\r\n FormStepConfiguration\r\n>().extend({\r\n name: 'PlantOperatorForm',\r\n components: {\r\n FormField,\r\n FormRadioGroup,\r\n FormInputText,\r\n FormSelect,\r\n FormBooleanCheckbox,\r\n FormInputTextWithSuggestions,\r\n DatePicker,\r\n ButtonSpacer,\r\n OperatorFormList,\r\n },\r\n data() {\r\n return {\r\n addressService: new AddressService(),\r\n clearableSuggestionFields: {\r\n zip: {},\r\n city: {},\r\n street: {},\r\n },\r\n };\r\n },\r\n methods: {\r\n async getZipSuggestions(query: string): Promise {\r\n return this.model.country.value === 'deu'\r\n ? await this.addressService.getZipSuggestions(\r\n query,\r\n this.model.zipAndCity,\r\n this.model.streetAndHousenumber,\r\n )\r\n : [];\r\n },\r\n async getCitySuggestions(query: string): Promise {\r\n return this.model.country.value === 'deu'\r\n ? this.addressService.getCitySuggestions(\r\n query,\r\n this.model.zipAndCity,\r\n this.model.streetAndHousenumber,\r\n )\r\n : [];\r\n },\r\n async getStreetSuggestions(query: string): Promise {\r\n return this.model.country.value === 'deu'\r\n ? this.addressService.getStreetSuggestions(\r\n query,\r\n this.model.zipAndCity,\r\n )\r\n : [];\r\n },\r\n handleZipBlur() {\r\n this.resetSuggestions();\r\n\r\n this.getZipSuggestions(this.model.zipAndCity.zip.value ?? '').then(\r\n () => {\r\n this.model.zipAndCity.city.value = this.addressService.setCity();\r\n },\r\n );\r\n },\r\n resetSuggestions() {\r\n this.addressService.clearSuggestionFields(\r\n this.clearableSuggestionFields,\r\n );\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PlantOperatorForm.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PlantOperatorForm.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PlantOperatorForm.vue?vue&type=template&id=40c40b0a&\"\nimport script from \"./PlantOperatorForm.vue?vue&type=script&lang=ts&\"\nexport * from \"./PlantOperatorForm.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"container\",class:{ 'mb-4 md:mb-8 lg:mb-10 xl:mb-12': !_vm.showSummary }},[_c('FormField',{staticClass:\"company-name\",attrs:{\"model\":_vm.model.companyName,\"content\":_vm.content.companyName,\"validations\":_vm.validations.companyName,\"show-summary\":_vm.showSummary,\"summary-value\":_vm.model.companyName.value}},[_c('FormInputText',{attrs:{\"model\":_vm.model.companyName,\"content\":_vm.content.companyName,\"validations\":_vm.validations.companyName}})],1),_c('FormField',{staticClass:\"builder-name\",attrs:{\"model\":_vm.model.builderName,\"content\":_vm.content.builderName,\"validations\":_vm.validations.builderName,\"show-summary\":_vm.showSummary,\"summary-value\":_vm._f(\"concat\")([\n _vm.model.builderName.firstName.value,\n ' ',\n _vm.model.builderName.lastName.value ])}},[_c('div',{staticClass:\"flex\"},[_c('div',{staticClass:\"w-1/2 mr-4 md:mr-10\"},[_c('FormInputText',{attrs:{\"model\":_vm.model.builderName.firstName,\"content\":_vm.content.builderName.firstName,\"validations\":_vm.validations.builderName.firstName}})],1),_c('div',{staticClass:\"w-1/2\"},[_c('FormInputText',{attrs:{\"model\":_vm.model.builderName.lastName,\"content\":_vm.content.builderName.lastName,\"validations\":_vm.validations.builderName.lastName}})],1)])]),_c('FormField',{attrs:{\"model\":_vm.model.country,\"content\":_vm.content.country,\"validations\":_vm.validations.country,\"show-summary\":_vm.showSummary,\"summary-value\":_vm.content.country.options[_vm.model.country.value].label}},[_c('FormSelect',{attrs:{\"model\":_vm.model.country,\"content\":_vm.content.country,\"validations\":_vm.validations.country}})],1),_c('FormField',{attrs:{\"model\":_vm.model.zipAndCity,\"content\":_vm.content.zipAndCity,\"validations\":_vm.validations.zipAndCity,\"show-summary\":_vm.showSummary,\"summary-value\":_vm._f(\"concat\")([_vm.model.zipAndCity.zip.value, ' ', _vm.model.zipAndCity.city.value])}},[_c('div',{staticClass:\"flex\"},[_c('div',{staticClass:\"w-1/3 mr-4 md:mr-10\"},[_c('FormInputTextWithSuggestions',{attrs:{\"model\":_vm.model.zipAndCity.zip,\"content\":_vm.content.zipAndCity.zip,\"validations\":_vm.validations.zipAndCity.zip,\"get-suggestions-method\":_vm.getZipSuggestions,\"clearable-suggestions\":_vm.clearableSuggestionFields.zip},on:{\"form-input-blur\":_vm.handleZipBlur}})],1),_c('div',{staticClass:\"w-2/3\"},[_c('FormInputTextWithSuggestions',{attrs:{\"model\":_vm.model.zipAndCity.city,\"content\":_vm.content.zipAndCity.city,\"validations\":_vm.validations.zipAndCity.city,\"get-suggestions-method\":_vm.getCitySuggestions,\"suggest-after-characters\":0,\"clearable-suggestions\":_vm.clearableSuggestionFields.city},on:{\"form-input-blur\":_vm.resetSuggestions}})],1)])]),_c('FormField',{staticClass:\"street-and-housenumber\",attrs:{\"model\":_vm.model.streetAndHousenumber,\"content\":_vm.content.streetAndHousenumber,\"validations\":_vm.validations.streetAndHousenumber,\"show-summary\":_vm.showSummary,\"summary-value\":_vm._f(\"concat\")([\n _vm.model.streetAndHousenumber.street.value,\n ' ',\n _vm.model.streetAndHousenumber.housenumber.value ])}},[_c('div',{staticClass:\"flex\"},[_c('div',{staticClass:\"w-2/3 mr-4 md:mr-10\"},[_c('FormInputTextWithSuggestions',{attrs:{\"model\":_vm.model.streetAndHousenumber.street,\"content\":_vm.content.streetAndHousenumber.street,\"validations\":_vm.validations.streetAndHousenumber.street,\"get-suggestions-method\":_vm.getStreetSuggestions,\"clearable-suggestions\":_vm.clearableSuggestionFields.street,\"suggest-after-characters\":0},on:{\"form-input-blur\":_vm.resetSuggestions}})],1),_c('div',{staticClass:\"w-1/3\"},[_c('FormInputText',{attrs:{\"model\":_vm.model.streetAndHousenumber.housenumber,\"content\":_vm.content.streetAndHousenumber.housenumber,\"validations\":_vm.validations.streetAndHousenumber.housenumber}})],1)])]),_c('FormField',{attrs:{\"model\":_vm.model.email,\"content\":_vm.content.email,\"validations\":_vm.validations.email,\"show-summary\":_vm.showSummary,\"summary-value\":_vm.model.email.value}},[_c('FormInputText',{attrs:{\"model\":_vm.model.email,\"content\":_vm.content.email,\"validations\":_vm.validations.email,\"type\":\"email\"}})],1),_c('FormField',{attrs:{\"model\":_vm.model.phoneNumber1,\"content\":_vm.content.phoneNumber1,\"validations\":_vm.validations.phoneNumber1,\"show-summary\":_vm.showSummary,\"summary-value\":_vm.model.phoneNumber1.value}},[_c('FormInputText',{attrs:{\"model\":_vm.model.phoneNumber1,\"content\":_vm.content.phoneNumber1,\"validations\":_vm.validations.phoneNumber1}})],1),_c('FormField',{attrs:{\"model\":_vm.model.phoneNumber2,\"content\":_vm.content.phoneNumber2,\"validations\":_vm.validations.phoneNumber2,\"show-summary\":_vm.showSummary,\"summary-value\":_vm.model.phoneNumber2.value}},[_c('FormInputText',{attrs:{\"model\":_vm.model.phoneNumber2,\"content\":_vm.content.phoneNumber2,\"validations\":_vm.validations.phoneNumber2}})],1),(!_vm.showSummary)?_c('ButtonSpacer',{attrs:{\"align\":\"right\",\"content\":_vm.content,\"button-text\":_vm.content.buttonNext.text,\"show-debug-fill-button\":_vm.showDebugFillButton},on:{\"button-click\":_vm.validateAndSubmit,\"debug-fill-button-click\":_vm.debugFillSubmit}}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { AddressService } from '@/services/address/addressService';\r\nimport { PlantBuilderFormStepContent } from '@/api/interfaces/content/form/steps/plantBuilderFormStepContent';\r\nimport { getFormStepMixin } from '@/mixins/formStepMixin';\r\nimport FormSelect from '@/components/molecules/formSelect/FormSelect.vue';\r\nimport FormField from '@/components/molecules/formField/FormField.vue';\r\nimport FormRadioGroup from '@/components/molecules/formRadioGroup/FormRadioGroup.vue';\r\nimport FormInputText from '@/components/atoms/formInputText/FormInputText.vue';\r\nimport FormBooleanCheckbox from '@/components/molecules/formBooleanCheckbox/FormBooleanCheckbox.vue';\r\nimport DatePicker from '@/components/molecules/datePicker/DatePicker.vue';\r\nimport FormInputTextWithSuggestions from '@/components/atoms/formInputTextWithSuggestions/FormInputTextWithSuggestions.vue';\r\nimport ButtonSpacer from '@/components/molecules/buttonSpacer/ButtonSpacer.vue';\r\nimport { PlantBuilderFormStep } from '@/types/forms/formSteps/plantBuilderFormStep';\r\nimport { FormStepConfiguration } from '@/api/interfaces/configuration/form/base/formStepConfiguration';\r\n\r\nexport default getFormStepMixin<\r\n PlantBuilderFormStep,\r\n PlantBuilderFormStepContent,\r\n FormStepConfiguration\r\n>().extend({\r\n name: 'PlantBuilderForm',\r\n components: {\r\n FormField,\r\n FormRadioGroup,\r\n FormInputText,\r\n FormSelect,\r\n FormBooleanCheckbox,\r\n FormInputTextWithSuggestions,\r\n DatePicker,\r\n ButtonSpacer,\r\n },\r\n data() {\r\n return {\r\n addressService: new AddressService(),\r\n clearableSuggestionFields: {\r\n zip: {},\r\n city: {},\r\n street: {},\r\n },\r\n };\r\n },\r\n methods: {\r\n async getZipSuggestions(query: string): Promise {\r\n return this.model.country.value === 'deu'\r\n ? this.addressService.getZipSuggestions(\r\n query,\r\n this.model.zipAndCity,\r\n this.model.streetAndHousenumber,\r\n )\r\n : [];\r\n },\r\n async getCitySuggestions(query: string): Promise {\r\n return this.model.country.value === 'deu'\r\n ? this.addressService.getCitySuggestions(\r\n query,\r\n this.model.zipAndCity,\r\n this.model.streetAndHousenumber,\r\n )\r\n : [];\r\n },\r\n async getStreetSuggestions(query: string): Promise {\r\n return this.model.country.value === 'deu'\r\n ? this.addressService.getStreetSuggestions(\r\n query,\r\n this.model.zipAndCity,\r\n )\r\n : [];\r\n },\r\n handleZipBlur() {\r\n this.resetSuggestions();\r\n\r\n this.getZipSuggestions(this.model.zipAndCity.zip.value ?? '').then(\r\n () => {\r\n this.model.zipAndCity.city.value = this.addressService.setCity();\r\n },\r\n );\r\n },\r\n resetSuggestions() {\r\n this.addressService.clearSuggestionFields(\r\n this.clearableSuggestionFields,\r\n );\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PlantBuilderForm.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PlantBuilderForm.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PlantBuilderForm.vue?vue&type=template&id=328a8d48&\"\nimport script from \"./PlantBuilderForm.vue?vue&type=script&lang=ts&\"\nexport * from \"./PlantBuilderForm.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"container\",class:{ 'mb-4 md:mb-8 lg:mb-10 xl:mb-12': !_vm.showSummary }},[_c('FormField',{staticClass:\"new-or-existing-application\",attrs:{\"model\":_vm.model.newOrExistingApplication,\"content\":_vm.content.newOrExistingApplication,\"validations\":_vm.validations.newOrExistingApplication,\"align-field\":\"belowLabel\",\"show-summary\":_vm.showSummary,\"summary-value\":_vm.content.newOrExistingApplication.options[\n _vm.model.newOrExistingApplication.value\n ] &&\n _vm.content.newOrExistingApplication.options[\n _vm.model.newOrExistingApplication.value\n ].label,\"show-info-icon\":\"\"}},[_c('FormRadioGroup',{attrs:{\"model\":_vm.model.newOrExistingApplication,\"content\":_vm.content.newOrExistingApplication,\"validations\":_vm.validations.newOrExistingApplication}})],1),_c('FormField',{staticClass:\"application-number\",attrs:{\"model\":_vm.model.applicationNumber,\"content\":_vm.content.applicationNumber,\"validations\":_vm.validations.applicationNumber,\"show-summary\":_vm.showSummary,\"summary-value\":_vm.model.applicationNumber.value}},[_c('FormInputText',{attrs:{\"model\":_vm.model.applicationNumber,\"content\":_vm.content.applicationNumber,\"validations\":_vm.validations.applicationNumber,\"show-info-icon\":\"\"}})],1),_c('FormField',{staticClass:\"new-or-existing-plant\",attrs:{\"model\":_vm.model.newOrExistingPlant,\"content\":_vm.getFilteredPlantOptions,\"validations\":_vm.validations.newOrExistingPlant,\"align-field\":\"belowLabel\",\"show-summary\":_vm.showSummary,\"summary-value\":_vm.getFilteredPlantOptions.options[\n _vm.model.newOrExistingPlant.value\n ] &&\n _vm.getFilteredPlantOptions.options[_vm.model.newOrExistingPlant.value]\n .label,\"show-info-icon\":\"\"}},[_c('FormRadioGroup',{attrs:{\"model\":_vm.model.newOrExistingPlant,\"content\":_vm.getFilteredPlantOptions,\"validations\":_vm.validations.newOrExistingPlant,\"orientation\":\"vertical\"}})],1),_c('FormField',{staticClass:\"power-heat-coupling-plant-type\",attrs:{\"model\":_vm.model.powerHeatCouplingPlantType,\"content\":_vm.content.powerHeatCouplingPlantType,\"validations\":_vm.validations.powerHeatCouplingPlantType,\"align-field\":\"belowLabel\",\"show-summary\":_vm.showSummary,\"summary-value\":_vm.content.powerHeatCouplingPlantType.options[\n _vm.model.powerHeatCouplingPlantType.value\n ] &&\n _vm.content.powerHeatCouplingPlantType.options[\n _vm.model.powerHeatCouplingPlantType.value\n ].label,\"show-info-icon\":\"\"}},[_c('FormRadioGroup',{attrs:{\"model\":_vm.model.powerHeatCouplingPlantType,\"content\":_vm.content.powerHeatCouplingPlantType,\"validations\":_vm.validations.powerHeatCouplingPlantType,\"orientation\":\"vertical\"}})],1),(!_vm.showSummary)?_c('FormTextBlock',{staticClass:\"power-heat-coupling-payments-based-on-law-hint\",attrs:{\"model\":_vm.model.powerHeatCouplingPaymentsBasedOnLawHint,\"content\":_vm.content.powerHeatCouplingPaymentsBasedOnLawHint}}):_vm._e(),_c('FormField',{staticClass:\"bafa-approval-will-be-submitted-later\",attrs:{\"model\":_vm.model.bafaApprovalWillBeSubmittedLater,\"content\":_vm.content.bafaApprovalWillBeSubmittedLater,\"validations\":_vm.validations.bafaApprovalWillBeSubmittedLater,\"align-field\":\"singleLine\",\"show-summary\":_vm.showSummary,\"summary-value\":_vm.model.bafaApprovalWillBeSubmittedLater.value}},[_c('FormBooleanCheckbox',{attrs:{\"model\":_vm.model.bafaApprovalWillBeSubmittedLater,\"content\":_vm.content.bafaApprovalWillBeSubmittedLater,\"validations\":_vm.validations.bafaApprovalWillBeSubmittedLater}})],1),_c('FormField',{attrs:{\"model\":_vm.model.plantWasAlreadyCommissioned,\"content\":_vm.content.plantWasAlreadyCommissioned,\"validations\":_vm.validations.plantWasAlreadyCommissioned,\"align-field\":\"singleLine\",\"show-summary\":_vm.showSummary,\"summary-value\":_vm.model.plantWasAlreadyCommissioned.value}},[_c('FormBooleanCheckbox',{attrs:{\"model\":_vm.model.plantWasAlreadyCommissioned,\"content\":_vm.content.plantWasAlreadyCommissioned,\"validations\":_vm.validations.plantWasAlreadyCommissioned}})],1),_c('FormField',{staticClass:\"initial-commissioning-date\",attrs:{\"model\":_vm.model.initialCommissioningDate,\"content\":_vm.content.initialCommissioningDate,\"validations\":_vm.validations.initialCommissioningDate,\"show-summary\":_vm.showSummary,\"summary-value\":_vm.model.initialCommissioningDate.value}},[_c('DatePicker',{attrs:{\"model\":_vm.model.initialCommissioningDate,\"content\":_vm.content.initialCommissioningDate,\"validations\":_vm.validations.initialCommissioningDate,\"show-info-icon\":\"\"}})],1),_c('FormField',{staticClass:\"plant-building-type\",attrs:{\"model\":_vm.model.plantBuildingType,\"content\":_vm.content.plantBuildingType,\"validations\":_vm.validations.plantBuildingType,\"align-field\":\"belowLabel\",\"show-summary\":_vm.showSummary,\"summary-value\":_vm.content.plantBuildingType.options[\n _vm.model.plantBuildingType.value\n ] &&\n _vm.content.plantBuildingType.options[_vm.model.plantBuildingType.value]\n .label,\"show-info-icon\":\"\"}},[_c('FormRadioGroup',{attrs:{\"model\":_vm.model.plantBuildingType,\"content\":_vm.content.plantBuildingType,\"validations\":_vm.validations.plantBuildingType,\"orientation\":\"vertical\"}})],1),_c('FormField',{staticClass:\"plant-position\",attrs:{\"model\":_vm.model.plantPosition,\"content\":_vm.content.plantPosition,\"validations\":_vm.validations.plantPosition,\"align-field\":\"belowLabel\",\"show-summary\":_vm.showSummary,\"summary-value\":_vm.content.plantPosition.options[_vm.model.plantPosition.value] &&\n _vm.content.plantPosition.options[_vm.model.plantPosition.value].label,\"show-info-icon\":\"\"}},[_c('FormRadioGroup',{attrs:{\"model\":_vm.model.plantPosition,\"content\":_vm.content.plantPosition,\"validations\":_vm.validations.plantPosition,\"orientation\":\"vertical\"}})],1),_c('FormField',{staticClass:\"pv-installation-type\",attrs:{\"model\":_vm.model.pvInstallationType,\"content\":_vm.content.pvInstallationType,\"validations\":_vm.validations.pvInstallationType,\"align-field\":\"belowLabel\",\"show-summary\":_vm.showSummary,\"summary-value\":_vm.content.pvInstallationType.options[\n _vm.model.pvInstallationType.value\n ] &&\n _vm.content.pvInstallationType.options[\n _vm.model.pvInstallationType.value\n ].label,\"show-info-icon\":\"\"}},[_c('FormRadioGroup',{attrs:{\"model\":_vm.model.pvInstallationType,\"content\":_vm.content.pvInstallationType,\"validations\":_vm.validations.pvInstallationType,\"orientation\":\"vertical\"}})],1),_c('FormField',{staticClass:\"pv-installation-type-for-agricultural-land-or-parking-lots\",attrs:{\"model\":_vm.model.pvInstallationTypeForAgriculturalLandOrParkingLots,\"content\":_vm.content.pvInstallationTypeForAgriculturalLandOrParkingLots,\"validations\":_vm.validations.pvInstallationTypeForAgriculturalLandOrParkingLots,\"align-field\":\"belowLabel\",\"show-summary\":_vm.showSummary,\"summary-value\":_vm.content.pvInstallationTypeForAgriculturalLandOrParkingLots\n .options[\n _vm.model.pvInstallationTypeForAgriculturalLandOrParkingLots\n .value\n ] &&\n _vm.content.pvInstallationTypeForAgriculturalLandOrParkingLots\n .options[\n _vm.model.pvInstallationTypeForAgriculturalLandOrParkingLots\n .value\n ].label,\"show-info-icon\":\"\"}},[_c('FormRadioGroup',{attrs:{\"model\":_vm.model.pvInstallationTypeForAgriculturalLandOrParkingLots,\"content\":_vm.content.pvInstallationTypeForAgriculturalLandOrParkingLots,\"validations\":_vm.validations.pvInstallationTypeForAgriculturalLandOrParkingLots,\"orientation\":\"vertical\"}})],1),_c('FormField',{staticClass:\"tenant-electricity-surcharge\",attrs:{\"model\":_vm.model.tenantElectricitySurcharge,\"content\":_vm.content.tenantElectricitySurcharge,\"validations\":_vm.validations.tenantElectricitySurcharge,\"align-field\":\"singleLine\",\"show-summary\":_vm.showSummary,\"summary-value\":_vm.model.tenantElectricitySurcharge.value}},[_c('FormBooleanCheckbox',{attrs:{\"model\":_vm.model.tenantElectricitySurcharge,\"content\":_vm.content.tenantElectricitySurcharge,\"validations\":_vm.validations.tenantElectricitySurcharge,\"show-info-icon\":\"\"}})],1),_c('FormField',{staticClass:\"plant-building-type-for-tenant-electricity-surcharge\",attrs:{\"model\":_vm.model.plantBuildingTypeForTenantElectricitySurcharge,\"content\":_vm.content.plantBuildingTypeForTenantElectricitySurcharge,\"validations\":_vm.validations.plantBuildingTypeForTenantElectricitySurcharge,\"align-field\":\"belowLabel\",\"show-summary\":_vm.showSummary,\"summary-value\":_vm.content.plantBuildingTypeForTenantElectricitySurcharge.options[\n _vm.model.plantBuildingTypeForTenantElectricitySurcharge.value\n ] &&\n _vm.content.plantBuildingTypeForTenantElectricitySurcharge.options[\n _vm.model.plantBuildingTypeForTenantElectricitySurcharge.value\n ].label,\"show-info-icon\":\"\"}},[_c('FormRadioGroup',{attrs:{\"model\":_vm.model.plantBuildingTypeForTenantElectricitySurcharge,\"content\":_vm.content.plantBuildingTypeForTenantElectricitySurcharge,\"validations\":_vm.validations.plantBuildingTypeForTenantElectricitySurcharge,\"orientation\":\"vertical\"}})],1),(!_vm.showSummary)?_c('FormTextBlock',{staticClass:\"requirement-tenant-electricity-surcharge-hint\",attrs:{\"model\":_vm.model.requirementTenantElectricitySurchargeHint,\"content\":_vm.content.requirementTenantElectricitySurchargeHint}}):_vm._e(),_c('FormField',{staticClass:\"minimum-requirement-living-space\",attrs:{\"model\":_vm.model.minimumRequirementLivingSpace,\"content\":_vm.content.minimumRequirementLivingSpace,\"validations\":_vm.validations.minimumRequirementLivingSpace,\"align-field\":\"singleLine\",\"show-summary\":_vm.showSummary,\"summary-value\":_vm.model.minimumRequirementLivingSpace.value}},[_c('FormBooleanCheckbox',{attrs:{\"model\":_vm.model.minimumRequirementLivingSpace,\"content\":_vm.content.minimumRequirementLivingSpace,\"validations\":_vm.validations.minimumRequirementLivingSpace,\"show-info-icon\":\"\"}})],1),_c('FormField',{staticClass:\"no-residential-exemptions\",attrs:{\"model\":_vm.model.noResidentialExemptions,\"content\":_vm.content.noResidentialExemptions,\"validations\":_vm.validations.noResidentialExemptions,\"align-field\":\"singleLine\",\"show-summary\":_vm.showSummary,\"summary-value\":_vm.model.noResidentialExemptions.value}},[_c('FormBooleanCheckbox',{attrs:{\"model\":_vm.model.noResidentialExemptions,\"content\":_vm.content.noResidentialExemptions,\"validations\":_vm.validations.noResidentialExemptions,\"show-info-icon\":\"\"}})],1),_c('FormField',{staticClass:\"electricity-consumption-within-this-building\",attrs:{\"model\":_vm.model.electricityConsumptionWithinThisBuilding,\"content\":_vm.content.electricityConsumptionWithinThisBuilding,\"validations\":_vm.validations.electricityConsumptionWithinThisBuilding,\"align-field\":\"singleLine\",\"show-summary\":_vm.showSummary,\"summary-value\":_vm.model.electricityConsumptionWithinThisBuilding.value}},[_c('FormBooleanCheckbox',{attrs:{\"model\":_vm.model.electricityConsumptionWithinThisBuilding,\"content\":_vm.content.electricityConsumptionWithinThisBuilding,\"validations\":_vm.validations.electricityConsumptionWithinThisBuilding,\"show-info-icon\":\"\"}})],1),_c('FormField',{staticClass:\"no-additional-network-for-end-consumer\",attrs:{\"model\":_vm.model.noAdditionalNetworkForEndConsumer,\"content\":_vm.content.noAdditionalNetworkForEndConsumer,\"validations\":_vm.validations.noAdditionalNetworkForEndConsumer,\"align-field\":\"singleLine\",\"show-summary\":_vm.showSummary,\"summary-value\":_vm.model.noAdditionalNetworkForEndConsumer.value}},[_c('FormBooleanCheckbox',{attrs:{\"model\":_vm.model.noAdditionalNetworkForEndConsumer,\"content\":_vm.content.noAdditionalNetworkForEndConsumer,\"validations\":_vm.validations.noAdditionalNetworkForEndConsumer,\"show-info-icon\":\"\"}})],1),(!_vm.showSummary)?_c('FormTextBlock',{staticClass:\"federal-network-agency-hint\",attrs:{\"model\":_vm.model.federalNetworkAgencyHint,\"content\":_vm.content.federalNetworkAgencyHint}}):_vm._e(),_c('FormField',{staticClass:\"proof-of-registration-photovoltaic\",attrs:{\"model\":_vm.model.proofOfRegistrationPhotovoltaic,\"content\":_vm.content.proofOfRegistrationPhotovoltaic,\"validations\":_vm.validations.proofOfRegistrationPhotovoltaic,\"align-field\":\"singleLine\",\"show-summary\":_vm.showSummary,\"summary-value\":_vm.model.proofOfRegistrationPhotovoltaic.value}},[_c('FormBooleanCheckbox',{attrs:{\"model\":_vm.model.proofOfRegistrationPhotovoltaic,\"content\":_vm.content.proofOfRegistrationPhotovoltaic,\"validations\":_vm.validations.proofOfRegistrationPhotovoltaic,\"show-info-icon\":\"\"}})],1),_c('FormField',{staticClass:\"proof-of-allocation-of-tenant-electricity-surcharge\",attrs:{\"model\":_vm.model.proofOfAllocationOfTenantElectricitySurcharge,\"content\":_vm.content.proofOfAllocationOfTenantElectricitySurcharge,\"validations\":_vm.validations.proofOfAllocationOfTenantElectricitySurcharge,\"align-field\":\"singleLine\",\"show-summary\":_vm.showSummary,\"summary-value\":_vm.model.proofOfAllocationOfTenantElectricitySurcharge.value}},[_c('FormBooleanCheckbox',{attrs:{\"model\":_vm.model.proofOfAllocationOfTenantElectricitySurcharge,\"content\":_vm.content.proofOfAllocationOfTenantElectricitySurcharge,\"validations\":_vm.validations.proofOfAllocationOfTenantElectricitySurcharge,\"show-info-icon\":\"\"}})],1),(!_vm.showSummary)?_c('FormTextBlock',{staticClass:\"declaration-enwg-hint\",attrs:{\"model\":_vm.model.declarationEnwgHint,\"content\":_vm.content.declarationEnwgHint}}):_vm._e(),_c('FormField',{staticClass:\"plant-operator-knows-enwg-specifications\",attrs:{\"model\":_vm.model.plantOperatorKnowsEnwgSpecifications,\"content\":_vm.content.plantOperatorKnowsEnwgSpecifications,\"validations\":_vm.validations.plantOperatorKnowsEnwgSpecifications,\"align-field\":\"singleLine\",\"show-summary\":_vm.showSummary,\"summary-value\":_vm.model.plantOperatorKnowsEnwgSpecifications.value}},[_c('FormBooleanCheckbox',{attrs:{\"model\":_vm.model.plantOperatorKnowsEnwgSpecifications,\"content\":_vm.content.plantOperatorKnowsEnwgSpecifications,\"validations\":_vm.validations.plantOperatorKnowsEnwgSpecifications,\"show-info-icon\":\"\"}})],1),_c('InfeedManagementFormGroup',{staticClass:\"infeed-management-form-group\",attrs:{\"model\":_vm.model.infeedManagement,\"content\":_vm.content,\"configuration\":_vm.configuration,\"validations\":_vm.validations.infeedManagement,\"show-summary\":_vm.showSummary}}),_c('FormField',{staticClass:\"active-power-limit60\",attrs:{\"model\":_vm.model.activePowerLimit60,\"content\":_vm.content.activePowerLimit60,\"validations\":_vm.validations.activePowerLimit60,\"align-field\":\"singleLine\",\"show-summary\":_vm.showSummary,\"summary-value\":_vm.model.activePowerLimit60.value}},[_c('FormBooleanCheckbox',{attrs:{\"model\":_vm.model.activePowerLimit60,\"content\":_vm.content.activePowerLimit60,\"validations\":_vm.validations.activePowerLimit60,\"show-info-icon\":\"\"}})],1),_c('FormTextBlock',{staticClass:\"storage-connection font-normal\",class:{\n 'text-lg my-5': _vm.showSummary,\n 'text-xl lg:text-2xl xl:text-2xl': !_vm.showSummary,\n },attrs:{\"model\":_vm.model.storageConnection,\"content\":_vm.content.storageConnection}}),_c('FormField',{staticClass:\"storage-coupling\",attrs:{\"model\":_vm.model.storageCoupling,\"content\":_vm.content.storageCoupling,\"validations\":_vm.validations.storageCoupling,\"align-field\":\"belowLabel\",\"show-summary\":_vm.showSummary,\"summary-value\":_vm.content.storageCoupling.options[_vm.model.storageCoupling.value] &&\n _vm.content.storageCoupling.options[_vm.model.storageCoupling.value]\n .label,\"show-info-icon\":\"\"}},[_c('FormSelect',{attrs:{\"model\":_vm.model.storageCoupling,\"content\":_vm.content.storageCoupling,\"validations\":_vm.validations.storageCoupling,\"orientation\":\"vertical\"}})],1),_c('FormField',{staticClass:\"storage-connection-concept\",attrs:{\"model\":_vm.model.storageConnectionConcept,\"content\":_vm.content.storageConnectionConcept,\"validations\":_vm.validations.storageConnectionConcept,\"align-field\":\"belowLabel\",\"show-summary\":_vm.showSummary,\"summary-value\":_vm.content.storageConnectionConcept.options[\n _vm.model.storageConnectionConcept.value\n ] &&\n _vm.content.storageConnectionConcept.options[\n _vm.model.storageConnectionConcept.value\n ].label,\"show-info-icon\":\"\"}},[_c('FormRadioGroup',{attrs:{\"model\":_vm.model.storageConnectionConcept,\"content\":_vm.content.storageConnectionConcept,\"validations\":_vm.validations.storageConnectionConcept,\"orientation\":\"vertical\"}})],1),(!_vm.showSummary)?_c('FormTextBlock',{staticClass:\"electricity-tax-exemption-hint\",attrs:{\"model\":_vm.model.electricityTaxExemptionHint,\"content\":_vm.content.electricityTaxExemptionHint,\"show-info-icon\":\"\"}}):_vm._e(),_c('FormField',{staticClass:\"storage-charge\",attrs:{\"model\":_vm.model.storageCharge,\"content\":_vm.content.storageCharge,\"validations\":_vm.validations.storageCharge,\"show-summary\":_vm.showSummary,\"summary-value\":_vm.content.storageCharge.options[_vm.model.storageCharge.value] &&\n _vm.content.storageCharge.options[_vm.model.storageCharge.value].label}},[_c('FormSelect',{attrs:{\"model\":_vm.model.storageCharge,\"content\":_vm.content.storageCharge,\"validations\":_vm.validations.storageCharge}})],1),_c('FormField',{staticClass:\"storage-discharge\",attrs:{\"model\":_vm.model.storageDischarge,\"content\":_vm.content.storageDischarge,\"validations\":_vm.validations.storageDischarge,\"show-summary\":_vm.showSummary,\"summary-value\":_vm.content.storageDischarge.options[\n _vm.model.storageDischarge.value\n ] &&\n _vm.content.storageDischarge.options[_vm.model.storageDischarge.value]\n .label}},[_c('FormSelect',{attrs:{\"model\":_vm.model.storageDischarge,\"content\":_vm.content.storageDischarge,\"validations\":_vm.validations.storageDischarge}})],1),(!_vm.showSummary)?_c('FormTextBlock',{staticClass:\"storage-public-discharge-warning text-error\",attrs:{\"model\":_vm.model.storagePublicDischargeWarning,\"content\":_vm.content.storagePublicDischargeWarning}}):_vm._e(),_c('FormField',{staticClass:\"storage-balancing-energy-market-participation\",attrs:{\"model\":_vm.model.storageBalancingEnergyMarketParticipation,\"content\":_vm.content.storageBalancingEnergyMarketParticipation,\"validations\":_vm.validations.storageBalancingEnergyMarketParticipation,\"align-field\":\"singleLine\",\"show-summary\":_vm.showSummary,\"summary-value\":_vm.model.storageBalancingEnergyMarketParticipation.value}},[_c('FormBooleanCheckbox',{attrs:{\"model\":_vm.model.storageBalancingEnergyMarketParticipation,\"content\":_vm.content.storageBalancingEnergyMarketParticipation,\"validations\":_vm.validations.storageBalancingEnergyMarketParticipation,\"show-info-icon\":\"\"}})],1),_c('FormField',{staticClass:\"storage-balancing-energy-market-participation-type\",attrs:{\"model\":_vm.model.storageBalancingEnergyMarketParticipationType,\"content\":_vm.content.storageBalancingEnergyMarketParticipationType,\"validations\":_vm.validations.storageBalancingEnergyMarketParticipationType,\"align-field\":\"belowLabel\",\"show-summary\":_vm.showSummary,\"summary-value\":_vm.content.storageBalancingEnergyMarketParticipationType.options[\n _vm.model.storageBalancingEnergyMarketParticipationType.value\n ] &&\n _vm.content.storageBalancingEnergyMarketParticipationType.options[\n _vm.model.storageBalancingEnergyMarketParticipationType.value\n ].label,\"show-info-icon\":\"\"}},[_c('FormRadioGroup',{attrs:{\"model\":_vm.model.storageBalancingEnergyMarketParticipationType,\"content\":_vm.content.storageBalancingEnergyMarketParticipationType,\"validations\":_vm.validations.storageBalancingEnergyMarketParticipationType,\"orientation\":\"vertical\"}})],1),(!_vm.showSummary)?_c('ButtonSpacer',{attrs:{\"align\":\"right\",\"content\":_vm.content,\"button-text\":_vm.content.buttonNext.text,\"show-debug-fill-button\":_vm.showDebugFillButton},on:{\"button-click\":_vm.validateAndSubmit,\"debug-fill-button-click\":_vm.debugFillSubmit}}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.model.disabled)?_c('div',[_c('FormTextBlock',{staticClass:\"infeed-management-headline font-normal\",class:{\n 'text-lg my-5': _vm.showSummary,\n 'text-xl lg:text-2xl xl:text-2xl': !_vm.showSummary,\n },attrs:{\"model\":_vm.model.imHeadline,\"content\":_vm.content.imHeadline,\"show-summary\":_vm.showSummary,\"show-info-icon\":\"\"}}),_c('FormField',{staticClass:\"infeed-management-power-reduction-type\",attrs:{\"model\":_vm.model.imPowerReductionType,\"content\":_vm.content.imPowerReductionType,\"validations\":_vm.validations.imPowerReductionType,\"align-field\":\"belowLabel\",\"show-summary\":_vm.showSummary,\"summary-value\":_vm.content.imPowerReductionType.options[\n _vm.model.imPowerReductionType.value\n ] &&\n _vm.content.imPowerReductionType.options[\n _vm.model.imPowerReductionType.value\n ].label,\"show-info-icon\":\"\"}},[_c('FormRadioGroup',{attrs:{\"model\":_vm.model.imPowerReductionType,\"content\":_vm.content.imPowerReductionType,\"validations\":_vm.validations.imPowerReductionType,\"orientation\":\"vertical\"}})],1),_c('FormField',{staticClass:\"tone-frequency-receiver-to-plant-operator-or-builder\",attrs:{\"model\":_vm.model.toneFrequencyReceiverToPlantOperatorOrBuilder,\"content\":_vm.content.toneFrequencyReceiverToPlantOperatorOrBuilder,\"validations\":_vm.validations.toneFrequencyReceiverToPlantOperatorOrBuilder,\"align-field\":\"belowLabel\",\"show-summary\":_vm.showSummary,\"summary-value\":_vm.content.toneFrequencyReceiverToPlantOperatorOrBuilder.options[\n _vm.model.toneFrequencyReceiverToPlantOperatorOrBuilder.value\n ] &&\n _vm.content.toneFrequencyReceiverToPlantOperatorOrBuilder.options[\n _vm.model.toneFrequencyReceiverToPlantOperatorOrBuilder.value\n ].label,\"show-info-icon\":\"\"}},[_c('FormRadioGroup',{attrs:{\"model\":_vm.model.toneFrequencyReceiverToPlantOperatorOrBuilder,\"content\":_vm.content.toneFrequencyReceiverToPlantOperatorOrBuilder,\"validations\":_vm.validations.toneFrequencyReceiverToPlantOperatorOrBuilder,\"orientation\":\"vertical\"}})],1),_c('FormTextBlock',{staticClass:\"infeed-management-audio-frequency-control-receiver-contract\",attrs:{\"model\":_vm.model.imAudioFrequencyControlReceiverContract,\"content\":_vm.content.imAudioFrequencyControlReceiverContract,\"show-info-icon\":\"\"}}),_c('FormField',{staticClass:\"infeed-management-provision-through\",attrs:{\"model\":_vm.model.imProvisionThrough,\"content\":_vm.content.imProvisionThrough,\"validations\":_vm.validations.imProvisionThrough,\"show-summary\":_vm.showSummary,\"summary-value\":_vm.model.imProvisionThrough.value}},[_c('FormInputText',{attrs:{\"model\":_vm.model.imProvisionThrough,\"content\":_vm.content.imProvisionThrough,\"validations\":_vm.validations.imProvisionThrough,\"show-info-icon\":\"\"}})],1),(!_vm.showSummary)?_c('FormTextBlock',{staticClass:\"infeed-management-technical-spefications-note\",attrs:{\"model\":_vm.model.imTechnicalSpecificationsNote,\"content\":_vm.content.imTechnicalSpecificationsNote}}):_vm._e(),_c('FormField',{staticClass:\"infeed-management-billing\",attrs:{\"model\":_vm.model.imBilling,\"content\":_vm.content.imBilling,\"validations\":_vm.validations.imBilling,\"label-classes\":\"text-xl lg:text-2xl xl:text-2xl font-normal\",\"align-field\":\"belowLabel\",\"show-summary\":_vm.showSummary,\"summary-value\":_vm.content.imBilling.options[_vm.model.imBilling.value] &&\n _vm.content.imBilling.options[_vm.model.imBilling.value].label}},[_c('FormRadioGroup',{attrs:{\"model\":_vm.model.imBilling,\"content\":_vm.content.imBilling,\"validations\":_vm.validations.imBilling}})],1),(!_vm.showSummary)?_c('FormTextBlock',{staticClass:\"infeed-management-direct-debit-mandate\",attrs:{\"model\":_vm.model.imDirectDebitMandate,\"content\":_vm.content.imDirectDebitMandate}}):_vm._e(),_c('FormField',{staticClass:\"infeed-management-iban\",attrs:{\"model\":_vm.model.imIban,\"content\":_vm.content.imIban,\"validations\":_vm.validations.imIban,\"show-summary\":_vm.showSummary,\"summary-value\":_vm.model.imIban.value}},[_c('FormInputText',{attrs:{\"model\":_vm.model.imIban,\"content\":_vm.content.imIban,\"validations\":_vm.validations.imIban,\"show-info-icon\":\"\"}})],1),_c('FormField',{staticClass:\"infeed-management-credit-institution-name\",attrs:{\"model\":_vm.model.imCreditInstitutionName,\"content\":_vm.content.imCreditInstitutionName,\"validations\":_vm.validations.imCreditInstitutionName,\"show-summary\":_vm.showSummary,\"summary-value\":_vm.model.imCreditInstitutionName.value}},[_c('FormInputText',{attrs:{\"model\":_vm.model.imCreditInstitutionName,\"content\":_vm.content.imCreditInstitutionName,\"validations\":_vm.validations.imCreditInstitutionName}})],1),_c('FormField',{staticClass:\"infeed-management-billing-date\",attrs:{\"model\":_vm.model.imBillingDate,\"content\":_vm.content.imBillingDate,\"validations\":_vm.validations.imBillingDate,\"show-summary\":_vm.showSummary,\"summary-value\":_vm.model.imBillingDate.value}},[_c('DatePicker',{attrs:{\"model\":_vm.model.imBillingDate,\"content\":_vm.content.imBillingDate,\"validations\":_vm.validations.imBillingDate,\"show-info-icon\":\"\"}})],1),_c('FormField',{staticClass:\"infeed-management-account-holder-name\",attrs:{\"model\":_vm.model.imAccountHolderName,\"content\":_vm.content.imAccountHolderName,\"validations\":_vm.validations.imAccountHolderName,\"show-summary\":_vm.showSummary,\"summary-value\":_vm.model.imAccountHolderName.value}},[_c('FormInputText',{attrs:{\"model\":_vm.model.imAccountHolderName,\"content\":_vm.content.imAccountHolderName,\"validations\":_vm.validations.imAccountHolderName}})],1)],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { getFormInputMixin } from '@/mixins/formInputMixin';\r\nimport { InfeedManagementFormGroup } from '@/types/forms/formGroups/plantData/infeedManagement/infeedManagementFormGroup';\r\nimport { InfeedManagementFormGroupContent } from '@/api/interfaces/content/form/steps/plantData/infeedManagementContent';\r\nimport FormField from '@/components/molecules/formField/FormField.vue';\r\nimport FormTextBlock from '@/components/molecules/formTextBlock/FormTextBlock.vue';\r\nimport FormInputText from '@/components/atoms/formInputText/FormInputText.vue';\r\nimport FormRadioGroup from '@/components/molecules/formRadioGroup/FormRadioGroup.vue';\r\nimport DatePicker from '@/components/molecules/datePicker/DatePicker.vue';\r\nimport FormBooleanCheckbox from '@/components/molecules/formBooleanCheckbox/FormBooleanCheckbox.vue';\r\n\r\nexport default getFormInputMixin<\r\n InfeedManagementFormGroup,\r\n InfeedManagementFormGroupContent\r\n>().extend({\r\n name: 'InfeedManagementFormGroup',\r\n components: {\r\n FormTextBlock,\r\n FormField,\r\n FormRadioGroup,\r\n FormInputText,\r\n DatePicker,\r\n FormBooleanCheckbox,\r\n },\r\n});\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InfeedManagementFormGroup.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InfeedManagementFormGroup.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./InfeedManagementFormGroup.vue?vue&type=template&id=d897b944&\"\nimport script from \"./InfeedManagementFormGroup.vue?vue&type=script&lang=ts&\"\nexport * from \"./InfeedManagementFormGroup.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { PlantDataFormStepContent } from '@/api/interfaces/content/form/steps/plantDataFormStepContent';\r\nimport { getFormStepMixin } from '@/mixins/formStepMixin';\r\nimport { PlantDataFormStep } from '@/types/forms/formSteps/plantDataFormStep';\r\nimport { FormStepConfiguration } from '@/api/interfaces/configuration/form/base/formStepConfiguration';\r\nimport ButtonSpacer from '@/components/molecules/buttonSpacer/ButtonSpacer.vue';\r\nimport FormField from '@/components/molecules/formField/FormField.vue';\r\nimport FormRadioGroup from '@/components/molecules/formRadioGroup/FormRadioGroup.vue';\r\nimport FormInputText from '@/components/atoms/formInputText/FormInputText.vue';\r\nimport FormBooleanCheckbox from '@/components/molecules/formBooleanCheckbox/FormBooleanCheckbox.vue';\r\nimport DatePicker from '@/components/molecules/datePicker/DatePicker.vue';\r\nimport FormFileUpload from '@/components/molecules/formFileUpload/FormFileUpload.vue';\r\nimport FormTextBlock from '@/components/molecules/formTextBlock/FormTextBlock.vue';\r\nimport FormSelect from '@/components/molecules/formSelect/FormSelect.vue';\r\nimport { LabelContent } from '@/api/interfaces/content/form/base/labelContent';\r\nimport { RadioButtonContent } from '@/api/interfaces/content/form/base/radioButtonContent';\r\nimport { isStorage } from '@/services/form/rules/application/common';\r\nimport { ApplicationForm } from '@/types/forms/specific/applicationForm';\r\nimport InfeedManagementFormGroup from '@/components/organisms/plantDataForm/infeedManagementFormGroup/InfeedManagementFormGroup.vue';\r\n\r\nexport default getFormStepMixin<\r\n PlantDataFormStep,\r\n PlantDataFormStepContent,\r\n FormStepConfiguration\r\n>().extend({\r\n name: 'PlantDataForm',\r\n components: {\r\n FormField,\r\n FormRadioGroup,\r\n ButtonSpacer,\r\n FormInputText,\r\n FormBooleanCheckbox,\r\n DatePicker,\r\n FormFileUpload,\r\n FormTextBlock,\r\n FormSelect,\r\n InfeedManagementFormGroup,\r\n },\r\n computed: {\r\n getFilteredPlantOptions(): LabelContent & RadioButtonContent {\r\n if (isStorage(this.formModel as ApplicationForm)) {\r\n return this.content.newOrExistingPlantStorage;\r\n } else {\r\n return this.content.newOrExistingPlant;\r\n }\r\n },\r\n prefillStorageChargingAndDischarging(): unknown[] {\r\n return [\r\n this.model.storageCoupling.value,\r\n this.model.storageConnectionConcept.value,\r\n ];\r\n },\r\n },\r\n watch: {\r\n prefillStorageChargingAndDischarging: {\r\n handler(): void {\r\n if (\r\n this.model.storageCoupling.value == 'dcCoupled' &&\r\n this.model.storageConnectionConcept.value ==\r\n 'powerGenerationPlantWithStorageFacilityInTheGenerationPathAndConsumptionPlant' &&\r\n !this.model.storageCharge.value &&\r\n !this.model.storageDischarge.value\r\n ) {\r\n this.model.storageCharge.value = 'onlyFromEeg';\r\n this.model.storageDischarge.value =\r\n 'onlyIntoCustomersGridSelfSupply';\r\n }\r\n },\r\n immediate: true,\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PlantDataForm.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PlantDataForm.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PlantDataForm.vue?vue&type=template&id=7eca3a06&\"\nimport script from \"./PlantDataForm.vue?vue&type=script&lang=ts&\"\nexport * from \"./PlantDataForm.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"container\",class:{ 'mb-4 md:mb-8 lg:mb-10 xl:mb-12': !_vm.showSummary }},[_c('FormField',{staticClass:\"property-owner-agreement\",attrs:{\"model\":_vm.model.propertyOwnerAgreement,\"content\":_vm.content.propertyOwnerAgreement,\"validations\":_vm.validations.propertyOwnerAgreement,\"align-field\":\"singleLine\",\"show-summary\":_vm.showSummary,\"summary-value\":_vm.model.propertyOwnerAgreement.value}},[_c('FormBooleanCheckbox',{attrs:{\"model\":_vm.model.propertyOwnerAgreement,\"content\":_vm.content.propertyOwnerAgreement,\"validations\":_vm.validations.propertyOwnerAgreement}})],1),_c('OwnerFormList',{attrs:{\"model\":_vm.model.owners,\"content\":_vm.content,\"validations\":_vm.validations.owners,\"show-summary\":_vm.showSummary}}),(!_vm.showSummary)?_c('ButtonSpacer',{attrs:{\"align\":\"right\",\"content\":_vm.content,\"button-text\":_vm.content.buttonNext.text,\"show-debug-fill-button\":_vm.showDebugFillButton},on:{\"button-click\":_vm.validateAndSubmit,\"debug-fill-button-click\":_vm.debugFillSubmit}}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_vm._l((_vm.model.items),function(owner,index){return [_c('OwnerFormGroup',{key:index,attrs:{\"model\":owner,\"content\":_vm.content,\"validations\":_vm.validations[index],\"show-summary\":_vm.showSummary,\"can-remove-item\":_vm.model.canRemoveItem()},on:{\"functionality-button-click\":function($event){return _vm.handleOwnerFunctionalityButtonClick($event, owner)}}})]}),(!_vm.showSummary && _vm.model.canAddItem())?_c('FunctionalityButton',{attrs:{\"content\":_vm.content.addRemovePropertyOwner,\"value\":_vm.functionalityButtonValue,\"show-info-icon\":\"\"},on:{\"click\":function($event){return _vm.handleFunctionalityButtonClick($event)}}}):_vm._e()],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('FormField',{staticClass:\"salutation\",attrs:{\"model\":_vm.model.salutation,\"content\":_vm.content.salutation,\"validations\":_vm.validationProps.salutation,\"align-field\":\"belowLabel\",\"show-summary\":_vm.showSummary,\"summary-value\":_vm.model.salutation.value\n ? _vm.content.salutation.options[_vm.model.salutation.value].label\n : '-'}},[_c('FormRadioGroup',{attrs:{\"model\":_vm.model.salutation,\"content\":_vm.content.salutation,\"validations\":_vm.validationProps.salutation}})],1),_c('FormField',{staticClass:\"company-name\",attrs:{\"model\":_vm.model.companyName,\"content\":_vm.content.companyName,\"validations\":_vm.validationProps.companyName,\"show-summary\":_vm.showSummary,\"summary-value\":_vm.model.companyName.value}},[_c('FormInputText',{attrs:{\"model\":_vm.model.companyName,\"content\":_vm.content.companyName,\"validations\":_vm.validationProps.companyName}})],1),_c('FormField',{attrs:{\"model\":_vm.model.title,\"content\":_vm.content.title,\"validations\":_vm.validationProps.title,\"show-summary\":_vm.showSummary,\"summary-value\":_vm.content.title.options[_vm.model.title.value].label}},[_c('FormSelect',{attrs:{\"model\":_vm.model.title,\"content\":_vm.content.title,\"validations\":_vm.validationProps.title}})],1),_c('FormField',{staticClass:\"owner-name\",attrs:{\"model\":_vm.model.ownerName,\"content\":_vm.content.ownerName,\"validations\":_vm.validationProps.ownerName,\"show-summary\":_vm.showSummary,\"summary-value\":_vm._f(\"concat\")([\n _vm.model.ownerName.firstName.value,\n ' ',\n _vm.model.ownerName.lastName.value ])}},[_c('div',{staticClass:\"flex\"},[_c('div',{staticClass:\"w-1/2 mr-4 md:mr-10\"},[_c('FormInputText',{attrs:{\"model\":_vm.model.ownerName.firstName,\"content\":_vm.content.ownerName.firstName,\"validations\":_vm.ownerNameValidations.firstName}})],1),_c('div',{staticClass:\"w-1/2\"},[_c('FormInputText',{attrs:{\"model\":_vm.model.ownerName.lastName,\"content\":_vm.content.ownerName.lastName,\"validations\":_vm.ownerNameValidations.lastName}})],1)])]),_c('FormField',{staticClass:\"contact-person-name\",attrs:{\"model\":_vm.model.contactPersonName,\"content\":_vm.content.contactPersonName,\"validations\":_vm.validationProps.contactPersonName,\"show-summary\":_vm.showSummary,\"summary-value\":_vm._f(\"concat\")([\n _vm.model.contactPersonName.firstName.value,\n ' ',\n _vm.model.contactPersonName.lastName.value ])}},[_c('div',{staticClass:\"flex\"},[_c('div',{staticClass:\"w-1/2 mr-4 md:mr-10\"},[_c('FormInputText',{attrs:{\"model\":_vm.model.contactPersonName.firstName,\"content\":_vm.content.contactPersonName.firstName,\"validations\":_vm.contactPersonNameValidations.firstName}})],1),_c('div',{staticClass:\"w-1/2\"},[_c('FormInputText',{attrs:{\"model\":_vm.model.contactPersonName.lastName,\"content\":_vm.content.contactPersonName.lastName,\"validations\":_vm.contactPersonNameValidations.lastName}})],1)])]),_c('FormField',{staticClass:\"birthday\",attrs:{\"model\":_vm.model.birthday,\"content\":_vm.content.birthday,\"validations\":_vm.validationProps.birthday,\"show-summary\":_vm.showSummary,\"summary-value\":_vm.model.birthday.value}},[_c('DatePicker',{attrs:{\"model\":_vm.model.birthday,\"content\":_vm.content.birthday,\"validations\":_vm.validationProps.birthday,\"show-info-icon\":\"\"}})],1),_c('FormField',{attrs:{\"model\":_vm.model.country,\"content\":_vm.content.country,\"validations\":_vm.validationProps.country,\"show-summary\":_vm.showSummary,\"summary-value\":_vm.content.country.options[_vm.model.country.value].label}},[_c('FormSelect',{attrs:{\"model\":_vm.model.country,\"content\":_vm.content.country,\"validations\":_vm.validationProps.country}})],1),_c('FormField',{attrs:{\"model\":_vm.model.zipAndCity,\"content\":_vm.content.zipAndCity,\"validations\":_vm.validationProps.zipAndCity,\"show-summary\":_vm.showSummary,\"summary-value\":_vm._f(\"concat\")([_vm.model.zipAndCity.zip.value, ' ', _vm.model.zipAndCity.city.value])}},[_c('div',{staticClass:\"flex\"},[_c('div',{staticClass:\"w-1/3 mr-4 md:mr-10\"},[_c('FormInputTextWithSuggestions',{attrs:{\"model\":_vm.model.zipAndCity.zip,\"content\":_vm.content.zipAndCity.zip,\"validations\":_vm.zipAndCityValidations.zip,\"get-suggestions-method\":_vm.getZipSuggestions,\"clearable-suggestions\":_vm.clearableSuggestionFields.zip},on:{\"form-input-blur\":_vm.handleZipBlur}})],1),_c('div',{staticClass:\"w-2/3\"},[_c('FormInputTextWithSuggestions',{attrs:{\"model\":_vm.model.zipAndCity.city,\"content\":_vm.content.zipAndCity.city,\"validations\":_vm.zipAndCityValidations.city,\"get-suggestions-method\":_vm.getCitySuggestions,\"suggest-after-characters\":0,\"clearable-suggestions\":_vm.clearableSuggestionFields.city},on:{\"form-input-blur\":_vm.resetSuggestions}})],1)])]),_c('FormField',{staticClass:\"street-and-housenumber\",attrs:{\"model\":_vm.model.streetAndHousenumber,\"content\":_vm.content.streetAndHousenumber,\"validations\":_vm.validationProps.streetAndHousenumber,\"show-summary\":_vm.showSummary,\"summary-value\":_vm._f(\"concat\")([\n _vm.model.streetAndHousenumber.street.value,\n ' ',\n _vm.model.streetAndHousenumber.housenumber.value ])}},[_c('div',{staticClass:\"flex\"},[_c('div',{staticClass:\"w-2/3 mr-4 md:mr-10\"},[_c('FormInputTextWithSuggestions',{attrs:{\"model\":_vm.model.streetAndHousenumber.street,\"content\":_vm.content.streetAndHousenumber.street,\"validations\":_vm.streetAndHousenumberValidations.street,\"get-suggestions-method\":_vm.getStreetSuggestions,\"clearable-suggestions\":_vm.clearableSuggestionFields.street,\"suggest-after-characters\":0},on:{\"form-input-blur\":_vm.resetSuggestions}})],1),_c('div',{staticClass:\"w-1/3\"},[_c('FormInputText',{attrs:{\"model\":_vm.model.streetAndHousenumber.housenumber,\"content\":_vm.content.streetAndHousenumber.housenumber,\"validations\":_vm.streetAndHousenumberValidations.housenumber}})],1)])]),_c('FormField',{attrs:{\"model\":_vm.model.email,\"content\":_vm.content.email,\"validations\":_vm.validationProps.email,\"show-summary\":_vm.showSummary,\"summary-value\":_vm.model.email.value}},[_c('FormInputText',{attrs:{\"model\":_vm.model.email,\"content\":_vm.content.email,\"validations\":_vm.validationProps.email,\"type\":\"email\"}})],1),_c('FormField',{attrs:{\"model\":_vm.model.phoneNumber1,\"content\":_vm.content.phoneNumber1,\"validations\":_vm.validationProps.phoneNumber1,\"show-summary\":_vm.showSummary,\"summary-value\":_vm.model.phoneNumber1.value}},[_c('FormInputText',{attrs:{\"model\":_vm.model.phoneNumber1,\"content\":_vm.content.phoneNumber1,\"validations\":_vm.validationProps.phoneNumber1}})],1),_c('FormField',{attrs:{\"model\":_vm.model.phoneNumber2,\"content\":_vm.content.phoneNumber2,\"validations\":_vm.validationProps.phoneNumber2,\"show-summary\":_vm.showSummary,\"summary-value\":_vm.model.phoneNumber2.value}},[_c('FormInputText',{attrs:{\"model\":_vm.model.phoneNumber2,\"content\":_vm.content.phoneNumber2,\"validations\":_vm.validationProps.phoneNumber2}})],1),(!_vm.showSummary && _vm.canRemoveItem)?_c('FunctionalityButton',{attrs:{\"content\":_vm.content.addRemovePropertyOwner,\"value\":_vm.functionalityButtonValue,\"show-info-icon\":\"\"},on:{\"click\":function($event){return _vm.$emit('functionality-button-click', $event)}}}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { AddressService } from '@/services/address/addressService';\r\nimport FormInputText from '@/components/atoms/formInputText/FormInputText.vue';\r\nimport FormInputTextWithSuggestions from '@/components/atoms/formInputTextWithSuggestions/FormInputTextWithSuggestions.vue';\r\nimport DatePicker from '@/components/molecules/datePicker/DatePicker.vue';\r\nimport FormField from '@/components/molecules/formField/FormField.vue';\r\nimport FormRadioGroup from '@/components/molecules/formRadioGroup/FormRadioGroup.vue';\r\nimport FormSelect from '@/components/molecules/formSelect/FormSelect.vue';\r\nimport FunctionalityButton, {\r\n FunctionalityButtonValueType,\r\n} from '@/components/molecules/functionalityButton/FunctionalityButton.vue';\r\nimport { getFormInputMixin } from '@/mixins/formInputMixin';\r\nimport { OwnerFormGroup } from '@/types/forms/formGroups/ownerFormGroup';\r\nimport type { OwnerFormGroupContent } from '@/api/interfaces/content/form/steps/propertyOwnerFormStepContent';\r\nimport { ValidationsCommonType } from '@/services/form/validations';\r\n\r\nexport default getFormInputMixin<\r\n OwnerFormGroup,\r\n OwnerFormGroupContent\r\n>().extend({\r\n name: 'OwnerFormGroup',\r\n components: {\r\n FormInputText,\r\n FormInputTextWithSuggestions,\r\n DatePicker,\r\n FormField,\r\n FormRadioGroup,\r\n FormSelect,\r\n FunctionalityButton,\r\n },\r\n props: {\r\n canRemoveItem: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n },\r\n data() {\r\n return {\r\n functionalityButtonValue: 'remove' as FunctionalityButtonValueType,\r\n addressService: new AddressService(),\r\n clearableSuggestionFields: {\r\n zip: {},\r\n city: {},\r\n street: {},\r\n },\r\n };\r\n },\r\n computed: {\r\n ownerNameValidations(): ValidationsCommonType | unknown {\r\n return this.validations?.ownerName || {};\r\n },\r\n contactPersonNameValidations(): ValidationsCommonType | unknown {\r\n return this.validations?.contactPersonName || {};\r\n },\r\n zipAndCityValidations(): ValidationsCommonType | unknown {\r\n return this.validations?.zipAndCity || {};\r\n },\r\n streetAndHousenumberValidations(): ValidationsCommonType | unknown {\r\n return this.validations?.streetAndHousenumber || {};\r\n },\r\n },\r\n methods: {\r\n async getZipSuggestions(query: string): Promise {\r\n return this.model.country.value === 'deu'\r\n ? this.addressService.getZipSuggestions(\r\n query,\r\n this.model.zipAndCity,\r\n this.model.streetAndHousenumber,\r\n )\r\n : [];\r\n },\r\n async getCitySuggestions(query: string): Promise {\r\n return this.model.country.value === 'deu'\r\n ? this.addressService.getCitySuggestions(\r\n query,\r\n this.model.zipAndCity,\r\n this.model.streetAndHousenumber,\r\n )\r\n : [];\r\n },\r\n async getStreetSuggestions(query: string): Promise {\r\n return this.model.country.value === 'deu'\r\n ? this.addressService.getStreetSuggestions(\r\n query,\r\n this.model.zipAndCity,\r\n )\r\n : [];\r\n },\r\n handleZipBlur() {\r\n this.resetSuggestions();\r\n\r\n this.getZipSuggestions(this.model.zipAndCity.zip.value ?? '').then(\r\n () => {\r\n this.model.zipAndCity.city.value = this.addressService.setCity();\r\n },\r\n );\r\n },\r\n resetSuggestions() {\r\n this.addressService.clearSuggestionFields(\r\n this.clearableSuggestionFields,\r\n );\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OwnerFormGroup.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OwnerFormGroup.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./OwnerFormGroup.vue?vue&type=template&id=7ff11fa4&\"\nimport script from \"./OwnerFormGroup.vue?vue&type=script&lang=ts&\"\nexport * from \"./OwnerFormGroup.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport FunctionalityButton, {\r\n FunctionalityButtonValueType,\r\n} from '@/components/molecules/functionalityButton/FunctionalityButton.vue';\r\nimport OwnerFormGroup from '@/components/organisms/ownerFormGroup/OwnerFormGroup.vue';\r\nimport type { OwnerFormGroup as OwnerFormGroupType } from '@/types/forms/formGroups/ownerFormGroup';\r\nimport { getFormInputMixin } from '@/mixins/formInputMixin';\r\nimport type { OwnerFormListType } from '@/types/forms/formGroups/ownerFormList';\r\nimport type { OwnerFormListContent } from '@/api/interfaces/content/form/steps/propertyOwnerFormStepContent';\r\n\r\nexport default getFormInputMixin<\r\n OwnerFormListType,\r\n OwnerFormListContent\r\n>().extend({\r\n name: 'OwnerFormList',\r\n components: {\r\n FunctionalityButton,\r\n OwnerFormGroup,\r\n },\r\n data() {\r\n return {\r\n functionalityButtonValue: 'add' as FunctionalityButtonValueType,\r\n };\r\n },\r\n methods: {\r\n handleFunctionalityButtonClick(\r\n value: FunctionalityButtonValueType,\r\n ): void {\r\n if (value === 'add') {\r\n this.model.createItem();\r\n }\r\n },\r\n handleOwnerFunctionalityButtonClick(\r\n value: FunctionalityButtonValueType,\r\n owner: OwnerFormGroupType,\r\n ): void {\r\n if (value === 'remove') {\r\n this.model.removeItem(owner);\r\n }\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OwnerFormList.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OwnerFormList.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./OwnerFormList.vue?vue&type=template&id=630e90d1&\"\nimport script from \"./OwnerFormList.vue?vue&type=script&lang=ts&\"\nexport * from \"./OwnerFormList.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { PropertyOwnerFormStepContent } from '@/api/interfaces/content/form/steps/propertyOwnerFormStepContent';\r\nimport { getFormStepMixin } from '@/mixins/formStepMixin';\r\nimport FormField from '@/components/molecules/formField/FormField.vue';\r\nimport ButtonSpacer from '@/components/molecules/buttonSpacer/ButtonSpacer.vue';\r\nimport OwnerFormList from '@/components/organisms/ownerFormList/OwnerFormList.vue';\r\nimport FormBooleanCheckbox from '@/components/molecules/formBooleanCheckbox/FormBooleanCheckbox.vue';\r\nimport type { PropertyOwnerFormStep } from '@/types/forms/formSteps/propertyOwnerFormStep';\r\nimport { FormStepConfiguration } from '@/api/interfaces/configuration/form/base/formStepConfiguration';\r\n\r\nexport default getFormStepMixin<\r\n PropertyOwnerFormStep,\r\n PropertyOwnerFormStepContent,\r\n FormStepConfiguration\r\n>().extend({\r\n name: 'PropertyOwnerForm',\r\n components: {\r\n FormField,\r\n FormBooleanCheckbox,\r\n ButtonSpacer,\r\n OwnerFormList,\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PropertyOwnerForm.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PropertyOwnerForm.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PropertyOwnerForm.vue?vue&type=template&id=6704a2e2&\"\nimport script from \"./PropertyOwnerForm.vue?vue&type=script&lang=ts&\"\nexport * from \"./PropertyOwnerForm.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"container\",class:{ 'mb-4 md:mb-8 lg:mb-10 xl:mb-12': !_vm.showSummary }},[(!_vm.showSummary)?_c('FormTextBlock',{attrs:{\"model\":_vm.model.paymentRequirements,\"content\":_vm.content.paymentRequirements,\"show-info-icon\":\"\"}}):_vm._e(),_c('FormField',{staticClass:\"no-eeg-remuneration\",attrs:{\"model\":_vm.model.noEegRemuneration,\"content\":_vm.content.noEegRemuneration,\"validations\":_vm.validations.noEegRemuneration,\"align-field\":\"singleLine\",\"show-summary\":_vm.showSummary,\"summary-value\":_vm.model.noEegRemuneration.value}},[_c('FormBooleanCheckbox',{attrs:{\"model\":_vm.model.noEegRemuneration,\"content\":_vm.content.noEegRemuneration,\"validations\":_vm.validations.noEegRemuneration,\"show-info-icon\":\"\"}})],1),_c('FormField',{staticClass:\"reason-no-eeg-remuneration\",attrs:{\"model\":_vm.model.reasonNoEegRemuneration,\"content\":_vm.content.reasonNoEegRemuneration,\"validations\":_vm.validations.reasonNoEegRemuneration,\"align-field\":\"belowLabel\",\"show-summary\":_vm.showSummary,\"summary-value\":_vm.content.reasonNoEegRemuneration.options[\n _vm.model.reasonNoEegRemuneration.value\n ] &&\n _vm.content.reasonNoEegRemuneration.options[\n _vm.model.reasonNoEegRemuneration.value\n ].label,\"show-info-icon\":\"\"}},[_c('FormRadioGroup',{attrs:{\"model\":_vm.model.reasonNoEegRemuneration,\"content\":_vm.content.reasonNoEegRemuneration,\"validations\":_vm.validations.reasonNoEegRemuneration,\"orientation\":\"vertical\"}})],1),_c('FormField',{staticClass:\"explanation-no-eeg-remuneration\",attrs:{\"model\":_vm.model.explanationNoEegRemuneration,\"content\":_vm.content.explanationNoEegRemuneration,\"validations\":_vm.validations.explanationNoEegRemuneration,\"show-summary\":_vm.showSummary,\"summary-value\":_vm.model.explanationNoEegRemuneration.value}},[_c('FormInputMultiLineText',{attrs:{\"model\":_vm.model.explanationNoEegRemuneration,\"content\":_vm.content.explanationNoEegRemuneration,\"validations\":_vm.validations.explanationNoEegRemuneration}})],1),(!_vm.showSummary)?_c('FormTextBlock',{staticClass:\"no-eeg-remuneration-hint\",attrs:{\"model\":_vm.model.noEegRemunerationHint,\"content\":_vm.content.noEegRemunerationHint}}):_vm._e(),_c('FormField',{staticClass:\"plant-sales-method-assignment\",attrs:{\"model\":_vm.model.plantSalesMethodAssignment,\"content\":_vm.content.plantSalesMethodAssignment,\"validations\":_vm.validations.plantSalesMethodAssignment,\"align-field\":\"belowLabel\",\"show-summary\":_vm.showSummary,\"summary-value\":_vm.content.plantSalesMethodAssignment.options[\n _vm.model.plantSalesMethodAssignment.value\n ] &&\n _vm.content.plantSalesMethodAssignment.options[\n _vm.model.plantSalesMethodAssignment.value\n ].label,\"show-info-icon\":\"\"}},[_c('FormRadioGroup',{attrs:{\"model\":_vm.model.plantSalesMethodAssignment,\"content\":_vm.content.plantSalesMethodAssignment,\"validations\":_vm.validations.plantSalesMethodAssignment,\"orientation\":\"vertical\"}})],1),_c('FormField',{attrs:{\"model\":_vm.model.tax,\"content\":_vm.content.tax,\"validations\":_vm.validations.tax,\"align-field\":\"belowLabel\",\"show-summary\":_vm.showSummary,\"summary-value\":_vm.model.tax.value\n ? _vm.content.tax.options[_vm.model.tax.value].label\n : '-',\"show-info-icon\":\"\"}},[_c('FormRadioGroup',{attrs:{\"model\":_vm.model.tax,\"content\":_vm.content.tax,\"validations\":_vm.validations.tax,\"orientation\":\"vertical\",\"show-info-icon\":\"\"}})],1),(!_vm.showSummary)?_c('FormTextBlock',{staticClass:\"small-pV-tax-advisor-hint\",attrs:{\"model\":_vm.model.smallPVTaxAdvisorHint,\"content\":_vm.content.smallPVTaxAdvisorHint}}):_vm._e(),(!_vm.showSummary)?_c('FormTextBlock',{staticClass:\"matching-tax-iD-hint\",attrs:{\"model\":_vm.model.matchingTaxIDHint,\"content\":_vm.content.matchingTaxIDHint}}):_vm._e(),_c('FormField',{staticClass:\"no-financial-distress\",attrs:{\"model\":_vm.model.noFinancialDistress,\"content\":_vm.content.noFinancialDistress,\"validations\":_vm.validations.noFinancialDistress,\"align-field\":\"singleLine\",\"show-summary\":_vm.showSummary,\"summary-value\":_vm.model.noFinancialDistress.value}},[_c('FormBooleanCheckbox',{attrs:{\"model\":_vm.model.noFinancialDistress,\"content\":_vm.content.noFinancialDistress,\"validations\":_vm.validations.noFinancialDistress,\"show-info-icon\":\"\"}})],1),_c('FormField',{staticClass:\"no-pending-eu-recovery-claims\",attrs:{\"model\":_vm.model.noPendingEURecoveryClaims,\"content\":_vm.content.noPendingEURecoveryClaims,\"validations\":_vm.validations.noPendingEURecoveryClaims,\"align-field\":\"singleLine\",\"show-summary\":_vm.showSummary,\"summary-value\":_vm.model.noPendingEURecoveryClaims.value}},[_c('FormBooleanCheckbox',{attrs:{\"model\":_vm.model.noPendingEURecoveryClaims,\"content\":_vm.content.noPendingEURecoveryClaims,\"validations\":_vm.validations.noPendingEURecoveryClaims,\"show-info-icon\":\"\"}})],1),_c('FormField',{staticClass:\"tax-number-will-follow\",attrs:{\"model\":_vm.model.taxNumberWillFollow,\"content\":_vm.content.taxNumberWillFollow,\"validations\":_vm.validations.taxNumberWillFollow,\"align-field\":\"singleLine\",\"show-summary\":_vm.showSummary,\"summary-value\":_vm.model.taxNumberWillFollow.value}},[_c('FormBooleanCheckbox',{attrs:{\"model\":_vm.model.taxNumberWillFollow,\"content\":_vm.content.taxNumberWillFollow,\"validations\":_vm.validations.taxNumberWillFollow}})],1),_c('FormField',{staticClass:\"tax-number\",attrs:{\"model\":_vm.model.taxNumber,\"content\":_vm.content.taxNumber,\"validations\":_vm.validations.taxNumber,\"show-summary\":_vm.showSummary,\"summary-value\":_vm.model.taxNumber.value}},[_c('FormInputText',{attrs:{\"model\":_vm.model.taxNumber,\"content\":_vm.content.taxNumber,\"validations\":_vm.validations.taxNumber,\"show-info-icon\":\"\"}})],1),(!_vm.showSummary)?_c('FormTextBlock',{staticClass:\"direct-debit-mandate\",attrs:{\"model\":_vm.model.directDebitMandate,\"content\":_vm.content.directDebitMandate}}):_vm._e(),_c('FormField',{staticClass:\"iban\",attrs:{\"model\":_vm.model.iban,\"content\":_vm.content.iban,\"validations\":_vm.validations.iban,\"show-summary\":_vm.showSummary,\"summary-value\":_vm.model.iban.value}},[_c('FormInputText',{attrs:{\"model\":_vm.model.iban,\"content\":_vm.content.iban,\"validations\":_vm.validations.iban}})],1),_c('FormField',{staticClass:\"name-and-domicile-credit-institution\",attrs:{\"model\":_vm.model.nameAndDomicileCreditInstitution,\"content\":_vm.content.nameAndDomicileCreditInstitution,\"validations\":_vm.validations.nameAndDomicileCreditInstitution,\"show-summary\":_vm.showSummary,\"summary-value\":_vm.model.nameAndDomicileCreditInstitution.value}},[_c('FormInputText',{attrs:{\"model\":_vm.model.nameAndDomicileCreditInstitution,\"content\":_vm.content.nameAndDomicileCreditInstitution,\"validations\":_vm.validations.nameAndDomicileCreditInstitution}})],1),_c('FormField',{staticClass:\"date\",attrs:{\"model\":_vm.model.date,\"content\":_vm.content.date,\"validations\":_vm.validations.date,\"show-summary\":_vm.showSummary,\"summary-value\":_vm.model.date.value}},[_c('DatePicker',{attrs:{\"model\":_vm.model.date,\"content\":_vm.content.date,\"validations\":_vm.validations.date,\"show-info-icon\":\"\"}})],1),_c('FormField',{staticClass:\"account-owner-name\",attrs:{\"model\":_vm.model.accountOwnerName,\"content\":_vm.content.accountOwnerName,\"validations\":_vm.validations.accountOwnerName,\"show-summary\":_vm.showSummary,\"summary-value\":_vm.model.accountOwnerName.value}},[_c('FormInputText',{attrs:{\"model\":_vm.model.accountOwnerName,\"content\":_vm.content.accountOwnerName,\"validations\":_vm.validations.accountOwnerName}})],1),(!_vm.showSummary)?_c('ButtonSpacer',{attrs:{\"align\":\"right\",\"content\":_vm.content,\"button-text\":_vm.content.buttonNext.text,\"show-debug-fill-button\":_vm.showDebugFillButton},on:{\"button-click\":_vm.validateAndSubmit,\"debug-fill-button-click\":_vm.debugFillSubmit}}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { BillingFormStepContent } from '@/api/interfaces/content/form/steps/billingFormStepContent';\r\nimport { getFormStepMixin } from '@/mixins/formStepMixin';\r\nimport FormTextBlock from '@/components/molecules/formTextBlock/FormTextBlock.vue';\r\nimport FormField from '@/components/molecules/formField/FormField.vue';\r\nimport DatePicker from '@/components/molecules/datePicker/DatePicker.vue';\r\nimport FormInputText from '@/components/atoms/formInputText/FormInputText.vue';\r\nimport FormInputMultiLineText from '@/components/atoms/formInputMultiLineText/FormInputMultiLineText.vue';\r\nimport FormRadioGroup from '@/components/molecules/formRadioGroup/FormRadioGroup.vue';\r\nimport FormBooleanCheckbox from '@/components/molecules/formBooleanCheckbox/FormBooleanCheckbox.vue';\r\nimport ButtonSpacer from '@/components/molecules/buttonSpacer/ButtonSpacer.vue';\r\nimport { BillingFormStep } from '@/types/forms/formSteps/billingFormStep';\r\nimport { FormStepConfiguration } from '@/api/interfaces/configuration/form/base/formStepConfiguration';\r\n\r\nexport default getFormStepMixin<\r\n BillingFormStep,\r\n BillingFormStepContent,\r\n FormStepConfiguration\r\n>().extend({\r\n name: 'BillingForm',\r\n components: {\r\n FormTextBlock,\r\n FormField,\r\n DatePicker,\r\n FormInputText,\r\n FormInputMultiLineText,\r\n FormRadioGroup,\r\n FormBooleanCheckbox,\r\n ButtonSpacer,\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BillingForm.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BillingForm.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BillingForm.vue?vue&type=template&id=0d115ffa&\"\nimport script from \"./BillingForm.vue?vue&type=script&lang=ts&\"\nexport * from \"./BillingForm.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"container\",class:{ 'mb-4 md:mb-8 lg:mb-10 xl:mb-12': !_vm.showSummary }},[_c('GeneratorFormGroup',{staticClass:\"generator-form-group\",attrs:{\"model\":_vm.model.generator,\"content\":_vm.content,\"configuration\":_vm.configuration,\"validations\":_vm.validations.generator,\"application-id\":_vm.formModel.applicationId,\"show-summary\":_vm.showSummary}}),_c('PhotovoltaicFormGroup',{staticClass:\"photovoltaic-form-group\",attrs:{\"model\":_vm.model.photovoltaic,\"content\":_vm.content,\"configuration\":_vm.configuration,\"validations\":_vm.validations.photovoltaic,\"application-id\":_vm.formModel.applicationId,\"show-summary\":_vm.showSummary}}),(_vm.isPv)?_c('FormTextBlock',{staticClass:\"overall-nominal-power-not-matching-total-plant-performance-value-type-warning text-error\",attrs:{\"model\":_vm.model.overallNominalPowerNotMatchingTotalPlantPerformanceValueTypeWarning,\"content\":_vm.content.overallNominalPowerNotMatchingTotalPlantPerformanceValueTypeWarning}}):_vm._e(),(_vm.isPv)?_c('InverterFormGroup',{staticClass:\"inverter-form-group\",attrs:{\"model\":_vm.model.inverter,\"content\":_vm.content,\"configuration\":_vm.configuration,\"validations\":_vm.validations.inverter,\"application-id\":_vm.formModel.applicationId,\"application-type\":_vm.formModel.applicationType,\"show-summary\":_vm.showSummary}}):_vm._e(),_c('StorageFormGroup',{staticClass:\"storage-form-group\",attrs:{\"model\":_vm.model.storage,\"content\":_vm.content,\"configuration\":_vm.configuration,\"validations\":_vm.validations.storage,\"application-id\":_vm.formModel.applicationId,\"show-summary\":_vm.showSummary}}),(!_vm.isPv)?_c('FormTextBlock',{staticClass:\"overall-nominal-power-not-matching-total-plant-performance-value-type-warning text-error\",attrs:{\"model\":_vm.model.overallNominalPowerNotMatchingTotalPlantPerformanceValueTypeWarning,\"content\":_vm.content.overallNominalPowerNotMatchingTotalPlantPerformanceValueTypeWarning}}):_vm._e(),(_vm.isStorage && !_vm.isPvAndStorageLte30)?_c('InverterFormGroup',{staticClass:\"inverter-form-group\",attrs:{\"model\":_vm.model.inverter,\"content\":_vm.content,\"configuration\":_vm.configuration,\"validations\":_vm.validations.inverter,\"application-id\":_vm.formModel.applicationId,\"application-type\":_vm.formModel.applicationType,\"show-summary\":_vm.showSummary}}):_vm._e(),_c('FormField',{staticClass:\"storage-has-separate-inverter\",attrs:{\"model\":_vm.model.storageHasSeparateInverter,\"content\":_vm.content.storageHasSeparateInverter,\"validations\":_vm.validations.storageHasSeparateInverter,\"align-field\":\"singleLine\",\"show-summary\":_vm.showSummary,\"summary-value\":_vm.model.storageHasSeparateInverter.value}},[_c('FormBooleanCheckbox',{attrs:{\"model\":_vm.model.storageHasSeparateInverter,\"content\":_vm.content.storageHasSeparateInverter,\"validations\":_vm.validations.storageHasSeparateInverter}})],1),_c('InverterFormGroup',{staticClass:\"inverter-storage-form-group\",attrs:{\"model\":_vm.model.inverterStorage,\"content\":_vm.content,\"configuration\":_vm.configuration,\"validations\":_vm.validations.inverterStorage,\"application-id\":_vm.formModel.applicationId,\"application-type\":_vm.formModel.applicationType,\"show-summary\":_vm.showSummary}}),_c('FormField',{staticClass:\"certificate-hint\",attrs:{\"model\":_vm.model.certificateHint,\"content\":_vm.content.certificateHint,\"validations\":_vm.validations.certificateHint,\"align-field\":\"singleLine\",\"show-summary\":_vm.showSummary,\"summary-value\":_vm.model.certificateHint.value}},[_c('FormBooleanCheckbox',{attrs:{\"model\":_vm.model.certificateHint,\"content\":_vm.content.certificateHint,\"validations\":_vm.validations.certificateHint}})],1),(!_vm.showSummary)?_c('ButtonSpacer',{attrs:{\"align\":\"right\",\"content\":_vm.content,\"button-text\":_vm.content.buttonNext.text,\"show-debug-fill-button\":_vm.showDebugFillButton},on:{\"button-click\":_vm.validateAndSubmit,\"debug-fill-button-click\":_vm.debugFillSubmit}}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.model.disabled)?_c('div',[_c('FormTextBlock',{staticClass:\"pv-headline font-normal\",class:{\n 'text-lg my-5': _vm.showSummary,\n 'text-xl lg:text-2xl xl:text-2xl': !_vm.showSummary,\n },attrs:{\"model\":_vm.model.pvHeadline,\"content\":_vm.content.pvHeadline}}),_c('PhotovoltaicModuleFormList',{staticClass:\"photovoltaic-module-form-list\",attrs:{\"model\":_vm.model.pvModules,\"content\":_vm.content,\"validations\":_vm.validations.pvModules,\"configuration\":_vm.configuration,\"application-id\":_vm.applicationId,\"show-summary\":_vm.showSummary}}),_c('FormField',{staticClass:\"pv-overall-nominal-power\",attrs:{\"model\":_vm.model.pvOverallNominalPower,\"content\":_vm.content.pvOverallNominalPower,\"validations\":_vm.validations.pvOverallNominalPower,\"show-summary\":_vm.showSummary,\"summary-value\":_vm.overallNominalPowerDisplayValue}},[_c('span',{staticClass:\"pv-overall-nominal-power-display\"},[_vm._v(_vm._s(_vm.overallNominalPowerDisplayValue))])]),_c('FormTextBlock',{staticClass:\"pv-discharge-power-30 text-error\",attrs:{\"model\":_vm.model.pvTotalPower30,\"content\":_vm.content.pvTotalPower30}})],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { getFormInputMixin } from '@/mixins/formInputMixin';\r\nimport FormField from '@/components/molecules/formField/FormField.vue';\r\nimport FormTextBlock from '@/components/molecules/formTextBlock/FormTextBlock.vue';\r\nimport PhotovoltaicModuleFormList from '@/components/organisms/plantPerformance/photovoltaicModuleFormList/PhotovoltaicModuleFormList.vue';\r\nimport { PhotovoltaicFormGroup } from '@/types/forms/formGroups/plantPerformance/photovoltaic/photovoltaicFormGroup';\r\nimport type { PhotovoltaicFormGroupContent } from '@/api/interfaces/content/form/steps/plantPerformance/photovoltaicContent';\r\nimport type { PhotovoltaicModuleFormList as PhotovoltaicModuleFormListType } from '@/types/forms/formGroups/plantPerformance/photovoltaic/photovoltaicModuleFormList';\r\nimport { interpolate } from '@/services/interpolationService';\r\nimport { formatGermanNumber } from '@/utilities/germanFormats';\r\nimport { roundToDecimals } from '@/utilities/math';\r\n\r\nexport default getFormInputMixin<\r\n PhotovoltaicFormGroup,\r\n PhotovoltaicFormGroupContent\r\n>().extend({\r\n name: 'PhotovoltaicFormGroup',\r\n props: {\r\n applicationId: {\r\n type: String,\r\n required: true,\r\n },\r\n },\r\n components: {\r\n FormField,\r\n FormTextBlock,\r\n PhotovoltaicModuleFormList,\r\n },\r\n computed: {\r\n overallNominalPowerDisplayValue(): string {\r\n const value = this.model.pvOverallNominalPower.value ?? 0;\r\n return interpolate(this.content.pvOverallNominalPower.unit, {\r\n value: formatGermanNumber(value, {\r\n decimals: 3,\r\n thousandsSeparator: true,\r\n }),\r\n });\r\n },\r\n },\r\n watch: {\r\n 'model.pvModules': {\r\n handler(newValue: PhotovoltaicModuleFormListType) {\r\n let overallNominalPower = 0;\r\n if (newValue != null) {\r\n overallNominalPower = roundToDecimals(\r\n newValue.items.reduce(\r\n (sum, item) =>\r\n (sum += item.pvTotalNominalPower.value ?? 0),\r\n 0,\r\n ) / 1000,\r\n );\r\n }\r\n this.setOverallNominalPower(overallNominalPower);\r\n },\r\n deep: true,\r\n immediate: true,\r\n },\r\n },\r\n methods: {\r\n setOverallNominalPower(overallNominalPower: number): void {\r\n this.model.pvOverallNominalPower.value = overallNominalPower;\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PhotovoltaicFormGroup.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PhotovoltaicFormGroup.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PhotovoltaicFormGroup.vue?vue&type=template&id=b962faf4&\"\nimport script from \"./PhotovoltaicFormGroup.vue?vue&type=script&lang=ts&\"\nexport * from \"./PhotovoltaicFormGroup.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.model.disabled)?_c('div',[_c('FormTextBlock',{staticClass:\"storage-headline font-normal\",class:{\n 'text-lg my-5': _vm.showSummary,\n 'text-xl lg:text-2xl xl:text-2xl': !_vm.showSummary,\n },attrs:{\"model\":_vm.model.storageHeadline,\"content\":_vm.content.storageHeadline}}),_c('StorageModuleFormList',{staticClass:\"storage-module-form-list\",attrs:{\"model\":_vm.model.storageModules,\"content\":_vm.content,\"validations\":_vm.validations.storageModules,\"configuration\":_vm.configuration,\"application-id\":_vm.applicationId,\"show-summary\":_vm.showSummary}}),_c('FormField',{staticClass:\"storage-overall-discharge-power\",attrs:{\"model\":_vm.model.storageOverallDischargePower,\"content\":_vm.content.storageOverallDischargePower,\"validations\":_vm.validations.storageOverallDischargePower,\"show-summary\":_vm.showSummary,\"summary-value\":_vm.overallDischargePowerDisplayValue}},[_c('span',{staticClass:\"storage-overall-discharge-power-display\"},[_vm._v(\" \"+_vm._s(_vm.overallDischargePowerDisplayValue)+\" \")])]),_c('FormField',{staticClass:\"storage-overall-storage-capacity\",attrs:{\"model\":_vm.model.storageOverallStorageCapacity,\"content\":_vm.content.storageOverallStorageCapacity,\"validations\":_vm.validations.storageOverallStorageCapacity,\"show-summary\":_vm.showSummary,\"summary-value\":_vm.overallStorageCapacityDisplayValue}},[_c('span',{staticClass:\"storage-overall-storage-capacity-display\"},[_vm._v(\" \"+_vm._s(_vm.overallStorageCapacityDisplayValue)+\" \")])]),_c('FormTextBlock',{staticClass:\"storage-discharge-power-30 text-error\",attrs:{\"model\":_vm.model.storageTotalPower30,\"content\":_vm.content.storageTotalPower30}})],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_vm._l((_vm.model.items),function(storageModule,index){return [_c('StorageModuleFormGroup',{key:index,staticClass:\"storage-module-form-group\",attrs:{\"model\":storageModule,\"content\":_vm.content,\"configuration\":_vm.configuration,\"validations\":_vm.validations[index],\"application-id\":_vm.applicationId,\"show-remove-button\":_vm.canRemoveItem,\"show-summary\":_vm.showSummary},on:{\"functionality-button-click\":function($event){return _vm.handleModuleFunctionalityButtonClick($event, storageModule)}}})]}),(!_vm.showSummary && _vm.canAddItem)?_c('FunctionalityButton',{staticClass:\"storage-add-button\",attrs:{\"content\":_vm.content.storageAddRemoveModule,\"value\":_vm.functionalityButtonValue},on:{\"click\":function($event){return _vm.handleFunctionalityButtonClick($event)}}}):_vm._e()],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.model.disabled)?_c('div',[_c('FormField',{staticClass:\"storage-manufacturer-storage-type\",attrs:{\"model\":_vm.model.storageManufacturerAndStorageType,\"content\":_vm.content.storageManufacturerAndStorageType,\"validations\":_vm.validationProps.storageManufacturerAndStorageType,\"show-summary\":_vm.showSummary,\"summary-value\":_vm._f(\"concat\")([\n _vm.model.storageManufacturerAndStorageType.manufacturer.value,\n ', ',\n _vm.model.storageManufacturerAndStorageType.storageType.value ])}},[_c('div',{staticClass:\"flex\"},[_c('div',{staticClass:\"w-1/2 mr-4 md:mr-10\"},[_c('FormInputText',{attrs:{\"model\":_vm.model.storageManufacturerAndStorageType.manufacturer,\"content\":_vm.content.storageManufacturerAndStorageType\n .manufacturer,\"validations\":_vm.storageManufacturerAndStorageTypeValidations.manufacturer}})],1),_c('div',{staticClass:\"w-1/2\"},[_c('FormInputText',{attrs:{\"model\":_vm.model.storageManufacturerAndStorageType.storageType,\"content\":_vm.content.storageManufacturerAndStorageType\n .storageType,\"validations\":_vm.storageManufacturerAndStorageTypeValidations.storageType}})],1)])]),_c('FormField',{staticClass:\"storage-quantity\",attrs:{\"model\":_vm.model.storageQuantity,\"content\":_vm.content.storageQuantity,\"validations\":_vm.validationProps.storageQuantity,\"show-summary\":_vm.showSummary}},[_c('div',{staticClass:\"flex\"},[_c('div',{staticClass:\"w-1/2 mr-4 md:mr-10\"},[_c('FormInputCount',{attrs:{\"model\":_vm.model.storageQuantity,\"content\":_vm.content.storageQuantity,\"validations\":_vm.validationProps.storageQuantity}})],1),_c('div',{staticClass:\"w-1/2\"})])]),_c('FormField',{staticClass:\"storage-discharge-power-and-storage-capacity\",attrs:{\"model\":_vm.model.storageDischargePowerAndStorageCapacity,\"content\":_vm.content.storageDischargePowerAndStorageCapacity,\"validations\":_vm.validationProps.storageDischargePowerAndStorageCapacity,\"show-summary\":_vm.showSummary,\"summary-value\":_vm._f(\"concat\")([\n _vm.model.storageDischargePowerAndStorageCapacity.dischargePower\n .value,\n ' ',\n _vm.content.storageDischargePowerAndStorageCapacity\n .dischargePower.unit,\n ', ',\n _vm.model.storageDischargePowerAndStorageCapacity\n .storageCapacity.value,\n ' ',\n _vm.content.storageDischargePowerAndStorageCapacity\n .storageCapacity.unit ])}},[_c('div',{staticClass:\"flex\"},[_c('div',{staticClass:\"w-1/2 mr-4 md:mr-10\"},[_c('FormInputText',{attrs:{\"model\":_vm.model.storageDischargePowerAndStorageCapacity\n .dischargePower,\"content\":_vm.content.storageDischargePowerAndStorageCapacity\n .dischargePower,\"validations\":_vm.storageDischargePowerAndStorageCapacityValidations.dischargePower,\"align-text\":\"right\"}})],1),_c('div',{staticClass:\"w-1/2\"},[_c('FormInputText',{attrs:{\"model\":_vm.model.storageDischargePowerAndStorageCapacity\n .storageCapacity,\"content\":_vm.content.storageDischargePowerAndStorageCapacity\n .storageCapacity,\"validations\":_vm.storageDischargePowerAndStorageCapacityValidations.storageCapacity,\"align-text\":\"right\"}})],1)])]),_c('FormTextBlock',{staticClass:\"storage-Memory-Expansion\",attrs:{\"model\":_vm.model.storageMemoryExpansion,\"content\":_vm.content.storageMemoryExpansion,\"validations\":_vm.validationProps.storageMemoryExpansion}}),_c('FormField',{staticClass:\"storage-total-discharge-power\",attrs:{\"model\":_vm.model.storageTotalDischargePower,\"content\":_vm.content.storageTotalDischargePower,\"validations\":_vm.validationProps.storageTotalDischargePower,\"show-summary\":_vm.showSummary,\"summary-value\":_vm.totalDischargePowerDisplayValue}},[_c('span',{staticClass:\"storage-total-discharge-power-display\"},[_vm._v(\" \"+_vm._s(_vm.totalDischargePowerDisplayValue)+\" \")])]),_c('FormField',{staticClass:\"storage-total-storage-capacity\",attrs:{\"model\":_vm.model.storageTotalStorageCapacity,\"content\":_vm.content.storageTotalStorageCapacity,\"validations\":_vm.validationProps.storageTotalStorageCapacity,\"show-summary\":_vm.showSummary,\"summary-value\":_vm.totalStorageCapacityDisplayValue}},[_c('span',{staticClass:\"storage-total-storage-capacity-display\"},[_vm._v(\" \"+_vm._s(_vm.totalStorageCapacityDisplayValue)+\" \")])]),(!_vm.showSummary && _vm.showRemoveButton)?_c('FunctionalityButton',{staticClass:\"storage-remove-button\",attrs:{\"content\":_vm.content.storageAddRemoveModule,\"value\":_vm.functionalityButtonValue},on:{\"click\":function($event){return _vm.$emit('functionality-button-click', $event)}}}):_vm._e(),(_vm.showSummary)?_c('div',{staticClass:\"h-4\"}):_vm._e()],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport FormInputCount from '@/components/molecules/formInputCount/FormInputCount.vue';\r\nimport FormInputText from '@/components/atoms/formInputText/FormInputText.vue';\r\nimport FormField from '@/components/molecules/formField/FormField.vue';\r\nimport FormFileUpload from '@/components/molecules/formFileUpload/FormFileUpload.vue';\r\nimport FunctionalityButton, {\r\n FunctionalityButtonValueType,\r\n} from '@/components/molecules/functionalityButton/FunctionalityButton.vue';\r\nimport FormTextBlock from '@/components/molecules/formTextBlock/FormTextBlock.vue';\r\nimport { getFormInputMixin } from '@/mixins/formInputMixin';\r\nimport { StorageModuleFormGroup } from '@/types/forms/formGroups/plantPerformance/storage/storageModuleFormGroup';\r\nimport { StorageModuleFormGroupContent } from '@/api/interfaces/content/form/steps/plantPerformance/storageContent';\r\nimport type { ValidationsCommonType } from '@/services/form/validations';\r\nimport { number } from '@/validators/number';\r\nimport { interpolate } from '@/services/interpolationService';\r\nimport {\r\n formatGermanNumber,\r\n parseGermanFloat,\r\n} from '@/utilities/germanFormats';\r\nimport { roundToDecimals } from '@/utilities/math';\r\n\r\nexport default getFormInputMixin<\r\n StorageModuleFormGroup,\r\n StorageModuleFormGroupContent\r\n>().extend({\r\n name: 'StorageModuleFormGroup',\r\n components: {\r\n FormInputCount,\r\n FormInputText,\r\n FormField,\r\n FormFileUpload,\r\n FunctionalityButton,\r\n FormTextBlock,\r\n },\r\n props: {\r\n applicationId: {\r\n type: String,\r\n required: true,\r\n },\r\n showRemoveButton: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n },\r\n data() {\r\n return {\r\n functionalityButtonValue: 'remove' as FunctionalityButtonValueType,\r\n };\r\n },\r\n computed: {\r\n storageManufacturerAndStorageTypeValidations():\r\n | ValidationsCommonType\r\n | unknown {\r\n return this.validations?.storageManufacturerAndStorageType ?? {};\r\n },\r\n storageDischargePowerAndStorageCapacityValidations():\r\n | ValidationsCommonType\r\n | unknown {\r\n return (\r\n this.validations?.storageDischargePowerAndStorageCapacity ?? {}\r\n );\r\n },\r\n totalDischargePowerDisplayValue(): string {\r\n const value = this.model.storageTotalDischargePower.value ?? 0;\r\n\r\n return interpolate(this.content.storageTotalDischargePower.unit, {\r\n value: formatGermanNumber(value, {\r\n decimals: 2,\r\n thousandsSeparator: true,\r\n }),\r\n });\r\n },\r\n totalStorageCapacityDisplayValue(): string {\r\n const value = this.model.storageTotalStorageCapacity.value ?? 0;\r\n\r\n return interpolate(this.content.storageTotalStorageCapacity.unit, {\r\n value: formatGermanNumber(value, {\r\n decimals: 2,\r\n thousandsSeparator: true,\r\n }),\r\n });\r\n },\r\n },\r\n watch: {\r\n 'model.storageQuantity.value': {\r\n handler(newValue: number | null) {\r\n this.setTotalDischargePower(\r\n newValue,\r\n this.model.storageDischargePowerAndStorageCapacity\r\n .dischargePower.value,\r\n );\r\n this.setTotalStorageCapacity(\r\n newValue,\r\n this.model.storageDischargePowerAndStorageCapacity\r\n .storageCapacity.value,\r\n );\r\n },\r\n immediate: true,\r\n },\r\n 'model.storageDischargePowerAndStorageCapacity.dischargePower.value': {\r\n handler(newValue: string | null) {\r\n this.setTotalDischargePower(\r\n this.model.storageQuantity.value,\r\n newValue,\r\n );\r\n },\r\n immediate: true,\r\n },\r\n 'model.storageDischargePowerAndStorageCapacity.storageCapacity.value': {\r\n handler(newValue: string | null) {\r\n this.setTotalStorageCapacity(\r\n this.model.storageQuantity.value,\r\n newValue,\r\n );\r\n },\r\n immediate: true,\r\n },\r\n },\r\n methods: {\r\n setTotalDischargePower(\r\n rawQuantity: number | null,\r\n rawDischargePower: string | null,\r\n ): void {\r\n // quantity as number; default: 0\r\n let quantity = 0;\r\n if (rawQuantity != null) {\r\n quantity = number(rawQuantity) ? rawQuantity : 0;\r\n }\r\n\r\n // dischargePower as number; default: 0\r\n let dischargePower = 0;\r\n if (rawDischargePower != null) {\r\n const parsedDischargePower = parseGermanFloat(\r\n rawDischargePower,\r\n );\r\n\r\n dischargePower = number(parsedDischargePower)\r\n ? parsedDischargePower\r\n : 0;\r\n }\r\n\r\n this.model.storageTotalDischargePower.value = roundToDecimals(\r\n quantity * dischargePower,\r\n );\r\n },\r\n setTotalStorageCapacity(\r\n rawQuantity: number | null,\r\n rawStorageCapacity: string | null,\r\n ): void {\r\n // quantity as number; default: 0\r\n let quantity = 0;\r\n if (rawQuantity != null) {\r\n quantity = number(rawQuantity) ? rawQuantity : 0;\r\n }\r\n\r\n // storageCapacity as number; default: 0\r\n let storageCapacity = 0;\r\n if (rawStorageCapacity != null) {\r\n const parsedStorageCapacity = parseGermanFloat(\r\n rawStorageCapacity,\r\n );\r\n\r\n storageCapacity = number(parsedStorageCapacity)\r\n ? parsedStorageCapacity\r\n : 0;\r\n }\r\n\r\n this.model.storageTotalStorageCapacity.value = roundToDecimals(\r\n quantity * storageCapacity,\r\n );\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StorageModuleFormGroup.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StorageModuleFormGroup.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./StorageModuleFormGroup.vue?vue&type=template&id=3c58585c&\"\nimport script from \"./StorageModuleFormGroup.vue?vue&type=script&lang=ts&\"\nexport * from \"./StorageModuleFormGroup.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport FunctionalityButton, {\r\n FunctionalityButtonValueType,\r\n} from '@/components/molecules/functionalityButton/FunctionalityButton.vue';\r\nimport StorageModuleFormGroup from '@/components/organisms/plantPerformance/storageModuleFormGroup/StorageModuleFormGroup.vue';\r\nimport { getFormInputMixin } from '@/mixins/formInputMixin';\r\nimport type { StorageModuleFormList } from '@/types/forms/formGroups/plantPerformance/storage/storageModuleFormList';\r\nimport { StorageModuleFormListContent } from '@/api/interfaces/content/form/steps/plantPerformance/storageContent';\r\nimport type { StorageModuleFormGroup as StorageModuleFormGroupType } from '@/types/forms/formGroups/plantPerformance/storage/storageModuleFormGroup';\r\n\r\nexport default getFormInputMixin<\r\n StorageModuleFormList,\r\n StorageModuleFormListContent\r\n>().extend({\r\n name: 'StorageModuleFormList',\r\n components: {\r\n FunctionalityButton,\r\n StorageModuleFormGroup,\r\n },\r\n props: {\r\n applicationId: {\r\n type: String,\r\n required: true,\r\n },\r\n },\r\n data() {\r\n return {\r\n functionalityButtonValue: 'add' as FunctionalityButtonValueType,\r\n };\r\n },\r\n computed: {\r\n canAddItem(): boolean {\r\n return this.model.canAddItem();\r\n },\r\n canRemoveItem(): boolean {\r\n return this.model.canRemoveItem();\r\n },\r\n },\r\n methods: {\r\n handleFunctionalityButtonClick(): void {\r\n this.model.createItem();\r\n },\r\n handleModuleFunctionalityButtonClick(\r\n value: FunctionalityButtonValueType,\r\n storageModule: StorageModuleFormGroupType,\r\n ): void {\r\n if (value === 'remove') {\r\n this.model.removeItem(storageModule);\r\n }\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StorageModuleFormList.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StorageModuleFormList.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./StorageModuleFormList.vue?vue&type=template&id=71c909be&\"\nimport script from \"./StorageModuleFormList.vue?vue&type=script&lang=ts&\"\nexport * from \"./StorageModuleFormList.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { getFormInputMixin } from '@/mixins/formInputMixin';\r\nimport FormField from '@/components/molecules/formField/FormField.vue';\r\nimport FormTextBlock from '@/components/molecules/formTextBlock/FormTextBlock.vue';\r\nimport StorageModuleFormList from '@/components/organisms/plantPerformance/storageModuleFormList/StorageModuleFormList.vue';\r\nimport { StorageFormGroup } from '@/types/forms/formGroups/plantPerformance/storage/storageFormGroup';\r\nimport { StorageFormGroupContent } from '@/api/interfaces/content/form/steps/plantPerformance/storageContent';\r\nimport type { StorageModuleFormList as StorageModuleFormListType } from '@/types/forms/formGroups/plantPerformance/storage/storageModuleFormList';\r\nimport { interpolate } from '@/services/interpolationService';\r\nimport { formatGermanNumber } from '@/utilities/germanFormats';\r\nimport { roundToDecimals } from '@/utilities/math';\r\n\r\nexport default getFormInputMixin<\r\n StorageFormGroup,\r\n StorageFormGroupContent\r\n>().extend({\r\n name: 'StorageFormGroup',\r\n props: {\r\n applicationId: {\r\n type: String,\r\n required: true,\r\n },\r\n },\r\n components: {\r\n FormField,\r\n FormTextBlock,\r\n StorageModuleFormList,\r\n },\r\n computed: {\r\n overallDischargePowerDisplayValue(): string {\r\n const value = this.model.storageOverallDischargePower.value ?? 0;\r\n return interpolate(this.content.storageOverallDischargePower.unit, {\r\n value: formatGermanNumber(value, {\r\n decimals: 2,\r\n thousandsSeparator: true,\r\n }),\r\n });\r\n },\r\n\r\n overallStorageCapacityDisplayValue(): string {\r\n const value = this.model.storageOverallStorageCapacity.value ?? 0;\r\n return interpolate(\r\n this.content.storageOverallStorageCapacity.unit,\r\n {\r\n value: formatGermanNumber(value, {\r\n decimals: 2,\r\n thousandsSeparator: true,\r\n }),\r\n },\r\n );\r\n },\r\n },\r\n watch: {\r\n 'model.storageModules': {\r\n handler(newValue: StorageModuleFormListType) {\r\n let overallDischargePower = 0;\r\n if (newValue != null) {\r\n overallDischargePower = roundToDecimals(\r\n newValue.items.reduce(\r\n (sum, item) =>\r\n (sum +=\r\n item.storageTotalDischargePower.value ?? 0),\r\n 0,\r\n ),\r\n );\r\n }\r\n this.setOverallDischargePower(overallDischargePower);\r\n\r\n let overallStorageCapacity = 0;\r\n if (newValue != null) {\r\n overallStorageCapacity = roundToDecimals(\r\n newValue.items.reduce(\r\n (sum, item) =>\r\n (sum +=\r\n item.storageTotalStorageCapacity.value ??\r\n 0),\r\n 0,\r\n ),\r\n );\r\n }\r\n this.setOverallStorageCapacity(overallStorageCapacity);\r\n },\r\n deep: true,\r\n immediate: true,\r\n },\r\n },\r\n methods: {\r\n setOverallDischargePower(overallDischargePower: number): void {\r\n this.model.storageOverallDischargePower.value = overallDischargePower;\r\n },\r\n setOverallStorageCapacity(overallStorageCapacity: number): void {\r\n this.model.storageOverallStorageCapacity.value = overallStorageCapacity;\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StorageFormGroup.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StorageFormGroup.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./StorageFormGroup.vue?vue&type=template&id=696bbd85&\"\nimport script from \"./StorageFormGroup.vue?vue&type=script&lang=ts&\"\nexport * from \"./StorageFormGroup.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.model.disabled)?_c('div',[_c('FormTextBlock',{staticClass:\"inverter-headline font-normal\",class:{\n 'text-lg my-5': _vm.showSummary,\n 'text-xl lg:text-2xl xl:text-2xl': !_vm.showSummary,\n },attrs:{\"model\":_vm.model.inverterHeadline,\"content\":_vm.content.inverterHeadline}}),_c('InverterModuleFormList',{staticClass:\"inverter-module-form-list\",attrs:{\"model\":_vm.model.inverterModules,\"content\":_vm.content,\"validations\":_vm.validations.inverterModules,\"configuration\":_vm.configuration,\"application-id\":_vm.applicationId,\"application-type\":_vm.applicationType,\"show-summary\":_vm.showSummary,\"is-plugin-generating-plant\":_vm.isPluginGeneratingPlant}}),_c('FormFieldComponent',{staticClass:\"inverter-overall-active-power\",attrs:{\"model\":_vm.model.inverterOverallActivePower,\"content\":_vm.content.inverterOverallActivePower,\"validations\":_vm.validations.inverterOverallActivePower,\"show-summary\":_vm.showSummary,\"summary-value\":_vm.overallActivePowerDisplayValue}},[_c('span',{staticClass:\"inverter-overall-active-power-display\"},[_vm._v(_vm._s(_vm.overallActivePowerDisplayValue))])]),_c('FormTextBlock',{staticClass:\"inverter-overall-active-power-warning text-error\",attrs:{\"model\":_vm.model.inverterOverallActivePowerWarning,\"content\":_vm.content.inverterOverallActivePowerWarning}}),_c('FormFieldComponent',{staticClass:\"inverter-overall-apparent-power\",attrs:{\"model\":_vm.model.inverterOverallApparentPower,\"content\":_vm.content.inverterOverallApparentPower,\"validations\":_vm.validations.inverterOverallApparentPower,\"show-summary\":_vm.showSummary,\"summary-value\":_vm.overallApparentPowerDisplayValue}},[_c('span',{staticClass:\"inverter-overall-apparent-power-display\"},[_vm._v(_vm._s(_vm.overallApparentPowerDisplayValue))])])],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_vm._l((_vm.model.items),function(inverter,index){return [_c('InverterModuleFormGroup',{key:index,staticClass:\"inverter-module-form-group\",attrs:{\"model\":inverter,\"content\":_vm.content,\"configuration\":_vm.configuration,\"validations\":_vm.validations[index],\"application-id\":_vm.applicationId,\"application-type\":_vm.applicationType,\"show-remove-button\":_vm.canRemoveItem,\"show-summary\":_vm.showSummary},on:{\"functionality-button-click\":function($event){return _vm.handleModuleFunctionalityButtonClick($event, inverter)}}})]}),(!_vm.showSummary && _vm.canAddItem)?_c('FunctionalityButton',{staticClass:\"inverter-add-button\",attrs:{\"content\":_vm.content.inverterAddRemoveModule,\"value\":_vm.functionalityButtonValue},on:{\"click\":function($event){return _vm.handleFunctionalityButtonClick($event)}}}):_vm._e()],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('FormField',{staticClass:\"inverter-manufacturer-module-type\",attrs:{\"model\":_vm.model.inverterManufacturerAndModuleType,\"content\":_vm.content.inverterManufacturerAndModuleType,\"validations\":_vm.validationProps.inverterManufacturerAndModuleType,\"show-summary\":_vm.showSummary,\"summary-value\":_vm._f(\"concat\")([\n _vm.model.inverterManufacturerAndModuleType.manufacturer.value,\n ', ',\n _vm.model.inverterManufacturerAndModuleType.moduleType.value ])}},[_c('div',{staticClass:\"flex\"},[_c('div',{staticClass:\"w-1/2 mr-4 md:mr-10\"},[_c('FormInputText',{attrs:{\"model\":_vm.model.inverterManufacturerAndModuleType\n .manufacturerText,\"content\":_vm.content.inverterManufacturerAndModuleType\n .manufacturerText,\"validations\":_vm.inverterManufacturerAndModuleTypeValidations.manufacturerText}}),_c('FormSelect',{attrs:{\"model\":_vm.model.inverterManufacturerAndModuleType\n .manufacturerSelect,\"content\":_vm.content.inverterManufacturerAndModuleType\n .manufacturerSelect,\"validations\":_vm.inverterManufacturerAndModuleTypeValidations.manufacturerSelect,\"select-customized\":\"\",\"select-customized-show-search\":\"\"}})],1),_c('div',{staticClass:\"w-1/2\"},[_c('FormInputText',{attrs:{\"model\":_vm.model.inverterManufacturerAndModuleType\n .moduleTypeText,\"content\":_vm.content.inverterManufacturerAndModuleType\n .moduleTypeText,\"validations\":_vm.inverterManufacturerAndModuleTypeValidations.moduleTypeText}}),_c('FormSelect',{attrs:{\"model\":_vm.model.inverterManufacturerAndModuleType\n .moduleTypeSelect,\"content\":_vm.content.inverterManufacturerAndModuleType\n .moduleTypeSelect,\"validations\":_vm.inverterManufacturerAndModuleTypeValidations.moduleTypeSelect,\"select-customized\":\"\",\"select-customized-show-search\":\"\"}})],1)])]),_c('FormField',{staticClass:\"zerez-id-and-norm\",attrs:{\"model\":_vm.model.inverterZerezIdAndNorm,\"content\":_vm.content.inverterZerezIdAndNorm,\"validations\":_vm.validationProps.inverterZerezIdAndNorm,\"show-summary\":_vm.showSummary,\"summary-value\":_vm._f(\"concat\")([\n _vm.model.inverterZerezIdAndNorm.zerezId.value,\n ', ',\n _vm.model.inverterZerezIdAndNorm.normText.value ])}},[_c('div',{staticClass:\"flex\"},[_c('div',{staticClass:\"w-1/2 mr-4 md:mr-10\"},[_c('FormSelect',{attrs:{\"model\":_vm.model.inverterZerezIdAndNorm.zerezId,\"content\":_vm.content.inverterZerezIdAndNorm.zerezId,\"validations\":_vm.inverterZerezIdAndNormValidations.zerezId,\"select-customized\":\"\",\"select-customized-show-search\":\"\"}})],1),_c('div',{staticClass:\"w-1/2\"},[_c('FormInputText',{attrs:{\"model\":_vm.model.inverterZerezIdAndNorm.normText,\"content\":_vm.content.inverterZerezIdAndNorm.normText,\"validations\":_vm.inverterZerezIdAndNormValidations.normText,\"show-info-icon\":\"\"}})],1)])]),_c('FormField',{staticClass:\"inverter-manual-input-manufacturer-type-zerez-id\",attrs:{\"model\":_vm.model.inverterManualInputManufacturerTypeZerezId,\"content\":_vm.content.inverterManualInputManufacturerTypeZerezId,\"validations\":_vm.validationProps.inverterManualInputManufacturerTypeZerezId,\"align-field\":\"singleLine\",\"show-summary\":_vm.showSummary,\"summary-value\":_vm.model.inverterManualInputManufacturerTypeZerezId.value}},[_c('FormBooleanCheckbox',{attrs:{\"model\":_vm.model.inverterManualInputManufacturerTypeZerezId,\"content\":_vm.content.inverterManualInputManufacturerTypeZerezId,\"validations\":_vm.validationProps.inverterManualInputManufacturerTypeZerezId}})],1),_c('FormTextBlock',{staticClass:\"unit-certificate-invalid-for-installed-power text-error\",attrs:{\"model\":_vm.model.unitCertificateInvalidForInstalledPower,\"content\":_vm.content.unitCertificateInvalidForInstalledPower}}),_c('FormField',{staticClass:\"inverter-quantity\",attrs:{\"model\":_vm.model.inverterQuantity,\"content\":_vm.content.inverterQuantity,\"validations\":_vm.validationProps.inverterQuantity,\"show-summary\":_vm.showSummary,\"summary-value\":_vm.model.inverterQuantity.value}},[_c('div',{staticClass:\"flex\"},[_c('div',{staticClass:\"w-1/2 mr-4 md:mr-10\"},[_c('FormInputCount',{attrs:{\"model\":_vm.model.inverterQuantity,\"content\":_vm.content.inverterQuantity,\"validations\":_vm.validationProps.inverterQuantity}})],1),_c('div',{staticClass:\"w-1/2\"})])]),_c('FormField',{staticClass:\"inverter-active-power-apparent-power\",attrs:{\"model\":_vm.model.inverterActivePowerAndApparentPower,\"content\":_vm.content.inverterActivePowerAndApparentPower,\"validations\":_vm.validationProps.inverterActivePowerAndApparentPower,\"show-summary\":_vm.showSummary,\"summary-value\":_vm._f(\"concat\")([\n _vm.model.inverterActivePowerAndApparentPower.activePower.value,\n ' ',\n _vm.content.inverterActivePowerAndApparentPower.activePower\n .unit,\n ', ',\n _vm.model.inverterActivePowerAndApparentPower.apparentPower\n .value,\n ' ',\n _vm.content.inverterActivePowerAndApparentPower.apparentPower\n .unit ])}},[_c('div',{staticClass:\"flex\"},[_c('div',{staticClass:\"w-1/2 mr-4 md:mr-10\"},[_c('FormInputText',{attrs:{\"model\":_vm.model.inverterActivePowerAndApparentPower\n .activePower,\"content\":_vm.content.inverterActivePowerAndApparentPower\n .activePower,\"validations\":_vm.validationProps.inverterActivePowerAndApparentPower &&\n _vm.validationProps.inverterActivePowerAndApparentPower\n .activePower,\"align-text\":\"right\"}})],1),_c('div',{staticClass:\"w-1/2\"},[_c('FormInputText',{attrs:{\"model\":_vm.model.inverterActivePowerAndApparentPower\n .apparentPower,\"content\":_vm.content.inverterActivePowerAndApparentPower\n .apparentPower,\"validations\":_vm.validationProps.inverterActivePowerAndApparentPower &&\n _vm.validationProps.inverterActivePowerAndApparentPower\n .apparentPower,\"align-text\":\"right\"}})],1)])]),_c('FormField',{staticClass:\"inverter-total-active-power\",attrs:{\"model\":_vm.model.inverterTotalActivePower,\"content\":_vm.content.inverterTotalActivePower,\"validations\":_vm.validationProps.inverterTotalActivePower,\"show-summary\":_vm.showSummary,\"summary-value\":_vm.totalActivePowerDisplayValue}},[_c('span',{staticClass:\"inverter-total-active-power-display\"},[_vm._v(_vm._s(_vm.totalActivePowerDisplayValue))])]),_c('FormField',{staticClass:\"inverter-total-apparent-power\",attrs:{\"model\":_vm.model.inverterTotalApparentPower,\"content\":_vm.content.inverterTotalApparentPower,\"validations\":_vm.validationProps.inverterTotalApparentPower,\"show-summary\":_vm.showSummary,\"summary-value\":_vm.totalApparentPowerDisplayValue}},[_c('span',{staticClass:\"inverter-total-apparent-power-display\"},[_vm._v(_vm._s(_vm.totalApparentPowerDisplayValue))])]),(_vm.showSummary)?_c('div',{staticClass:\"h-4\"}):_vm._e(),(!_vm.showSummary && _vm.showRemoveButton)?_c('FunctionalityButton',{staticClass:\"inverter-remove-button\",attrs:{\"content\":_vm.content.inverterAddRemoveModule,\"value\":_vm.functionalityButtonValue},on:{\"click\":function($event){return _vm.$emit('functionality-button-click', $event)}}}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { PropType } from 'vue';\r\nimport FormInputCount from '@/components/molecules/formInputCount/FormInputCount.vue';\r\nimport FormInputText from '@/components/atoms/formInputText/FormInputText.vue';\r\nimport FormField from '@/components/molecules/formField/FormField.vue';\r\nimport FormFileUpload from '@/components/molecules/formFileUpload/FormFileUpload.vue';\r\nimport FunctionalityButton, {\r\n FunctionalityButtonValueType,\r\n} from '@/components/molecules/functionalityButton/FunctionalityButton.vue';\r\nimport { getFormInputMixin } from '@/mixins/formInputMixin';\r\nimport { InverterModuleFormGroup } from '@/types/forms/formGroups/plantPerformance/inverter/inverterModuleFormGroup';\r\nimport type { InverterModuleFormGroupContent } from '@/api/interfaces/content/form/steps/plantPerformance/inverterContent';\r\nimport type { ValidationsCommonType } from '@/services/form/validations';\r\nimport { number } from '@/validators/number';\r\nimport { interpolate } from '@/services/interpolationService';\r\nimport {\r\n formatGermanNumber,\r\n parseGermanFloat,\r\n} from '@/utilities/germanFormats';\r\nimport { ApplicationType } from '@/types/forms/specific/applicationForm';\r\nimport { roundToDecimals } from '@/utilities/math';\r\nimport FormSelect from '@/components/molecules/formSelect/FormSelect.vue';\r\nimport FormTextBlock from '@/components/molecules/formTextBlock/FormTextBlock.vue';\r\nimport FormBooleanCheckbox from '@/components/molecules/formBooleanCheckbox/FormBooleanCheckbox.vue';\r\nimport { InverterDataContent } from '@/api/interfaces/content/form/serviceDriven/inverterDataContent';\r\nimport { contentServices } from '@/services/contentService';\r\nimport { InverterDataContentSearchByZerezId } from '@/api/interfaces/content/form/serviceDriven/InverterDataContentSearchByZerezId';\r\nimport { isInverterDataContentSearchByManufacturerAndModuleType } from '@/api/interfaces/typeGuards';\r\nimport { ConnectionRulesType } from '@/types/forms/shared/connectionRulesType';\r\nimport { enumsContent } from '@/api/mock/content/app/enumsContent';\r\nimport { camelCase } from 'lodash';\r\nimport { EntryListContent } from '@/api/interfaces/content/common/entryListContent';\r\nimport { InverterDataContentSearchByManufacturerAndModuleType } from '@/api/interfaces/content/form/serviceDriven/inverterDataContentSearchByManufacturerAndModuleType';\r\n\r\nexport default getFormInputMixin<\r\n InverterModuleFormGroup,\r\n InverterModuleFormGroupContent\r\n>().extend({\r\n name: 'InverterModuleFormGroup',\r\n components: {\r\n FormInputCount,\r\n FormInputText,\r\n FormField,\r\n FormFileUpload,\r\n FunctionalityButton,\r\n FormSelect,\r\n FormTextBlock,\r\n FormBooleanCheckbox,\r\n },\r\n props: {\r\n applicationId: {\r\n type: String,\r\n required: true,\r\n },\r\n applicationType: {\r\n type: String as PropType,\r\n required: true,\r\n },\r\n showRemoveButton: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n },\r\n data() {\r\n return {\r\n functionalityButtonValue: 'remove' as FunctionalityButtonValueType,\r\n };\r\n },\r\n computed: {\r\n inverterManufacturerAndModuleTypeValidations():\r\n | ValidationsCommonType\r\n | unknown {\r\n return this.validations?.inverterManufacturerAndModuleType || {};\r\n },\r\n inverterZerezIdAndNormValidations(): ValidationsCommonType | unknown {\r\n return this.validations?.inverterZerezIdAndNorm || {};\r\n },\r\n inverterActivePowerAndApparentPowerValidations():\r\n | ValidationsCommonType\r\n | unknown {\r\n return this.validations?.inverterActivePowerAndApparentPower || {};\r\n },\r\n totalActivePowerDisplayValue(): string {\r\n return interpolate(this.content.inverterTotalActivePower.unit, {\r\n value: formatGermanNumber(\r\n this.model.inverterTotalActivePower.value ?? 0,\r\n {\r\n decimals: 2,\r\n thousandsSeparator: true,\r\n },\r\n ),\r\n });\r\n },\r\n totalApparentPowerDisplayValue(): string {\r\n return interpolate(this.content.inverterTotalApparentPower.unit, {\r\n value: formatGermanNumber(\r\n this.model.inverterTotalApparentPower.value ?? 0,\r\n {\r\n decimals: 2,\r\n thousandsSeparator: true,\r\n },\r\n ),\r\n });\r\n },\r\n inverterManualInputManufacturerTypeZerezId(): boolean {\r\n return (\r\n this.model.inverterManualInputManufacturerTypeZerezId?.value ??\r\n false\r\n );\r\n },\r\n },\r\n watch: {\r\n 'model.inverterQuantity.value': {\r\n handler(newValue: number | null) {\r\n this.model.inverterTotalActivePower.value = this.getTotalPower(\r\n newValue,\r\n this.model.inverterActivePowerAndApparentPower.activePower\r\n .value,\r\n );\r\n\r\n this.model.inverterTotalApparentPower.value = this.getTotalPower(\r\n newValue,\r\n this.model.inverterActivePowerAndApparentPower.apparentPower\r\n .value,\r\n );\r\n },\r\n immediate: true,\r\n },\r\n 'model.inverterActivePowerAndApparentPower.activePower.value': {\r\n handler(newValue: string | null) {\r\n this.model.inverterTotalActivePower.value = this.getTotalPower(\r\n this.model.inverterQuantity.value,\r\n newValue,\r\n );\r\n },\r\n immediate: true,\r\n },\r\n 'model.inverterActivePowerAndApparentPower.apparentPower.value': {\r\n handler(newValue: string | null) {\r\n this.model.inverterTotalApparentPower.value = this.getTotalPower(\r\n this.model.inverterQuantity.value,\r\n newValue,\r\n );\r\n },\r\n immediate: true,\r\n },\r\n 'model.inverterManufacturerAndModuleType.manufacturerText.value': {\r\n handler(newValue: string | null) {\r\n // On any sort of interaction, sync to backing field\r\n this.model.inverterManufacturerAndModuleType.manufacturer.value = newValue;\r\n },\r\n immediate: false,\r\n },\r\n 'model.inverterManufacturerAndModuleType.manufacturerSelect.value': {\r\n handler(newValue: string | null, oldValue: string | null): void {\r\n // On any sort of interaction, sync to backing field\r\n this.model.inverterManufacturerAndModuleType.manufacturer.value = newValue;\r\n\r\n // If value didn't change, there is nothing that has to be done\r\n if (newValue === oldValue) {\r\n return;\r\n }\r\n\r\n // If new value is empty, then this field shouldn't cause changes to ay other fields,\r\n // except for the aforementioned backing field\r\n if (!newValue) {\r\n return;\r\n }\r\n\r\n // That's where we end, if the manufacturer name hasn't been set already\r\n if (\r\n !this.model.inverterManufacturerAndModuleType\r\n .moduleTypeSelect.value\r\n ) {\r\n return;\r\n }\r\n\r\n // However, if both are available, try searching for an inverter for auto pre-fill,\r\n // clearing the other fields, if no match could be found\r\n const inverter = this.getInverter({\r\n manufacturerName: newValue,\r\n moduleType: this.model.inverterManufacturerAndModuleType\r\n .moduleTypeSelect.value,\r\n });\r\n if (inverter === undefined) {\r\n this.model.inverterManufacturerAndModuleType.moduleTypeSelect.value = null;\r\n this.model.inverterZerezIdAndNorm.zerezId.value = null;\r\n this.model.inverterZerezIdAndNorm.norm.value = null;\r\n this.model.inverterActivePowerAndApparentPower.activePower.value = null;\r\n this.model.inverterActivePowerAndApparentPower.apparentPower.value = null;\r\n return;\r\n }\r\n\r\n this.updateInverterFields(inverter);\r\n },\r\n immediate: false,\r\n },\r\n 'model.inverterManufacturerAndModuleType.moduleTypeText.value': {\r\n handler(newValue: string | null) {\r\n // On any sort of interaction, sync to backing field\r\n this.model.inverterManufacturerAndModuleType.moduleType.value = newValue;\r\n },\r\n immediate: false,\r\n },\r\n 'model.inverterManufacturerAndModuleType.moduleTypeSelect.value': {\r\n handler(newValue: string | null, oldValue: string | null): void {\r\n // On any sort of interaction, sync to backing field\r\n this.model.inverterManufacturerAndModuleType.moduleType.value = newValue;\r\n\r\n // If value didn't change, there is nothing that has to be done\r\n if (newValue === oldValue) {\r\n return;\r\n }\r\n\r\n // If new value is empty, then this field shouldn't cause changes to ay other fields,\r\n // except for the aforementioned backing field\r\n if (!newValue) {\r\n return;\r\n }\r\n\r\n // That's where we end, if the manufacturer name hasn't been set already\r\n if (\r\n !this.model.inverterManufacturerAndModuleType\r\n .manufacturerSelect.value\r\n ) {\r\n return;\r\n }\r\n\r\n // However, if both are available, try searching for an inverter for auto pre-fill,\r\n // clearing the other fields, if no match could be found\r\n const inverter = this.getInverter({\r\n manufacturerName: this.model\r\n .inverterManufacturerAndModuleType.manufacturerSelect\r\n .value,\r\n moduleType: newValue,\r\n });\r\n if (inverter === undefined) {\r\n this.model.inverterManufacturerAndModuleType.manufacturerSelect.value = null;\r\n this.model.inverterZerezIdAndNorm.zerezId.value = null;\r\n this.model.inverterZerezIdAndNorm.norm.value = null;\r\n this.model.inverterActivePowerAndApparentPower.activePower.value = null;\r\n this.model.inverterActivePowerAndApparentPower.apparentPower.value = null;\r\n return;\r\n }\r\n\r\n this.updateInverterFields(inverter);\r\n },\r\n immediate: false,\r\n },\r\n 'model.inverterZerezIdAndNorm.zerezId.value': {\r\n handler(newValue: string | null, oldValue: string | null): void {\r\n // On any sort of interaction, sync to backing field\r\n this.model.inverterZerezIdAndNorm.zerezId.value = newValue;\r\n\r\n // If value didn't change, there is nothing that has to be done\r\n if (newValue === oldValue) {\r\n return;\r\n }\r\n\r\n // If new value is empty, then do not cause a watcher loop\r\n if (!newValue) {\r\n return;\r\n }\r\n\r\n // However, if both are available, try searching for an inverter for auto pre-fill,\r\n // clearing the other fields, if no match could be found\r\n const inverter = this.getInverter({ zerezId: newValue });\r\n if (inverter === undefined) {\r\n this.model.inverterManufacturerAndModuleType.manufacturerSelect.value = null;\r\n this.model.inverterManufacturerAndModuleType.moduleTypeSelect.value = null;\r\n this.model.inverterZerezIdAndNorm.norm.value = null;\r\n this.model.inverterActivePowerAndApparentPower.activePower.value = null;\r\n this.model.inverterActivePowerAndApparentPower.apparentPower.value = null;\r\n return;\r\n }\r\n\r\n this.updateInverterFields(inverter);\r\n },\r\n immediate: false,\r\n },\r\n 'model.inverterZerezIdAndNorm.norm.value': {\r\n handler(newValue: ConnectionRulesType[]) {\r\n if (!newValue) {\r\n this.model.inverterZerezIdAndNorm.normText.value = null;\r\n return;\r\n }\r\n\r\n const translated = newValue.map(\r\n (value) =>\r\n (enumsContent.connectionRulesType as EntryListContent)[\r\n camelCase(value)\r\n ],\r\n ) as string[];\r\n this.model.inverterZerezIdAndNorm.normText.value = translated.join(\r\n ', ',\r\n );\r\n },\r\n immediate: true,\r\n },\r\n // If the displayed fields are toggled, set the backing fields to the values of the now shown fields and possibly clear irrelevant fields\r\n inverterManualInputManufacturerTypeZerezId: {\r\n handler(newValue: boolean) {\r\n // Update backing fields and possibly other fields based on which fields are displayed\r\n if (newValue) {\r\n this.model.inverterManufacturerAndModuleType.manufacturer.value = this.model.inverterManufacturerAndModuleType.manufacturerText.value;\r\n this.model.inverterManufacturerAndModuleType.moduleType.value = this.model.inverterManufacturerAndModuleType.moduleTypeText.value;\r\n this.model.inverterZerezIdAndNorm.zerezId.value = null;\r\n this.model.inverterZerezIdAndNorm.norm.value = null;\r\n this.model.inverterActivePowerAndApparentPower.activePower.value = null;\r\n this.model.inverterActivePowerAndApparentPower.apparentPower.value = null;\r\n } else {\r\n this.model.inverterManufacturerAndModuleType.manufacturer.value = this.model.inverterManufacturerAndModuleType.manufacturerSelect.value;\r\n this.model.inverterManufacturerAndModuleType.moduleType.value = this.model.inverterManufacturerAndModuleType.moduleTypeSelect.value;\r\n\r\n // Reset norm field, if zerez id is not filled\r\n if (\r\n this.model.inverterZerezIdAndNorm.zerezId.value === null\r\n ) {\r\n this.model.inverterZerezIdAndNorm.norm.value = null;\r\n }\r\n\r\n // Check currently filled fields, to possibly immediately prefill fields back up again (e.g. someone checked the box, which clears zerez id and norm, and immediately unchecks it again)\r\n if (this.model.inverterZerezIdAndNorm.zerezId.value) {\r\n const inverter = this.getInverter({\r\n zerezId: this.model.inverterZerezIdAndNorm.zerezId\r\n .value,\r\n });\r\n if (inverter) {\r\n this.updateInverterFields(inverter);\r\n }\r\n } else if (\r\n this.model.inverterManufacturerAndModuleType\r\n .manufacturerSelect.value &&\r\n this.model.inverterManufacturerAndModuleType\r\n .moduleTypeSelect.value\r\n ) {\r\n const inverter = this.getInverter({\r\n manufacturerName: this.model\r\n .inverterManufacturerAndModuleType\r\n .manufacturerSelect.value,\r\n moduleType: this.model\r\n .inverterManufacturerAndModuleType\r\n .moduleTypeSelect.value,\r\n });\r\n if (inverter) {\r\n this.updateInverterFields(inverter);\r\n }\r\n }\r\n }\r\n },\r\n immediate: false,\r\n },\r\n },\r\n created() {\r\n if (this.inverterManualInputManufacturerTypeZerezId) {\r\n this.model.inverterManufacturerAndModuleType.manufacturerText.value = this.model.inverterManufacturerAndModuleType.manufacturer.value;\r\n this.model.inverterManufacturerAndModuleType.moduleTypeText.value = this.model.inverterManufacturerAndModuleType.moduleType.value;\r\n this.model.inverterZerezIdAndNorm.zerezId.value = null;\r\n } else {\r\n this.model.inverterManufacturerAndModuleType.manufacturerSelect.value = this.model.inverterManufacturerAndModuleType.manufacturer.value;\r\n this.model.inverterManufacturerAndModuleType.moduleTypeSelect.value = this.model.inverterManufacturerAndModuleType.moduleType.value;\r\n }\r\n },\r\n methods: {\r\n getTotalPower(\r\n rawQuantity: number | null,\r\n rawPower: string | null,\r\n ): number {\r\n // power as number; default: 0\r\n let power = 0;\r\n if (rawPower != null) {\r\n const parsedPower = parseGermanFloat(rawPower);\r\n power = number(parsedPower) ? parsedPower : 0;\r\n }\r\n\r\n // quantity as number; default: 0\r\n let quantity = 0;\r\n if (rawQuantity != null) {\r\n quantity = number(rawQuantity) ? rawQuantity : 0;\r\n }\r\n\r\n return roundToDecimals(quantity * power);\r\n },\r\n getInverter(\r\n search:\r\n | InverterDataContentSearchByManufacturerAndModuleType\r\n | InverterDataContentSearchByZerezId,\r\n ): InverterDataContent | undefined {\r\n const content = contentServices.form.content;\r\n if (!content) {\r\n return undefined;\r\n }\r\n\r\n const invertersContent =\r\n content?.serviceDrivenContent?.invertersContent;\r\n if (!invertersContent) {\r\n return undefined;\r\n }\r\n\r\n if (\r\n isInverterDataContentSearchByManufacturerAndModuleType(search)\r\n ) {\r\n return invertersContent.find(\r\n (inverter) =>\r\n inverter.manufacturerName === search.manufacturerName &&\r\n inverter.moduleType === search.moduleType,\r\n );\r\n } else {\r\n return invertersContent.find(\r\n (inverter) => inverter.zerezId === search.zerezId,\r\n );\r\n }\r\n },\r\n /**\r\n * Updates all fields included in the inverter, based on which ones are currently displayed.\r\n * Also, only updates values that have actually changed, to avoid potentially triggering watchers unintentionally\r\n * @param inverter\r\n */\r\n updateInverterFields(inverter: InverterDataContent) {\r\n const showingDropdownFields =\r\n this.model.inverterManualInputManufacturerTypeZerezId\r\n .disabled ||\r\n !this.model.inverterManualInputManufacturerTypeZerezId.value;\r\n\r\n // Manufacturer Name\r\n if (\r\n inverter.manufacturerName !==\r\n this.model.inverterManufacturerAndModuleType.manufacturer.value\r\n ) {\r\n if (showingDropdownFields) {\r\n this.model.inverterManufacturerAndModuleType.manufacturerSelect.value =\r\n inverter.manufacturerName;\r\n } else {\r\n this.model.inverterManufacturerAndModuleType.manufacturerText.value =\r\n inverter.manufacturerName;\r\n }\r\n }\r\n\r\n // Manufacturer Module Type\r\n if (\r\n inverter.moduleType !==\r\n this.model.inverterManufacturerAndModuleType.moduleType.value\r\n ) {\r\n if (showingDropdownFields) {\r\n this.model.inverterManufacturerAndModuleType.moduleTypeSelect.value =\r\n inverter.moduleType;\r\n } else {\r\n this.model.inverterManufacturerAndModuleType.moduleTypeText.value =\r\n inverter.moduleType;\r\n }\r\n }\r\n\r\n // Zerez Id\r\n if (\r\n inverter.zerezId !==\r\n this.model.inverterZerezIdAndNorm.zerezId.value\r\n ) {\r\n this.model.inverterZerezIdAndNorm.zerezId.value =\r\n inverter.zerezId;\r\n }\r\n\r\n // Norm\r\n if (\r\n inverter.connectionRulesTypes !==\r\n this.model.inverterZerezIdAndNorm.norm.value\r\n ) {\r\n this.model.inverterZerezIdAndNorm.norm.value =\r\n inverter.connectionRulesTypes;\r\n }\r\n\r\n // Active Power\r\n const parsedActivePower = formatGermanNumber(inverter.activePower, {\r\n decimals: 2,\r\n thousandsSeparator: true,\r\n });\r\n if (\r\n parsedActivePower !==\r\n this.model.inverterActivePowerAndApparentPower.activePower.value\r\n ) {\r\n this.model.inverterActivePowerAndApparentPower.activePower.value = parsedActivePower;\r\n }\r\n\r\n // Apparent Power\r\n const parsedApparentPower = formatGermanNumber(\r\n inverter.apparentPower,\r\n { decimals: 2, thousandsSeparator: true },\r\n );\r\n if (\r\n parsedApparentPower !==\r\n this.model.inverterActivePowerAndApparentPower.apparentPower\r\n .value\r\n ) {\r\n this.model.inverterActivePowerAndApparentPower.apparentPower.value = parsedApparentPower;\r\n }\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InverterModuleFormGroup.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InverterModuleFormGroup.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./InverterModuleFormGroup.vue?vue&type=template&id=b7ea0c6e&\"\nimport script from \"./InverterModuleFormGroup.vue?vue&type=script&lang=ts&\"\nexport * from \"./InverterModuleFormGroup.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { PropType } from 'vue';\r\nimport FunctionalityButton, {\r\n FunctionalityButtonValueType,\r\n} from '@/components/molecules/functionalityButton/FunctionalityButton.vue';\r\nimport InverterModuleFormGroup from '@/components/organisms/plantPerformance/inverterModuleFormGroup/InverterModuleFormGroup.vue';\r\nimport { getFormInputMixin } from '@/mixins/formInputMixin';\r\nimport type { InverterModuleFormList } from '@/types/forms/formGroups/plantPerformance/inverter/inverterModuleFormList';\r\nimport type { InverterModuleFormListContent } from '@/api/interfaces/content/form/steps/plantPerformance/inverterContent';\r\nimport type { InverterModuleFormGroup as InverterModuleFormGroupType } from '@/types/forms/formGroups/plantPerformance/inverter/inverterModuleFormGroup';\r\nimport { ApplicationType } from '@/types/forms/specific/applicationForm';\r\n\r\nexport default getFormInputMixin<\r\n InverterModuleFormList,\r\n InverterModuleFormListContent\r\n>().extend({\r\n name: 'InverterModuleFormList',\r\n components: {\r\n FunctionalityButton,\r\n InverterModuleFormGroup,\r\n },\r\n props: {\r\n applicationId: {\r\n type: String,\r\n required: true,\r\n },\r\n applicationType: {\r\n type: String as PropType,\r\n required: true,\r\n },\r\n isPluginGeneratingPlant: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n },\r\n data() {\r\n return {\r\n functionalityButtonValue: 'add' as FunctionalityButtonValueType,\r\n };\r\n },\r\n computed: {\r\n canAddItem(): boolean {\r\n return this.model.canAddItem() && !this.isPluginGeneratingPlant;\r\n },\r\n canRemoveItem(): boolean {\r\n return this.model.canRemoveItem();\r\n },\r\n },\r\n methods: {\r\n handleFunctionalityButtonClick(): void {\r\n this.model.createItem();\r\n },\r\n handleModuleFunctionalityButtonClick(\r\n value: FunctionalityButtonValueType,\r\n inverter: InverterModuleFormGroupType,\r\n ): void {\r\n if (value === 'remove') {\r\n this.model.removeItem(inverter);\r\n }\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InverterModuleFormList.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InverterModuleFormList.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./InverterModuleFormList.vue?vue&type=template&id=5b2e1743&\"\nimport script from \"./InverterModuleFormList.vue?vue&type=script&lang=ts&\"\nexport * from \"./InverterModuleFormList.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { PropType } from 'vue';\r\nimport { getFormInputMixin } from '@/mixins/formInputMixin';\r\nimport FormFieldComponent from '@/components/molecules/formField/FormField.vue';\r\nimport FormTextBlock from '@/components/molecules/formTextBlock/FormTextBlock.vue';\r\nimport InverterModuleFormList from '@/components/organisms/plantPerformance/inverterModuleFormList/InverterModuleFormList.vue';\r\nimport { InverterFormGroup } from '@/types/forms/formGroups/plantPerformance/inverter/inverterFormGroup';\r\nimport { InverterFormGroupContent } from '@/api/interfaces/content/form/steps/plantPerformance/inverterContent';\r\nimport type { InverterModuleFormList as InverterModuleFormListType } from '@/types/forms/formGroups/plantPerformance/inverter/inverterModuleFormList';\r\nimport { interpolate } from '@/services/interpolationService';\r\nimport { formatGermanNumber } from '@/utilities/germanFormats';\r\nimport { FormField } from '@/types/forms/fields/formField';\r\nimport { InverterModuleFormGroup } from '@/types/forms/formGroups/plantPerformance/inverter/inverterModuleFormGroup';\r\nimport { ApplicationType } from '@/types/forms/specific/applicationForm';\r\nimport { roundToDecimals } from '@/utilities/math';\r\n\r\nexport default getFormInputMixin<\r\n InverterFormGroup,\r\n InverterFormGroupContent\r\n>().extend({\r\n name: 'InverterFormGroup',\r\n props: {\r\n applicationId: {\r\n type: String,\r\n required: true,\r\n },\r\n applicationType: {\r\n type: String as PropType,\r\n required: true,\r\n },\r\n isPluginGeneratingPlant: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n },\r\n components: {\r\n FormFieldComponent,\r\n FormTextBlock,\r\n InverterModuleFormList,\r\n },\r\n computed: {\r\n overallActivePowerDisplayValue(): string {\r\n return this.getOverallPowerDisplayValue(\r\n this.model.inverterOverallActivePower.value,\r\n this.content.inverterOverallActivePower.unit,\r\n );\r\n },\r\n overallApparentPowerDisplayValue(): string {\r\n return this.getOverallPowerDisplayValue(\r\n this.model.inverterOverallApparentPower.value,\r\n this.content.inverterOverallApparentPower.unit,\r\n );\r\n },\r\n },\r\n watch: {\r\n 'model.inverterModules': {\r\n handler(newValue: InverterModuleFormListType) {\r\n this.model.inverterOverallActivePower.value = this.getTotalPower(\r\n newValue,\r\n (item) => item.inverterTotalActivePower,\r\n );\r\n\r\n this.model.inverterOverallApparentPower.value = this.getTotalPower(\r\n newValue,\r\n (item) => item.inverterTotalApparentPower,\r\n );\r\n },\r\n deep: true,\r\n immediate: true,\r\n },\r\n 'model.inverterOverallApparentPower.value'(): void {\r\n if (this.validations) {\r\n this.validations.inverterOverallApparentPower.$touch();\r\n }\r\n },\r\n },\r\n methods: {\r\n getOverallPowerDisplayValue(\r\n rawValue: number | null,\r\n stringToInterpolate: string,\r\n ): string {\r\n return interpolate(stringToInterpolate, {\r\n value: formatGermanNumber(rawValue ?? 0, {\r\n decimals: 2,\r\n thousandsSeparator: true,\r\n }),\r\n });\r\n },\r\n getTotalPower(\r\n formList: InverterModuleFormListType,\r\n getFormField: (\r\n formGroup: InverterModuleFormGroup,\r\n ) => FormField,\r\n ): number | null {\r\n return formList === null\r\n ? null\r\n : roundToDecimals(\r\n formList.items.reduce(\r\n (sum, item) => (sum += getFormField(item).value ?? 0),\r\n 0,\r\n ),\r\n );\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InverterFormGroup.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InverterFormGroup.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./InverterFormGroup.vue?vue&type=template&id=7f3785c4&\"\nimport script from \"./InverterFormGroup.vue?vue&type=script&lang=ts&\"\nexport * from \"./InverterFormGroup.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.model.disabled)?_c('div',[_c('FormTextBlock',{staticClass:\"generator-headline font-normal\",class:{\n 'text-lg my-5': _vm.showSummary,\n 'text-xl lg:text-2xl xl:text-2xl': !_vm.showSummary,\n },attrs:{\"model\":_vm.model.generatorHeadline,\"content\":_vm.content.generatorHeadline}}),_c('GeneratorModuleFormList',{staticClass:\"generator-module-form-list\",attrs:{\"model\":_vm.model.generatorModules,\"content\":_vm.content,\"validations\":_vm.validations.generatorModules,\"configuration\":_vm.configuration,\"application-id\":_vm.applicationId,\"show-summary\":_vm.showSummary}}),_c('FormField',{staticClass:\"generator-overall-active-power\",attrs:{\"model\":_vm.model.generatorOverallActivePower,\"content\":_vm.content.generatorOverallActivePower,\"validations\":_vm.validations.generatorOverallActivePower,\"show-summary\":_vm.showSummary,\"summary-value\":_vm.overallActivePowerDisplayValue}},[_c('span',{staticClass:\"generator-overall-active-power-display\"},[_vm._v(\" \"+_vm._s(_vm.overallActivePowerDisplayValue)+\" \")])]),_c('FormField',{staticClass:\"generator-overall-apparent-power\",attrs:{\"model\":_vm.model.generatorOverallApparentPower,\"content\":_vm.content.generatorOverallApparentPower,\"validations\":_vm.validations.generatorOverallApparentPower,\"show-summary\":_vm.showSummary,\"summary-value\":_vm.overallApparentPowerDisplayValue}},[_c('span',{staticClass:\"generator-overall-apparent-power-display\"},[_vm._v(\" \"+_vm._s(_vm.overallApparentPowerDisplayValue)+\" \")])])],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_vm._l((_vm.model.items),function(generator,index){return [_c('GeneratorModuleFormGroup',{key:index,staticClass:\"generator-module-form-group\",attrs:{\"model\":generator,\"content\":_vm.content,\"configuration\":_vm.configuration,\"validations\":_vm.validations[index],\"application-id\":_vm.applicationId,\"show-remove-button\":_vm.canRemoveItem,\"show-summary\":_vm.showSummary},on:{\"functionality-button-click\":function($event){return _vm.handleModuleFunctionalityButtonClick($event, generator)}}})]}),(!_vm.showSummary && _vm.canAddItem)?_c('FunctionalityButton',{staticClass:\"generator-add-button\",attrs:{\"content\":_vm.content.generatorAddRemoveModule,\"value\":_vm.functionalityButtonValue},on:{\"click\":function($event){return _vm.handleFunctionalityButtonClick($event)}}}):_vm._e()],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('FormField',{staticClass:\"generator-manufacturer-module-type\",attrs:{\"model\":_vm.model.generatorManufacturerAndModuleType,\"content\":_vm.content.generatorManufacturerAndModuleType,\"validations\":_vm.validationProps.generatorManufacturerAndModuleType,\"show-summary\":_vm.showSummary,\"summary-value\":_vm._f(\"concat\")([\n _vm.model.generatorManufacturerAndModuleType.manufacturer.value,\n ', ',\n _vm.model.generatorManufacturerAndModuleType.moduleType.value ])}},[_c('div',{staticClass:\"flex\"},[_c('div',{staticClass:\"w-1/2 mr-4 md:mr-10\"},[_c('FormInputText',{attrs:{\"model\":_vm.model.generatorManufacturerAndModuleType\n .manufacturerText,\"content\":_vm.content.generatorManufacturerAndModuleType\n .manufacturerText,\"validations\":_vm.generatorManufacturerAndModuleTypeValidations.manufacturerText}}),_c('FormSelect',{attrs:{\"model\":_vm.model.generatorManufacturerAndModuleType\n .manufacturerSelect,\"content\":_vm.content.generatorManufacturerAndModuleType\n .manufacturerSelect,\"validations\":_vm.generatorManufacturerAndModuleTypeValidations.manufacturerSelect,\"select-customized\":\"\",\"select-customized-show-search\":\"\"}})],1),_c('div',{staticClass:\"w-1/2\"},[_c('FormInputText',{attrs:{\"model\":_vm.model.generatorManufacturerAndModuleType\n .moduleTypeText,\"content\":_vm.content.generatorManufacturerAndModuleType\n .moduleTypeText,\"validations\":_vm.generatorManufacturerAndModuleTypeValidations.moduleTypeText}}),_c('FormSelect',{attrs:{\"model\":_vm.model.generatorManufacturerAndModuleType\n .moduleTypeSelect,\"content\":_vm.content.generatorManufacturerAndModuleType\n .moduleTypeSelect,\"validations\":_vm.generatorManufacturerAndModuleTypeValidations.moduleTypeSelect,\"select-customized\":\"\",\"select-customized-show-search\":\"\"}})],1)])]),_c('FormField',{staticClass:\"zerez-id-and-norm\",attrs:{\"model\":_vm.model.generatorZerezIdAndNorm,\"content\":_vm.content.generatorZerezIdAndNorm,\"validations\":_vm.validationProps.generatorZerezIdAndNorm,\"show-summary\":_vm.showSummary,\"summary-value\":_vm._f(\"concat\")([\n _vm.model.generatorZerezIdAndNorm.zerezId.value,\n ', ',\n _vm.model.generatorZerezIdAndNorm.normText.value ])}},[_c('div',{staticClass:\"flex\"},[_c('div',{staticClass:\"w-1/2 mr-4 md:mr-10\"},[_c('FormSelect',{attrs:{\"model\":_vm.model.generatorZerezIdAndNorm.zerezId,\"content\":_vm.content.generatorZerezIdAndNorm.zerezId,\"validations\":_vm.generatorZerezIdAndNormValidations.zerezId,\"select-customized\":\"\",\"select-customized-show-search\":\"\"}})],1),_c('div',{staticClass:\"w-1/2\"},[_c('FormInputText',{attrs:{\"model\":_vm.model.generatorZerezIdAndNorm.normText,\"content\":_vm.content.generatorZerezIdAndNorm.normText,\"validations\":_vm.generatorZerezIdAndNormValidations.normText,\"show-info-icon\":\"\"}})],1)])]),_c('FormField',{staticClass:\"generator-manual-input-manufacturer-type-zerez-id\",attrs:{\"model\":_vm.model.generatorManualInputManufacturerTypeZerezId,\"content\":_vm.content.generatorManualInputManufacturerTypeZerezId,\"validations\":_vm.validationProps.generatorManualInputManufacturerTypeZerezId,\"align-field\":\"singleLine\",\"show-summary\":_vm.showSummary,\"summary-value\":_vm.model.generatorManualInputManufacturerTypeZerezId.value}},[_c('FormBooleanCheckbox',{attrs:{\"model\":_vm.model.generatorManualInputManufacturerTypeZerezId,\"content\":_vm.content.generatorManualInputManufacturerTypeZerezId,\"validations\":_vm.validationProps.generatorManualInputManufacturerTypeZerezId}})],1),_c('FormTextBlock',{staticClass:\"unit-certificate-invalid-for-installed-power text-error\",attrs:{\"model\":_vm.model.unitCertificateInvalidForInstalledPower,\"content\":_vm.content.unitCertificateInvalidForInstalledPower}}),_c('FormField',{staticClass:\"generator-quantity-and-generator-type\",attrs:{\"model\":_vm.model.generatorQuantityAndGeneratorType,\"content\":_vm.content.generatorQuantityAndGeneratorType,\"validations\":_vm.validationProps.generatorQuantityAndGeneratorType,\"show-summary\":_vm.showSummary,\"summary-value\":_vm._f(\"concat\")([\n _vm.model.generatorQuantityAndGeneratorType.quantity.value,\n ' x ',\n _vm.content.generatorQuantityAndGeneratorType.generatorType\n .options[\n _vm.model.generatorQuantityAndGeneratorType.generatorType\n .value\n ] &&\n _vm.content.generatorQuantityAndGeneratorType.generatorType\n .options[\n _vm.model.generatorQuantityAndGeneratorType\n .generatorType.value\n ].label ])}},[_c('div',{staticClass:\"flex\"},[_c('div',{staticClass:\"w-1/2 mr-4 md:mr-10\"},[_c('FormInputCount',{attrs:{\"model\":_vm.model.generatorQuantityAndGeneratorType.quantity,\"content\":_vm.content.generatorQuantityAndGeneratorType.quantity,\"validations\":_vm.generatorQuantityAndGeneratorTypeValidations.quantity}})],1),_c('div',{staticClass:\"w-1/2\"},[_c('FormSelect',{attrs:{\"model\":_vm.model.generatorQuantityAndGeneratorType\n .generatorType,\"content\":_vm.content.generatorQuantityAndGeneratorType\n .generatorType,\"validations\":_vm.generatorQuantityAndGeneratorTypeValidations.generatorType,\"show-info-icon\":\"\"}})],1)])]),_c('FormField',{staticClass:\"generator-active-power-apparent-power\",attrs:{\"model\":_vm.model.generatorActivePowerAndApparentPower,\"content\":_vm.content.generatorActivePowerAndApparentPower,\"validations\":_vm.validationProps.generatorActivePowerAndApparentPower,\"show-summary\":_vm.showSummary,\"summary-value\":_vm._f(\"concat\")([\n _vm.model.generatorActivePowerAndApparentPower.activePower\n .value,\n ' ',\n _vm.content.generatorActivePowerAndApparentPower.activePower\n .unit,\n ', ',\n _vm.model.generatorActivePowerAndApparentPower.apparentPower\n .value,\n ' ',\n _vm.content.generatorActivePowerAndApparentPower.apparentPower\n .unit ])}},[_c('div',{staticClass:\"flex\"},[_c('div',{staticClass:\"w-1/2 mr-4 md:mr-10\"},[_c('FormInputText',{attrs:{\"model\":_vm.model.generatorActivePowerAndApparentPower\n .activePower,\"content\":_vm.content.generatorActivePowerAndApparentPower\n .activePower,\"validations\":_vm.generatorActivePowerAndApparentPowerValidations.activePower,\"align-text\":\"right\"}})],1),_c('div',{staticClass:\"w-1/2\"},[_c('FormInputText',{attrs:{\"model\":_vm.model.generatorActivePowerAndApparentPower\n .apparentPower,\"content\":_vm.content.generatorActivePowerAndApparentPower\n .apparentPower,\"validations\":_vm.generatorActivePowerAndApparentPowerValidations.apparentPower,\"align-text\":\"right\"}})],1)])]),_c('FormTextBlock',{staticClass:\"generator-overall-active-power-warning text-error\",attrs:{\"model\":_vm.model.generatorTotalActivePowerIsGreaterThanTotalApparentPowerWarning,\"content\":_vm.content.generatorTotalActivePowerIsGreaterThanTotalApparentPowerWarning}}),_c('FormField',{staticClass:\"generator-total-active-power\",attrs:{\"model\":_vm.model.generatorTotalActivePower,\"content\":_vm.content.generatorTotalActivePower,\"validations\":_vm.validationProps.generatorTotalActivePower,\"show-summary\":_vm.showSummary,\"summary-value\":_vm.totalActivePowerDisplayValue}},[_c('span',{staticClass:\"generator-total-active-power-display\"},[_vm._v(\" \"+_vm._s(_vm.totalActivePowerDisplayValue)+\" \")])]),_c('FormField',{staticClass:\"generator-total-apparent-power\",attrs:{\"model\":_vm.model.generatorTotalApparentPower,\"content\":_vm.content.generatorTotalApparentPower,\"validations\":_vm.validationProps.generatorTotalApparentPower,\"show-summary\":_vm.showSummary,\"summary-value\":_vm.totalApparentPowerDisplayValue}},[_c('span',{staticClass:\"generator-total-apparent-power-display\"},[_vm._v(\" \"+_vm._s(_vm.totalApparentPowerDisplayValue)+\" \")])]),(_vm.showSummary)?_c('div',{staticClass:\"h-4\"}):_vm._e(),(!_vm.showSummary && _vm.showRemoveButton)?_c('FunctionalityButton',{staticClass:\"generator-remove-button\",attrs:{\"content\":_vm.content.generatorAddRemoveModule,\"value\":_vm.functionalityButtonValue},on:{\"click\":function($event){return _vm.$emit('functionality-button-click', $event)}}}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport FormInputCount from '@/components/molecules/formInputCount/FormInputCount.vue';\r\nimport FormInputText from '@/components/atoms/formInputText/FormInputText.vue';\r\nimport FormField from '@/components/molecules/formField/FormField.vue';\r\nimport FormFileUpload from '@/components/molecules/formFileUpload/FormFileUpload.vue';\r\nimport FormSelect from '@/components/molecules/formSelect/FormSelect.vue';\r\nimport FunctionalityButton, {\r\n FunctionalityButtonValueType,\r\n} from '@/components/molecules/functionalityButton/FunctionalityButton.vue';\r\nimport { getFormInputMixin } from '@/mixins/formInputMixin';\r\nimport { ValidationsCommonType } from '@/services/form/validations';\r\nimport { GeneratorModuleFormGroup } from '@/types/forms/formGroups/plantPerformance/generator/generatorModuleFormGroup';\r\nimport { GeneratorModuleFormGroupContent } from '@/api/interfaces/content/form/steps/plantPerformance/generatorContent';\r\nimport { number } from '@/validators/number';\r\nimport {\r\n formatGermanNumber,\r\n parseGermanFloat,\r\n} from '@/utilities/germanFormats';\r\nimport { interpolate } from '@/services/interpolationService';\r\nimport FormTextBlock from '@/components/molecules/formTextBlock/FormTextBlock.vue';\r\nimport { roundToDecimals } from '@/utilities/math';\r\nimport FormBooleanCheckbox from '@/components/molecules/formBooleanCheckbox/FormBooleanCheckbox.vue';\r\nimport { GeneratorDataContentSearchByZerezId } from '@/api/interfaces/content/form/serviceDriven/generatorDataContentSearchByZerezId';\r\nimport { GeneratorDataContent } from '@/api/interfaces/content/form/serviceDriven/generatorDataContent';\r\nimport { contentServices } from '@/services/contentService';\r\nimport { isGeneratorDataContentSearchByManufacturerAndModuleType } from '@/api/interfaces/typeGuards';\r\nimport { ConnectionRulesType } from '@/types/forms/shared/connectionRulesType';\r\nimport { enumsContent } from '@/api/mock/content/app/enumsContent';\r\nimport { camelCase } from 'lodash';\r\nimport { EntryListContent } from '@/api/interfaces/content/common/entryListContent';\r\nimport { GeneratorDataContentSearchByManufacturerAndModuleType } from '@/api/interfaces/content/form/serviceDriven/generatorDataContentSearchByManufacturerAndModuleType';\r\n\r\nexport default getFormInputMixin<\r\n GeneratorModuleFormGroup,\r\n GeneratorModuleFormGroupContent\r\n>().extend({\r\n name: 'GeneratorModuleFormGroup',\r\n components: {\r\n FormInputCount,\r\n FormInputText,\r\n FormField,\r\n FormFileUpload,\r\n FormSelect,\r\n FunctionalityButton,\r\n FormTextBlock,\r\n FormBooleanCheckbox,\r\n },\r\n props: {\r\n applicationId: {\r\n type: String,\r\n required: true,\r\n },\r\n showRemoveButton: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n },\r\n data() {\r\n return {\r\n functionalityButtonValue: 'remove' as FunctionalityButtonValueType,\r\n };\r\n },\r\n computed: {\r\n generatorManufacturerAndModuleTypeValidations():\r\n | ValidationsCommonType\r\n | unknown {\r\n return this.validations?.generatorManufacturerAndModuleType || {};\r\n },\r\n generatorZerezIdAndNormValidations(): ValidationsCommonType | unknown {\r\n return this.validations?.generatorZerezIdAndNorm || {};\r\n },\r\n generatorQuantityAndGeneratorTypeValidations():\r\n | ValidationsCommonType\r\n | unknown {\r\n return this.validations?.generatorQuantityAndGeneratorType || {};\r\n },\r\n generatorActivePowerAndApparentPowerValidations():\r\n | ValidationsCommonType\r\n | unknown {\r\n return this.validations?.generatorActivePowerAndApparentPower || {};\r\n },\r\n totalActivePowerDisplayValue(): string {\r\n return interpolate(this.content.generatorTotalActivePower.unit, {\r\n value: formatGermanNumber(\r\n this.model.generatorTotalActivePower.value ?? 0,\r\n {\r\n decimals: 2,\r\n thousandsSeparator: true,\r\n },\r\n ),\r\n });\r\n },\r\n totalApparentPowerDisplayValue(): string {\r\n return interpolate(this.content.generatorTotalApparentPower.unit, {\r\n value: formatGermanNumber(\r\n this.model.generatorTotalApparentPower.value ?? 0,\r\n {\r\n decimals: 2,\r\n thousandsSeparator: true,\r\n },\r\n ),\r\n });\r\n },\r\n generatorManualInputManufacturerTypeZerezId() {\r\n return (\r\n this.model.generatorManualInputManufacturerTypeZerezId.value ??\r\n false\r\n );\r\n },\r\n },\r\n watch: {\r\n 'model.generatorQuantityAndGeneratorType.quantity.value': {\r\n handler(newValue: number | null) {\r\n this.model.generatorTotalActivePower.value = this.getTotalPower(\r\n newValue,\r\n this.model.generatorActivePowerAndApparentPower.activePower\r\n .value,\r\n );\r\n\r\n this.model.generatorTotalApparentPower.value = this.getTotalPower(\r\n newValue,\r\n this.model.generatorActivePowerAndApparentPower\r\n .apparentPower.value,\r\n );\r\n },\r\n immediate: true,\r\n },\r\n 'model.generatorActivePowerAndApparentPower.activePower.value': {\r\n handler(newValue: string | null) {\r\n this.model.generatorTotalActivePower.value = this.getTotalPower(\r\n this.model.generatorQuantityAndGeneratorType.quantity.value,\r\n newValue,\r\n );\r\n },\r\n immediate: true,\r\n },\r\n 'model.generatorActivePowerAndApparentPower.apparentPower.value': {\r\n handler(newValue: string | null) {\r\n this.model.generatorTotalApparentPower.value = this.getTotalPower(\r\n this.model.generatorQuantityAndGeneratorType.quantity.value,\r\n newValue,\r\n );\r\n },\r\n immediate: true,\r\n },\r\n 'model.generatorManufacturerAndModuleType.manufacturerText.value': {\r\n handler(newValue: string | null) {\r\n // On any sort of interaction, sync to backing field\r\n this.model.generatorManufacturerAndModuleType.manufacturer.value = newValue;\r\n },\r\n immediate: false,\r\n },\r\n 'model.generatorManufacturerAndModuleType.manufacturerSelect.value': {\r\n handler(newValue: string | null, oldValue: string | null): void {\r\n // On any sort of interaction, sync to backing field\r\n this.model.generatorManufacturerAndModuleType.manufacturer.value = newValue;\r\n\r\n // If value didn't change, there is nothing that has to be done\r\n if (newValue === oldValue) {\r\n return;\r\n }\r\n\r\n // If new value is empty, then this field shouldn't cause changes to ay other fields,\r\n // except for the aforementioned backing field\r\n if (!newValue) {\r\n return;\r\n }\r\n\r\n // That's where we end, if the manufacturer name hasn't been set already\r\n if (\r\n !this.model.generatorManufacturerAndModuleType\r\n .moduleTypeSelect.value\r\n ) {\r\n return;\r\n }\r\n\r\n // However, if both are available, try searching for an generator for auto pre-fill,\r\n // clearing the other fields, if no match could be found\r\n const generator = this.getGenerator({\r\n manufacturerName: newValue,\r\n moduleType: this.model.generatorManufacturerAndModuleType\r\n .moduleTypeSelect.value,\r\n });\r\n if (generator === undefined) {\r\n this.model.generatorManufacturerAndModuleType.moduleTypeSelect.value = null;\r\n this.model.generatorZerezIdAndNorm.zerezId.value = null;\r\n this.model.generatorZerezIdAndNorm.norm.value = null;\r\n this.model.generatorActivePowerAndApparentPower.activePower.value = null;\r\n this.model.generatorActivePowerAndApparentPower.apparentPower.value = null;\r\n return;\r\n }\r\n\r\n this.updateGeneratorFields(generator);\r\n },\r\n immediate: false,\r\n },\r\n 'model.generatorManufacturerAndModuleType.moduleTypeText.value': {\r\n handler(newValue: string | null) {\r\n // On any sort of interaction, sync to backing field\r\n this.model.generatorManufacturerAndModuleType.moduleType.value = newValue;\r\n },\r\n immediate: false,\r\n },\r\n 'model.generatorManufacturerAndModuleType.moduleTypeSelect.value': {\r\n handler(newValue: string | null, oldValue: string | null): void {\r\n // On any sort of interaction, sync to backing field\r\n this.model.generatorManufacturerAndModuleType.moduleType.value = newValue;\r\n\r\n // If value didn't change, there is nothing that has to be done\r\n if (newValue === oldValue) {\r\n return;\r\n }\r\n\r\n // If new value is empty, then this field shouldn't cause changes to ay other fields,\r\n // except for the aforementioned backing field\r\n if (!newValue) {\r\n return;\r\n }\r\n\r\n // That's where we end, if the manufacturer name hasn't been set already\r\n if (\r\n !this.model.generatorManufacturerAndModuleType\r\n .manufacturerSelect.value\r\n ) {\r\n return;\r\n }\r\n\r\n // However, if both are available, try searching for an generator for auto pre-fill,\r\n // clearing the other fields, if no match could be found\r\n const generator = this.getGenerator({\r\n manufacturerName: this.model\r\n .generatorManufacturerAndModuleType.manufacturerSelect\r\n .value,\r\n moduleType: newValue,\r\n });\r\n if (generator === undefined) {\r\n this.model.generatorManufacturerAndModuleType.manufacturerSelect.value = null;\r\n this.model.generatorZerezIdAndNorm.zerezId.value = null;\r\n this.model.generatorZerezIdAndNorm.norm.value = null;\r\n this.model.generatorActivePowerAndApparentPower.activePower.value = null;\r\n this.model.generatorActivePowerAndApparentPower.apparentPower.value = null;\r\n return;\r\n }\r\n\r\n this.updateGeneratorFields(generator);\r\n },\r\n immediate: false,\r\n },\r\n 'model.generatorZerezIdAndNorm.zerezId.value': {\r\n handler(newValue: string | null, oldValue: string | null): void {\r\n // On any sort of interaction, sync to backing field\r\n this.model.generatorZerezIdAndNorm.zerezId.value = newValue;\r\n\r\n // If value didn't change, there is nothing that has to be done\r\n if (newValue === oldValue) {\r\n return;\r\n }\r\n\r\n // If new value is empty, then do not cause a watcher loop\r\n if (!newValue) {\r\n return;\r\n }\r\n\r\n // However, if both are available, try searching for an generator for auto pre-fill,\r\n // clearing the other fields, if no match could be found\r\n const generator = this.getGenerator({\r\n zerezId: newValue,\r\n });\r\n if (generator === undefined) {\r\n this.model.generatorManufacturerAndModuleType.manufacturerSelect.value = null;\r\n this.model.generatorManufacturerAndModuleType.moduleTypeSelect.value = null;\r\n this.model.generatorZerezIdAndNorm.norm.value = null;\r\n this.model.generatorActivePowerAndApparentPower.activePower.value = null;\r\n this.model.generatorActivePowerAndApparentPower.apparentPower.value = null;\r\n return;\r\n }\r\n\r\n this.updateGeneratorFields(generator);\r\n },\r\n immediate: false,\r\n },\r\n 'model.generatorZerezIdAndNorm.norm.value': {\r\n handler(newValue: ConnectionRulesType[]) {\r\n if (!newValue) {\r\n this.model.generatorZerezIdAndNorm.normText.value = null;\r\n return;\r\n }\r\n\r\n const translated = newValue.map(\r\n (value) =>\r\n (enumsContent.connectionRulesType as EntryListContent)[\r\n camelCase(value)\r\n ],\r\n ) as string[];\r\n this.model.generatorZerezIdAndNorm.normText.value = translated.join(\r\n ', ',\r\n );\r\n },\r\n immediate: true,\r\n },\r\n // If the displayed fields are toggled, set the backing fields to the values of the now shown fields and possibly clear irrelevant fields\r\n generatorManualInputManufacturerTypeZerezId: {\r\n handler(newValue: boolean) {\r\n // Update backing fields and possibly other fields based on which fields are displayed\r\n if (newValue) {\r\n this.model.generatorManufacturerAndModuleType.manufacturer.value = this.model.generatorManufacturerAndModuleType.manufacturerText.value;\r\n this.model.generatorManufacturerAndModuleType.moduleType.value = this.model.generatorManufacturerAndModuleType.moduleTypeText.value;\r\n this.model.generatorZerezIdAndNorm.zerezId.value = null;\r\n this.model.generatorZerezIdAndNorm.norm.value = null;\r\n this.model.generatorActivePowerAndApparentPower.activePower.value = null;\r\n this.model.generatorActivePowerAndApparentPower.apparentPower.value = null;\r\n } else {\r\n this.model.generatorManufacturerAndModuleType.manufacturer.value = this.model.generatorManufacturerAndModuleType.manufacturerSelect.value;\r\n this.model.generatorManufacturerAndModuleType.moduleType.value = this.model.generatorManufacturerAndModuleType.moduleTypeSelect.value;\r\n\r\n // Reset norm field, if zerez id is not filled\r\n if (\r\n this.model.generatorZerezIdAndNorm.zerezId.value === null\r\n ) {\r\n this.model.generatorZerezIdAndNorm.norm.value = null;\r\n }\r\n\r\n // Check currently filled fields, to possibly immediately prefill fields back up again (e.g. someone checked the box, which clears zerez id and norm, and immediately unchecks it again)\r\n if (this.model.generatorZerezIdAndNorm.zerezId.value) {\r\n const generator = this.getGenerator({\r\n zerezId: this.model.generatorZerezIdAndNorm.zerezId\r\n .value,\r\n });\r\n if (generator) {\r\n this.updateGeneratorFields(generator);\r\n }\r\n } else if (\r\n this.model.generatorManufacturerAndModuleType\r\n .manufacturerSelect.value &&\r\n this.model.generatorManufacturerAndModuleType\r\n .moduleTypeSelect.value\r\n ) {\r\n const generator = this.getGenerator({\r\n manufacturerName: this.model\r\n .generatorManufacturerAndModuleType\r\n .manufacturerSelect.value,\r\n moduleType: this.model\r\n .generatorManufacturerAndModuleType\r\n .moduleTypeSelect.value,\r\n });\r\n if (generator) {\r\n this.updateGeneratorFields(generator);\r\n }\r\n }\r\n }\r\n },\r\n immediate: false,\r\n },\r\n },\r\n created() {\r\n if (this.generatorManualInputManufacturerTypeZerezId) {\r\n this.model.generatorManufacturerAndModuleType.manufacturerText.value = this.model.generatorManufacturerAndModuleType.manufacturer.value;\r\n this.model.generatorManufacturerAndModuleType.moduleTypeText.value = this.model.generatorManufacturerAndModuleType.moduleType.value;\r\n this.model.generatorZerezIdAndNorm.zerezId.value = null;\r\n } else {\r\n this.model.generatorManufacturerAndModuleType.manufacturerSelect.value = this.model.generatorManufacturerAndModuleType.manufacturer.value;\r\n this.model.generatorManufacturerAndModuleType.moduleTypeSelect.value = this.model.generatorManufacturerAndModuleType.moduleType.value;\r\n }\r\n },\r\n methods: {\r\n getTotalPower(\r\n rawQuantity: number | null,\r\n rawPower: string | null,\r\n ): number {\r\n // power as number; default: 0\r\n let power = 0;\r\n if (rawPower != null) {\r\n const parsedPower = parseGermanFloat(rawPower);\r\n power = number(parsedPower) ? parsedPower : 0;\r\n }\r\n\r\n // quantity as number; default: 0\r\n let quantity = 0;\r\n if (rawQuantity != null) {\r\n quantity = number(rawQuantity) ? rawQuantity : 0;\r\n }\r\n\r\n return roundToDecimals(quantity * power);\r\n },\r\n getGenerator(\r\n search:\r\n | GeneratorDataContentSearchByManufacturerAndModuleType\r\n | GeneratorDataContentSearchByZerezId,\r\n ): GeneratorDataContent | undefined {\r\n const content = contentServices.form.content;\r\n if (!content) {\r\n return undefined;\r\n }\r\n\r\n const generatorsContent =\r\n content?.serviceDrivenContent?.generatorsContent;\r\n if (!generatorsContent) {\r\n return undefined;\r\n }\r\n\r\n if (\r\n isGeneratorDataContentSearchByManufacturerAndModuleType(search)\r\n ) {\r\n return generatorsContent.find(\r\n (generator) =>\r\n generator.manufacturerName ===\r\n search.manufacturerName &&\r\n generator.moduleType === search.moduleType,\r\n );\r\n } else {\r\n return generatorsContent.find(\r\n (generator) => generator.zerezId === search.zerezId,\r\n );\r\n }\r\n },\r\n /**\r\n * Updates all fields included in the generator, based on which ones are currently displayed.\r\n * Also, only updates values that have actually changed, to avoid potentially triggering watchers unintentionally\r\n * @param generator\r\n */\r\n updateGeneratorFields(generator: GeneratorDataContent) {\r\n const showingDropdownFields =\r\n this.model.generatorManualInputManufacturerTypeZerezId\r\n .disabled ||\r\n !this.model.generatorManualInputManufacturerTypeZerezId.value;\r\n\r\n // Manufacturer Name\r\n if (\r\n generator.manufacturerName !==\r\n this.model.generatorManufacturerAndModuleType.manufacturer.value\r\n ) {\r\n if (showingDropdownFields) {\r\n this.model.generatorManufacturerAndModuleType.manufacturerSelect.value =\r\n generator.manufacturerName;\r\n } else {\r\n this.model.generatorManufacturerAndModuleType.manufacturerText.value =\r\n generator.manufacturerName;\r\n }\r\n }\r\n\r\n // Manufacturer Module Type\r\n if (\r\n generator.moduleType !==\r\n this.model.generatorManufacturerAndModuleType.moduleType.value\r\n ) {\r\n if (showingDropdownFields) {\r\n this.model.generatorManufacturerAndModuleType.moduleTypeSelect.value =\r\n generator.moduleType;\r\n } else {\r\n this.model.generatorManufacturerAndModuleType.moduleTypeText.value =\r\n generator.moduleType;\r\n }\r\n }\r\n\r\n // Zerez Id\r\n if (\r\n generator.zerezId !==\r\n this.model.generatorZerezIdAndNorm.zerezId.value\r\n ) {\r\n this.model.generatorZerezIdAndNorm.zerezId.value =\r\n generator.zerezId;\r\n }\r\n\r\n // Norm\r\n if (\r\n generator.connectionRulesTypes !==\r\n this.model.generatorZerezIdAndNorm.norm.value\r\n ) {\r\n this.model.generatorZerezIdAndNorm.norm.value =\r\n generator.connectionRulesTypes;\r\n }\r\n\r\n // Active Power\r\n const parsedActivePower = formatGermanNumber(\r\n generator.activePower,\r\n {\r\n decimals: 2,\r\n thousandsSeparator: true,\r\n },\r\n );\r\n if (\r\n parsedActivePower !==\r\n this.model.generatorActivePowerAndApparentPower.activePower\r\n .value\r\n ) {\r\n this.model.generatorActivePowerAndApparentPower.activePower.value = parsedActivePower;\r\n }\r\n\r\n // Apparent Power\r\n const parsedApparentPower = formatGermanNumber(\r\n generator.apparentPower,\r\n { decimals: 2, thousandsSeparator: true },\r\n );\r\n if (\r\n parsedApparentPower !==\r\n this.model.generatorActivePowerAndApparentPower.apparentPower\r\n .value\r\n ) {\r\n this.model.generatorActivePowerAndApparentPower.apparentPower.value = parsedApparentPower;\r\n }\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GeneratorModuleFormGroup.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GeneratorModuleFormGroup.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./GeneratorModuleFormGroup.vue?vue&type=template&id=c6e30450&\"\nimport script from \"./GeneratorModuleFormGroup.vue?vue&type=script&lang=ts&\"\nexport * from \"./GeneratorModuleFormGroup.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { GeneratorModuleFormListContent } from '@/api/interfaces/content/form/steps/plantPerformance/generatorContent';\r\nimport FunctionalityButton, {\r\n FunctionalityButtonValueType,\r\n} from '@/components/molecules/functionalityButton/FunctionalityButton.vue';\r\nimport GeneratorModuleFormGroup from '@/components/organisms/plantPerformance/generatorModuleFormGroup/GeneratorModuleFormGroup.vue';\r\nimport { getFormInputMixin } from '@/mixins/formInputMixin';\r\nimport { GeneratorModuleFormGroup as GeneratorModuleFormGroupType } from '@/types/forms/formGroups/plantPerformance/generator/generatorModuleFormGroup';\r\nimport { GeneratorModuleFormList } from '@/types/forms/formGroups/plantPerformance/generator/generatorModuleFormList';\r\n\r\nexport default getFormInputMixin<\r\n GeneratorModuleFormList,\r\n GeneratorModuleFormListContent\r\n>().extend({\r\n name: 'GeneratorModuleFormList',\r\n components: {\r\n FunctionalityButton,\r\n GeneratorModuleFormGroup,\r\n },\r\n props: {\r\n applicationId: {\r\n type: String,\r\n required: true,\r\n },\r\n },\r\n data() {\r\n return {\r\n functionalityButtonValue: 'add' as FunctionalityButtonValueType,\r\n };\r\n },\r\n computed: {\r\n canAddItem(): boolean {\r\n return this.model.canAddItem();\r\n },\r\n canRemoveItem(): boolean {\r\n return this.model.canRemoveItem();\r\n },\r\n },\r\n methods: {\r\n handleFunctionalityButtonClick(): void {\r\n this.model.createItem();\r\n },\r\n handleModuleFunctionalityButtonClick(\r\n value: FunctionalityButtonValueType,\r\n generator: GeneratorModuleFormGroupType,\r\n ): void {\r\n if (value === 'remove') {\r\n this.model.removeItem(generator);\r\n }\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GeneratorModuleFormList.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GeneratorModuleFormList.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./GeneratorModuleFormList.vue?vue&type=template&id=333601ba&\"\nimport script from \"./GeneratorModuleFormList.vue?vue&type=script&lang=ts&\"\nexport * from \"./GeneratorModuleFormList.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { getFormInputMixin } from '@/mixins/formInputMixin';\r\nimport FormField from '@/components/molecules/formField/FormField.vue';\r\nimport FormTextBlock from '@/components/molecules/formTextBlock/FormTextBlock.vue';\r\nimport GeneratorModuleFormList from '@/components/organisms/plantPerformance/generatorModuleFormList/GeneratorModuleFormList.vue';\r\nimport { GeneratorFormGroupContent } from '@/api/interfaces/content/form/steps/plantPerformance/generatorContent';\r\nimport { interpolate } from '@/services/interpolationService';\r\nimport { formatGermanNumber } from '@/utilities/germanFormats';\r\nimport { GeneratorFormGroup } from '@/types/forms/formGroups/plantPerformance/generator/generatorFormGroup';\r\nimport type { GeneratorModuleFormList as GeneratorModuleFormListType } from '@/types/forms/formGroups/plantPerformance/generator/generatorModuleFormList';\r\nimport { roundToDecimals } from '@/utilities/math';\r\n\r\nexport default getFormInputMixin<\r\n GeneratorFormGroup,\r\n GeneratorFormGroupContent\r\n>().extend({\r\n name: 'GeneratorFormGroup',\r\n props: {\r\n applicationId: {\r\n type: String,\r\n required: true,\r\n },\r\n },\r\n components: {\r\n FormField,\r\n FormTextBlock,\r\n GeneratorModuleFormList,\r\n },\r\n computed: {\r\n overallActivePowerDisplayValue(): string {\r\n return this.getDisplayValue(\r\n this.model.generatorOverallActivePower.value,\r\n this.content.generatorOverallActivePower.unit,\r\n );\r\n },\r\n overallApparentPowerDisplayValue(): string {\r\n return this.getDisplayValue(\r\n this.model.generatorOverallApparentPower.value,\r\n this.content.generatorOverallApparentPower.unit,\r\n );\r\n },\r\n },\r\n watch: {\r\n 'model.generatorModules': {\r\n handler(newValue: GeneratorModuleFormListType) {\r\n let overallActivePower = 0;\r\n if (newValue != null) {\r\n overallActivePower = roundToDecimals(\r\n newValue.items.reduce(\r\n (sum, item) =>\r\n (sum +=\r\n item.generatorTotalActivePower.value ?? 0),\r\n 0,\r\n ),\r\n );\r\n }\r\n this.model.generatorOverallActivePower.value = overallActivePower;\r\n\r\n let overallApparentPower = 0;\r\n if (newValue != null) {\r\n overallApparentPower = roundToDecimals(\r\n newValue.items.reduce(\r\n (sum, item) =>\r\n (sum +=\r\n item.generatorTotalApparentPower.value ??\r\n 0),\r\n 0,\r\n ),\r\n );\r\n }\r\n this.model.generatorOverallApparentPower.value = overallApparentPower;\r\n },\r\n deep: true,\r\n immediate: true,\r\n },\r\n 'model.generatorOverallApparentPower.value'(): void {\r\n if (this.validations) {\r\n this.validations.generatorOverallApparentPower.$touch();\r\n }\r\n },\r\n },\r\n methods: {\r\n getDisplayValue(\r\n rawValue: number | null,\r\n stringToInterpolate: string,\r\n ): string {\r\n return interpolate(stringToInterpolate, {\r\n value: formatGermanNumber(rawValue ?? 0, {\r\n decimals: 2,\r\n thousandsSeparator: true,\r\n }),\r\n });\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GeneratorFormGroup.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GeneratorFormGroup.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./GeneratorFormGroup.vue?vue&type=template&id=1598c6a5&\"\nimport script from \"./GeneratorFormGroup.vue?vue&type=script&lang=ts&\"\nexport * from \"./GeneratorFormGroup.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { getFormStepMixin } from '@/mixins/formStepMixin';\r\nimport ButtonSpacer from '@/components/molecules/buttonSpacer/ButtonSpacer.vue';\r\nimport PhotovoltaicFormGroup from '@/components/organisms/plantPerformance/photovoltaicFormGroup/PhotovoltaicFormGroup.vue';\r\nimport StorageFormGroup from '@/components/organisms/plantPerformance/storageFormGroup/StorageFormGroup.vue';\r\nimport InverterFormGroup from '@/components/organisms/plantPerformance/inverterFormGroup/InverterFormGroup.vue';\r\nimport GeneratorFormGroup from '@/components/organisms/plantPerformance/generatorFormGroup/GeneratorFormGroup.vue';\r\nimport { PlantPerformanceFormStep } from '@/types/forms/formSteps/plantPerformanceFormStep';\r\nimport { PlantPerformanceFormStepContent } from '@/api/interfaces/content/form/steps/plantPerformanceStepContent';\r\nimport FormField from '@/components/molecules/formField/FormField.vue';\r\nimport FormFileUpload from '@/components/molecules/formFileUpload/FormFileUpload.vue';\r\nimport FormInputText from '@/components/atoms/formInputText/FormInputText.vue';\r\nimport FormSelect from '@/components/molecules/formSelect/FormSelect.vue';\r\nimport FormBooleanCheckbox from '@/components/molecules/formBooleanCheckbox/FormBooleanCheckbox.vue';\r\nimport FormRadioGroup from '@/components/molecules/formRadioGroup/FormRadioGroup.vue';\r\nimport FormCheckboxList from '@/components/molecules/formCheckboxList/FormCheckboxList.vue';\r\nimport FormTextBlock from '@/components/molecules/formTextBlock/FormTextBlock.vue';\r\nimport {\r\n isPluginGeneratingPlant,\r\n isPv,\r\n isPvAndStorageLte30,\r\n isStorage,\r\n} from '@/services/form/rules/application/common';\r\nimport { ApplicationForm } from '@/types/forms/specific/applicationForm';\r\nimport { FormStepConfiguration } from '@/api/interfaces/configuration/form/base/formStepConfiguration';\r\n\r\nexport default getFormStepMixin<\r\n PlantPerformanceFormStep,\r\n PlantPerformanceFormStepContent,\r\n FormStepConfiguration\r\n>().extend({\r\n name: 'PlantPerformanceForm',\r\n components: {\r\n ButtonSpacer,\r\n PhotovoltaicFormGroup,\r\n StorageFormGroup,\r\n InverterFormGroup,\r\n GeneratorFormGroup,\r\n FormField,\r\n FormFileUpload,\r\n FormInputText,\r\n FormSelect,\r\n FormBooleanCheckbox,\r\n FormRadioGroup,\r\n FormCheckboxList,\r\n FormTextBlock,\r\n },\r\n computed: {\r\n isPluginGeneratingPlant(): boolean {\r\n const formModel = this.formModel as ApplicationForm;\r\n return isPluginGeneratingPlant(formModel);\r\n },\r\n isPv(): boolean {\r\n const formModel = this.formModel as ApplicationForm;\r\n return isPv(formModel);\r\n },\r\n isStorage(): boolean {\r\n const formModel = this.formModel as ApplicationForm;\r\n return isStorage(formModel);\r\n },\r\n isPvAndStorageLte30(): boolean {\r\n const formModel = this.formModel as ApplicationForm;\r\n return isPvAndStorageLte30(formModel);\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PlantPerformanceForm.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PlantPerformanceForm.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PlantPerformanceForm.vue?vue&type=template&id=2e4fa0e1&\"\nimport script from \"./PlantPerformanceForm.vue?vue&type=script&lang=ts&\"\nexport * from \"./PlantPerformanceForm.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"container\",class:{ 'mb-4 md:mb-8 lg:mb-10 xl:mb-12': !_vm.showSummary }},[(!_vm.showSummary)?_c('FormTextBlock',{staticClass:\"check-notice\",attrs:{\"model\":_vm.model.checkNotice,\"content\":_vm.content.checkNotice,\"validations\":_vm.validations.checkNotice}}):_vm._e(),_c('FormField',{staticClass:\"comments\",attrs:{\"model\":_vm.model.comments,\"content\":_vm.content.comments,\"validations\":_vm.validations.comments,\"show-summary\":_vm.showSummary,\"summary-value\":_vm.model.comments.value}},[_c('FormInputMultiLineText',{attrs:{\"model\":_vm.model.comments,\"content\":_vm.content.comments,\"validations\":_vm.validations.comments}})],1),(!_vm.showSummary)?_c('FormField',{staticClass:\"summary-document\",attrs:{\"model\":_vm.model.summaryDocument,\"content\":_vm.content.summaryDocument,\"validations\":_vm.validations.summaryDocument}},[_c('DocumentDownload',{attrs:{\"model\":_vm.model.summaryDocument,\"content\":_vm.content.summaryDocument,\"document-id\":\"applicationDocumentsZip\",\"application-id\":_vm.formModel.applicationId,\"show-info-icon\":\"\"}})],1):_vm._e(),_c('FormField',{staticClass:\"privacy-information\",attrs:{\"model\":_vm.model.privacyInformation,\"content\":_vm.content.privacyInformation,\"validations\":_vm.validations.privacyInformation,\"align-field\":\"singleLine\",\"show-summary\":_vm.showSummary,\"summary-value\":_vm.model.privacyInformation.value}},[_c('FormBooleanCheckbox',{attrs:{\"model\":_vm.model.privacyInformation,\"content\":_vm.content.privacyInformation,\"validations\":_vm.validations.privacyInformation}})],1),_c('FormField',{staticClass:\"general-terms-consent\",attrs:{\"model\":_vm.model.generalTermsConsent,\"content\":_vm.generalTermsConsentContent,\"validations\":_vm.validations.generalTermsConsent,\"align-field\":\"singleLine\",\"show-summary\":_vm.showSummary,\"summary-value\":_vm.model.generalTermsConsent.value}},[_c('FormBooleanCheckbox',{attrs:{\"model\":_vm.model.generalTermsConsent,\"content\":_vm.generalTermsConsentContent,\"validations\":_vm.validations.generalTermsConsent}})],1),_c('FormField',{staticClass:\"marketing-consent\",attrs:{\"model\":_vm.model.marketingConsent,\"content\":_vm.content.marketingConsent.value,\"validations\":_vm.validations.marketingConsent,\"align-field\":\"singleLine\",\"show-summary\":_vm.showSummary,\"summary-value\":_vm.model.marketingConsent.value}},[_c('FormBooleanCheckbox',{attrs:{\"model\":_vm.model.marketingConsent,\"content\":_vm.content.marketingConsent,\"validations\":_vm.validations.marketingConsent,\"show-info-icon\":\"\"}})],1),(!_vm.showSummary)?_c('FormTextBlock',{staticClass:\"correctness-notice\",attrs:{\"model\":_vm.model.correctnessNotice,\"content\":_vm.content.correctnessNotice,\"validations\":_vm.validations.correctnessNotice}}):_vm._e(),(!_vm.showSummary)?_c('ButtonSpacer',{attrs:{\"align\":\"right\",\"content\":_vm.content,\"button-text\":_vm.content.buttonNext.text,\"show-debug-fill-button\":_vm.showDebugFillButton},on:{\"button-click\":_vm.validateAndSubmit,\"debug-fill-button-click\":_vm.debugFillSubmit}}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { getFormStepMixin } from '@/mixins/formStepMixin';\r\nimport { CheckAndSendFormStep } from '@/types/forms/formSteps/checkAndSendFormStep';\r\nimport { CheckAndSendFormStepContent } from '@/api/interfaces/content/form/steps/checkAndSendFormStepContent';\r\nimport { FormStepConfiguration } from '@/api/interfaces/configuration/form/base/formStepConfiguration';\r\nimport ButtonSpacer from '@/components/molecules/buttonSpacer/ButtonSpacer.vue';\r\nimport FormField from '@/components/molecules/formField/FormField.vue';\r\nimport FormInputText from '@/components/atoms/formInputText/FormInputText.vue';\r\nimport FormInputMultiLineText from '@/components/atoms/formInputMultiLineText/FormInputMultiLineText.vue';\r\nimport DocumentDownload from '@/components/atoms/documentDownload/DocumentDownload.vue';\r\nimport FormBooleanCheckbox from '@/components/molecules/formBooleanCheckbox/FormBooleanCheckbox.vue';\r\nimport FormTextBlock from '@/components/molecules/formTextBlock/FormTextBlock.vue';\r\nimport { LabelContent } from '@/api/interfaces/content/form/base/labelContent';\r\nimport { CheckboxContent } from '@/api/interfaces/content/form/base/checkboxContent';\r\nimport { isLowVoltage } from '@/services/form/rules/application/common';\r\nimport { ApplicationForm } from '@/types/forms/specific/applicationForm';\r\n\r\nexport default getFormStepMixin<\r\n CheckAndSendFormStep,\r\n CheckAndSendFormStepContent,\r\n FormStepConfiguration\r\n>().extend({\r\n name: 'CheckAndSendForm',\r\n components: {\r\n FormField,\r\n ButtonSpacer,\r\n FormInputText,\r\n FormInputMultiLineText,\r\n DocumentDownload,\r\n FormBooleanCheckbox,\r\n FormTextBlock,\r\n },\r\n computed: {\r\n generalTermsConsentContent(): LabelContent & CheckboxContent {\r\n return isLowVoltage(\r\n (this.formModel as ApplicationForm).powerConnection,\r\n )\r\n ? this.content.generalTermsConsentNS\r\n : this.content.generalTermsConsentMS;\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CheckAndSendForm.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CheckAndSendForm.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CheckAndSendForm.vue?vue&type=template&id=10d5674d&\"\nimport script from \"./CheckAndSendForm.vue?vue&type=script&lang=ts&\"\nexport * from \"./CheckAndSendForm.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"container\",class:{ 'mb-4 md:mb-8 lg:mb-10 xl:mb-12': !_vm.showSummary }},[_c('FormField',{staticClass:\"meter-picture\",attrs:{\"model\":_vm.model.meterPicture,\"content\":_vm.content.meterPicture,\"validations\":_vm.validations.meterPicture,\"show-summary\":_vm.showSummary,\"summary-value\":_vm.model.meterPicture.value && _vm.model.meterPicture.value.name}},[_c('FormFileUpload',{attrs:{\"model\":_vm.model.meterPicture,\"content\":_vm.content.meterPicture,\"configuration\":_vm.configuration.fields.meterPicture,\"validations\":_vm.validations.meterPicture,\"application-id\":_vm.formModel.applicationId}})],1),_c('FormField',{staticClass:\"bafa-approval\",attrs:{\"model\":_vm.model.bafaApproval,\"content\":_vm.content.bafaApproval,\"validations\":_vm.validations.bafaApproval,\"show-summary\":_vm.showSummary,\"summary-value\":_vm.model.bafaApproval.value && _vm.model.bafaApproval.value.name}},[_c('FormFileUpload',{attrs:{\"model\":_vm.model.bafaApproval,\"content\":_vm.content.bafaApproval,\"configuration\":_vm.configuration.fields.bafaApproval,\"validations\":_vm.validations.bafaApproval,\"application-id\":_vm.formModel.applicationId,\"show-info-icon\":\"\"}})],1),_c('FormField',{staticClass:\"grid-and-plant-protection-proof-of-conformity\",attrs:{\"model\":_vm.model.gridAndPlantProtectionProofOfConformity,\"content\":_vm.content.gridAndPlantProtectionProofOfConformity,\"validations\":_vm.validations.gridAndPlantProtectionProofOfConformity,\"show-summary\":_vm.showSummary,\"summary-value\":_vm.model.gridAndPlantProtectionProofOfConformity.value\n ? _vm.model.gridAndPlantProtectionProofOfConformity.value.name\n : '',\"show-asterisk\":_vm.showAsteriskForGridAndPlantProtectionProofOfConformity}},[_c('FormFileUpload',{attrs:{\"model\":_vm.model.gridAndPlantProtectionProofOfConformity,\"content\":_vm.content.gridAndPlantProtectionProofOfConformity,\"configuration\":_vm.configuration.fields.gridAndPlantProtectionProofOfConformity,\"validations\":_vm.validations.gridAndPlantProtectionProofOfConformity,\"application-id\":_vm.formModel.applicationId}})],1),(!_vm.isPvAndStorageLte30)?_c('DocumentsFormStorageSection',{attrs:{\"content\":_vm.content,\"model\":_vm.model,\"form-model\":_vm.formModel,\"validations\":_vm.validations,\"configuration\":_vm.configuration,\"show-summary\":_vm.showSummary}}):_vm._e(),_vm._l(([\n 'inverterModules',\n 'inverterStorageModules' ]),function(inverterModuleKey){return [(\n _vm.isPvAndStorageLte30 &&\n inverterModuleKey == 'inverterStorageModules'\n )?_c('DocumentsFormStorageSection',{key:inverterModuleKey + '-storageSection',attrs:{\"content\":_vm.content,\"model\":_vm.model,\"form-model\":_vm.formModel,\"validations\":_vm.validations,\"configuration\":_vm.configuration,\"show-summary\":_vm.showSummary}}):_vm._e(),(!_vm.model[inverterModuleKey].disabled)?_c('div',{key:inverterModuleKey,attrs:{\"className\":inverterModuleKey}},[_vm._l((_vm.model[inverterModuleKey]\n .items),function(inverterModule,index){return [_c('div',{key:index},[(\n !_vm.model.inverterModules.disabled &&\n (!inverterModule\n .inverterConformityConfirmationOrUnitCertificate\n .disabled ||\n !inverterModule.inverterTechnicalDataSheet\n .disabled ||\n !inverterModule.inverterProofOfConformity\n .disabled ||\n !inverterModule.inverterUnitCertificate\n .disabled)\n )?_c('div',{staticClass:\"lg:text-lg xl:text-xl font-normal\"},[_vm._v(\" Wechselrichter (\"+_vm._s(_vm.formModel.plantPerformance[ inverterModuleKey == 'inverterStorageModules' ? 'inverterStorage' : 'inverter' ].inverterModules.items[index] && _vm.formModel.plantPerformance[ inverterModuleKey == 'inverterStorageModules' ? 'inverterStorage' : 'inverter' ].inverterModules.items[index] .inverterManufacturerAndModuleType .manufacturer.value)+\", \"+_vm._s(_vm.formModel.plantPerformance[ inverterModuleKey == 'inverterStorageModules' ? 'inverterStorage' : 'inverter' ].inverterModules.items[index] && _vm.formModel.plantPerformance[ inverterModuleKey == 'inverterStorageModules' ? 'inverterStorage' : 'inverter' ].inverterModules.items[index] .inverterManufacturerAndModuleType .moduleType.value)+\") \")]):_vm._e(),_c('FormField',{staticClass:\"inverter-conformity-confirmation-or-unit-certificate\",attrs:{\"model\":inverterModule.inverterConformityConfirmationOrUnitCertificate,\"content\":_vm.content.inverterConformityConfirmationOrUnitCertificate,\"validations\":_vm.validations[inverterModuleKey][index] &&\n _vm.validations[inverterModuleKey][index]\n .inverterConformityConfirmationOrUnitCertificate,\"show-summary\":_vm.showSummary,\"summary-value\":inverterModule\n .inverterConformityConfirmationOrUnitCertificate\n .value\n ? inverterModule\n .inverterConformityConfirmationOrUnitCertificate\n .value.name\n : ''}},[_c('FormFileUpload',{attrs:{\"model\":inverterModule.inverterConformityConfirmationOrUnitCertificate,\"content\":_vm.content.inverterConformityConfirmationOrUnitCertificate,\"configuration\":_vm.configuration.fields\n .inverterConformityConfirmationOrUnitCertificate,\"validations\":_vm.validations[inverterModuleKey][index] &&\n _vm.validations[inverterModuleKey][index]\n .inverterConformityConfirmationOrUnitCertificate,\"application-id\":_vm.formModel.applicationId}})],1),_c('FormField',{staticClass:\"inverter-technical-data-sheet\",attrs:{\"model\":inverterModule.inverterTechnicalDataSheet,\"content\":_vm.content.inverterTechnicalDataSheet,\"validations\":_vm.validations[inverterModuleKey][index] &&\n _vm.validations[inverterModuleKey][index]\n .inverterTechnicalDataSheet,\"show-summary\":_vm.showSummary,\"summary-value\":inverterModule.inverterTechnicalDataSheet.value\n ? inverterModule.inverterTechnicalDataSheet\n .value.name\n : ''}},[_c('FormFileUpload',{attrs:{\"model\":inverterModule.inverterTechnicalDataSheet,\"content\":_vm.content.inverterTechnicalDataSheet,\"configuration\":_vm.configuration.fields\n .inverterTechnicalDataSheet,\"validations\":_vm.validations[inverterModuleKey][index] &&\n _vm.validations[inverterModuleKey][index]\n .inverterTechnicalDataSheet,\"application-id\":_vm.formModel.applicationId}})],1),_c('FormField',{staticClass:\"inverter-proof-of-conformity\",attrs:{\"model\":inverterModule.inverterProofOfConformity,\"content\":_vm.content.inverterProofOfConformity,\"validations\":_vm.validations[inverterModuleKey][index] &&\n _vm.validations[inverterModuleKey][index]\n .inverterProofOfConformity,\"show-summary\":_vm.showSummary,\"summary-value\":inverterModule.inverterProofOfConformity.value\n ? inverterModule.inverterProofOfConformity\n .value.name\n : ''}},[_c('FormFileUpload',{attrs:{\"model\":inverterModule.inverterProofOfConformity,\"content\":_vm.content.inverterProofOfConformity,\"configuration\":_vm.configuration.fields\n .inverterProofOfConformity,\"validations\":_vm.validations[inverterModuleKey][index] &&\n _vm.validations[inverterModuleKey][index]\n .inverterProofOfConformity,\"application-id\":_vm.formModel.applicationId}})],1),_c('FormField',{staticClass:\"inverter-unit-certificate\",attrs:{\"model\":inverterModule.inverterUnitCertificate,\"content\":_vm.content.inverterUnitCertificate,\"validations\":_vm.validations[inverterModuleKey][index] &&\n _vm.validations[inverterModuleKey][index]\n .inverterUnitCertificate,\"show-summary\":_vm.showSummary,\"summary-value\":inverterModule.inverterUnitCertificate.value\n ? inverterModule.inverterUnitCertificate\n .value.name\n : ''}},[_c('FormFileUpload',{attrs:{\"model\":inverterModule.inverterUnitCertificate,\"content\":_vm.content.inverterUnitCertificate,\"configuration\":_vm.configuration.fields.inverterUnitCertificate,\"validations\":_vm.validations[inverterModuleKey][index] &&\n _vm.validations[inverterModuleKey][index]\n .inverterUnitCertificate,\"application-id\":_vm.formModel.applicationId}})],1)],1)]})],2):_vm._e()]}),(!_vm.formModel.plantPerformance.generator.disabled)?_c('div',{staticClass:\"generatorModules\"},[_vm._l((_vm.model.generatorModules.items),function(generatorModule,index){return [_c('div',{key:index},[(\n !_vm.model.generatorModules.disabled &&\n (!generatorModule.generatorTechnicalDataSheet\n .disabled ||\n !generatorModule\n .generatorConformityConfirmationOrUnitCertificate\n .disabled ||\n !generatorModule.generatorProofOfConformity\n .disabled ||\n !generatorModule\n .generatorUnitOrPrototypeConfirmation\n .disabled ||\n !generatorModule.generatorComponentCertificate\n .disabled)\n )?_c('div',{staticClass:\"lg:text-lg xl:text-xl font-normal\"},[_vm._v(\" Generator (\"+_vm._s(_vm.formModel.plantPerformance.generator .generatorModules.items[index] && _vm.formModel.plantPerformance.generator .generatorModules.items[index] .generatorManufacturerAndModuleType.manufacturer .value)+\", \"+_vm._s(_vm.formModel.plantPerformance.generator .generatorModules.items[index] && _vm.formModel.plantPerformance.generator .generatorModules.items[index] .generatorManufacturerAndModuleType.moduleType .value)+\") \")]):_vm._e(),_c('FormField',{staticClass:\"generator-technical-data-sheet\",attrs:{\"model\":generatorModule.generatorTechnicalDataSheet,\"content\":_vm.content.generatorTechnicalDataSheet,\"validations\":_vm.validations.generatorModules[index] &&\n _vm.validations.generatorModules[index]\n .generatorTechnicalDataSheet,\"show-summary\":_vm.showSummary,\"summary-value\":generatorModule.generatorTechnicalDataSheet.value\n ? generatorModule.generatorTechnicalDataSheet\n .value.name\n : ''}},[_c('FormFileUpload',{attrs:{\"model\":generatorModule.generatorTechnicalDataSheet,\"content\":_vm.content.generatorTechnicalDataSheet,\"configuration\":_vm.configuration.fields.generatorTechnicalDataSheet,\"validations\":_vm.validations.generatorModules[index] &&\n _vm.validations.generatorModules[index]\n .generatorTechnicalDataSheet,\"application-id\":_vm.formModel.applicationId}})],1),_c('FormField',{staticClass:\"generator-conformity-confirmation-or-unit-certificate\",attrs:{\"model\":generatorModule.generatorConformityConfirmationOrUnitCertificate,\"content\":_vm.content.generatorConformityConfirmationOrUnitCertificate,\"validations\":_vm.validations.generatorModules[index] &&\n _vm.validations.generatorModules[index]\n .generatorConformityConfirmationOrUnitCertificate,\"show-summary\":_vm.showSummary,\"summary-value\":generatorModule\n .generatorConformityConfirmationOrUnitCertificate\n .value\n ? generatorModule\n .generatorConformityConfirmationOrUnitCertificate\n .value.name\n : ''}},[_c('FormFileUpload',{attrs:{\"model\":generatorModule.generatorConformityConfirmationOrUnitCertificate,\"content\":_vm.content.generatorConformityConfirmationOrUnitCertificate,\"configuration\":_vm.configuration.fields\n .generatorConformityConfirmationOrUnitCertificate,\"validations\":_vm.validations.generatorModules[index] &&\n _vm.validations.generatorModules[index]\n .generatorConformityConfirmationOrUnitCertificate,\"application-id\":_vm.formModel.applicationId}})],1),_c('FormField',{staticClass:\"generator-proof-of-conformity\",attrs:{\"model\":generatorModule.generatorProofOfConformity,\"content\":_vm.content.generatorProofOfConformity,\"validations\":_vm.validations.generatorModules[index] &&\n _vm.validations.generatorModules[index]\n .generatorProofOfConformity,\"show-summary\":_vm.showSummary,\"summary-value\":generatorModule.generatorProofOfConformity.value\n ? generatorModule.generatorProofOfConformity\n .value.name\n : ''}},[_c('FormFileUpload',{attrs:{\"model\":generatorModule.generatorProofOfConformity,\"content\":_vm.content.generatorProofOfConformity,\"configuration\":_vm.configuration.fields.generatorProofOfConformity,\"validations\":_vm.validations.generatorModules[index] &&\n _vm.validations.generatorModules[index]\n .generatorProofOfConformity,\"application-id\":_vm.formModel.applicationId}})],1),_c('FormField',{staticClass:\"generator-unit-or-prototype-confirmation\",attrs:{\"model\":generatorModule.generatorUnitOrPrototypeConfirmation,\"content\":_vm.content.generatorUnitOrPrototypeConfirmation,\"validations\":_vm.validations.generatorModules[index] &&\n _vm.validations.generatorModules[index]\n .generatorUnitOrPrototypeConfirmation,\"show-summary\":_vm.showSummary,\"summary-value\":generatorModule.generatorUnitOrPrototypeConfirmation\n .value\n ? generatorModule\n .generatorUnitOrPrototypeConfirmation\n .value.name\n : ''}},[_c('FormFileUpload',{attrs:{\"model\":generatorModule.generatorUnitOrPrototypeConfirmation,\"content\":_vm.content.generatorUnitOrPrototypeConfirmation,\"configuration\":_vm.configuration.fields\n .generatorUnitOrPrototypeConfirmation,\"validations\":_vm.validations.generatorModules[index] &&\n _vm.validations.generatorModules[index]\n .generatorUnitOrPrototypeConfirmation,\"application-id\":_vm.formModel.applicationId}})],1),_c('FormField',{staticClass:\"generator-component-certificate\",attrs:{\"model\":generatorModule.generatorComponentCertificate,\"content\":_vm.content.generatorComponentCertificate,\"validations\":_vm.validations.generatorModules[index] &&\n _vm.validations.generatorModules[index]\n .generatorComponentCertificate,\"show-summary\":_vm.showSummary,\"summary-value\":generatorModule.generatorComponentCertificate.value\n ? generatorModule.generatorComponentCertificate\n .value.name\n : ''}},[_c('FormFileUpload',{attrs:{\"model\":generatorModule.generatorComponentCertificate,\"content\":_vm.content.generatorComponentCertificate,\"configuration\":_vm.configuration.fields\n .generatorComponentCertificate,\"validations\":_vm.validations.generatorModules[index] &&\n _vm.validations.generatorModules[index]\n .generatorComponentCertificate,\"application-id\":_vm.formModel.applicationId}})],1)],1)]})],2):_vm._e(),_c('FormField',{staticClass:\"performance-monitoring-certificate\",attrs:{\"model\":_vm.model.performanceMonitoringCertificate,\"content\":_vm.content.performanceMonitoringCertificate,\"validations\":_vm.validations.performanceMonitoringCertificate,\"show-summary\":_vm.showSummary,\"summary-value\":_vm.model.performanceMonitoringCertificate.value\n ? _vm.model.performanceMonitoringCertificate.value.name\n : ''}},[_c('FormFileUpload',{attrs:{\"model\":_vm.model.performanceMonitoringCertificate,\"content\":_vm.content.performanceMonitoringCertificate,\"configuration\":_vm.configuration.fields.performanceMonitoringCertificate,\"validations\":_vm.validations.performanceMonitoringCertificate,\"application-id\":_vm.formModel.applicationId}})],1),_c('FormField',{staticClass:\"site-plan-with-lot-number\",attrs:{\"model\":_vm.model.sitePlanWithLotNumber,\"content\":_vm.content.sitePlanWithLotNumber,\"validations\":_vm.validations.sitePlanWithLotNumber,\"show-summary\":_vm.showSummary,\"summary-value\":_vm.model.sitePlanWithLotNumber.value\n ? _vm.model.sitePlanWithLotNumber.value.name\n : ''}},[_c('FormFileUpload',{attrs:{\"model\":_vm.model.sitePlanWithLotNumber,\"content\":_vm.content.sitePlanWithLotNumber,\"configuration\":_vm.configuration.fields.sitePlanWithLotNumber,\"validations\":_vm.validations.sitePlanWithLotNumber,\"application-id\":_vm.formModel.applicationId,\"show-info-icon\":\"\"}})],1),_c('FormField',{staticClass:\"electrical-system-circuit-diagram\",attrs:{\"model\":_vm.model.electricalSystemCircuitDiagram,\"content\":_vm.content.electricalSystemCircuitDiagram,\"validations\":_vm.validations.electricalSystemCircuitDiagram,\"show-summary\":_vm.showSummary,\"summary-value\":_vm.model.electricalSystemCircuitDiagram.value\n ? _vm.model.electricalSystemCircuitDiagram.value.name\n : ''}},[_c('FormFileUpload',{attrs:{\"model\":_vm.model.electricalSystemCircuitDiagram,\"content\":_vm.content.electricalSystemCircuitDiagram,\"configuration\":_vm.configuration.fields.electricalSystemCircuitDiagram,\"validations\":_vm.validations.electricalSystemCircuitDiagram,\"application-id\":_vm.formModel.applicationId,\"show-info-icon\":\"\"}})],1),_c('FormField',{staticClass:\"proof-of-ready-for-planning\",attrs:{\"model\":_vm.model.proofOfReadyForPlanning,\"content\":_vm.content.proofOfReadyForPlanning,\"validations\":_vm.validations.proofOfReadyForPlanning,\"show-summary\":_vm.showSummary,\"summary-value\":_vm.model.proofOfReadyForPlanning.value\n ? _vm.model.proofOfReadyForPlanning.value.name\n : ''}},[_c('FormFileUpload',{attrs:{\"model\":_vm.model.proofOfReadyForPlanning,\"content\":_vm.content.proofOfReadyForPlanning,\"configuration\":_vm.configuration.fields.proofOfReadyForPlanning,\"validations\":_vm.validations.proofOfReadyForPlanning,\"application-id\":_vm.formModel.applicationId}})],1),(!_vm.showSummary)?_c('ButtonSpacer',{attrs:{\"align\":\"right\",\"content\":_vm.content,\"button-text\":_vm.content.buttonNext.text,\"show-debug-fill-button\":_vm.showDebugFillButton},on:{\"button-click\":_vm.validateAndSubmit,\"debug-fill-button-click\":_vm.debugFillSubmit}}):_vm._e()],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.formModel.plantPerformance.storage.disabled)?_c('div',{attrs:{\"className\":\"storageModules\"}},[_vm._l((_vm.model.storageModules.items),function(storageModule,index){return [_c('div',{key:index},[(\n !_vm.model.storageModules.disabled &&\n !storageModule.storageManufacturerDataSheet.disabled\n )?_c('div',{staticClass:\"lg:text-lg xl:text-xl font-normal\"},[_vm._v(\" Speicher (\"+_vm._s(_vm.formModel.plantPerformance.storage.storageModules.items[ index ] && _vm.formModel.plantPerformance.storage.storageModules.items[ index ].storageManufacturerAndStorageType.manufacturer.value)+\", \"+_vm._s(_vm.formModel.plantPerformance.storage.storageModules.items[ index ] && _vm.formModel.plantPerformance.storage.storageModules.items[ index ].storageManufacturerAndStorageType.storageType.value)+\") \")]):_vm._e(),_c('FormField',{staticClass:\"storage-manufacturer-data-sheet\",attrs:{\"model\":storageModule.storageManufacturerDataSheet,\"content\":_vm.content.storageManufacturerDataSheet,\"validations\":_vm.validations.storageModules[index] &&\n _vm.validations.storageModules[index]\n .storageManufacturerDataSheet,\"show-summary\":_vm.showSummary,\"summary-value\":storageModule.storageManufacturerDataSheet.value\n ? storageModule.storageManufacturerDataSheet.value\n .name\n : ''}},[_c('FormFileUpload',{attrs:{\"model\":storageModule.storageManufacturerDataSheet,\"content\":_vm.content.storageManufacturerDataSheet,\"configuration\":_vm.configuration.fields.storageManufacturerDataSheet,\"validations\":_vm.validations.storageModules[index] &&\n _vm.validations.storageModules[index]\n .storageManufacturerDataSheet,\"application-id\":_vm.formModel.applicationId}})],1)],1)]})],2):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { DocumentsFormStepConfiguration } from '@/api/interfaces/configuration/form/steps/documentsFormStepConfiguration';\r\nimport { DocumentsFormStepContent } from '@/api/interfaces/content/form/steps/documentsFormStepContent';\r\nimport FormField from '@/components/molecules/formField/FormField.vue';\r\nimport FormFileUpload from '@/components/molecules/formFileUpload/FormFileUpload.vue';\r\nimport { DocumentsFormStep } from '@/types/forms/formSteps/documentsFormStep';\r\nimport { ApplicationForm } from '@/types/forms/specific/applicationForm';\r\nimport Vue, { PropType } from 'vue';\r\nimport { ValidationGroups, ValidationProperties } from 'vue/types/vue';\r\nimport { Validation } from 'vuelidate';\r\n\r\nexport default Vue.extend({\r\n name: 'DocumentsFormStorageSection',\r\n components: {\r\n FormField,\r\n FormFileUpload,\r\n },\r\n props: {\r\n model: {\r\n type: Object as PropType,\r\n required: true,\r\n },\r\n formModel: {\r\n type: Object as PropType,\r\n required: true,\r\n },\r\n content: {\r\n type: Object as PropType,\r\n required: true,\r\n },\r\n validations: {\r\n type: Object as PropType<\r\n | (Validation &\r\n ValidationGroups &\r\n ValidationProperties)\r\n | null\r\n >,\r\n required: true,\r\n },\r\n configuration: {\r\n type: Object as PropType,\r\n required: true,\r\n },\r\n showSummary: {\r\n type: Boolean,\r\n required: true,\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DocumentsFormStorageSection.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DocumentsFormStorageSection.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DocumentsFormStorageSection.vue?vue&type=template&id=47a41d34&\"\nimport script from \"./DocumentsFormStorageSection.vue?vue&type=script&lang=ts&\"\nexport * from \"./DocumentsFormStorageSection.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { DocumentsFormStepContent } from '@/api/interfaces/content/form/steps/documentsFormStepContent';\r\nimport { getFormStepMixin } from '@/mixins/formStepMixin';\r\nimport FormTextBlock from '@/components/molecules/formTextBlock/FormTextBlock.vue';\r\nimport FormField from '@/components/molecules/formField/FormField.vue';\r\nimport DatePicker from '@/components/molecules/datePicker/DatePicker.vue';\r\nimport FormInputText from '@/components/atoms/formInputText/FormInputText.vue';\r\nimport FormInputMultiLineText from '@/components/atoms/formInputMultiLineText/FormInputMultiLineText.vue';\r\nimport FormRadioGroup from '@/components/molecules/formRadioGroup/FormRadioGroup.vue';\r\nimport FormBooleanCheckbox from '@/components/molecules/formBooleanCheckbox/FormBooleanCheckbox.vue';\r\nimport ButtonSpacer from '@/components/molecules/buttonSpacer/ButtonSpacer.vue';\r\nimport { DocumentsFormStep } from '@/types/forms/formSteps/documentsFormStep';\r\nimport { DocumentsFormStepConfiguration } from '@/api/interfaces/configuration/form/steps/documentsFormStepConfiguration';\r\nimport FormFileUpload from '@/components/molecules/formFileUpload/FormFileUpload.vue';\r\nimport { ApplicationForm } from '@/types/forms/specific/applicationForm';\r\nimport { proofOfConformityValidator } from '@/services/form/config/application/plantPerformance';\r\nimport {\r\n isPluginGeneratingPlant,\r\n isPvAndStorageLte30,\r\n} from '@/services/form/rules/application/common';\r\nimport DocumentsFormStorageSection from './DocumentsFormStorageSection.vue';\r\n\r\nexport default getFormStepMixin<\r\n DocumentsFormStep,\r\n DocumentsFormStepContent,\r\n DocumentsFormStepConfiguration,\r\n ApplicationForm\r\n>().extend({\r\n name: 'DocumentsForm',\r\n components: {\r\n FormTextBlock,\r\n FormField,\r\n DatePicker,\r\n FormInputText,\r\n FormInputMultiLineText,\r\n FormRadioGroup,\r\n FormBooleanCheckbox,\r\n ButtonSpacer,\r\n FormFileUpload,\r\n DocumentsFormStorageSection,\r\n },\r\n computed: {\r\n isPvAndStorageLte30(): boolean {\r\n return isPvAndStorageLte30(this.formModel);\r\n },\r\n showAsteriskForGridAndPlantProtectionProofOfConformity(): boolean {\r\n const formModel = this.formModel as ApplicationForm;\r\n return (\r\n !!this.validations &&\r\n proofOfConformityValidator(formModel.plantPerformance)\r\n );\r\n },\r\n isPluginGeneratingPlant(): boolean {\r\n const formModel = this.formModel as ApplicationForm;\r\n return isPluginGeneratingPlant(formModel);\r\n },\r\n showPlantPerformanceHeadline(): boolean {\r\n return (\r\n !this.model.disabled &&\r\n ((!this.model.generatorModules.disabled &&\r\n this.model.generatorModules.items.some(\r\n (e) =>\r\n !e.generatorTechnicalDataSheet.disabled ||\r\n !e.generatorProofOfConformity.disabled ||\r\n !e.generatorConformityConfirmationOrUnitCertificate\r\n .disabled ||\r\n !e.generatorUnitOrPrototypeConfirmation.disabled ||\r\n !e.generatorComponentCertificate.disabled,\r\n )) ||\r\n (!this.model.inverterModules.disabled &&\r\n this.model.inverterModules.items.some(\r\n (e) =>\r\n !e\r\n .inverterConformityConfirmationOrUnitCertificate\r\n .disabled ||\r\n !e.inverterTechnicalDataSheet.disabled ||\r\n !e.inverterProofOfConformity.disabled ||\r\n !e.inverterUnitCertificate.disabled,\r\n )) ||\r\n (!this.model.storageModules.disabled &&\r\n this.model.storageModules.items.some(\r\n (e) => !e.storageManufacturerDataSheet.disabled,\r\n )))\r\n );\r\n },\r\n showPowerConnectionHeadline(): boolean {\r\n return (\r\n !this.model.performanceMonitoringCertificate.disabled ||\r\n !this.model.sitePlanWithLotNumber.disabled ||\r\n !this.model.electricalSystemCircuitDiagram.disabled\r\n );\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DocumentsForm.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DocumentsForm.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DocumentsForm.vue?vue&type=template&id=640698d0&\"\nimport script from \"./DocumentsForm.vue?vue&type=script&lang=ts&\"\nexport * from \"./DocumentsForm.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport Vue, { PropType, VueConstructor } from 'vue';\r\nimport LocationForm from '@/components/organisms/locationForm/LocationForm.vue';\r\nimport GenerationTypeForm from '@/components/organisms/generationTypeForm/GenerationTypeForm.vue';\r\nimport MeasuringConceptsForm from '@/components/organisms/measuringConceptsForm/MeasuringConceptsFormGroup.vue';\r\nimport ControllableConsumptionDevicesForm from '@/components/organisms/controllableConsumptionDevicesForm/ControllableConsumptionDevicesForm.vue';\r\nimport PowerConnectionForm from '@/components/organisms/powerConnectionForm/PowerConnectionForm.vue';\r\nimport PlantOperatorForm from '@/components/organisms/plantOperatorForm/PlantOperatorForm.vue';\r\nimport PlantBuilderForm from '@/components/organisms/plantBuilderForm/PlantBuilderForm.vue';\r\nimport PlantDataForm from '@/components/organisms/plantDataForm/PlantDataForm.vue';\r\nimport PropertyOwnerForm from '@/components/organisms/propertyOwnerForm/PropertyOwnerForm.vue';\r\nimport BillingForm from '@/components/organisms/billingForm/BillingForm.vue';\r\nimport PlantPerformanceForm from '@/components/organisms/plantPerformance/PlantPerformanceForm.vue';\r\nimport CheckAndSendForm from '@/components/organisms/checkAndSendForm/CheckAndSendForm.vue';\r\nimport Stage from '@/components/organisms/stage/Stage.vue';\r\nimport FormStepComponent from '@/components/molecules/formStep/FormStep.vue';\r\nimport { ApplicationFormContent } from '@/api/interfaces/content/form/applicationFormContent';\r\nimport { rules } from '@/services/form/rules';\r\nimport { StepState } from '@/enums/stepState';\r\nimport { ApplicationForm } from '@/types/forms/specific/applicationForm';\r\nimport SpinnerArea from '@/components/molecules/spinnerArea/SpinnerArea.vue';\r\nimport { SpinnerState } from '@/enums/spinnerState';\r\nimport { MessageType } from '@/enums/messageType';\r\nimport { alertService } from '@/services/alertService';\r\nimport AppLayer from '@/components/molecules/appLayer/AppLayer.vue';\r\nimport AppContent from '@/components/atoms/appContent/AppContent.vue';\r\nimport AppButton from '@/components/atoms/appButton/AppButton.vue';\r\nimport { FormStep } from '@/types/forms/formStep';\r\nimport { FormStepContent } from '@/api/interfaces/content/form/base/formStepContent';\r\nimport { ApplicationFormConfiguration } from '@/api/interfaces/configuration/form/applicationFormConfiguration';\r\nimport { FormStepConfiguration } from '@/api/interfaces/configuration/form/base/formStepConfiguration';\r\nimport { ValidationsCommonType } from '@/services/form/validations';\r\nimport { FormDto } from '@/services/form/dto';\r\nimport { ServiceError } from '@/api/interfaces/serviceError';\r\nimport { isServiceError } from '@/api/interfaces/typeGuards';\r\nimport DocumentsForm from '@/components/organisms/documents/DocumentsForm.vue';\r\nimport { get as _get } from 'lodash';\r\nimport router from '@/router';\r\n\r\ninterface FormStepViewModel {\r\n identifier: string;\r\n debugDto: FormDto;\r\n model: FormStep;\r\n content: FormStepContent;\r\n configuration: FormStepConfiguration;\r\n title: string;\r\n state: StepState;\r\n spinnerState: SpinnerState;\r\n component: VueConstructor;\r\n rules: (formStep: Vue) => void;\r\n validations?: ValidationsCommonType;\r\n showSummary: boolean;\r\n}\r\n\r\nexport default Vue.extend({\r\n name: 'ApplicationFormTemplate',\r\n components: {\r\n Stage,\r\n FormStepComponent,\r\n SpinnerArea,\r\n AppLayer,\r\n AppContent,\r\n AppButton,\r\n },\r\n props: {\r\n content: {\r\n type: Object as PropType,\r\n required: true,\r\n },\r\n configuration: {\r\n type: Object as PropType,\r\n required: true,\r\n },\r\n debugDto: {\r\n type: Object as PropType,\r\n default: {},\r\n },\r\n model: {\r\n type: Object as PropType,\r\n required: true,\r\n },\r\n editModel: {\r\n type: Object as PropType,\r\n required: true,\r\n },\r\n rules: {\r\n type: Object as PropType,\r\n required: true,\r\n },\r\n validations: {\r\n type: Object,\r\n required: true,\r\n },\r\n editValidations: {\r\n type: Object,\r\n required: true,\r\n },\r\n },\r\n data() {\r\n return {\r\n loading: false,\r\n showLayer: false,\r\n };\r\n },\r\n computed: {\r\n currentStepIndex(): number {\r\n return this.model.enabledSteps.indexOf(this.model.currentStep);\r\n },\r\n maxReachedStepIndex(): number {\r\n return this.model.enabledSteps.indexOf(this.model.maxReachedStep);\r\n },\r\n steps(): FormStepViewModel[] {\r\n return [\r\n {\r\n identifier: 'generationType',\r\n component: GenerationTypeForm,\r\n content: {\r\n ...this.content.generationTypeContent,\r\n common: this.content.common,\r\n },\r\n debugDto: this.debugDto.generationType,\r\n model: this.model.generationType,\r\n editModel: this.editModel.generationType,\r\n rules: this.rules.generationType,\r\n validations: this.validations.generationType,\r\n editValidations: this.editValidations.generationType,\r\n },\r\n {\r\n identifier: 'location',\r\n component: LocationForm,\r\n content: {\r\n ...this.content.locationContent,\r\n common: this.content.common,\r\n },\r\n debugDto: this.debugDto.location,\r\n model: this.model.location,\r\n editModel: this.editModel.location,\r\n rules: this.rules.location,\r\n validations: this.validations.location,\r\n editValidations: this.editValidations.location,\r\n },\r\n {\r\n identifier: 'plantPerformance',\r\n component: PlantPerformanceForm,\r\n content: {\r\n ...this.content.plantPerformanceContent,\r\n common: this.content.common,\r\n },\r\n debugDto: this.debugDto.plantPerformance,\r\n model: this.model.plantPerformance,\r\n editModel: this.editModel.plantPerformance,\r\n rules: this.rules.plantPerformance,\r\n validations: this.validations.plantPerformance,\r\n editValidations: this.editValidations.plantPerformance,\r\n },\r\n {\r\n identifier: 'powerConnection',\r\n component: PowerConnectionForm,\r\n content: {\r\n ...this.content.powerConnectionContent,\r\n common: this.content.common,\r\n },\r\n debugDto: this.debugDto.powerConnection,\r\n model: this.model.powerConnection,\r\n editModel: this.editModel.powerConnection,\r\n rules: this.rules.powerConnection,\r\n validations: this.validations.powerConnection,\r\n editValidations: this.editValidations.powerConnection,\r\n },\r\n {\r\n identifier: 'plantData',\r\n component: PlantDataForm,\r\n content: {\r\n ...this.content.plantDataContent,\r\n common: this.content.common,\r\n },\r\n debugDto: this.debugDto.plantData,\r\n model: this.model.plantData,\r\n editModel: this.editModel.plantData,\r\n rules: this.rules.plantData,\r\n validations: this.validations.plantData,\r\n editValidations: this.editValidations.plantData,\r\n },\r\n {\r\n identifier: 'measuringConcepts',\r\n component: MeasuringConceptsForm,\r\n content: {\r\n ...this.content.measuringConceptsContent,\r\n common: this.content.common,\r\n },\r\n model: this.model.measuringConcepts,\r\n editModel: this.editModel.measuringConcepts,\r\n rules: this.rules.measuringConcepts,\r\n validations: this.validations.measuringConcepts,\r\n editValidations: this.editValidations.measuringConcepts,\r\n },\r\n {\r\n identifier: 'controllableConsumptionDevices',\r\n component: ControllableConsumptionDevicesForm,\r\n content: {\r\n ...this.content.controllableConsumptionDevicesContent,\r\n common: this.content.common,\r\n },\r\n debugDto: this.debugDto.controllableConsumptionDevices,\r\n model: this.model.controllableConsumptionDevices,\r\n editModel: this.editModel.controllableConsumptionDevices,\r\n rules: this.rules.controllableConsumptionDevices,\r\n validations: this.validations\r\n .controllableConsumptionDevices,\r\n editValidations: this.editValidations\r\n .controllableConsumptionDevices,\r\n },\r\n {\r\n identifier: 'plantOperator',\r\n component: PlantOperatorForm,\r\n content: {\r\n ...this.content.plantOperatorContent,\r\n common: this.content.common,\r\n },\r\n debugDto: this.debugDto.plantOperator,\r\n model: this.model.plantOperator,\r\n editModel: this.editModel.plantOperator,\r\n rules: this.rules.plantOperator,\r\n validations: this.validations.plantOperator,\r\n editValidations: this.editValidations.plantOperator,\r\n },\r\n {\r\n identifier: 'plantBuilder',\r\n component: PlantBuilderForm,\r\n content: {\r\n ...this.content.plantBuilderContent,\r\n common: this.content.common,\r\n },\r\n debugDto: this.debugDto.plantBuilder,\r\n model: this.model.plantBuilder,\r\n editModel: this.editModel.plantBuilder,\r\n rules: this.rules.plantBuilder,\r\n validations: this.validations.plantBuilder,\r\n editValidations: this.editValidations.plantBuilder,\r\n },\r\n {\r\n identifier: 'propertyOwner',\r\n component: PropertyOwnerForm,\r\n content: {\r\n ...this.content.propertyOwnerContent,\r\n common: this.content.common,\r\n },\r\n debugDto: this.debugDto.propertyOwner,\r\n model: this.model.propertyOwner,\r\n editModel: this.editModel.propertyOwner,\r\n rules: this.rules.propertyOwner,\r\n validations: this.validations.propertyOwner,\r\n editValidations: this.editValidations.propertyOwner,\r\n },\r\n {\r\n identifier: 'billing',\r\n component: BillingForm,\r\n content: {\r\n ...this.content.billingContent,\r\n common: this.content.common,\r\n },\r\n debugDto: this.debugDto.billing,\r\n model: this.model.billing,\r\n editModel: this.editModel.billing,\r\n rules: this.rules.billing,\r\n validations: this.validations.billing,\r\n editValidations: this.editValidations.billing,\r\n },\r\n {\r\n identifier: 'documents',\r\n component: DocumentsForm,\r\n content: {\r\n ...this.content.documentsContent,\r\n common: this.content.common,\r\n },\r\n model: this.model.documents,\r\n editModel: this.editModel.documents,\r\n rules: this.rules.documents,\r\n validations: this.validations.documents,\r\n editValidations: this.editValidations.documents,\r\n configuration: this.configuration.documentsConfiguration,\r\n },\r\n {\r\n identifier: 'checkAndSend',\r\n component: CheckAndSendForm,\r\n content: {\r\n ...this.content.checkAndSendContent,\r\n common: this.content.common,\r\n },\r\n model: this.model.checkAndSend,\r\n editModel: this.editModel.checkAndSend,\r\n rules: this.rules.checkAndSend,\r\n validations: this.validations.checkAndSend,\r\n editValidations: this.editValidations.checkAndSend,\r\n configuration: this.configuration.checkAndSendConfiguration,\r\n },\r\n ]\r\n .filter((formStep) => !formStep.model.disabled)\r\n .map((formStep) => {\r\n const stepIsEdit = this.isStepBeingEdited(formStep);\r\n const stepState = this.getStepState(formStep);\r\n return {\r\n identifier: formStep.identifier,\r\n debugDto: formStep.debugDto,\r\n model: stepIsEdit ? formStep.editModel : formStep.model,\r\n formModel: this.model,\r\n content: formStep.content,\r\n configuration: formStep.configuration ?? {},\r\n title: formStep.content?.stepHeading,\r\n state: stepState,\r\n spinnerState:\r\n this.loading && stepState === StepState.current\r\n ? SpinnerState.transparent\r\n : SpinnerState.off,\r\n component: formStep.component,\r\n rules: formStep.rules as (formStep: Vue) => void,\r\n validations: stepIsEdit\r\n ? formStep.editValidations\r\n : formStep.validations,\r\n showSummary: stepState === StepState.done,\r\n } as FormStepViewModel;\r\n })\r\n .filter((formStep) => formStep.content);\r\n },\r\n },\r\n methods: {\r\n handleSubmitClick(): void {\r\n if (this.model.editStep) {\r\n this.showLayer = true;\r\n } else {\r\n this.submitForm();\r\n }\r\n },\r\n handleLayerCancelClick(): void {\r\n this.showLayer = false;\r\n },\r\n handleLayerAcceptClick(): void {\r\n this.showLayer = false;\r\n this.submitForm();\r\n },\r\n getStepRules(formStep: { rules: (vm: Vue) => Promise }) {\r\n return async (vm: Vue, cb: () => void) => {\r\n this.rules.general(this.model);\r\n await formStep.rules(vm);\r\n if (cb) {\r\n cb();\r\n }\r\n };\r\n },\r\n isStepBeingEdited(formStep: { identifier: string }): boolean {\r\n return this.model.editStep === formStep.identifier;\r\n },\r\n getStepState(formStep: { identifier: string }): StepState {\r\n if (this.isStepBeingEdited(formStep)) {\r\n return StepState.edit;\r\n }\r\n\r\n const index = this.model.enabledSteps.indexOf(formStep.identifier);\r\n\r\n if (index < this.currentStepIndex) {\r\n return StepState.done;\r\n } else if (index === this.currentStepIndex) {\r\n return StepState.current;\r\n } else if (index < this.maxReachedStepIndex) {\r\n return StepState.remainingWithData;\r\n }\r\n\r\n return StepState.remaining;\r\n },\r\n submitForm(): void {\r\n this.loading = true;\r\n alertService.clear();\r\n\r\n this.$emit('submit-form', (promise: Promise) => {\r\n promise\r\n .then((result) => {\r\n if (!result) {\r\n alertService.pushAlert({\r\n alert: {\r\n type: MessageType.error,\r\n identifier: 'applications.saveError',\r\n },\r\n displayDuration: 0,\r\n });\r\n }\r\n })\r\n .catch((error: ServiceError) => {\r\n if (isServiceError(error)) {\r\n this.communicateSubmitFormError(error);\r\n }\r\n })\r\n .finally(() => {\r\n this.loading = false;\r\n });\r\n });\r\n },\r\n /**\r\n * Commuicate the issue either via redirect or via error message\r\n * @param error\r\n */\r\n communicateSubmitFormError(error: ServiceError) {\r\n const redirect = _get(\r\n this.configuration.checkAndSendConfiguration.redirects,\r\n error.messageCode,\r\n );\r\n\r\n if (typeof redirect === 'string') {\r\n const path = redirect.startsWith('/')\r\n ? redirect\r\n : '/' + redirect;\r\n router.push(path);\r\n } else {\r\n alertService.pushAlert({\r\n alert: {\r\n type: MessageType.error,\r\n identifier: error.messageCode,\r\n },\r\n displayDuration: 0,\r\n });\r\n }\r\n },\r\n focusFirstErrorField() {\r\n const errorRow = document.querySelector(\r\n 'div.has-errors',\r\n ) as HTMLElement;\r\n\r\n if (errorRow) {\r\n const errorField = errorRow.querySelector(\r\n 'input.has-errors, .input-field.has-errors input, select.has-errors',\r\n ) as HTMLElement;\r\n\r\n if (errorField) {\r\n errorField.focus();\r\n } else {\r\n errorRow.scrollIntoView({\r\n block: 'center',\r\n inline: 'nearest',\r\n });\r\n }\r\n }\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ApplicationFormTemplate.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ApplicationFormTemplate.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ApplicationFormTemplate.vue?vue&type=template&id=48173f16&\"\nimport script from \"./ApplicationFormTemplate.vue?vue&type=script&lang=ts&\"\nexport * from \"./ApplicationFormTemplate.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue';\r\nimport { configurationRepository } from '@/api';\r\nimport type { FormConfiguration } from '@/api/interfaces/configuration/form/formConfiguration';\r\n\r\nclass ConfigurationService {\r\n private state = Vue.observable({\r\n currentPromise: null as Promise | null,\r\n loadedConfiguration: null as T | null,\r\n });\r\n\r\n public constructor(\r\n private readonly getConfigurationPromise: () => Promise,\r\n ) {}\r\n\r\n public get hasConfigurationLoaded(): boolean {\r\n return !!this.state.loadedConfiguration;\r\n }\r\n\r\n public get isConfigurationLoading(): boolean {\r\n return !this.state.loadedConfiguration && !this.state.currentPromise;\r\n }\r\n\r\n public get content(): T | null {\r\n this.requestConfigurationOnce();\r\n return this.state.loadedConfiguration;\r\n }\r\n\r\n public async requestConfigurationOnce(): Promise {\r\n if (this.state.loadedConfiguration) {\r\n return this.state.loadedConfiguration;\r\n }\r\n\r\n if (this.state.currentPromise) {\r\n return await this.state.currentPromise;\r\n }\r\n\r\n return await this.requestConfiguration();\r\n }\r\n\r\n public async requestConfiguration(): Promise {\r\n this.state.currentPromise = this.getConfigurationPromise();\r\n this.state.loadedConfiguration = await this.state.currentPromise;\r\n this.state.currentPromise = null;\r\n return this.state.loadedConfiguration;\r\n }\r\n}\r\n\r\nexport const configurationServices = {\r\n form: new ConfigurationService(() =>\r\n configurationRepository.fetchFormConfiguration(),\r\n ),\r\n};\r\n","export const debugDto = {\r\n location: {\r\n zipAndCity: {\r\n zip: '12345',\r\n city: 'TestCity1',\r\n },\r\n streetAndHousenumber: {\r\n street: 'StreetCity1',\r\n housenumber: '1',\r\n },\r\n availabilityResult: 'available',\r\n geographicLatCoordinates: {\r\n degrees: '53',\r\n minutes: '8',\r\n seconds: '16',\r\n },\r\n geographicLngCoordinates: {\r\n degrees: '8',\r\n minutes: '12',\r\n seconds: '17,2',\r\n },\r\n },\r\n controllableConsumptionDevices: {\r\n gridControlConditionsAccepted: true,\r\n },\r\n powerConnection: {\r\n doesConnectionExist: 'yes',\r\n whichVoltageLevel: 'lowVoltage',\r\n sitePlanWithLotNumber: {\r\n id: 'd92fd22e-0dc5-4bfe-be3e-a7f078c2df75',\r\n name: 'sample-pdf-file.pdf',\r\n size: 146367,\r\n },\r\n },\r\n plantOperator: {\r\n separatePropertyOwner: 'yes',\r\n plantBuilder: 'operator',\r\n operators: [\r\n {\r\n salutation: 'mr',\r\n title: 'untitled',\r\n operatorName: { firstName: 'Tester', lastName: 'Test' },\r\n birthday: '01.01.2021',\r\n },\r\n ],\r\n country: 'deu',\r\n zipAndCity: { zip: '26121', city: 'Oldenburg' },\r\n streetAndHousenumber: { street: 'Adolf-Grimme-Str.', housenumber: '1' },\r\n email: 'email@example.com',\r\n phoneNumber1: '12345',\r\n },\r\n plantBuilder: {\r\n companyName: 'Test Company',\r\n builderName: { firstName: 'Tester', lastName: 'Test' },\r\n country: 'deu',\r\n zipAndCity: { zip: '26121', city: 'Oldenburg' },\r\n streetAndHousenumber: { street: 'Adolf-Grimme-Str.', housenumber: '1' },\r\n email: 'email@example.com',\r\n phoneNumber1: '12345',\r\n },\r\n propertyOwner: {\r\n owners: [\r\n {\r\n salutation: 'mr',\r\n title: 'untitled',\r\n ownerName: { firstName: 'Tester', lastName: 'Test' },\r\n birthday: '01.01.2021',\r\n country: 'deu',\r\n zipAndCity: { zip: '26121', city: 'Oldenburg' },\r\n streetAndHousenumber: {\r\n street: 'Adolf-Grimme-Str.',\r\n housenumber: '1',\r\n },\r\n email: 'email@example.com',\r\n phoneNumber1: '12345',\r\n },\r\n ],\r\n propertyOwnerAgreement: true,\r\n },\r\n plantData: {\r\n newOrExistingApplication: 'new',\r\n newOrExistingPlant: 'first',\r\n storageConnectionConcept:\r\n 'storageWithoutPowerGenerationPlantAndWithoutConsumptionPlant',\r\n storageCharge: 'onlyFromEeg',\r\n storageDischarge: 'onlyIntoCustomersGridSelfSupply',\r\n },\r\n plantPerformance: {\r\n photovoltaic: {\r\n pvModules: [\r\n {\r\n pvQuantityAndNominalPower: {\r\n quantity: 1,\r\n nominalPower: '200',\r\n },\r\n pvTotalNominalPower: 200,\r\n },\r\n ],\r\n pvOverallNominalPower: 0.2,\r\n },\r\n inverter: {\r\n inverterModules: [\r\n {\r\n inverterManufacturerAndModuleType: {\r\n manufacturer: 'Muster',\r\n moduleType: 'Muster Boy 2.5',\r\n },\r\n inverterQuantity: 6,\r\n inverterActivePowerAndApparentPower: {\r\n activePower: '2,5',\r\n apparentPower: '2,6',\r\n },\r\n inverterTotalActivePower: 15,\r\n inverterTotalApparentPower: 15.6,\r\n inverterConformityConfirmationOrUnitCertificate: {\r\n id: 'b17cc08a-933e-465b-a452-890511414315',\r\n name: 'imago74595426h.jpg',\r\n size: 39006,\r\n },\r\n inverterTechnicalDataSheet: {\r\n id: '59352449-fc6f-4662-b46c-7641115662f2',\r\n name: 'imago74595426h.jpg',\r\n size: 39006,\r\n },\r\n inverterProofOfConformity: {\r\n id: 'f5030890-50e0-4ec8-8e1f-a0f33e3392f0',\r\n name: 'imago74595426h.jpg',\r\n size: 39006,\r\n },\r\n },\r\n ],\r\n inverterOverallActivePower: 15,\r\n inverterOverallApparentPower: 15.600000000000001,\r\n },\r\n storage: {\r\n storageModules: [\r\n {\r\n storageManufacturerAndStorageType: {\r\n manufacturer: 'EW Speicher 2',\r\n storageType: 'S4 E Pro',\r\n },\r\n storageQuantity: 2,\r\n storageDischargePowerAndStorageCapacity: {\r\n dischargePower: '12',\r\n storageCapacity: '12',\r\n },\r\n storageTotalDischargePower: 24,\r\n storageTotalStorageCapacity: 24,\r\n storageManufacturerDataSheet: {\r\n id: 'fa92dea8-60c0-4828-a7dc-40bcfc0d99fd',\r\n name: 'imago74595426h.jpg',\r\n size: 39006,\r\n },\r\n },\r\n ],\r\n storageOverallDischargePower: 24,\r\n storageOverallStorageCapacity: 24,\r\n },\r\n selfGenerationQuantity: '1000',\r\n selfSupplyQuantity: '1000',\r\n mainsConnectionType: 'rotatingCurrent',\r\n certificateHint: true,\r\n },\r\n billing: {\r\n iban: 'DE89370400440532013000',\r\n date: '17.01.2024',\r\n accountOwnerName: 'Tester Test',\r\n noFinancialDistress: true,\r\n noPendingEURecoveryClaims: true,\r\n },\r\n};\r\n","import { isPv } from '../../rules/application/common';\r\nimport { calculateSelfGenerationQuantity } from '../../utilities/application/plantPerformance';\r\nimport { EditActionContext } from '../application';\r\n\r\nexport const measuringConceptsEditActions = async (\r\n context: EditActionContext,\r\n): Promise => {\r\n if (isPv(context.formModel)) {\r\n context.formModel.measuringConcepts.selfGenerationQuantity.value = calculateSelfGenerationQuantity(\r\n context.formModel,\r\n context.editModel,\r\n );\r\n }\r\n};\r\n","import { ApplicationForm } from '@/types/forms/specific/applicationForm';\r\nimport { measuringConceptsEditActions } from './application/measuringConcepts';\r\n\r\nexport type EditActionContext = {\r\n formModel: ApplicationForm;\r\n editModel: ApplicationForm;\r\n};\r\n\r\nexport const applyApplicationEditActions = (\r\n context: EditActionContext,\r\n): void => {\r\n measuringConceptsEditActions(context);\r\n};\r\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport Vue from 'vue';\r\nimport ApplicationFormTemplate from '@/components/templates/applicationFormTemplate/ApplicationFormTemplate.vue';\r\nimport { modelService } from '@/services/form/modelService';\r\nimport { rules } from '@/services/form/rules';\r\nimport { ApplicationFormContent } from '@/api/interfaces/content/form/applicationFormContent';\r\nimport {\r\n createFormValidations,\r\n ValidationsCommonType,\r\n ValidationsValueType,\r\n} from '@/services/form/validations';\r\nimport { contentServices } from '@/services/contentService';\r\nimport { configurationServices } from '@/services/configurationService';\r\nimport SpinnerArea from '@/components/molecules/spinnerArea/SpinnerArea.vue';\r\nimport { SpinnerState } from '@/enums/spinnerState';\r\nimport { Forms } from '@/types/forms/forms';\r\nimport { ApplicationForm } from '@/types/forms/specific/applicationForm';\r\nimport { mergeWith as _mergeWith, mapValues as _mapValues } from 'lodash';\r\nimport { formsConfig } from '@/services/form/config';\r\nimport { applicationRepository } from '@/api';\r\nimport { Validation } from 'vuelidate';\r\nimport { ValidationProperties } from 'vue/types/vue';\r\nimport { validate as uuidValidate, v4 as uuidv4 } from 'uuid';\r\nimport { ApplicationFormConfiguration } from '@/api/interfaces/configuration/form/applicationFormConfiguration';\r\nimport { FormStepConfiguration } from '@/api/interfaces/configuration/form/base/formStepConfiguration';\r\nimport { FormFieldConfiguration } from '@/api/interfaces/configuration/form/base/formFieldConfiguration';\r\nimport { FileUploadConfiguration } from '@/api/interfaces/configuration/form/base/fileUploadConfiguration';\r\nimport { appConfiguration } from '@/services/form/appConfiguration';\r\nimport { debugDto } from '@/debug/form/application';\r\nimport { convertFormConfigToFormDto, FormDto } from '@/services/form/dto';\r\nimport { authService } from '@/services/authService';\r\nimport { ServiceSuccess } from '@/api/interfaces/serviceSuccess';\r\nimport { ServiceError } from '@/api/interfaces/serviceError';\r\nimport { dialogueMessageService } from '@/services/dialogueMessageService';\r\nimport router from '@/router';\r\nimport { MessageType } from '@/enums/messageType';\r\nimport { MessageDialogueActions } from '@/enums/messageDialogueActions';\r\nimport { applyApplicationEditActions } from '@/services/form/editActions/application';\r\nimport { alertService } from '@/services/alertService';\r\nimport { FormContent } from '@/api/interfaces/content/form/formContent';\r\nimport { FormOption } from '@/types/forms/formOption';\r\n\r\nexport default Vue.extend({\r\n name: 'ApplicationForm',\r\n components: {\r\n ApplicationFormTemplate,\r\n SpinnerArea,\r\n },\r\n provide(): {\r\n editStep: (identifier: string) => void;\r\n scrollToStep: (identifier: string) => void;\r\n } {\r\n return {\r\n editStep: this.editStep,\r\n scrollToStep: this.scrollToStep,\r\n };\r\n },\r\n data() {\r\n return {\r\n spinner: SpinnerState.opaque,\r\n applicationFormContent: null as ApplicationFormContent | null,\r\n applicationFormConfiguration: null as ApplicationFormConfiguration | null,\r\n rawEditModel: {} as Forms,\r\n rawEditValidations: {} as ValidationsCommonType,\r\n contentLoaded: false,\r\n };\r\n },\r\n computed: {\r\n model(): ApplicationForm {\r\n return modelService.model.application;\r\n },\r\n debugDto(): FormDto {\r\n return authService.isAuthenticated &&\r\n authService.hasRoles('DEA Debug')\r\n ? debugDto\r\n : {};\r\n },\r\n dto(): FormDto {\r\n return convertFormConfigToFormDto(this.model);\r\n },\r\n formsConfig(): ApplicationForm {\r\n return formsConfig.application;\r\n },\r\n editModel(): ApplicationForm {\r\n return this.rawEditModel.application;\r\n },\r\n rules() {\r\n return rules.application;\r\n },\r\n validations(): Validation & ValidationProperties {\r\n return modelService.validations.application;\r\n },\r\n editValidations(): ValidationsValueType {\r\n return this.rawEditValidations.application;\r\n },\r\n currentStepIndex(): number {\r\n return this.model.enabledSteps.indexOf(this.model.currentStep);\r\n },\r\n maxReachedStepIndex(): number {\r\n return this.model.enabledSteps.indexOf(this.model.maxReachedStep);\r\n },\r\n },\r\n created(): void {\r\n modelService.resetModel(this);\r\n this.resetEditModels();\r\n },\r\n async mounted(): Promise {\r\n alertService.clear();\r\n\r\n try {\r\n await this.initializeContent();\r\n } catch (error) {\r\n router.push('/fehler');\r\n }\r\n\r\n if (\r\n !this.$route.params.applicationId &&\r\n this.model.currentStep === '_init_'\r\n ) {\r\n this.model.applicationId = uuidv4();\r\n this.$router.replace(\r\n `${this.$route.path}/${this.model.applicationId}`,\r\n );\r\n await applicationRepository.saveApplication(this.model);\r\n }\r\n\r\n if (this.$route.params.applicationId) {\r\n if (uuidValidate(this.$route.params.applicationId)) {\r\n await applicationRepository\r\n .getApplicationData(this.$route.params.applicationId)\r\n .then(async (response) => {\r\n response = modelService.migrateApplicationFormData(\r\n response,\r\n );\r\n modelService.loadFormIntoModel(response, 'application');\r\n\r\n // wait for rules to possibly disable steps\r\n await this.rules.general(this.model);\r\n\r\n this.advanceStep();\r\n })\r\n .catch((error: ServiceError) => {\r\n this.showErrorMessageInDialogue(error.messageCode);\r\n });\r\n } else {\r\n this.showErrorMessageInDialogue('applications.notFound');\r\n }\r\n }\r\n\r\n this.spinner = SpinnerState.off;\r\n this.scrollToCurrentStep();\r\n },\r\n methods: {\r\n async initializeContent(): Promise {\r\n // Global\r\n const content = await contentServices.form.requestContentOnce();\r\n this.applicationFormContent = content.applicationFormContent;\r\n\r\n const configuration = await configurationServices.form.requestConfigurationOnce();\r\n this.applicationFormConfiguration =\r\n configuration.applicationFormConfiguration;\r\n this.prepareUploadFieldValidations();\r\n\r\n // Form steps\r\n this.initializeMeasuringConceptsContent(content);\r\n\r\n this.contentLoaded =\r\n !!this.applicationFormContent &&\r\n !!this.applicationFormConfiguration;\r\n },\r\n initializeMeasuringConceptsContent(content: FormContent): void {\r\n if (!this.applicationFormContent) {\r\n return;\r\n }\r\n\r\n this.model.measuringConcepts.measuringPointOperator.options = [];\r\n this.applicationFormContent.measuringConceptsContent.measuringPointOperator.options = {};\r\n\r\n for (const value of content.serviceDrivenContent\r\n .measuringPointOperatorsContent) {\r\n this.model.measuringConcepts.measuringPointOperator.options.push(\r\n new FormOption({ key: value }),\r\n );\r\n this.applicationFormContent.measuringConceptsContent.measuringPointOperator.options[\r\n value\r\n ] = {\r\n label: value,\r\n };\r\n }\r\n },\r\n prepareUploadFieldValidations(): void {\r\n _mapValues(\r\n this.applicationFormConfiguration,\r\n (formStep: FormStepConfiguration) => {\r\n _mapValues(\r\n formStep.fields,\r\n (field: FormFieldConfiguration) => {\r\n const fileUploadConfiguration =\r\n ((field.configurations.find(\r\n (c) => c.type === 'fileUploadConfiguration',\r\n ) as unknown) as FileUploadConfiguration) ??\r\n null;\r\n if (fileUploadConfiguration) {\r\n appConfiguration.fileUploadConfigurations[\r\n fileUploadConfiguration.scId\r\n ] = fileUploadConfiguration.validations;\r\n }\r\n },\r\n );\r\n },\r\n );\r\n },\r\n selectStep(stepId: string): void {\r\n this.model.currentStep = stepId;\r\n if (this.currentStepPassesMaxReachedStep()) {\r\n this.model.maxReachedStep = this.model.currentStep;\r\n }\r\n },\r\n currentStepPassesMaxReachedStep(): boolean {\r\n return this.currentStepIndex > this.maxReachedStepIndex;\r\n },\r\n resetEditModels(): void {\r\n this.rawEditModel = modelService.getModelClone();\r\n this.rawEditValidations = createFormValidations(\r\n this.rawEditModel,\r\n this,\r\n );\r\n },\r\n async submitForm(\r\n cb: (promise: Promise) => void,\r\n ): Promise {\r\n if (this.model.editStep) {\r\n // apply edit actions, like calculating values after editing etc.\r\n applyApplicationEditActions({\r\n formModel: this.model,\r\n editModel: this.editModel,\r\n });\r\n\r\n // load data for edited step into real model\r\n _mergeWith(\r\n this.model[this.model.editStep as keyof ApplicationForm],\r\n this.editModel[\r\n this.model.editStep as keyof ApplicationForm\r\n ],\r\n );\r\n\r\n // // remove all data after current step\r\n // modelService.removeDataAfterCurrentStep(\r\n // this.model.editStep,\r\n // 'application',\r\n // );\r\n\r\n // reset disabled state after current step\r\n modelService.resetStateAfterCurrentStep(\r\n this.model.editStep,\r\n 'application',\r\n this,\r\n );\r\n\r\n // reset current step\r\n this.model.currentStep = this.model.editStep;\r\n this.model.editStep = null;\r\n\r\n // reset edit model and validations, so we could edit again\r\n this.resetEditModels();\r\n }\r\n\r\n await this.rules.general(this.model);\r\n\r\n const saveServiceResponse = applicationRepository.saveApplication(\r\n this.model,\r\n );\r\n saveServiceResponse\r\n .then(async () => {\r\n if (!this.advanceStep()) {\r\n const sendServiceResponse = applicationRepository.sendApplication(\r\n this.model,\r\n );\r\n sendServiceResponse\r\n .then(() => {\r\n // if there is no next step, call cb here to handle sendService success\r\n cb(sendServiceResponse);\r\n\r\n router.push('/danke');\r\n })\r\n .catch(() => {\r\n // if there is no next step, call cb here to handle sendService error\r\n cb(sendServiceResponse);\r\n });\r\n } else {\r\n // if there is a next step, call cb here to handle saveService success\r\n cb(saveServiceResponse);\r\n }\r\n })\r\n .catch(() => {\r\n // if saveService fails, we call cb here, to handle saveService error.\r\n cb(saveServiceResponse);\r\n })\r\n .finally(this.scrollToCurrentStep);\r\n },\r\n advanceStep(): boolean {\r\n if (!this.hasNextStep()) {\r\n return false;\r\n }\r\n\r\n const nextStepId = this.model.enabledSteps[\r\n this.currentStepIndex + 1\r\n ];\r\n\r\n this.selectStep(nextStepId);\r\n return true;\r\n },\r\n hasNextStep(): boolean {\r\n return this.model.enabledSteps.length > this.currentStepIndex + 1;\r\n },\r\n editStep(identifier: string): void {\r\n this.model.editStep = identifier;\r\n this.resetEditModels();\r\n },\r\n cancelEdit(): void {\r\n this.model.editStep = null;\r\n this.resetEditModels();\r\n },\r\n showErrorMessageInDialogue(identifier: string) {\r\n dialogueMessageService.show(\r\n identifier,\r\n MessageType.error,\r\n MessageDialogueActions.toSafety |\r\n MessageDialogueActions.newApplication,\r\n );\r\n },\r\n async scrollToStep(identifier: string) {\r\n await this.$nextTick();\r\n\r\n this.scrollToClass(`scroll-to-${identifier}-step`);\r\n },\r\n async scrollToCurrentStep() {\r\n await this.$nextTick();\r\n\r\n this.scrollToClass('scroll-to-current-step');\r\n },\r\n scrollToClass(className: string) {\r\n const step = document.querySelector(`.${className}`) as HTMLElement;\r\n\r\n if (step) {\r\n step.scrollIntoView();\r\n }\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ApplicationForm.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ApplicationForm.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ApplicationForm.vue?vue&type=template&id=047f32b2&\"\nimport script from \"./ApplicationForm.vue?vue&type=script&lang=ts&\"\nexport * from \"./ApplicationForm.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FormField.vue?vue&type=style&index=0&id=3c651d19&lang=postcss&scoped=true&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('FormRow',[_c('InfoIconWrapper',{attrs:{\"show-info-icon\":_vm.showInfoIcon,\"content\":_vm.content,\"align-top\":\"\",\"inline-element\":\"\"}},[_c('div',{staticClass:\"container flex items-center w-full mb-6\",on:{\"click\":function($event){return _vm.handleClick()}}},[_c('button',{staticClass:\"h-8 w-8 mr-4 leading-7 text-3xl font-bold bg-primary hover:bg-primary-variant focus:bg-primary-variant text-on-primary rounded\",class:{\n 'add-functionality': _vm.value === 'add',\n 'remove-functionality': _vm.value === 'remove',\n }}),_c('span',{staticClass:\"dea-rich-text button-label leading-8 text-primary\",domProps:{\"innerHTML\":_vm._s(_vm.label)}})])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport Vue, { PropType } from 'vue';\r\nimport FormRow from '@/components/molecules/formRow/FormRow.vue';\r\nimport InfoIconWrapper from '@/components/molecules/infoIconWrapper/InfoIconWrapper.vue';\r\nimport { FunctionalityButtonContent } from '@/api/interfaces/content/form/base/functionalityButtonContent';\r\n\r\nexport type FunctionalityButtonValueType = 'add' | 'remove';\r\n\r\nexport default Vue.extend({\r\n name: 'FunctionalityButton',\r\n components: {\r\n FormRow,\r\n InfoIconWrapper,\r\n },\r\n props: {\r\n content: {\r\n type: Object as PropType,\r\n required: true,\r\n },\r\n value: {\r\n type: String as PropType,\r\n required: true,\r\n },\r\n showInfoIcon: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n },\r\n computed: {\r\n label(): string {\r\n return this.value === 'add'\r\n ? this.content.addLabel\r\n : this.content.removeLabel;\r\n },\r\n },\r\n methods: {\r\n handleClick(): void {\r\n this.$emit('click', this.value);\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FunctionalityButton.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FunctionalityButton.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FunctionalityButton.vue?vue&type=template&id=78ef4de2&scoped=true&\"\nimport script from \"./FunctionalityButton.vue?vue&type=script&lang=ts&\"\nexport * from \"./FunctionalityButton.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./FunctionalityButton.vue?vue&type=style&index=0&id=78ef4de2&lang=postcss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"78ef4de2\",\n null\n \n)\n\nexport default component.exports","import { parseGermanFloat } from '@/utilities/germanFormats';\r\nimport { helpers, ValidationRule } from 'vuelidate/lib/validators';\r\nimport { float } from './float';\r\n\r\nexport const positive = ((value: string | number | Date): boolean => {\r\n if (!helpers.req(value) || !float(value)) {\r\n return true;\r\n }\r\n\r\n const numericValue =\r\n typeof value === 'string' ? parseGermanFloat(value) : +value;\r\n\r\n return numericValue >= 0;\r\n}) as ValidationRule;\r\n","import { PhotovoltaicFormGroup } from '../formGroups/plantPerformance/photovoltaic/photovoltaicFormGroup';\r\nimport { StorageFormGroup } from '../formGroups/plantPerformance/storage/storageFormGroup';\r\nimport { FormStep } from '../formStep';\r\nimport { WithOptional } from '../utility';\r\nimport { GeneratorFormGroup } from '../formGroups/plantPerformance/generator/generatorFormGroup';\r\nimport { CheckboxField } from '../fields/checkboxField';\r\nimport { InverterFormGroup } from '../formGroups/plantPerformance/inverter/inverterFormGroup';\r\nimport { FormElement } from '../formElement';\r\n\r\ntype ConfigProps = WithOptional;\r\n\r\nexport type PhasePosition = 'l1' | 'l2' | 'l3';\r\n\r\nexport class PlantPerformanceFormStep extends FormStep {\r\n public readonly photovoltaic: PhotovoltaicFormGroup;\r\n public readonly inverter: InverterFormGroup;\r\n public readonly inverterStorage: InverterFormGroup;\r\n public readonly storage: StorageFormGroup;\r\n public readonly generator: GeneratorFormGroup;\r\n public readonly certificateHint: CheckboxField;\r\n public readonly overallNominalPowerNotMatchingTotalPlantPerformanceValueTypeWarning: FormElement;\r\n public readonly storageHasSeparateInverter: CheckboxField;\r\n\r\n public constructor(config: ConfigProps) {\r\n super(config);\r\n\r\n this.photovoltaic = config.photovoltaic;\r\n this.inverter = config.inverter;\r\n this.inverterStorage = config.inverterStorage;\r\n this.storage = config.storage;\r\n this.generator = config.generator;\r\n this.certificateHint = config.certificateHint;\r\n this.overallNominalPowerNotMatchingTotalPlantPerformanceValueTypeWarning =\r\n config.overallNominalPowerNotMatchingTotalPlantPerformanceValueTypeWarning;\r\n this.storageHasSeparateInverter = config.storageHasSeparateInverter;\r\n }\r\n}\r\n","import { FormField } from '../../../fields/formField';\r\nimport { FormElementConfig } from '../../../formElement';\r\nimport { FormGroup } from '../../../formGroup';\r\nimport { QuantityAndNominalPowerFormGroup } from './quantityAndNominalPowerFormGroup';\r\nimport { ReferenceFormGroup } from '../../referenceFormGroup';\r\n\r\nexport type PhotovoltaicModuleFormGroupConfig = FormElementConfig &\r\n Omit;\r\n\r\nexport class PhotovoltaicModuleFormGroup extends ReferenceFormGroup {\r\n public readonly pvQuantityAndNominalPower: QuantityAndNominalPowerFormGroup;\r\n public readonly pvTotalNominalPower: FormField;\r\n\r\n public constructor(config: PhotovoltaicModuleFormGroupConfig) {\r\n super(config);\r\n\r\n this.pvQuantityAndNominalPower = config.pvQuantityAndNominalPower;\r\n this.pvTotalNominalPower = config.pvTotalNominalPower;\r\n }\r\n}\r\n","import { CountField } from '../../../fields/countField';\r\nimport { TextField } from '../../../fields/textField';\r\nimport { FormGroup } from '../../../formGroup';\r\nimport { WithOptional } from '../../../utility';\r\n\r\ntype ConfigProps = WithOptional<\r\n QuantityAndNominalPowerFormGroup,\r\n keyof FormGroup\r\n>;\r\n\r\nexport class QuantityAndNominalPowerFormGroup extends FormGroup {\r\n public readonly quantity: CountField;\r\n public readonly nominalPower: TextField;\r\n\r\n public constructor(config: ConfigProps) {\r\n super(config);\r\n\r\n this.quantity = config.quantity;\r\n this.nominalPower = config.nominalPower;\r\n }\r\n}\r\n","import { PhotovoltaicModuleFormList } from './photovoltaicModuleFormList';\r\nimport { FormGroup } from '../../../formGroup';\r\nimport { FormField } from '../../../fields/formField';\r\nimport { FormElement } from '../../../formElement';\r\nimport { WithOptional } from '../../../utility';\r\nimport { alwaysInDtoAttribute } from '@/types/forms/alwaysinDtoAttribute';\r\n\r\ntype ConfigProps = WithOptional;\r\n\r\nexport class PhotovoltaicFormGroup extends FormGroup {\r\n public readonly pvHeadline: FormElement;\r\n public readonly pvModules: PhotovoltaicModuleFormList;\r\n @alwaysInDtoAttribute()\r\n public readonly pvOverallNominalPower: FormField;\r\n public readonly pvTotalPower30: FormElement;\r\n\r\n public constructor(config: ConfigProps) {\r\n super(config);\r\n\r\n this.pvHeadline = config.pvHeadline;\r\n this.pvModules = config.pvModules;\r\n this.pvOverallNominalPower = config.pvOverallNominalPower;\r\n this.pvTotalPower30 = config.pvTotalPower30;\r\n }\r\n}\r\n","export const restrictedApparentPower = 0.8;\r\nexport const restrictedNominalPower = 2.0;\r\n","import { lte } from '@/services/floatComparison';\r\nimport { modelService } from '@/services/form/modelService';\r\nimport {\r\n isPluginGeneratingPlant,\r\n isPv,\r\n} from '@/services/form/rules/application/common';\r\nimport {\r\n formatGermanNumber,\r\n parseGermanFloat,\r\n} from '@/utilities/germanFormats';\r\nimport { helpers, ValidationRule } from 'vuelidate/lib/validators';\r\n\r\nexport const maxNominalPowerPlugInGeneratingPlant = (\r\n max: number,\r\n): ValidationRule => {\r\n return helpers.withParams(\r\n {\r\n type: 'maxNominalPowerPlugInGeneratingPlant',\r\n max: formatGermanNumber(max, { decimals: 2 }),\r\n },\r\n (value: string) => {\r\n const application = modelService.model.application;\r\n const parsedValue =\r\n (typeof value == 'number' ? value : parseGermanFloat(value)) /\r\n 1000;\r\n return (\r\n !isPluginGeneratingPlant(application) ||\r\n !isPv(application) ||\r\n lte(parsedValue, max)\r\n );\r\n },\r\n );\r\n};\r\n","import { CountField } from '@/types/forms/fields/countField';\r\nimport { FormList } from '@/types/forms/fields/formList';\r\nimport { TextField } from '@/types/forms/fields/textField';\r\nimport { PhotovoltaicModuleFormGroup } from '@/types/forms/formGroups/plantPerformance/photovoltaic/photovoltaicModuleFormGroup';\r\nimport { QuantityAndNominalPowerFormGroup } from '@/types/forms/formGroups/plantPerformance/photovoltaic/quantityAndNominalPowerFormGroup';\r\nimport { required } from 'vuelidate/lib/validators';\r\nimport { float } from '@/validators/float';\r\nimport { positive } from '@/validators/positive';\r\nimport { FormField } from '@/types/forms/fields/formField';\r\nimport { PhotovoltaicFormGroup } from '@/types/forms/formGroups/plantPerformance/photovoltaic/photovoltaicFormGroup';\r\nimport { FormElement } from '@/types/forms/formElement';\r\nimport { restrictedNominalPower } from './boundaryValues';\r\nimport { maxNominalPowerPlugInGeneratingPlant } from '@/validators/maxNominalPowerPlugInGeneratingPlant';\r\nimport { alwaysFalse } from '@/validators/alwaysFalse';\r\n\r\nexport const photovoltaicFormGroup = new PhotovoltaicFormGroup({\r\n pvHeadline: new FormElement(),\r\n pvModules: new FormList(PhotovoltaicModuleFormGroup, {\r\n initializeItems: 1,\r\n minItemCount: 1,\r\n maxItemCount: 2,\r\n id: new FormField(),\r\n pvQuantityAndNominalPower: new QuantityAndNominalPowerFormGroup({\r\n quantity: new CountField({\r\n value: 1,\r\n min: 1,\r\n validators: {\r\n required,\r\n },\r\n }),\r\n nominalPower: new TextField({\r\n validators: {\r\n required,\r\n float,\r\n positive,\r\n },\r\n }),\r\n }),\r\n pvTotalNominalPower: new FormField({\r\n value: 0,\r\n validators: {\r\n maxNominalPowerPlugInGeneratingPlant: maxNominalPowerPlugInGeneratingPlant(\r\n restrictedNominalPower,\r\n ),\r\n },\r\n }),\r\n }),\r\n pvOverallNominalPower: new FormField({\r\n value: 0,\r\n }),\r\n pvTotalPower30: new FormElement({\r\n validators: {\r\n alwaysFalse,\r\n },\r\n }),\r\n});\r\n","import { CountField } from '../../../fields/countField';\r\nimport { FormField } from '../../../fields/formField';\r\nimport { FormElement, FormElementConfig } from '../../../formElement';\r\nimport { FormGroup } from '../../../formGroup';\r\nimport { ManufacturerAndStorageTypeFormGroup } from './manufacturerAndStorageTypeFormGroup';\r\nimport { DischargePowerAndStorageCapacityFormGroup } from './dischargePowerAndStorageCapacityFormGroup';\r\nimport { ReferenceFormGroup } from '../../referenceFormGroup';\r\n\r\nexport type StorageModuleFormGroupConfig = FormElementConfig &\r\n Omit;\r\n\r\nexport class StorageModuleFormGroup extends ReferenceFormGroup {\r\n public readonly storageManufacturerAndStorageType: ManufacturerAndStorageTypeFormGroup;\r\n public readonly storageQuantity: CountField;\r\n public readonly storageMemoryExpansion: FormElement;\r\n public readonly storageDischargePowerAndStorageCapacity: DischargePowerAndStorageCapacityFormGroup;\r\n public readonly storageTotalDischargePower: FormField;\r\n public readonly storageTotalStorageCapacity: FormField;\r\n\r\n public constructor(config: StorageModuleFormGroupConfig) {\r\n super(config);\r\n\r\n this.storageManufacturerAndStorageType =\r\n config.storageManufacturerAndStorageType;\r\n this.storageMemoryExpansion = config.storageMemoryExpansion;\r\n this.storageQuantity = config.storageQuantity;\r\n this.storageDischargePowerAndStorageCapacity =\r\n config.storageDischargePowerAndStorageCapacity;\r\n this.storageTotalDischargePower = config.storageTotalDischargePower;\r\n this.storageTotalStorageCapacity = config.storageTotalStorageCapacity;\r\n }\r\n}\r\n","import { alwaysInDtoAttribute } from '@/types/forms/alwaysinDtoAttribute';\r\nimport { FormField } from '../../../fields/formField';\r\nimport { FormElement } from '../../../formElement';\r\nimport { FormGroup } from '../../../formGroup';\r\nimport { WithOptional } from '../../../utility';\r\nimport { StorageModuleFormList } from './storageModuleFormList';\r\n\r\ntype ConfigProps = WithOptional;\r\n\r\nexport class StorageFormGroup extends FormGroup {\r\n public readonly storageHeadline: FormElement;\r\n public readonly storageModules: StorageModuleFormList;\r\n @alwaysInDtoAttribute()\r\n public readonly storageOverallDischargePower: FormField;\r\n @alwaysInDtoAttribute()\r\n public readonly storageOverallStorageCapacity: FormField;\r\n public readonly storageTotalPower30: FormElement;\r\n\r\n public constructor(config: ConfigProps) {\r\n super(config);\r\n\r\n this.storageHeadline = config.storageHeadline;\r\n this.storageModules = config.storageModules;\r\n this.storageOverallDischargePower = config.storageOverallDischargePower;\r\n this.storageOverallStorageCapacity =\r\n config.storageOverallStorageCapacity;\r\n this.storageTotalPower30 = config.storageTotalPower30;\r\n }\r\n}\r\n","import { TextField } from '../../../fields/textField';\r\nimport { FormGroup } from '../../../formGroup';\r\nimport { WithOptional } from '../../../utility';\r\n\r\ntype ConfigProps = WithOptional<\r\n ManufacturerAndStorageTypeFormGroup,\r\n keyof FormGroup\r\n>;\r\n\r\nexport class ManufacturerAndStorageTypeFormGroup extends FormGroup {\r\n public readonly manufacturer: TextField;\r\n public readonly storageType: TextField;\r\n\r\n public constructor(config: ConfigProps) {\r\n super(config);\r\n\r\n this.manufacturer = config.manufacturer;\r\n this.storageType = config.storageType;\r\n }\r\n}\r\n","import { TextField } from '../../../fields/textField';\r\nimport { FormGroup } from '../../../formGroup';\r\nimport { WithOptional } from '../../../utility';\r\n\r\ntype ConfigProps = WithOptional<\r\n DischargePowerAndStorageCapacityFormGroup,\r\n keyof FormGroup\r\n>;\r\n\r\nexport class DischargePowerAndStorageCapacityFormGroup extends FormGroup {\r\n public readonly dischargePower: TextField;\r\n public readonly storageCapacity: TextField;\r\n\r\n public constructor(config: ConfigProps) {\r\n super(config);\r\n\r\n this.dischargePower = config.dischargePower;\r\n this.storageCapacity = config.storageCapacity;\r\n }\r\n}\r\n","import { CountField } from '@/types/forms/fields/countField';\r\nimport { FormList } from '@/types/forms/fields/formList';\r\nimport { TextField } from '@/types/forms/fields/textField';\r\nimport { required } from 'vuelidate/lib/validators';\r\nimport { float } from '@/validators/float';\r\nimport { positive } from '@/validators/positive';\r\nimport { FormField } from '@/types/forms/fields/formField';\r\nimport { FormElement } from '@/types/forms/formElement';\r\nimport { StorageModuleFormGroup } from '@/types/forms/formGroups/plantPerformance/storage/storageModuleFormGroup';\r\nimport { StorageFormGroup } from '@/types/forms/formGroups/plantPerformance/storage/storageFormGroup';\r\nimport { ManufacturerAndStorageTypeFormGroup } from '@/types/forms/formGroups/plantPerformance/storage/manufacturerAndStorageTypeFormGroup';\r\nimport { DischargePowerAndStorageCapacityFormGroup } from '@/types/forms/formGroups/plantPerformance/storage/dischargePowerAndStorageCapacityFormGroup';\r\nimport { alwaysFalse } from '@/validators/alwaysFalse';\r\n\r\nexport const storageFormGroup = new StorageFormGroup({\r\n storageHeadline: new FormElement(),\r\n storageModules: new FormList(StorageModuleFormGroup, {\r\n initializeItems: 1,\r\n minItemCount: 1,\r\n maxItemCount: 5,\r\n id: new FormField(),\r\n storageManufacturerAndStorageType: new ManufacturerAndStorageTypeFormGroup(\r\n {\r\n manufacturer: new TextField({\r\n validators: {\r\n required,\r\n },\r\n }),\r\n storageType: new TextField({\r\n validators: {\r\n required,\r\n },\r\n }),\r\n },\r\n ),\r\n storageQuantity: new CountField({\r\n value: 1,\r\n min: 1,\r\n validators: {\r\n required,\r\n },\r\n }),\r\n storageMemoryExpansion: new FormElement(),\r\n storageDischargePowerAndStorageCapacity: new DischargePowerAndStorageCapacityFormGroup(\r\n {\r\n dischargePower: new TextField({\r\n validators: {\r\n required,\r\n float,\r\n positive,\r\n },\r\n }),\r\n storageCapacity: new TextField({\r\n validators: {\r\n required,\r\n float,\r\n positive,\r\n },\r\n }),\r\n },\r\n ),\r\n storageTotalDischargePower: new FormField({\r\n value: 0,\r\n }),\r\n storageTotalStorageCapacity: new FormField({\r\n value: 0,\r\n }),\r\n }),\r\n storageOverallDischargePower: new FormField({\r\n value: 0,\r\n }),\r\n storageOverallStorageCapacity: new FormField({\r\n value: 0,\r\n }),\r\n storageTotalPower30: new FormElement({\r\n validators: {\r\n alwaysFalse,\r\n },\r\n }),\r\n});\r\n","import { TextField } from '../../fields/textField';\r\nimport { FormGroup } from '../../formGroup';\r\nimport { WithOptional } from '../../utility';\r\n\r\ntype ConfigProps = WithOptional<\r\n ActivePowerAndApparentPowerFormGroup,\r\n keyof FormGroup\r\n>;\r\n\r\nexport class ActivePowerAndApparentPowerFormGroup extends FormGroup {\r\n public readonly activePower: TextField;\r\n public readonly apparentPower: TextField;\r\n\r\n public constructor(config: ConfigProps) {\r\n super(config);\r\n\r\n this.activePower = config.activePower;\r\n this.apparentPower = config.apparentPower;\r\n }\r\n}\r\n","import { FormField } from '@/types/forms/fields/formField';\r\nimport { FormElement } from '@/types/forms/formElement';\r\nimport { FormGroup } from '@/types/forms/formGroup';\r\nimport { WithOptional } from '@/types/forms/utility';\r\nimport { GeneratorModuleFormList } from './generatorModuleFormList';\r\nimport { alwaysInDtoAttribute } from '@/types/forms/alwaysinDtoAttribute';\r\n\r\ntype ConfigProps = WithOptional;\r\n\r\nexport class GeneratorFormGroup extends FormGroup {\r\n public readonly generatorHeadline: FormElement;\r\n public readonly generatorModules: GeneratorModuleFormList;\r\n @alwaysInDtoAttribute()\r\n public readonly generatorOverallActivePower: FormField;\r\n @alwaysInDtoAttribute()\r\n public readonly generatorOverallApparentPower: FormField;\r\n\r\n public constructor(config: ConfigProps) {\r\n super(config);\r\n\r\n this.generatorHeadline = config.generatorHeadline;\r\n this.generatorModules = config.generatorModules;\r\n this.generatorOverallActivePower = config.generatorOverallActivePower;\r\n this.generatorOverallApparentPower =\r\n config.generatorOverallApparentPower;\r\n }\r\n}\r\n","import { FormField } from '@/types/forms/fields/formField';\r\nimport { TextField } from '@/types/forms/fields/textField';\r\nimport { FormElement, FormElementConfig } from '@/types/forms/formElement';\r\nimport { FormGroup } from '@/types/forms/formGroup';\r\nimport { ActivePowerAndApparentPowerFormGroup } from '../activePowerAndApparentPowerFormGroup';\r\nimport { ManufacturerAndModuleTypeFormGroup } from '../manufacturerAndModuleTypeFormGroup';\r\nimport { QuantityAndGeneratorTypeFormGroup } from '../quantityAndGeneratorTypeFormGroup';\r\nimport { ReferenceFormGroup } from '../../referenceFormGroup';\r\nimport { ZerezIdAndNormFormGroup } from '../zerezIdAndNormFormGroup';\r\nimport { CheckboxField } from '@/types/forms/fields/checkboxField';\r\n\r\nexport type GeneratorModuleFormGroupConfig = FormElementConfig &\r\n Omit;\r\n\r\nexport class GeneratorModuleFormGroup extends ReferenceFormGroup {\r\n public readonly generatorManufacturerAndModuleType: ManufacturerAndModuleTypeFormGroup;\r\n public readonly generatorZerezIdAndNorm: ZerezIdAndNormFormGroup;\r\n public readonly generatorManualInputManufacturerTypeZerezId: CheckboxField;\r\n public readonly unitCertificateInvalidForInstalledPower: FormElement;\r\n public readonly generatorQuantityAndGeneratorType: QuantityAndGeneratorTypeFormGroup;\r\n public readonly generatorActivePowerAndApparentPower: ActivePowerAndApparentPowerFormGroup;\r\n public readonly generatorTotalActivePowerIsGreaterThanTotalApparentPowerWarning: FormElement;\r\n public readonly generatorTotalActivePower: FormField;\r\n public readonly generatorTotalApparentPower: FormField;\r\n\r\n constructor(config: GeneratorModuleFormGroupConfig) {\r\n super(config);\r\n\r\n this.generatorManufacturerAndModuleType =\r\n config.generatorManufacturerAndModuleType;\r\n this.generatorZerezIdAndNorm = config.generatorZerezIdAndNorm;\r\n this.generatorManualInputManufacturerTypeZerezId =\r\n config.generatorManualInputManufacturerTypeZerezId;\r\n this.unitCertificateInvalidForInstalledPower =\r\n config.unitCertificateInvalidForInstalledPower;\r\n this.generatorQuantityAndGeneratorType =\r\n config.generatorQuantityAndGeneratorType;\r\n this.generatorActivePowerAndApparentPower =\r\n config.generatorActivePowerAndApparentPower;\r\n this.generatorTotalActivePowerIsGreaterThanTotalApparentPowerWarning =\r\n config.generatorTotalActivePowerIsGreaterThanTotalApparentPowerWarning;\r\n this.generatorTotalActivePower = config.generatorTotalActivePower;\r\n this.generatorTotalApparentPower = config.generatorTotalApparentPower;\r\n }\r\n}\r\n","import { CountField } from '@/types/forms/fields/countField';\r\nimport { SelectField } from '@/types/forms/fields/selectField';\r\nimport { FormGroup } from '@/types/forms/formGroup';\r\nimport { GeneratorTypeFieldType } from '@/types/forms/shared/generatorTypeFieldType';\r\nimport { WithOptional } from '@/types/forms/utility';\r\n\r\ntype ConfigProps = WithOptional<\r\n QuantityAndGeneratorTypeFormGroup,\r\n keyof FormGroup\r\n>;\r\n\r\nexport class QuantityAndGeneratorTypeFormGroup extends FormGroup {\r\n public readonly quantity: CountField;\r\n public readonly generatorType: SelectField;\r\n\r\n public constructor(config: ConfigProps) {\r\n super(config);\r\n\r\n this.quantity = config.quantity;\r\n this.generatorType = config.generatorType;\r\n }\r\n}\r\n","import { FormField } from '../../fields/formField';\r\nimport { SelectField } from '../../fields/selectField';\r\nimport { TextField } from '../../fields/textField';\r\nimport { FormGroup } from '../../formGroup';\r\nimport { WithOptional } from '../../utility';\r\n\r\ntype ConfigProps = WithOptional<\r\n ManufacturerAndModuleTypeFormGroup,\r\n keyof FormGroup\r\n>;\r\n\r\nexport class ManufacturerAndModuleTypeFormGroup extends FormGroup {\r\n /** Data backing field for manufacturerText and manufacturerSelect */\r\n public readonly manufacturer: FormField;\r\n public readonly manufacturerText: TextField;\r\n public readonly manufacturerSelect: SelectField;\r\n /** Data backing field for moduleTypeText and moduleTypeSelect */\r\n public readonly moduleType: FormField;\r\n public readonly moduleTypeText: TextField;\r\n public readonly moduleTypeSelect: SelectField;\r\n\r\n public constructor(config: ConfigProps) {\r\n super(config);\r\n\r\n this.manufacturer = config.manufacturer;\r\n this.manufacturerText = config.manufacturerText;\r\n this.manufacturerSelect = config.manufacturerSelect;\r\n this.moduleType = config.moduleType;\r\n this.moduleTypeText = config.moduleTypeText;\r\n this.moduleTypeSelect = config.moduleTypeSelect;\r\n }\r\n}\r\n","import { lte } from '@/services/floatComparison';\r\nimport { modelService } from '@/services/form/modelService';\r\nimport { isPluginGeneratingPlant } from '@/services/form/rules/application/common';\r\nimport {\r\n formatGermanNumber,\r\n parseGermanFloat,\r\n} from '@/utilities/germanFormats';\r\nimport { helpers, ValidationRule } from 'vuelidate/lib/validators';\r\n\r\nexport const maxApparentPowerPlugInGeneratingPlant = (\r\n max: number,\r\n): ValidationRule => {\r\n return helpers.withParams(\r\n {\r\n type: 'maxApparentPowerPlugInGeneratingPlant',\r\n max: formatGermanNumber(max, { decimals: 2 }),\r\n },\r\n (value: string) => {\r\n const application = modelService.model.application;\r\n const parsedValue =\r\n typeof value == 'number' ? value : parseGermanFloat(value);\r\n return (\r\n !isPluginGeneratingPlant(application) || lte(parsedValue, max)\r\n );\r\n },\r\n );\r\n};\r\n","import { FormField } from '../../fields/formField';\r\nimport { SelectField } from '../../fields/selectField';\r\nimport { TextField } from '../../fields/textField';\r\nimport { FormGroup } from '../../formGroup';\r\nimport { ConnectionRulesType } from '../../shared/connectionRulesType';\r\nimport { WithOptional } from '../../utility';\r\n\r\ntype ConfigProps = WithOptional;\r\n\r\nexport class ZerezIdAndNormFormGroup extends FormGroup {\r\n public readonly zerezId: SelectField;\r\n public readonly norm: FormField;\r\n public readonly normText: TextField;\r\n\r\n public constructor(config: ConfigProps) {\r\n super(config);\r\n\r\n this.zerezId = config.zerezId;\r\n this.norm = config.norm;\r\n this.normText = config.normText;\r\n }\r\n}\r\n","import { FormField, FormFieldConfig } from './formField';\r\n\r\n/** A form field variant that's intended to never be shown to the user */\r\nexport class HiddenFormField extends FormField {\r\n public constructor(config?: FormFieldConfig) {\r\n super(config);\r\n this.hidden = true;\r\n }\r\n}\r\n","import { CountField } from '@/types/forms/fields/countField';\r\nimport { FormField } from '@/types/forms/fields/formField';\r\nimport { FormList } from '@/types/forms/fields/formList';\r\nimport { SelectField } from '@/types/forms/fields/selectField';\r\nimport { TextField } from '@/types/forms/fields/textField';\r\nimport { FormElement } from '@/types/forms/formElement';\r\nimport { ActivePowerAndApparentPowerFormGroup } from '@/types/forms/formGroups/plantPerformance/activePowerAndApparentPowerFormGroup';\r\nimport { GeneratorFormGroup } from '@/types/forms/formGroups/plantPerformance/generator/generatorFormGroup';\r\nimport { GeneratorModuleFormGroup } from '@/types/forms/formGroups/plantPerformance/generator/generatorModuleFormGroup';\r\nimport { QuantityAndGeneratorTypeFormGroup } from '@/types/forms/formGroups/plantPerformance/quantityAndGeneratorTypeFormGroup';\r\nimport { ManufacturerAndModuleTypeFormGroup } from '@/types/forms/formGroups/plantPerformance/manufacturerAndModuleTypeFormGroup';\r\nimport { FormOption } from '@/types/forms/formOption';\r\nimport { float } from '@/validators/float';\r\nimport { maxApparentPowerPlugInGeneratingPlant } from '@/validators/maxApparentPowerPlugInGeneratingPlant';\r\nimport { positive } from '@/validators/positive';\r\nimport { required } from 'vuelidate/lib/validators';\r\nimport { restrictedApparentPower } from './boundaryValues';\r\nimport { alwaysFalse } from '@/validators/alwaysFalse';\r\nimport { CheckboxField } from '@/types/forms/fields/checkboxField';\r\nimport { ZerezIdAndNormFormGroup } from '@/types/forms/formGroups/plantPerformance/zerezIdAndNormFormGroup';\r\nimport { distinct } from '@/utilities/utils';\r\nimport { contentServices } from '@/services/contentService';\r\nimport { HiddenFormField } from '@/types/forms/fields/hiddenFormField';\r\nimport { ConnectionRulesType } from '@/types/forms/shared/connectionRulesType';\r\n\r\nexport const generatorFormGroup = new GeneratorFormGroup({\r\n generatorHeadline: new FormElement(),\r\n generatorModules: new FormList(GeneratorModuleFormGroup, {\r\n initializeItems: 1,\r\n minItemCount: 1,\r\n maxItemCount: 5,\r\n id: new FormField(),\r\n generatorManufacturerAndModuleType: new ManufacturerAndModuleTypeFormGroup(\r\n {\r\n manufacturer: new HiddenFormField({\r\n userChangeable: false,\r\n validators: {\r\n required,\r\n },\r\n }),\r\n manufacturerText: new TextField({\r\n excludeFromDto: true,\r\n excludeFromSchema: true,\r\n validators: {\r\n required,\r\n },\r\n }),\r\n manufacturerSelect: new SelectField({\r\n excludeFromDto: true,\r\n excludeFromSchema: true,\r\n hasServiceDrivenOptions: true,\r\n onMountOptionsSetter: async () => {\r\n const content = contentServices.form.content;\r\n if (!content) {\r\n throw 'Content unavailable';\r\n }\r\n\r\n const generatorsContent =\r\n content.serviceDrivenContent.generatorsContent;\r\n if (!generatorsContent) {\r\n throw 'Generator Data unavailable';\r\n }\r\n\r\n const values = distinct(\r\n generatorsContent.map(\r\n (generator) => generator.manufacturerName,\r\n ),\r\n ) as string[];\r\n\r\n return values.map(\r\n (manufacturerName) =>\r\n new FormOption({ key: manufacturerName }),\r\n );\r\n },\r\n validators: {\r\n required,\r\n },\r\n }),\r\n moduleType: new HiddenFormField({\r\n userChangeable: false,\r\n validators: {\r\n required,\r\n },\r\n }),\r\n moduleTypeText: new TextField({\r\n excludeFromDto: true,\r\n excludeFromSchema: true,\r\n validators: {\r\n required,\r\n },\r\n }),\r\n moduleTypeSelect: new SelectField({\r\n excludeFromDto: true,\r\n excludeFromSchema: true,\r\n hasServiceDrivenOptions: true,\r\n onMountOptionsSetter: async () => {\r\n const content = contentServices.form.content;\r\n if (!content) {\r\n throw 'Content unavailable';\r\n }\r\n\r\n const generatorsContent =\r\n content.serviceDrivenContent.generatorsContent;\r\n if (!generatorsContent) {\r\n throw 'Generator Data unavailable';\r\n }\r\n\r\n const values = distinct(\r\n generatorsContent.map(\r\n (generator) => generator.moduleType,\r\n ),\r\n ) as string[];\r\n\r\n return values.map(\r\n (manufacturerName) =>\r\n new FormOption({ key: manufacturerName }),\r\n );\r\n },\r\n validators: {\r\n required,\r\n },\r\n }),\r\n },\r\n ),\r\n generatorZerezIdAndNorm: new ZerezIdAndNormFormGroup({\r\n zerezId: new SelectField({\r\n hasServiceDrivenOptions: true,\r\n onMountOptionsSetter: async () => {\r\n const content = contentServices.form.content;\r\n if (!content) {\r\n throw 'Content unavailable';\r\n }\r\n\r\n const generatorsContent =\r\n content.serviceDrivenContent.generatorsContent;\r\n if (!generatorsContent) {\r\n throw 'Generator Data unavailable';\r\n }\r\n\r\n const values = distinct(\r\n generatorsContent.map((generator) => generator.zerezId),\r\n ) as string[];\r\n\r\n return values.map(\r\n (zerezId) => new FormOption({ key: zerezId }),\r\n );\r\n },\r\n validators: {\r\n required,\r\n },\r\n }),\r\n norm: new HiddenFormField({\r\n jsonSchema: {\r\n type: 'array',\r\n items: {\r\n enum: Object.keys(ConnectionRulesType),\r\n },\r\n },\r\n }),\r\n normText: new TextField({\r\n excludeFromDto: true,\r\n excludeFromSchema: true,\r\n userChangeable: false,\r\n }),\r\n }),\r\n generatorManualInputManufacturerTypeZerezId: new CheckboxField(),\r\n unitCertificateInvalidForInstalledPower: new FormElement({\r\n validators: {\r\n alwaysFalse,\r\n },\r\n }),\r\n generatorQuantityAndGeneratorType: new QuantityAndGeneratorTypeFormGroup(\r\n {\r\n quantity: new CountField({\r\n value: 1,\r\n min: 1,\r\n validators: {\r\n required,\r\n },\r\n }),\r\n generatorType: new SelectField({\r\n options: [\r\n new FormOption({ key: 'type1' }),\r\n new FormOption({ key: 'type2' }),\r\n ],\r\n validators: {\r\n required,\r\n },\r\n }),\r\n },\r\n ),\r\n generatorActivePowerAndApparentPower: new ActivePowerAndApparentPowerFormGroup(\r\n {\r\n activePower: new TextField({\r\n validators: {\r\n required,\r\n float,\r\n positive,\r\n },\r\n }),\r\n apparentPower: new TextField({\r\n validators: {\r\n required,\r\n float,\r\n positive,\r\n maxApparentPowerPlugInGeneratingPlant: maxApparentPowerPlugInGeneratingPlant(\r\n restrictedApparentPower,\r\n ),\r\n },\r\n }),\r\n },\r\n ),\r\n generatorTotalActivePowerIsGreaterThanTotalApparentPowerWarning: new FormElement(\r\n {\r\n validators: {\r\n alwaysFalse,\r\n },\r\n },\r\n ),\r\n generatorTotalActivePower: new FormField({\r\n value: 0,\r\n }),\r\n generatorTotalApparentPower: new FormField({\r\n value: 0,\r\n }),\r\n }),\r\n generatorOverallActivePower: new FormField({\r\n value: 0,\r\n }),\r\n generatorOverallApparentPower: new FormField({\r\n value: 0,\r\n }),\r\n});\r\n","import { InverterModuleFormList } from './inverterModuleFormList';\r\nimport { FormGroup } from '../../../formGroup';\r\nimport { FormField } from '../../../fields/formField';\r\nimport { FormElement } from '../../../formElement';\r\nimport { WithOptional } from '../../../utility';\r\nimport { alwaysInDtoAttribute } from '@/types/forms/alwaysinDtoAttribute';\r\n\r\ntype ConfigProps = WithOptional;\r\n\r\nexport class InverterFormGroup extends FormGroup {\r\n public readonly inverterHeadline: FormElement;\r\n public readonly inverterModules: InverterModuleFormList;\r\n @alwaysInDtoAttribute()\r\n public readonly inverterOverallActivePower: FormField;\r\n public readonly inverterOverallActivePowerWarning: FormElement;\r\n @alwaysInDtoAttribute()\r\n public readonly inverterOverallApparentPower: FormField;\r\n\r\n public constructor(config: ConfigProps) {\r\n super(config);\r\n\r\n this.inverterHeadline = config.inverterHeadline;\r\n this.inverterModules = config.inverterModules;\r\n this.inverterOverallActivePower = config.inverterOverallActivePower;\r\n this.inverterOverallActivePowerWarning =\r\n config.inverterOverallActivePowerWarning;\r\n this.inverterOverallApparentPower = config.inverterOverallApparentPower;\r\n }\r\n}\r\n","import { CountField } from '../../../fields/countField';\r\nimport { FormField } from '../../../fields/formField';\r\nimport { TextField } from '@/types/forms/fields/textField';\r\nimport { FormElement, FormElementConfig } from '../../../formElement';\r\nimport { FormGroup } from '../../../formGroup';\r\nimport { ManufacturerAndModuleTypeFormGroup } from '../manufacturerAndModuleTypeFormGroup';\r\nimport { ActivePowerAndApparentPowerFormGroup } from '../activePowerAndApparentPowerFormGroup';\r\nimport { ReferenceFormGroup } from '../../referenceFormGroup';\r\nimport { ZerezIdAndNormFormGroup } from '../zerezIdAndNormFormGroup';\r\nimport { CheckboxField } from '@/types/forms/fields/checkboxField';\r\n\r\nexport type InverterModuleFormGroupConfig = FormElementConfig &\r\n Omit;\r\n\r\nexport class InverterModuleFormGroup extends ReferenceFormGroup {\r\n public readonly inverterManufacturerAndModuleType: ManufacturerAndModuleTypeFormGroup;\r\n public readonly inverterZerezIdAndNorm: ZerezIdAndNormFormGroup;\r\n public readonly inverterManualInputManufacturerTypeZerezId: CheckboxField;\r\n public readonly unitCertificateInvalidForInstalledPower: FormElement;\r\n public readonly inverterQuantity: CountField;\r\n public readonly inverterActivePowerAndApparentPower: ActivePowerAndApparentPowerFormGroup;\r\n public readonly inverterTotalActivePower: FormField;\r\n public readonly inverterTotalApparentPower: FormField;\r\n\r\n public constructor(config: InverterModuleFormGroupConfig) {\r\n super(config);\r\n this.inverterManufacturerAndModuleType =\r\n config.inverterManufacturerAndModuleType;\r\n this.inverterZerezIdAndNorm = config.inverterZerezIdAndNorm;\r\n this.inverterManualInputManufacturerTypeZerezId =\r\n config.inverterManualInputManufacturerTypeZerezId;\r\n this.unitCertificateInvalidForInstalledPower =\r\n config.unitCertificateInvalidForInstalledPower;\r\n this.inverterQuantity = config.inverterQuantity;\r\n this.inverterActivePowerAndApparentPower =\r\n config.inverterActivePowerAndApparentPower;\r\n this.inverterTotalActivePower = config.inverterTotalActivePower;\r\n this.inverterTotalApparentPower = config.inverterTotalApparentPower;\r\n }\r\n}\r\n","import { parseGermanFloat } from '@/utilities/germanFormats';\r\nimport { ValidationRule } from 'vuelidate/lib/validators';\r\n\r\ninterface PowerValue {\r\n apparentPower: string;\r\n}\r\n\r\nexport const apparentPowerMustBeBiggerThanActualPower = ((\r\n value: string,\r\n vm: PowerValue,\r\n): boolean => {\r\n return (\r\n parseGermanFloat(value || '0') <=\r\n parseGermanFloat(vm.apparentPower || '0')\r\n );\r\n}) as ValidationRule;\r\n","import { CountField } from '@/types/forms/fields/countField';\r\nimport { FormList } from '@/types/forms/fields/formList';\r\nimport { TextField } from '@/types/forms/fields/textField';\r\nimport { ManufacturerAndModuleTypeFormGroup } from '@/types/forms/formGroups/plantPerformance/manufacturerAndModuleTypeFormGroup';\r\nimport { required } from 'vuelidate/lib/validators';\r\nimport { float } from '@/validators/float';\r\nimport { positive } from '@/validators/positive';\r\nimport { FormField } from '@/types/forms/fields/formField';\r\nimport { FormElement } from '@/types/forms/formElement';\r\nimport { InverterFormGroup } from '@/types/forms/formGroups/plantPerformance/inverter/inverterFormGroup';\r\nimport { InverterModuleFormGroup } from '@/types/forms/formGroups/plantPerformance/inverter/inverterModuleFormGroup';\r\nimport { ActivePowerAndApparentPowerFormGroup } from '@/types/forms/formGroups/plantPerformance/activePowerAndApparentPowerFormGroup';\r\nimport { apparentPowerMustBeBiggerThanActualPower } from '@/validators/apparentPowerMustBeBiggerThanActualPower';\r\nimport { maxApparentPowerPlugInGeneratingPlant } from '@/validators/maxApparentPowerPlugInGeneratingPlant';\r\nimport { restrictedApparentPower } from './boundaryValues';\r\nimport { SelectField } from '@/types/forms/fields/selectField';\r\nimport { ZerezIdAndNormFormGroup } from '@/types/forms/formGroups/plantPerformance/zerezIdAndNormFormGroup';\r\nimport { CheckboxField } from '@/types/forms/fields/checkboxField';\r\nimport { contentServices } from '@/services/contentService';\r\nimport { distinct } from '@/utilities/utils';\r\nimport { FormOption } from '@/types/forms/formOption';\r\nimport { HiddenFormField } from '@/types/forms/fields/hiddenFormField';\r\nimport { ConnectionRulesType } from '@/types/forms/shared/connectionRulesType';\r\nimport { alwaysFalse } from '@/validators/alwaysFalse';\r\n\r\nexport const inverterFormGroup = new InverterFormGroup({\r\n inverterHeadline: new FormElement(),\r\n inverterModules: new FormList(InverterModuleFormGroup, {\r\n initializeItems: 1,\r\n minItemCount: 1,\r\n maxItemCount: 5,\r\n id: new FormField(),\r\n inverterManufacturerAndModuleType: new ManufacturerAndModuleTypeFormGroup(\r\n {\r\n manufacturer: new HiddenFormField({\r\n userChangeable: false,\r\n validators: {\r\n required,\r\n },\r\n }),\r\n manufacturerText: new TextField({\r\n excludeFromDto: true,\r\n excludeFromSchema: true,\r\n validators: {\r\n required,\r\n },\r\n }),\r\n manufacturerSelect: new SelectField({\r\n excludeFromDto: true,\r\n excludeFromSchema: true,\r\n hasServiceDrivenOptions: true,\r\n onMountOptionsSetter: async () => {\r\n const content = contentServices.form.content;\r\n if (!content) {\r\n throw 'Content unavailable';\r\n }\r\n\r\n const invertersContent =\r\n content.serviceDrivenContent.invertersContent;\r\n if (!invertersContent) {\r\n throw 'Inverter Data unavailable';\r\n }\r\n\r\n const values = distinct(\r\n invertersContent.map(\r\n (inverter) => inverter.manufacturerName,\r\n ),\r\n ) as string[];\r\n\r\n return values.map(\r\n (manufacturerName) =>\r\n new FormOption({ key: manufacturerName }),\r\n );\r\n },\r\n validators: {\r\n required,\r\n },\r\n }),\r\n moduleType: new HiddenFormField({\r\n userChangeable: false,\r\n validators: {\r\n required,\r\n },\r\n }),\r\n moduleTypeText: new TextField({\r\n excludeFromDto: true,\r\n excludeFromSchema: true,\r\n validators: {\r\n required,\r\n },\r\n }),\r\n moduleTypeSelect: new SelectField({\r\n excludeFromDto: true,\r\n excludeFromSchema: true,\r\n hasServiceDrivenOptions: true,\r\n onMountOptionsSetter: async () => {\r\n const content = contentServices.form.content;\r\n if (!content) {\r\n throw 'Content unavailable';\r\n }\r\n\r\n const invertersContent =\r\n content.serviceDrivenContent.invertersContent;\r\n if (!invertersContent) {\r\n throw 'Inverter Data unavailable';\r\n }\r\n\r\n const values = distinct(\r\n invertersContent.map(\r\n (inverter) => inverter.moduleType,\r\n ),\r\n ) as string[];\r\n\r\n return values.map(\r\n (manufacturerName) =>\r\n new FormOption({ key: manufacturerName }),\r\n );\r\n },\r\n validators: {\r\n required,\r\n },\r\n }),\r\n },\r\n ),\r\n inverterZerezIdAndNorm: new ZerezIdAndNormFormGroup({\r\n zerezId: new SelectField({\r\n hasServiceDrivenOptions: true,\r\n onMountOptionsSetter: async () => {\r\n const content = contentServices.form.content;\r\n if (!content) {\r\n throw 'Content unavailable';\r\n }\r\n\r\n const invertersContent =\r\n content.serviceDrivenContent.invertersContent;\r\n if (!invertersContent) {\r\n throw 'Inverter Data unavailable';\r\n }\r\n\r\n const values = distinct(\r\n invertersContent.map((inverter) => inverter.zerezId),\r\n ) as string[];\r\n\r\n return values.map(\r\n (zerezId) => new FormOption({ key: zerezId }),\r\n );\r\n },\r\n validators: {\r\n required,\r\n },\r\n }),\r\n norm: new HiddenFormField({\r\n jsonSchema: {\r\n type: 'array',\r\n items: {\r\n enum: Object.keys(ConnectionRulesType),\r\n },\r\n },\r\n }),\r\n normText: new TextField({\r\n excludeFromDto: true,\r\n excludeFromSchema: true,\r\n userChangeable: false,\r\n }),\r\n }),\r\n inverterManualInputManufacturerTypeZerezId: new CheckboxField(),\r\n unitCertificateInvalidForInstalledPower: new FormElement({\r\n validators: {\r\n alwaysFalse,\r\n },\r\n }),\r\n inverterQuantity: new CountField({\r\n value: 1,\r\n min: 1,\r\n validators: {\r\n required,\r\n },\r\n }),\r\n inverterActivePowerAndApparentPower: new ActivePowerAndApparentPowerFormGroup(\r\n {\r\n activePower: new TextField({\r\n validators: {\r\n required,\r\n float,\r\n positive,\r\n apparentPowerMustBeBiggerThanActualPower,\r\n },\r\n }),\r\n apparentPower: new TextField({\r\n validators: {\r\n required,\r\n float,\r\n positive,\r\n },\r\n }),\r\n },\r\n ),\r\n inverterTotalActivePower: new FormField({\r\n value: 0,\r\n }),\r\n inverterTotalApparentPower: new FormField({\r\n value: 0,\r\n validators: {\r\n maxApparentPowerPlugInGeneratingPlant: maxApparentPowerPlugInGeneratingPlant(\r\n restrictedApparentPower,\r\n ),\r\n },\r\n }),\r\n }),\r\n inverterOverallActivePower: new FormField({\r\n value: 0,\r\n }),\r\n inverterOverallActivePowerWarning: new FormElement(),\r\n inverterOverallApparentPower: new FormField({\r\n value: 0,\r\n }),\r\n});\r\n","import { PlantPerformanceFormStep } from '@/types/forms/formSteps/plantPerformanceFormStep';\r\nimport { photovoltaicFormGroup } from './plantPerformance/photovoltaic';\r\nimport { storageFormGroup } from './plantPerformance/storage';\r\nimport { generatorFormGroup } from './plantPerformance/generator';\r\nimport { CheckboxField } from '@/types/forms/fields/checkboxField';\r\nimport { checked } from '@/validators/checked';\r\nimport { inverterFormGroup } from './plantPerformance/inverter';\r\nimport { alwaysFalse } from '@/validators/alwaysFalse';\r\nimport { FormElement } from '@/types/forms/formElement';\r\nimport { cloneDeep as _cloneDeep } from 'lodash';\r\nimport { v4 as uuidv4 } from 'uuid';\r\nimport { FormField } from '@/types/forms/fields/formField';\r\n\r\nconst minOverallApparentPowerValidator = (\r\n model: PlantPerformanceFormStep,\r\n min: number,\r\n) => {\r\n return (\r\n (typeof model.inverter.inverterOverallApparentPower === 'number' &&\r\n model.inverter.inverterOverallApparentPower > min) ||\r\n (typeof model.generator.generatorOverallApparentPower === 'number' &&\r\n model.generator.generatorOverallApparentPower > min)\r\n );\r\n};\r\n\r\nexport const proofOfConformityValidator = (\r\n model: PlantPerformanceFormStep,\r\n): boolean => minOverallApparentPowerValidator(model, 30);\r\n\r\nconst inverterStorage = _cloneDeep(inverterFormGroup);\r\ninverterStorage.inverterModules.items.forEach((module) => {\r\n module.id = new FormField({ value: String(uuidv4()) });\r\n});\r\n\r\nexport const plantPerformanceFormStep = new PlantPerformanceFormStep({\r\n photovoltaic: photovoltaicFormGroup,\r\n inverter: inverterFormGroup,\r\n inverterStorage,\r\n storage: storageFormGroup,\r\n generator: generatorFormGroup,\r\n certificateHint: new CheckboxField({\r\n validators: {\r\n checked,\r\n },\r\n }),\r\n overallNominalPowerNotMatchingTotalPlantPerformanceValueTypeWarning: new FormElement(\r\n {\r\n validators: {\r\n alwaysFalse,\r\n },\r\n },\r\n ),\r\n storageHasSeparateInverter: new CheckboxField(),\r\n});\r\n","import { PlantPerformanceFormStep } from '@/types/forms/formSteps/plantPerformanceFormStep';\r\nimport { PowerConnectionFormStep } from '@/types/forms/formSteps/powerConnectionFormStep';\r\nimport {\r\n formatGermanNumber,\r\n parseGermanFloat,\r\n} from '@/utilities/germanFormats';\r\nimport { getOverallActivePower } from './plantPerformance';\r\nimport { ApplicationType } from '@/types/forms/specific/applicationForm';\r\nimport { powerMatchesConnectionRules } from '@/utilities/utils';\r\nimport { InvalidGenerationUnit } from '@/types/forms/shared/invalidGenerationUnit';\r\n\r\n/**\r\n * Calculates and sets {@link PlantPerformanceFormStep.feedInPower.value}, if applicable\r\n * @param applicationType\r\n * @param plantPerformanceModel\r\n * @param powerConnectionFormStep\r\n */\r\nexport function calculateFeedInPower(\r\n applicationType: ApplicationType | undefined,\r\n plantPerformanceModel: PlantPerformanceFormStep,\r\n powerConnectionFormStep: PowerConnectionFormStep,\r\n): void {\r\n const power = getOverallActivePowerWithPreExisting(\r\n applicationType,\r\n plantPerformanceModel,\r\n powerConnectionFormStep,\r\n );\r\n const powerText = formatGermanNumber(power, {\r\n decimals: 2,\r\n thousandsSeparator: true,\r\n });\r\n\r\n // Always set installed power\r\n powerConnectionFormStep.feedInPowerInstalled.value = powerText;\r\n\r\n // Only set limited power, if it's not set to manual input\r\n if (\r\n !powerConnectionFormStep.feedInPowerShallBeLimitedByAController\r\n .disabled &&\r\n !powerConnectionFormStep.feedInPowerShallBeLimitedByAController.value\r\n ) {\r\n powerConnectionFormStep.feedInPower.value = powerText;\r\n }\r\n}\r\n\r\n/**\r\n * Retrieves combined active power of new and pre existing plants\r\n * @param applicationType\r\n * @param plantPerformanceModel step containing value(s) for new plant(s)\r\n * @param powerConnectionFormStep step containing value for pre-existing plant(s)\r\n * @returns\r\n */\r\nexport function getOverallActivePowerWithPreExisting(\r\n applicationType: ApplicationType | undefined,\r\n plantPerformanceModel: PlantPerformanceFormStep,\r\n powerConnectionFormStep: PowerConnectionFormStep,\r\n): number {\r\n const overallActivePower =\r\n getOverallActivePower(applicationType, plantPerformanceModel) ?? 0;\r\n\r\n const existingPlantsTotalPower = parseGermanFloat(\r\n !powerConnectionFormStep.existingPlantsTotalPower.disabled\r\n ? powerConnectionFormStep.existingPlantsTotalPower.value ?? '0'\r\n : '0',\r\n );\r\n const repoweringTotalPower = parseGermanFloat(\r\n !powerConnectionFormStep.repoweringTotalPower.disabled\r\n ? powerConnectionFormStep.repoweringTotalPower.value ?? '0'\r\n : '0',\r\n );\r\n\r\n return overallActivePower + existingPlantsTotalPower - repoweringTotalPower;\r\n}\r\n\r\n/**\r\n *\r\n * @param applicationType\r\n * @param plantPerformanceModel\r\n * @returns\r\n */\r\nexport function getInvalidGenerationUnits(\r\n applicationType: ApplicationType | undefined,\r\n plantPerformanceModel: PlantPerformanceFormStep,\r\n): InvalidGenerationUnit[] {\r\n return getInvalidGenerationUnitsInternal(\r\n applicationType,\r\n plantPerformanceModel,\r\n getOverallActivePower(applicationType, plantPerformanceModel) ?? 0,\r\n );\r\n}\r\n\r\n/**\r\n *\r\n * @param applicationType\r\n * @param plantPerformanceModel\r\n * @param powerConnectionFormStep\r\n * @returns\r\n */\r\nexport function getInvalidGenerationUnitsWithPreExisting(\r\n applicationType: ApplicationType | undefined,\r\n plantPerformanceModel: PlantPerformanceFormStep,\r\n powerConnectionFormStep: PowerConnectionFormStep,\r\n): InvalidGenerationUnit[] {\r\n return getInvalidGenerationUnitsInternal(\r\n applicationType,\r\n plantPerformanceModel,\r\n getOverallActivePowerWithPreExisting(\r\n applicationType,\r\n plantPerformanceModel,\r\n powerConnectionFormStep,\r\n ),\r\n );\r\n}\r\n\r\n/**\r\n *\r\n * @param applicationType\r\n * @param plantPerformanceModel\r\n * @param overallActivePower\r\n * @returns\r\n */\r\nfunction getInvalidGenerationUnitsInternal(\r\n applicationType: ApplicationType | undefined,\r\n plantPerformanceModel: PlantPerformanceFormStep,\r\n overallActivePower: number,\r\n): InvalidGenerationUnit[] {\r\n const invalidUnits = [] as InvalidGenerationUnit[];\r\n\r\n // Inverters\r\n for (const module of plantPerformanceModel.inverter.inverterModules.items.concat(\r\n plantPerformanceModel.inverterStorage.inverterModules.items,\r\n )) {\r\n if (module.disabled) {\r\n continue; // Disabled items shouldn't be processed in the first place\r\n }\r\n\r\n if (!module.inverterZerezIdAndNorm.zerezId.value) {\r\n // Filter out automatically created, initial items,\r\n // as each properly filled entry is expected to have this value set (among others)\r\n continue;\r\n }\r\n\r\n const enableManualInput =\r\n !module.inverterManualInputManufacturerTypeZerezId.disabled &&\r\n module.inverterManualInputManufacturerTypeZerezId.value === true;\r\n if (enableManualInput) {\r\n continue; // Generation units with manual input are not validated\r\n }\r\n\r\n if (\r\n !powerMatchesConnectionRules(\r\n overallActivePower,\r\n module.inverterZerezIdAndNorm.norm?.value ?? [],\r\n )\r\n ) {\r\n invalidUnits.push({\r\n manufacturer:\r\n module.inverterManufacturerAndModuleType.manufacturer\r\n ?.value ?? '',\r\n moduleType:\r\n module.inverterManufacturerAndModuleType.moduleType\r\n ?.value ?? '',\r\n zerezId: module.inverterZerezIdAndNorm.zerezId?.value ?? '',\r\n norm: module.inverterZerezIdAndNorm.norm?.value ?? [],\r\n });\r\n }\r\n }\r\n\r\n // Generators\r\n for (const module of plantPerformanceModel.generator.generatorModules\r\n .items) {\r\n if (module.disabled) {\r\n continue; // Disabled items shouldn't be processed in the first place\r\n }\r\n\r\n if (!module.generatorZerezIdAndNorm.zerezId.value) {\r\n // Filter out automatically created, initial items,\r\n // as each properly filled entry is expected to have this value set (among others)\r\n continue;\r\n }\r\n\r\n const enableManualInput =\r\n !module.generatorManualInputManufacturerTypeZerezId.disabled &&\r\n module.generatorManualInputManufacturerTypeZerezId.value === true;\r\n if (enableManualInput) {\r\n continue; // Generation units with manual input are not validated\r\n }\r\n\r\n if (\r\n !powerMatchesConnectionRules(\r\n overallActivePower,\r\n module.generatorZerezIdAndNorm.norm?.value ?? [],\r\n )\r\n ) {\r\n invalidUnits.push({\r\n manufacturer:\r\n module.generatorManufacturerAndModuleType.manufacturer\r\n ?.value ?? '',\r\n moduleType:\r\n module.generatorManufacturerAndModuleType.moduleType\r\n ?.value ?? '',\r\n zerezId: module.generatorZerezIdAndNorm.zerezId?.value ?? '',\r\n norm: module.generatorZerezIdAndNorm.norm?.value ?? [],\r\n });\r\n }\r\n }\r\n\r\n return invalidUnits;\r\n}\r\n","import Vue from 'vue';\r\nimport Vuelidate from 'vuelidate';\r\nimport { Validation } from 'vuelidate';\r\nimport { RuleDecl } from 'vue/types/options';\r\nimport { ValidationGroups, ValidationProperties } from 'vue/types/vue';\r\nimport { mapValues as _mapValues } from 'lodash';\r\nimport { Form } from '@/types/forms/form';\r\nimport { FormGroup } from '@/types/forms/formGroup';\r\nimport { FormElement, FormElementConfig } from '@/types/forms/formElement';\r\nimport { FormField } from '@/types/forms/fields/formField';\r\nimport { Forms } from '@/types/forms/forms';\r\nimport { FormStep } from '@/types/forms/formStep';\r\nimport { cloneDeep as _cloneDeep } from 'lodash';\r\nimport { FormList } from '@/types/forms/fields/formList';\r\n\r\ntype Validations = { [identifier: string]: Validations | RuleDecl };\r\n\r\n/**\r\n * Walks through FormGroups of this FormStep / FormGroup and returns the validators from the FormElements.\r\n * Recursively calls itself to handle sub-FormGroups.\r\n * @param disabled Needed to recursively disable FormGroups.\r\n */\r\nfunction getFormGroupAndElementValidations(\r\n formGroup: FormGroup,\r\n disabled = false,\r\n): Validations {\r\n const ret = {} as Validations;\r\n for (const prop in formGroup) {\r\n if (Object.prototype.hasOwnProperty.call(formGroup, prop)) {\r\n const formGroupProp = formGroup[prop as keyof FormGroup];\r\n if (formGroupProp instanceof FormList) {\r\n ret[prop] = {};\r\n formGroupProp.items.forEach((item, index) => {\r\n // don't use $each here so items can have different validators\r\n ret[prop][index] = {\r\n ...formGroupProp.validators,\r\n ...getFormGroupAndElementValidations(\r\n item,\r\n disabled || formGroupProp.disabled,\r\n ),\r\n };\r\n });\r\n } else if (formGroupProp instanceof FormGroup) {\r\n if (disabled || formGroupProp.disabled) {\r\n ret[prop] = {};\r\n } else {\r\n ret[prop] = {\r\n ...formGroupProp.validators,\r\n ...getFormGroupAndElementValidations(\r\n formGroupProp,\r\n disabled || formGroupProp.disabled,\r\n ),\r\n };\r\n }\r\n } else if (formGroupProp instanceof FormElement) {\r\n if (disabled || formGroupProp.disabled) {\r\n ret[prop] = {};\r\n } else {\r\n ret[prop] = formGroupProp.validators;\r\n }\r\n }\r\n }\r\n }\r\n return ret;\r\n}\r\n\r\n/**\r\n * Walks through the form, calls \"getFormGroupAndElementValidations\" for each FormStep to get the validators from the FormElements.\r\n */\r\nfunction getFormValidations(form: Form): Validations {\r\n const ret = {} as Validations;\r\n for (const prop in form) {\r\n if (Object.prototype.hasOwnProperty.call(form, prop)) {\r\n const formProp = form[prop as keyof Form] as unknown;\r\n if (formProp instanceof FormStep) {\r\n ret[prop] = getFormGroupAndElementValidations(\r\n formProp,\r\n formProp.disabled,\r\n );\r\n }\r\n }\r\n }\r\n return ret;\r\n}\r\n\r\n/**\r\n * Main method to get the vuelidate validators for a formsConfig-like object.\r\n */\r\nfunction getValidations(forms: Forms): Validations {\r\n return _mapValues(forms, getFormValidations);\r\n}\r\n\r\ntype Values = { [identifier: string]: Values | unknown };\r\n\r\n/**\r\n * Walks through FormGroups of this FormStep / FormGroup and returns the values from the FormFields.\r\n * Recursively calls itself to handle sub-FormGroups.\r\n */\r\nfunction getFormGroupAndElementValues(formGroup: FormGroup): Values {\r\n const ret = {} as Values;\r\n for (const prop in formGroup) {\r\n if (Object.prototype.hasOwnProperty.call(formGroup, prop)) {\r\n const formGroupProp = formGroup[prop as keyof FormGroup];\r\n\r\n if (formGroupProp instanceof FormElement) {\r\n ret[prop] = getFormElementValues(formGroupProp);\r\n }\r\n }\r\n }\r\n return ret;\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/comma-dangle\r\nfunction getFormListValues<\r\n T extends FormElement,\r\n ItemConfig extends FormElementConfig\r\n>(formList: FormList): (Values | unknown)[] {\r\n return formList.items.map((item) => getFormElementValues(item));\r\n}\r\n\r\nfunction getFormElementValues(\r\n formElement: FormElement,\r\n): Values | unknown | (Values | unknown)[] {\r\n if (formElement instanceof FormList) {\r\n return getFormListValues(formElement);\r\n } else if (formElement instanceof FormGroup) {\r\n return getFormGroupAndElementValues(formElement);\r\n } else if (formElement instanceof FormField) {\r\n return formElement.value;\r\n }\r\n}\r\n\r\n/**\r\n * Walks through the form, calls \"getFormGroupAndElementValues\" for each FormStep to get the values from the FormFields.\r\n */\r\nfunction getFormValues(form: Form): Values {\r\n const ret = {} as Values;\r\n for (const prop in form) {\r\n if (Object.prototype.hasOwnProperty.call(form, prop)) {\r\n const formProp = form[prop as keyof Form] as unknown;\r\n if (formProp instanceof FormStep) {\r\n ret[prop] = getFormGroupAndElementValues(formProp);\r\n }\r\n }\r\n }\r\n\r\n return ret;\r\n}\r\n\r\n/**\r\n * Main method to get the vuelidate values for a formsConfig-like object.\r\n */\r\nfunction getValues(forms: Forms): Values {\r\n return _mapValues(forms, getFormValues);\r\n}\r\n\r\nVue.use(Vuelidate);\r\n\r\nexport function getValidationsClone(\r\n cloneSource: Forms,\r\n formReference?: Vue,\r\n): ValidationProperties & ValidationGroups & Validation {\r\n return createFormValidations(_cloneDeep(cloneSource), formReference);\r\n}\r\n\r\nfunction createValidations(\r\n model: TModel,\r\n getValidations: (model: TModel) => Validations,\r\n getValues: (model: TModel) => Values,\r\n formReference?: Vue,\r\n): ValidationProperties & ValidationGroups & Validation {\r\n const extendedValidationComponent = Vue.extend({\r\n data() {\r\n return {\r\n model,\r\n modelValidations: {} as Validations,\r\n };\r\n },\r\n computed: {\r\n formValidations(): Validations {\r\n return getValidations(this.model);\r\n },\r\n values(): Values {\r\n return getValues(this.model);\r\n },\r\n formReference(): Vue | undefined {\r\n return formReference;\r\n },\r\n },\r\n watch: {\r\n async formValidations(): Promise {\r\n await this.$nextTick;\r\n this.$v.$reset();\r\n },\r\n model: {\r\n // watch model instead of use computed property\r\n // so we can react on changes on array properties\r\n handler(newValue: TModel) {\r\n if (newValue != null) {\r\n this.modelValidations = getValidations(newValue);\r\n }\r\n },\r\n deep: true,\r\n immediate: true,\r\n },\r\n },\r\n validations(): RuleDecl {\r\n return {\r\n values: this.modelValidations,\r\n };\r\n },\r\n });\r\n const validationComponent = new extendedValidationComponent();\r\n return validationComponent.$v.values as ValidationProperties &\r\n ValidationGroups &\r\n Validation;\r\n}\r\n\r\nexport function createFormValidations(\r\n model: Forms,\r\n formReference?: Vue,\r\n): ValidationProperties & ValidationGroups & Validation {\r\n return createValidations(model, getValidations, getValues, formReference);\r\n}\r\n\r\nexport function createFormGroupValidations(\r\n model: FormGroup,\r\n): ValidationProperties & ValidationGroups & Validation {\r\n return createValidations(\r\n model,\r\n getFormGroupAndElementValidations,\r\n getFormGroupAndElementValues,\r\n );\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nexport type ValidationsValueType = Validation & ValidationProperties;\r\n\r\nexport type ValidationsCommonType = Validation &\r\n ValidationGroups &\r\n ValidationProperties;\r\n","import { get as _get } from 'lodash';\r\nimport { LocationFormStep } from '@/types/forms/formSteps/locationFormStep';\r\nimport { AddressesApiAvailabilityResult } from '@/types/forms/shared/addressesApi/addressesApiAvailabilityResult';\r\n\r\ninterface LocationVueContainer {\r\n availabilityResult: AddressesApiAvailabilityResult | null;\r\n model: LocationFormStep;\r\n}\r\n\r\n/**\r\n * If there was no issue with availability api and the address isn't available,\r\n * then the user can't proceed unless they switch to cadastral\r\n */\r\nexport function addressRequiredIfNoCadastral(this: Vue): boolean {\r\n const locationVueContainer: LocationVueContainer | undefined | null =\r\n _get(this, '$options.name') == 'LocationForm'\r\n ? this\r\n : _get(\r\n this,\r\n 'formReference.$refs.applicationFormTemplate.$refs.location[0]',\r\n );\r\n\r\n // Container not found, so we prefer to allow the user to pass,\r\n // as the issue lies with the form, not the user\r\n if (!locationVueContainer) {\r\n return true;\r\n }\r\n // User switched to cadastral, ignore availability result\r\n if (\r\n !locationVueContainer.model.proceedWithCadastral.disabled &&\r\n locationVueContainer.model.proceedWithCadastral.value === true\r\n ) {\r\n return true;\r\n }\r\n\r\n // The api returned that the address is unavailable, but user hasn't switched to cadastral.\r\n if (locationVueContainer.model.availabilityResult.value === 'unavailable') {\r\n return false;\r\n }\r\n\r\n // The api wasn't called at all, which isn't allowed\r\n if (locationVueContainer.model.availabilityResult.value === null) {\r\n return false;\r\n }\r\n\r\n // At this point we have one of these cases left:\r\n // - The api returned a bad response, which generally allows the user to just pass,\r\n // as the issue lies with the form, not the user\r\n // - The api returned that the address is available\r\n // - There could have been some other technical problem, in which case we don't block the form.\r\n return true;\r\n}\r\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FormInputSelect.vue?vue&type=style&index=0&id=b6daa9c0&lang=postcss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FormInputCount.vue?vue&type=style&index=0&id=f669a772&lang=postcss&scoped=true&\"","import { Form } from './form';\r\n\r\n/**\r\n * Adds iterable getter-only property.\r\n * @param fn getter function\r\n */\r\nexport function enumerableGetterAttribute(fn: (target: T) => unknown) {\r\n return (target: T, propertyKey: keyof T): void => {\r\n function getter(this: T) {\r\n return fn(this);\r\n }\r\n\r\n Object.defineProperty(Form.prototype, propertyKey, {\r\n get: getter,\r\n // for...in iterates only over enumerable properties\r\n enumerable: true,\r\n });\r\n };\r\n}\r\n","import { PlantTypeFieldTypeForGenerationTypeFormStep } from '@/types/forms/shared/plantTypeFieldType';\r\nimport type { ApplicationType } from '@/types/forms/specific/applicationForm';\r\n\r\nexport function getApplicationType(\r\n plantType:\r\n | PlantTypeFieldTypeForGenerationTypeFormStep\r\n | ''\r\n | null\r\n | undefined,\r\n): ApplicationType | undefined {\r\n switch (plantType) {\r\n case null:\r\n case undefined:\r\n case '':\r\n return undefined;\r\n case 'photovoltaicPowerPlant':\r\n return 'photovoltaic';\r\n case 'storage':\r\n return 'storage';\r\n case 'photovoltaicPowerPlantAndStorageLte30':\r\n return 'photovoltaicAndStorageLte30';\r\n case 'windPowerPlant':\r\n case 'hydroPowerPlant':\r\n case 'thermalPowerPlantDea':\r\n return 'dea';\r\n case 'thermalPowerPlantKwk':\r\n case 'fuelCell':\r\n case 'orcPowerPlant':\r\n case 'stirlingEngine':\r\n return 'powerHeatCoupling';\r\n\r\n default:\r\n return 'unknown';\r\n }\r\n}\r\n","import { Form } from '../form';\r\nimport { formDtoAttribute } from '../formDtoAttribute';\r\nimport { enumerableGetterAttribute } from '../enumerableGetterAttribute';\r\nimport { LocationFormStep } from '../formSteps/locationFormStep';\r\nimport { GenerationTypeFormStep } from '../formSteps/generationTypeFormStep';\r\nimport { PowerConnectionFormStep } from '../formSteps/powerConnectionFormStep';\r\nimport { PlantBuilderFormStep } from '../formSteps/plantBuilderFormStep';\r\nimport { PlantOperatorFormStep } from '../formSteps/plantOperatorFormStep';\r\nimport { PropertyOwnerFormStep } from '../formSteps/propertyOwnerFormStep';\r\nimport { getApplicationType } from '@/services/form/applicationType';\r\nimport { PlantDataFormStep } from '../formSteps/plantDataFormStep';\r\nimport { PlantPerformanceFormStep } from '../formSteps/plantPerformanceFormStep';\r\nimport { MeasuringConceptsFormStep } from '../formSteps/measuringConceptsFormStep';\r\nimport { BillingFormStep } from '../formSteps/billingFormStep';\r\nimport { CheckAndSendFormStep } from '../formSteps/checkAndSendFormStep';\r\nimport { WithOptional } from '../utility';\r\nimport { DocumentsFormStep } from '../formSteps/documentsFormStep';\r\nimport { ControllableConsumptionDevicesFormStep } from '../formSteps/controllableConsumptionDevicesFormStep';\r\n\r\ntype ConfigProps = WithOptional<\r\n ApplicationForm,\r\n keyof Form | 'applicationType'\r\n>;\r\n\r\nexport type ApplicationType =\r\n | 'photovoltaic'\r\n | 'storage'\r\n | 'photovoltaicAndStorageLte30'\r\n | 'dea'\r\n | 'powerHeatCoupling'\r\n | 'unknown';\r\n\r\nfunction applicationTypeFunction(target: ApplicationForm) {\r\n return getApplicationType(\r\n target.generationType?.plantType?.value || undefined,\r\n );\r\n}\r\n\r\nexport class ApplicationForm extends Form {\r\n @formDtoAttribute({\r\n jsonSchema: {\r\n type: 'string',\r\n },\r\n })\r\n public applicationId: string | null;\r\n\r\n @formDtoAttribute({\r\n jsonSchema: {\r\n type: 'string',\r\n },\r\n })\r\n @enumerableGetterAttribute(applicationTypeFunction)\r\n public readonly applicationType?: ApplicationType;\r\n\r\n public readonly location: LocationFormStep;\r\n public readonly generationType: GenerationTypeFormStep;\r\n public readonly powerConnection: PowerConnectionFormStep;\r\n public readonly plantOperator: PlantOperatorFormStep;\r\n public readonly plantBuilder: PlantBuilderFormStep;\r\n public readonly plantData: PlantDataFormStep;\r\n public readonly propertyOwner: PropertyOwnerFormStep;\r\n public readonly plantPerformance: PlantPerformanceFormStep;\r\n public readonly measuringConcepts: MeasuringConceptsFormStep;\r\n public readonly controllableConsumptionDevices: ControllableConsumptionDevicesFormStep;\r\n public readonly billing: BillingFormStep;\r\n public readonly documents: DocumentsFormStep;\r\n public readonly checkAndSend: CheckAndSendFormStep;\r\n\r\n public constructor(config: ConfigProps) {\r\n super(Object.assign(config) as Form);\r\n\r\n this.applicationId = config.applicationId;\r\n this.location = config.location;\r\n this.generationType = config.generationType;\r\n this.powerConnection = config.powerConnection;\r\n this.plantOperator = config.plantOperator;\r\n this.plantBuilder = config.plantBuilder;\r\n this.plantData = config.plantData;\r\n this.propertyOwner = config.propertyOwner;\r\n this.plantPerformance = config.plantPerformance;\r\n this.measuringConcepts = config.measuringConcepts;\r\n this.controllableConsumptionDevices =\r\n config.controllableConsumptionDevices;\r\n this.billing = config.billing;\r\n this.documents = config.documents;\r\n this.checkAndSend = config.checkAndSend;\r\n }\r\n}\r\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FormInputTextWithSuggestions.vue?vue&type=style&index=0&id=159449ee&lang=postcss&scoped=true&\"","import { ValidationRule } from 'vuelidate/lib/validators';\r\n\r\nexport const checked = ((value: boolean): boolean => !!value) as ValidationRule;\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.model.disabled)?_c('FieldWithInfoIcon',{attrs:{\"show-info-icon\":_vm.showInfoIcon,\"content\":_vm.content},nativeOn:{\"click\":function($event){return _vm.focusDatePickerInput($event)}}},[_c('div',[(_vm.datePickerSupported)?_c('VDatePicker',{attrs:{\"model\":_vm.model,\"validations\":_vm.validations ? _vm.validations : null},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar inputValue = ref.inputValue;\nvar inputEvents = ref.inputEvents;\nvar isDragging = ref.isDragging;\nreturn [_c('div',{staticClass:\"relative\"},[(!_vm.isRange)?_c('FormInputText',{ref:\"datePickerInput\",attrs:{\"model\":Object.assign({}, _vm.model, {value: inputValue}),\"content\":_vm.content,\"validations\":_vm.validations ? _vm.validations : null,\"input-events\":inputEvents,\"icon\":\"Kalender\",\"handle-blur-event\":false}}):_vm._e(),(_vm.isRange)?_c('div',{staticClass:\"flex\"},[_c('FormInputText',{ref:\"dateRangePickerInputStart\",staticClass:\"w-1/2\",attrs:{\"model\":Object.assign({}, _vm.model.start,\n {value: inputValue.start}),\"content\":_vm.contentDateStartWithFallback,\"validations\":_vm.validations ? _vm.validations : null,\"input-events\":inputEvents.start,\"icon\":\"Kalender\",\"handle-blur-event\":false}}),(_vm.isRange)?_c('FormInputText',{ref:\"dateRangePickerInputEnd\",staticClass:\"w-1/2\",attrs:{\"model\":Object.assign({}, _vm.model.end, {value: inputValue.end}),\"content\":_vm.contentDateEndWithFallback,\"validations\":_vm.validations ? _vm.validations : null,\"input-events\":inputEvents.end,\"icon\":\"Kalender\",\"handle-blur-event\":false}}):_vm._e()],1):_vm._e(),(_vm.showTodayButton)?_c('button',{staticClass:\"today text-xs absolute py-2 px-1 border border-primary\",on:{\"click\":function($event){$event.preventDefault();return _vm.setDateToday($event)}}},[_vm._v(\" #HEUTE# \")]):_vm._e()],1)]}}],null,false,3794901997)}):_c('FormInputText',{staticClass:\"text-date\",attrs:{\"model\":_vm.model,\"content\":_vm.content,\"validations\":_vm.validations ? _vm.validations : null,\"icon\":_vm.isIe ? 'Kalender' : null}})],1)]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\n// IE crashes if we include this statically, so it's loaded conditionally in main.ts.\r\n// import VDatePicker from './VDatePicker.vue';\r\n\r\nimport { PropType } from 'vue';\r\nimport { getFormInputMixin } from '@/mixins/formInputMixin';\r\nimport FormInputText from '@/components/atoms/formInputText/FormInputText.vue';\r\nimport { isIE } from '@/utilities/browserDetection';\r\nimport FieldWithInfoIcon from '@/components/molecules/fieldWithInfoIcon/FieldWithInfoIcon.vue';\r\nimport { DateRangeField } from '@/types/forms/fields/dateRangeField';\r\nimport { TextInputContent } from '@/api/interfaces/content/form/base/textInputContent';\r\nimport moment from 'moment';\r\nimport { germanDateFormat } from '@/utilities/germanFormats';\r\nimport { DateField } from '@/types/forms/fields/dateField';\r\n\r\nconst msToWaitForDatePicker = 50;\r\n\r\nexport default getFormInputMixin<\r\n DateField | DateRangeField,\r\n TextInputContent\r\n>().extend({\r\n name: 'DatePicker',\r\n components: {\r\n FieldWithInfoIcon,\r\n FormInputText,\r\n // VDatePicker,\r\n },\r\n props: {\r\n showTodayButton: {\r\n // not working correctly. :( Leaving as concept.\r\n type: Boolean,\r\n default: false,\r\n },\r\n contentDateStart: {\r\n type: Object as PropType,\r\n default: () => {\r\n return {} as TextInputContent;\r\n },\r\n },\r\n contentDateEnd: {\r\n type: Object as PropType,\r\n default: () => {\r\n return {} as TextInputContent;\r\n },\r\n },\r\n },\r\n computed: {\r\n contentDateStartWithFallback(): TextInputContent {\r\n if (Object.keys(this.contentDateStart).length) {\r\n return this.contentDateStart;\r\n } else {\r\n return this.content as TextInputContent;\r\n }\r\n },\r\n contentDateEndWithFallback(): TextInputContent {\r\n if (Object.keys(this.contentDateEnd).length) {\r\n return this.contentDateEnd;\r\n } else {\r\n return this.content as TextInputContent;\r\n }\r\n },\r\n datePickerSupported(): boolean {\r\n return !isIE();\r\n },\r\n isRange(): boolean {\r\n return this.model instanceof DateRangeField;\r\n },\r\n },\r\n methods: {\r\n focusDatePickerInput(e: Event): void {\r\n const target = e?.target as HTMLElement;\r\n if (target?.classList.contains('input-field')) {\r\n const input = target.querySelector('input') as HTMLElement;\r\n if (input) {\r\n setTimeout(() => {\r\n input.focus();\r\n input.click();\r\n }, msToWaitForDatePicker);\r\n }\r\n }\r\n },\r\n setDateToday(): void {\r\n const currentDateString = moment().format(germanDateFormat);\r\n if (this.model instanceof DateRangeField && !!this.model.value) {\r\n const currentStart = this.model.value.start;\r\n this.model.value = {\r\n start: currentStart,\r\n end: currentDateString,\r\n };\r\n } else {\r\n this.model.value = currentDateString;\r\n }\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DatePicker.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DatePicker.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DatePicker.vue?vue&type=template&id=a5d30b24&scoped=true&\"\nimport script from \"./DatePicker.vue?vue&type=script&lang=ts&\"\nexport * from \"./DatePicker.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./DatePicker.vue?vue&type=style&index=0&id=a5d30b24&lang=postcss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"a5d30b24\",\n null\n \n)\n\nexport default component.exports","import { helpers } from 'vuelidate/lib/validators';\r\n\r\nexport const houseNumber = helpers.regex(\r\n 'houseNumber',\r\n /^[^!\"'§$%&=?{}[\\]*#.:,;_<>^°]*$/u,\r\n);\r\n","import { float } from './float';\r\n\r\nexport function getComparableNumber(\r\n value: number | string | Date,\r\n): number | null {\r\n if (value instanceof Date || typeof value === 'number') {\r\n return +value;\r\n }\r\n\r\n if (!float(value)) {\r\n return null;\r\n }\r\n\r\n const parsedValue = parseFloat(value.replace(',', '.'));\r\n\r\n return isNaN(parsedValue) ? null : parsedValue;\r\n}\r\n","import { helpers, ValidationRule } from 'vuelidate/lib/validators';\r\nimport { getComparableNumber } from './util';\r\n\r\nexport function lt(comparedValue: number | string | Date): ValidationRule {\r\n return helpers.withParams(\r\n { type: 'lt', comparedValue },\r\n (value: number | string | Date) => {\r\n if (!helpers.req(value)) {\r\n return true;\r\n }\r\n\r\n const comparableValue = getComparableNumber(value);\r\n const comparableComparedValue = getComparableNumber(comparedValue);\r\n\r\n if (comparableValue === null || comparableComparedValue === null) {\r\n return true;\r\n }\r\n\r\n return comparableValue < comparableComparedValue;\r\n },\r\n );\r\n}\r\n","import { helpers } from 'vuelidate/lib/validators';\r\n\r\nexport const requiredIfAny = helpers.withParams(\r\n { type: 'requiredIf' },\r\n function (this: unknown, value: unknown, parentVm: Vue) {\r\n for (const prop in parentVm) {\r\n if (helpers.ref(prop, this, parentVm)) {\r\n return helpers.req(value);\r\n }\r\n }\r\n return true;\r\n },\r\n);\r\n","import {\r\n integer,\r\n minValue,\r\n maxValue,\r\n ValidationRule,\r\n} from 'vuelidate/lib/validators';\r\nimport { lt } from './lt';\r\nimport { float } from './float';\r\nimport { positive } from './positive';\r\nimport { requiredIfAny } from './requiredIfAny';\r\nimport { GeoOrientation } from '@/types/forms/fields/geoCoordinatesFormGroup';\r\n\r\nexport function getDegreesValidators(\r\n orientation: GeoOrientation,\r\n): Record ValidationRule)> {\r\n const limit = orientation === GeoOrientation.latitude ? 90 : 180;\r\n return {\r\n requiredIfAny,\r\n integer,\r\n minValue: minValue(-1 * limit),\r\n maxValue: maxValue(limit),\r\n };\r\n}\r\n\r\nexport function getMinutesValidators(): Record<\r\n string,\r\n ValidationRule | (() => ValidationRule)\r\n> {\r\n return {\r\n requiredIfAny,\r\n integer,\r\n positive,\r\n lt: lt(60),\r\n };\r\n}\r\n\r\nexport function getSecondsValidators(): Record<\r\n string,\r\n ValidationRule | (() => ValidationRule)\r\n> {\r\n return {\r\n requiredIfAny,\r\n float,\r\n positive,\r\n lt: lt(60),\r\n };\r\n}\r\n","import {\r\n getDegreesValidators,\r\n getMinutesValidators,\r\n getSecondsValidators,\r\n} from '@/validators/geoCoordinates';\r\nimport { FormGroup } from '../formGroup';\r\nimport { WithOptional } from '../utility';\r\nimport { TextField } from './textField';\r\n\r\nexport enum GeoOrientation {\r\n null = 'null',\r\n longitude = 'longitude',\r\n latitude = 'latitude',\r\n}\r\n\r\ntype OptionalProps = 'degrees' | 'minutes' | 'seconds';\r\n\r\nexport type GeoOrientationConfig = WithOptional<\r\n GeoCoordinatesFormGroup,\r\n keyof FormGroup | OptionalProps\r\n>;\r\n\r\nexport class GeoCoordinatesFormGroup extends FormGroup {\r\n public readonly orientation: GeoOrientation;\r\n public readonly degrees: TextField;\r\n public readonly minutes: TextField;\r\n public readonly seconds: TextField;\r\n\r\n public constructor(config: GeoOrientationConfig) {\r\n super(config);\r\n\r\n this.orientation = GeoOrientation.null;\r\n this.degrees =\r\n config.degrees ??\r\n new TextField({\r\n validators: getDegreesValidators(this.orientation),\r\n });\r\n this.minutes =\r\n config.minutes ??\r\n new TextField({\r\n validators: getMinutesValidators(),\r\n });\r\n this.seconds =\r\n config.seconds ??\r\n new TextField({\r\n validators: getSecondsValidators(),\r\n });\r\n }\r\n}\r\n","import { FormElement } from '../formElement';\r\nimport { FormStep } from '../formStep';\r\nimport { TextField } from '../fields/textField';\r\nimport { ZipAndCityFormGroup } from '../formGroups/zipAndCityFormGroup';\r\nimport { StreetAndHousenumberFormGroup } from '../formGroups/streetAndHousenumberFormGroup';\r\nimport { GeoCoordinatesFormGroup } from '../fields/geoCoordinatesFormGroup';\r\nimport { MeadowAndLotFormGroup } from '../formGroups/meadowAndLotFormGroup';\r\nimport { CheckboxField } from '../fields/checkboxField';\r\nimport { WithOptional } from '../utility';\r\nimport { AddressCheckFeedbackFormGroup } from '../formGroups/electricityUnavailableAtAddressFormGroup';\r\nimport { FormField } from '../fields/formField';\r\nimport { AddressesApiAvailabilityResult } from '../shared/addressesApi/addressesApiAvailabilityResult';\r\n\r\ntype ConfigProps = WithOptional;\r\n\r\nexport class LocationFormStep extends FormStep {\r\n public readonly stepIntro: FormElement;\r\n public readonly zipAndCity: ZipAndCityFormGroup;\r\n public readonly streetAndHousenumber: StreetAndHousenumberFormGroup;\r\n public readonly subdistrict: TextField;\r\n public readonly meadowAndLot: MeadowAndLotFormGroup;\r\n public readonly availabilityResult: FormField<\r\n AddressesApiAvailabilityResult\r\n >;\r\n public readonly addressCheckFeedback: AddressCheckFeedbackFormGroup;\r\n public readonly proceedWithCadastral: CheckboxField;\r\n public readonly building: TextField;\r\n public readonly geographicMap: FormElement;\r\n public readonly mapHeadline: FormElement;\r\n public readonly mapHint: FormElement;\r\n public readonly mapConsentHeadline: FormElement;\r\n public readonly mapConsentText: FormElement;\r\n public readonly mapConsentHint: FormElement;\r\n public readonly geographicLatCoordinates: GeoCoordinatesFormGroup;\r\n public readonly geographicLngCoordinates: GeoCoordinatesFormGroup;\r\n\r\n public constructor(config: ConfigProps) {\r\n super(config);\r\n\r\n this.stepIntro = config.stepIntro;\r\n this.zipAndCity = config.zipAndCity;\r\n this.streetAndHousenumber = config.streetAndHousenumber;\r\n this.subdistrict = config.subdistrict;\r\n this.meadowAndLot = config.meadowAndLot;\r\n this.availabilityResult = config.availabilityResult;\r\n this.addressCheckFeedback = config.addressCheckFeedback;\r\n this.proceedWithCadastral = config.proceedWithCadastral;\r\n this.building = config.building;\r\n this.geographicMap = config.geographicMap;\r\n this.mapHeadline = config.mapHeadline;\r\n this.mapHint = config.mapHint;\r\n this.mapConsentHeadline = config.mapConsentHeadline;\r\n this.mapConsentText = config.mapConsentText;\r\n this.mapConsentHint = config.mapConsentHint;\r\n this.geographicLatCoordinates = config.geographicLatCoordinates;\r\n this.geographicLngCoordinates = config.geographicLngCoordinates;\r\n }\r\n}\r\n","import { TextField } from '../fields/textField';\r\nimport { FormGroup } from '../formGroup';\r\nimport { WithOptional } from '../utility';\r\n\r\ntype ConfigProps = WithOptional;\r\n\r\nexport class ZipAndCityFormGroup extends FormGroup {\r\n public readonly zip: TextField;\r\n public readonly city: TextField;\r\n\r\n public constructor(config: ConfigProps) {\r\n super(config);\r\n\r\n this.zip = config.zip;\r\n this.city = config.city;\r\n }\r\n}\r\n","import { TextField } from '../fields/textField';\r\nimport { FormGroup } from '../formGroup';\r\nimport { WithOptional } from '../utility';\r\n\r\ntype ConfigProps = WithOptional;\r\n\r\nexport class StreetAndHousenumberFormGroup extends FormGroup {\r\n public readonly street: TextField;\r\n public readonly housenumber: TextField;\r\n\r\n public constructor(config: ConfigProps) {\r\n super(config);\r\n\r\n this.street = config.street;\r\n this.housenumber = config.housenumber;\r\n }\r\n}\r\n","import { TextField } from '../fields/textField';\r\nimport { FormGroup } from '../formGroup';\r\nimport { WithOptional } from '../utility';\r\n\r\ntype ConfigProps = WithOptional;\r\n\r\nexport class MeadowAndLotFormGroup extends FormGroup {\r\n public readonly meadow: TextField;\r\n public readonly lot: TextField;\r\n\r\n public constructor(config: ConfigProps) {\r\n super(config);\r\n\r\n this.meadow = config.meadow;\r\n this.lot = config.lot;\r\n }\r\n}\r\n","import { FormElement } from '../formElement';\r\nimport { FormGroup } from '../formGroup';\r\nimport { WithOptional } from '../utility';\r\n\r\ntype ConfigProps = WithOptional;\r\n\r\nexport class AddressCheckFeedbackFormGroup extends FormGroup {\r\n public readonly addressCheckFeedbackCheckingHeadline: FormElement;\r\n public readonly addressCheckFeedbackAvailableHeadline: FormElement;\r\n public readonly addressCheckFeedbackEnterAddressHeadline: FormElement;\r\n public readonly addressCheckFeedbackUnavailableHeadline: FormElement;\r\n public readonly addressCheckFeedbackUnavailableInfoText: FormElement;\r\n\r\n public constructor(config: ConfigProps) {\r\n super(config);\r\n\r\n this.addressCheckFeedbackCheckingHeadline =\r\n config.addressCheckFeedbackCheckingHeadline;\r\n this.addressCheckFeedbackAvailableHeadline =\r\n config.addressCheckFeedbackAvailableHeadline;\r\n this.addressCheckFeedbackEnterAddressHeadline =\r\n config.addressCheckFeedbackEnterAddressHeadline;\r\n this.addressCheckFeedbackUnavailableHeadline =\r\n config.addressCheckFeedbackUnavailableHeadline;\r\n this.addressCheckFeedbackUnavailableInfoText =\r\n config.addressCheckFeedbackUnavailableInfoText;\r\n }\r\n}\r\n","import { isArray as _isArray } from 'lodash';\r\nimport { helpers, ValidationRule } from 'vuelidate/lib/validators';\r\n\r\nexport function length(length: number): ValidationRule {\r\n return helpers.withParams(\r\n { type: 'length', length },\r\n (value: number | string | unknown[]) => {\r\n if (!helpers.req(value)) {\r\n return true;\r\n }\r\n\r\n const valueWithLength = _isArray(value) ? value : `${value}`;\r\n return valueWithLength.length === length;\r\n },\r\n );\r\n}\r\n","import { required, integer, maxLength } from 'vuelidate/lib/validators';\r\nimport { positive } from '@/validators/positive';\r\nimport { houseNumber } from '@/validators/houseNumber';\r\nimport { FormElement } from '@/types/forms/formElement';\r\nimport { TextField } from '@/types/forms/fields/textField';\r\nimport { CheckboxField } from '@/types/forms/fields/checkboxField';\r\nimport {\r\n GeoCoordinatesFormGroup,\r\n GeoOrientation,\r\n} from '@/types/forms/fields/geoCoordinatesFormGroup';\r\nimport { LocationFormStep } from '@/types/forms/formSteps/locationFormStep';\r\nimport { ZipAndCityFormGroup } from '@/types/forms/formGroups/zipAndCityFormGroup';\r\nimport { StreetAndHousenumberFormGroup } from '@/types/forms/formGroups/streetAndHousenumberFormGroup';\r\nimport { MeadowAndLotFormGroup } from '@/types/forms/formGroups/meadowAndLotFormGroup';\r\nimport { addressRequiredIfNoCadastral } from '@/validators/addressRequiredIfNoCadastral';\r\nimport { AddressCheckFeedbackFormGroup } from '@/types/forms/formGroups/electricityUnavailableAtAddressFormGroup';\r\nimport { FormField } from '@/types/forms/fields/formField';\r\nimport { AddressesApiAvailabilityResult } from '@/types/forms/shared/addressesApi/addressesApiAvailabilityResult';\r\nimport { length } from '@/validators/length';\r\n\r\nexport const locationFormStep = new LocationFormStep({\r\n stepIntro: new FormElement(),\r\n zipAndCity: new ZipAndCityFormGroup({\r\n zip: new TextField({\r\n validators: {\r\n required,\r\n integer,\r\n positive,\r\n length: length(5),\r\n },\r\n }),\r\n city: new TextField({\r\n validators: {\r\n required,\r\n },\r\n }),\r\n }),\r\n streetAndHousenumber: new StreetAndHousenumberFormGroup({\r\n street: new TextField({\r\n validators: {\r\n required,\r\n },\r\n }),\r\n housenumber: new TextField({\r\n validators: {\r\n required,\r\n houseNumber,\r\n maxLength: maxLength(8),\r\n },\r\n }),\r\n }),\r\n availabilityResult: new FormField({\r\n validators: {\r\n addressRequiredIfNoCadastral,\r\n },\r\n }),\r\n addressCheckFeedback: new AddressCheckFeedbackFormGroup({\r\n excludeFromSchema: true,\r\n addressCheckFeedbackCheckingHeadline: new FormElement(),\r\n addressCheckFeedbackAvailableHeadline: new FormElement(),\r\n addressCheckFeedbackEnterAddressHeadline: new FormElement(),\r\n addressCheckFeedbackUnavailableHeadline: new FormElement(),\r\n addressCheckFeedbackUnavailableInfoText: new FormElement(),\r\n }),\r\n proceedWithCadastral: new CheckboxField(),\r\n subdistrict: new TextField({\r\n validators: {\r\n required,\r\n },\r\n }),\r\n meadowAndLot: new MeadowAndLotFormGroup({\r\n meadow: new TextField({\r\n validators: {\r\n required,\r\n integer,\r\n positive,\r\n },\r\n }),\r\n lot: new TextField({\r\n validators: {\r\n required,\r\n },\r\n }),\r\n }),\r\n building: new TextField(),\r\n geographicMap: new FormElement(),\r\n mapHeadline: new FormElement(),\r\n mapHint: new FormElement(),\r\n mapConsentHeadline: new FormElement(),\r\n mapConsentText: new FormElement(),\r\n mapConsentHint: new FormElement(),\r\n geographicLatCoordinates: new GeoCoordinatesFormGroup({\r\n orientation: GeoOrientation.latitude,\r\n }),\r\n geographicLngCoordinates: new GeoCoordinatesFormGroup({\r\n orientation: GeoOrientation.longitude,\r\n }),\r\n});\r\n","import { helpers, ValidationRule } from 'vuelidate/lib/validators';\r\nimport moment from 'moment';\r\nimport { germanDateFormat } from '@/utilities/germanFormats';\r\nimport { date } from './date';\r\nimport { DateRange } from '@/types/forms/shared/dateRange';\r\n\r\n/*\r\n * Determines whether the given value is less than the given maxDate. Moment js is used\r\n here to parse the string in German format. The moment() function accepts the string and format and\r\n will internally create a Date object. The chained isSameOrBefore function performs the comparison.\r\n https://momentjs.com/docs/#/use-it/\r\n*/\r\n\r\nexport const maxDate = (maxDate: string): ValidationRule => {\r\n return helpers.withParams(\r\n { type: 'maxDate', maxDate },\r\n (value: string | null | DateRange) => {\r\n const validateValue =\r\n typeof value === 'string' || value == null ? value : value.end;\r\n return (\r\n !!maxDate &&\r\n (!helpers.req(validateValue) ||\r\n !date(validateValue) ||\r\n moment(\r\n validateValue,\r\n germanDateFormat,\r\n true,\r\n ).isSameOrBefore(moment(maxDate, germanDateFormat, true)))\r\n );\r\n },\r\n );\r\n};\r\n","import { DateRange } from '@/types/forms/shared/dateRange';\r\nimport { helpers } from 'vuelidate/lib/validators';\r\n\r\nexport const requiredDate = (value: string | null | DateRange): boolean => {\r\n if (typeof value === 'string' || value === null) {\r\n return helpers.req(value);\r\n } else {\r\n return helpers.req(value.start) && helpers.req(value.end);\r\n }\r\n};\r\n","import { JSONSchema7Definition } from 'json-schema';\r\nimport { defaults as _defaults } from 'lodash';\r\nimport { date } from '@/validators/date';\r\nimport {\r\n FormFieldConfig,\r\n formFieldDefaultConfig,\r\n FormField,\r\n} from './formField';\r\n\r\nexport interface DateFieldConfig extends FormFieldConfig {\r\n value?: string;\r\n availableStart?: Date;\r\n availableEnd?: Date;\r\n}\r\n\r\nexport const dateFieldDefaultConfig = {\r\n ...formFieldDefaultConfig,\r\n};\r\n\r\nexport class DateField extends FormField {\r\n public readonly availableStart: Date | undefined;\r\n public readonly availableEnd: Date | undefined;\r\n\r\n public constructor(config?: DateFieldConfig) {\r\n const resolvedConfig = _defaults(\r\n config || ({} as DateFieldConfig),\r\n dateFieldDefaultConfig,\r\n ) as DateFieldConfig;\r\n\r\n resolvedConfig.validators = {\r\n date,\r\n ...resolvedConfig.validators,\r\n };\r\n\r\n super(resolvedConfig);\r\n\r\n this.availableStart = config?.availableStart;\r\n this.availableEnd = config?.availableEnd;\r\n }\r\n\r\n public getJsonSchema(): JSONSchema7Definition {\r\n return {\r\n type: 'string',\r\n };\r\n }\r\n}\r\n","import { FormElement } from '../formElement';\r\nimport { FormStep } from '../formStep';\r\nimport { SelectField } from '../fields/selectField';\r\nimport { CheckboxesField } from '../fields/checkboxesField';\r\nimport { TextField } from '../fields/textField';\r\nimport { CheckboxField } from '../fields/checkboxField';\r\nimport { DateField } from '../fields/dateField';\r\nimport { PlantTypeFieldTypeForGenerationTypeFormStep } from '../shared/plantTypeFieldType';\r\nimport { WithOptional } from '../utility';\r\nimport { EnergyTypeFieldType } from '../shared/energyTypeFieldType';\r\nimport { EmergencyGeneratorOperatingModeType } from '../shared/emergencyGeneratorOperatingModeType';\r\nimport { RadioButtonsField } from '../fields/radioButtonsField';\r\nimport { PlantStructureTypeValueType } from '../shared/plantStructureTypeValueType';\r\nimport { TotalPlantPerformanceValueType } from '../shared/totalPlantPerformanceValueType';\r\nimport { RequestType } from '../shared/requestType';\r\n\r\ntype ConfigProps = WithOptional;\r\n\r\nexport class GenerationTypeFormStep extends FormStep {\r\n public readonly stepIntro: FormElement;\r\n public readonly energyType: SelectField;\r\n public readonly plantType: SelectField<\r\n PlantTypeFieldTypeForGenerationTypeFormStep | ''\r\n >;\r\n public readonly plantStructureType: RadioButtonsField<\r\n PlantStructureTypeValueType\r\n >;\r\n public readonly totalPlantPerformance: RadioButtonsField<\r\n TotalPlantPerformanceValueType\r\n >;\r\n public readonly requestType: RadioButtonsField;\r\n public readonly requestWithPlanningInfo: FormElement;\r\n public readonly requestWithoutPlanningInfo: FormElement;\r\n public readonly emergencyGeneratorOperatingMode: CheckboxesField<\r\n EmergencyGeneratorOperatingModeType\r\n >;\r\n public readonly specifiedEmergencyGeneratorOperatingMode: TextField;\r\n public readonly plugInGeneratingPlant: CheckboxField;\r\n public readonly simplifiedRegistrationProcessNotice: FormElement;\r\n public readonly proceedWithFullRegistrationForEEGCompensation: CheckboxField;\r\n public readonly simplifiedProcedureHint: FormElement;\r\n public readonly bidirectionalMeter: CheckboxField;\r\n public readonly bidirectionalMeterInfo: FormElement;\r\n public readonly consumption: TextField;\r\n public readonly infeed: TextField;\r\n public readonly readingDate: DateField;\r\n public readonly plugInGeneratingPlantInfo: FormElement;\r\n\r\n public constructor(config: ConfigProps) {\r\n super(config);\r\n\r\n this.stepIntro = config.stepIntro;\r\n this.plugInGeneratingPlant = config.plugInGeneratingPlant;\r\n this.energyType = config.energyType;\r\n this.plantType = config.plantType;\r\n this.plantStructureType = config.plantStructureType;\r\n this.totalPlantPerformance = config.totalPlantPerformance;\r\n this.requestType = config.requestType;\r\n this.requestWithPlanningInfo = config.requestWithPlanningInfo;\r\n this.requestWithoutPlanningInfo = config.requestWithoutPlanningInfo;\r\n this.emergencyGeneratorOperatingMode =\r\n config.emergencyGeneratorOperatingMode;\r\n this.specifiedEmergencyGeneratorOperatingMode =\r\n config.specifiedEmergencyGeneratorOperatingMode;\r\n this.simplifiedRegistrationProcessNotice =\r\n config.simplifiedRegistrationProcessNotice;\r\n this.proceedWithFullRegistrationForEEGCompensation =\r\n config.proceedWithFullRegistrationForEEGCompensation;\r\n this.simplifiedProcedureHint = config.simplifiedProcedureHint;\r\n this.bidirectionalMeter = config.bidirectionalMeter;\r\n this.bidirectionalMeterInfo = config.bidirectionalMeterInfo;\r\n this.consumption = config.consumption;\r\n this.infeed = config.infeed;\r\n this.readingDate = config.readingDate;\r\n this.plugInGeneratingPlantInfo = config.plugInGeneratingPlantInfo;\r\n }\r\n}\r\n","import { FormFieldWithOptions } from './formFieldWithOptions';\r\n\r\nexport class RadioButtonsField extends FormFieldWithOptions<\r\n TOptionKey,\r\n TOptionKey\r\n> {}\r\n","import moment from 'moment';\r\nimport { required, integer } from 'vuelidate/lib/validators';\r\nimport { positive } from '@/validators/positive';\r\nimport { maxDate } from '@/validators/maxDate';\r\nimport { requiredDate } from '@/validators/requiredDate';\r\nimport { FormElement } from '@/types/forms/formElement';\r\nimport { FormOption } from '@/types/forms/formOption';\r\nimport { TextField } from '@/types/forms/fields/textField';\r\nimport { CheckboxField } from '@/types/forms/fields/checkboxField';\r\nimport { CheckboxesField } from '@/types/forms/fields/checkboxesField';\r\nimport { SelectField } from '@/types/forms/fields/selectField';\r\nimport { DateField } from '@/types/forms/fields/dateField';\r\nimport { GenerationTypeFormStep } from '@/types/forms/formSteps/generationTypeFormStep';\r\nimport { RadioButtonsField } from '@/types/forms/fields/radioButtonsField';\r\nimport { checked } from '@/validators/checked';\r\n\r\nexport const generationTypeFormStep = new GenerationTypeFormStep({\r\n stepIntro: new FormElement(),\r\n energyType: new SelectField({\r\n options: [\r\n new FormOption({ key: 'energyStorage' }), // Energiespeicher\r\n new FormOption({ key: 'sun' }), // Sonne\r\n new FormOption({ key: 'sunAndEnergyStorageLte30' }), // Sonne + Energiespeicher bis 30 kW\r\n new FormOption({ key: 'wind' }), // Wind\r\n new FormOption({ key: 'water' }), // Wasser\r\n new FormOption({ key: 'biogas' }), // Biogas\r\n new FormOption({ key: 'biowaste' }), // Bioabfälle\r\n new FormOption({ key: 'biodiesel' }), // Biodiesel\r\n new FormOption({ key: 'slurry' }), // Gülle\r\n new FormOption({ key: 'plantOil' }), // Pflanzenöl\r\n new FormOption({ key: 'woodGas' }), // Holzgas\r\n new FormOption({ key: 'mineGas' }), // Grubengas\r\n new FormOption({ key: 'sewageGas' }), // Klärgas\r\n new FormOption({ key: 'landfillGas' }), // Deponiegas\r\n new FormOption({ key: 'geothermics' }), // Geothermie\r\n new FormOption({ key: 'naturalGas' }), // Erdgas\r\n new FormOption({ key: 'liquidGas' }), // Flüssiggas\r\n new FormOption({ key: 'dieselOil' }), // Dieselöl\r\n ],\r\n validators: {\r\n required,\r\n },\r\n }),\r\n plantType: new SelectField({\r\n options: [\r\n new FormOption({ key: 'photovoltaicPowerPlant' }), // Solaranlage\r\n new FormOption({ key: 'photovoltaicPowerPlantAndStorageLte30' }), // Solaranlage + Speicher bis 30 kW\r\n new FormOption({ key: 'windPowerPlant' }), // Windenergieanlage\r\n new FormOption({ key: 'hydroPowerPlant' }), // Wasserkraftanlage\r\n new FormOption({ key: 'steamTurbine' }), // Wasserdampfturbine\r\n new FormOption({ key: 'thermalPowerPlantDea' }), // Blockheizkraftwerk DEA\r\n new FormOption({ key: 'thermalPowerPlantKwk' }), // Blockheizkraftwerk KWK\r\n new FormOption({ key: 'gasTurbine' }), // Gasturbine\r\n new FormOption({ key: 'fuelCell' }), // Brennstoffzelle\r\n new FormOption({ key: 'orcPowerPlant' }), // ORC-Anlage\r\n new FormOption({ key: 'emergencyGenerator' }), // Notstromaggregat > 100 ms\r\n new FormOption({ key: 'storage' }), // Speicher\r\n new FormOption({ key: 'stirlingEngine' }), // Stirling-Motor\r\n ],\r\n validators: {\r\n required,\r\n },\r\n }),\r\n plantStructureType: new RadioButtonsField({\r\n value: 'building',\r\n options: [\r\n new FormOption({ key: 'building' }),\r\n new FormOption({ key: 'noiseBarrier' }),\r\n new FormOption({ key: 'openSpacePlant' }),\r\n ],\r\n validators: {\r\n required,\r\n },\r\n }),\r\n totalPlantPerformance: new RadioButtonsField({\r\n value: 'below300',\r\n options: [\r\n new FormOption({ key: 'below300' }),\r\n new FormOption({ key: 'above300' }),\r\n ],\r\n validators: {\r\n required,\r\n },\r\n }),\r\n requestType: new RadioButtonsField({\r\n value: 'requestWithoutPlanning',\r\n options: [\r\n new FormOption({ key: 'requestWithoutPlanning' }),\r\n new FormOption({ key: 'requestWithPlanning' }),\r\n ],\r\n validators: {\r\n required,\r\n },\r\n }),\r\n requestWithPlanningInfo: new FormElement(),\r\n requestWithoutPlanningInfo: new FormElement(),\r\n emergencyGeneratorOperatingMode: new CheckboxesField({\r\n options: [\r\n new FormOption({ key: 'testOperation' }), // Probebetrieb\r\n new FormOption({ key: 'referenceTipCover' }), // Bezugsspitzenabdeckung\r\n new FormOption({ key: 'controlEnergyMarket' }), // Regelenergiemarkt\r\n new FormOption({ key: 'other' }), // Sonstiges\r\n ],\r\n validators: {\r\n required,\r\n },\r\n }),\r\n specifiedEmergencyGeneratorOperatingMode: new TextField({\r\n validators: {\r\n required,\r\n },\r\n }),\r\n plugInGeneratingPlant: new CheckboxField(),\r\n simplifiedRegistrationProcessNotice: new FormElement(),\r\n proceedWithFullRegistrationForEEGCompensation: new CheckboxField({\r\n validators: {\r\n checked,\r\n },\r\n }),\r\n simplifiedProcedureHint: new FormElement(),\r\n bidirectionalMeter: new CheckboxField(),\r\n bidirectionalMeterInfo: new FormElement(),\r\n consumption: new TextField({\r\n validators: {\r\n required,\r\n integer,\r\n positive,\r\n },\r\n }),\r\n infeed: new TextField({\r\n validators: {\r\n required,\r\n integer,\r\n positive,\r\n },\r\n }),\r\n readingDate: new DateField({\r\n availableEnd: moment().toDate(),\r\n validators: {\r\n requiredDate,\r\n maxDate: maxDate(moment().format('DD.MM.YYYY')),\r\n },\r\n }),\r\n plugInGeneratingPlantInfo: new FormElement(),\r\n});\r\n","import { FormStep } from '../formStep';\r\nimport { RadioButtonsField } from '../fields/radioButtonsField';\r\nimport { FormElement } from '../formElement';\r\nimport { CheckboxField } from '../fields/checkboxField';\r\nimport { TextField } from '../fields/textField';\r\nimport { DateField } from '../fields/dateField';\r\nimport { WithOptional } from '../utility';\r\nimport { DoesConnectionExistType } from '../shared/doesConnectionExistType';\r\nimport { InfoIconContent } from '@/api/interfaces/content/form/base/infoIconContent';\r\nimport { WhichVoltageLevelType } from '../shared/whichVoltageLevelType';\r\nimport { GenerationUnitsFeedbackFormGroup } from '../formGroups/powerConnection/GenerationUnitsFeedbackFormGroup';\r\n\r\ntype ConfigProps = WithOptional;\r\n\r\nexport class PowerConnectionFormStep extends FormStep {\r\n public readonly doesConnectionExist: RadioButtonsField<\r\n DoesConnectionExistType\r\n >;\r\n public readonly orderNumber: TextField;\r\n public readonly whichVoltageLevel: RadioButtonsField;\r\n public readonly hasExistingPlants: CheckboxField;\r\n public readonly existingPlantsTotalPower: TextField & InfoIconContent;\r\n public readonly onlyInverterCapacityOfExistingGenerationPlant: TextField;\r\n public readonly repoweringPlanned: CheckboxField;\r\n public readonly repoweringTotalPower: TextField & InfoIconContent;\r\n public readonly feedInPowerInstalled: TextField & InfoIconContent;\r\n public readonly generationUnitsFeedback: GenerationUnitsFeedbackFormGroup;\r\n public readonly feedInPowerShallBeLimitedByAController: CheckboxField;\r\n public readonly feedInPower: TextField & InfoIconContent;\r\n public readonly plannedReferencePower: TextField & InfoIconContent;\r\n public readonly ofWhichOwnUseGeneratingPlant: TextField & InfoIconContent;\r\n public readonly ownUseExceedsPlannedPowerWarning: FormElement;\r\n public readonly noConnectionAvailable: FormElement;\r\n public readonly reactivePowerCompensationSystemExists: CheckboxField;\r\n public readonly unitCapacity: TextField;\r\n public readonly unitIsPrototype: CheckboxField;\r\n public readonly buildingPowerDemand: CheckboxField;\r\n public readonly requiredPower: TextField;\r\n public readonly fromWhen: DateField;\r\n\r\n public constructor(config: ConfigProps) {\r\n super(config);\r\n\r\n this.doesConnectionExist = config.doesConnectionExist;\r\n this.orderNumber = config.orderNumber;\r\n this.whichVoltageLevel = config.whichVoltageLevel;\r\n this.onlyInverterCapacityOfExistingGenerationPlant =\r\n config.onlyInverterCapacityOfExistingGenerationPlant;\r\n this.hasExistingPlants = config.hasExistingPlants;\r\n this.existingPlantsTotalPower = config.existingPlantsTotalPower;\r\n this.repoweringPlanned = config.repoweringPlanned;\r\n this.repoweringTotalPower = config.repoweringTotalPower;\r\n this.feedInPowerInstalled = config.feedInPowerInstalled;\r\n this.generationUnitsFeedback = config.generationUnitsFeedback;\r\n this.feedInPowerShallBeLimitedByAController =\r\n config.feedInPowerShallBeLimitedByAController;\r\n this.feedInPower = config.feedInPower;\r\n this.plannedReferencePower = config.plannedReferencePower;\r\n this.ofWhichOwnUseGeneratingPlant = config.ofWhichOwnUseGeneratingPlant;\r\n this.ownUseExceedsPlannedPowerWarning =\r\n config.ownUseExceedsPlannedPowerWarning;\r\n this.noConnectionAvailable = config.noConnectionAvailable;\r\n this.reactivePowerCompensationSystemExists =\r\n config.reactivePowerCompensationSystemExists;\r\n this.unitCapacity = config.unitCapacity;\r\n this.unitIsPrototype = config.unitIsPrototype;\r\n this.buildingPowerDemand = config.buildingPowerDemand;\r\n this.requiredPower = config.requiredPower;\r\n this.fromWhen = config.fromWhen;\r\n }\r\n}\r\n","import { helpers } from 'vuelidate/lib/validators';\r\n\r\nexport const positiveInteger = helpers.regex('positiveInteger', /^\\d*$/);\r\n","import { parseGermanFloat } from '@/utilities/germanFormats';\r\nimport { ValidationRule } from 'vuelidate/lib/validators';\r\n\r\ninterface ExistingPlantsTotalPowerPartialVm {\r\n existingPlantsTotalPower: string;\r\n}\r\n\r\nexport const mustBeLowerThanToExistingPlantsTotalPower = function (\r\n value: string,\r\n vm: ExistingPlantsTotalPowerPartialVm,\r\n) {\r\n const existingPlantsTotalPower = parseGermanFloat(\r\n vm.existingPlantsTotalPower || '0',\r\n );\r\n const val = parseGermanFloat(value || '0');\r\n return val <= existingPlantsTotalPower;\r\n} as ValidationRule;\r\n","import { getOverallActivePower } from '@/services/form/utilities/application/plantPerformance';\r\nimport { Forms } from '@/types/forms/forms';\r\nimport { parseGermanFloat } from '@/utilities/germanFormats';\r\nimport { roundToDecimals } from '@/utilities/math';\r\nimport { CombinedVueInstance } from 'vue/types/vue';\r\nimport { ValidationRule } from 'vuelidate/lib/validators';\r\n\r\n// eslint-disable-next-line @typescript-eslint/comma-dangle\r\nexport const mustBeLowerThanFeedInPowerRecommendation = function <\r\n Instance extends Vue\r\n>(\r\n this: CombinedVueInstance<\r\n Instance,\r\n { model: Forms },\r\n unknown,\r\n unknown,\r\n unknown\r\n >,\r\n value: string,\r\n) {\r\n const plantPerformanceModel = this.model.application.plantPerformance;\r\n\r\n const overallActivePower =\r\n getOverallActivePower(\r\n this.model.application.applicationType,\r\n plantPerformanceModel,\r\n ) ?? 0;\r\n\r\n const existingPlantsTotalPower = parseGermanFloat(\r\n !this.model.application.powerConnection.existingPlantsTotalPower\r\n .disabled\r\n ? this.model.application.powerConnection.existingPlantsTotalPower\r\n .value ?? '0'\r\n : '0',\r\n );\r\n const repoweringTotalPower = parseGermanFloat(\r\n !this.model.application.powerConnection.repoweringTotalPower.disabled\r\n ? this.model.application.powerConnection.repoweringTotalPower\r\n .value ?? '0'\r\n : '0',\r\n );\r\n const recommendation = roundToDecimals(\r\n overallActivePower + existingPlantsTotalPower - repoweringTotalPower,\r\n );\r\n\r\n return parseGermanFloat(value) <= recommendation;\r\n} as ValidationRule;\r\n","import { FormElement } from '../../formElement';\r\nimport { FormGroup } from '../../formGroup';\r\nimport { WithOptional } from '../../utility';\r\n\r\ntype ConfigProps = WithOptional<\r\n GenerationUnitsFeedbackFormGroup,\r\n keyof FormGroup\r\n>;\r\n\r\nexport class GenerationUnitsFeedbackFormGroup extends FormGroup {\r\n public readonly generationUnitsFeedbackHeadline: FormElement;\r\n public readonly generationUnitsFeedbackInfoText: FormElement;\r\n public readonly generationUnitsFeedbackButton: FormElement;\r\n\r\n public constructor(config: ConfigProps) {\r\n super(config);\r\n\r\n this.generationUnitsFeedbackHeadline =\r\n config.generationUnitsFeedbackHeadline;\r\n this.generationUnitsFeedbackInfoText =\r\n config.generationUnitsFeedbackInfoText;\r\n this.generationUnitsFeedbackButton = config.generationUnitsFeedbackButton;\r\n }\r\n}\r\n","import { maxLength, required } from 'vuelidate/lib/validators';\r\nimport { FormElement } from '@/types/forms/formElement';\r\nimport { FormOption } from '@/types/forms/formOption';\r\nimport { CheckboxField } from '@/types/forms/fields/checkboxField';\r\nimport { RadioButtonsField } from '@/types/forms/fields/radioButtonsField';\r\nimport { DateField } from '@/types/forms/fields/dateField';\r\nimport { PowerConnectionFormStep } from '@/types/forms/formSteps/powerConnectionFormStep';\r\nimport { float } from '@/validators/float';\r\nimport { TextField } from '@/types/forms/fields/textField';\r\nimport { positiveInteger } from '@/validators/positiveInteger';\r\nimport { positive } from '@/validators/positive';\r\nimport { requiredDate } from '@/validators/requiredDate';\r\nimport { mustBeLowerThanToExistingPlantsTotalPower } from '@/validators/mustBeLowerThanToExistingPlantsTotalPower';\r\nimport { mustBeLowerThanFeedInPowerRecommendation } from '@/validators/mustBeLowerThanFeedInPowerRecommendation';\r\nimport { alwaysFalse } from '@/validators/alwaysFalse';\r\nimport { GenerationUnitsFeedbackFormGroup } from '@/types/forms/formGroups/powerConnection/GenerationUnitsFeedbackFormGroup';\r\n\r\nexport const powerConnectionFormStep = new PowerConnectionFormStep({\r\n doesConnectionExist: new RadioButtonsField({\r\n value: 'yes',\r\n options: [\r\n new FormOption({ key: 'yes' }),\r\n new FormOption({ key: 'ordered' }),\r\n new FormOption({ key: 'no' }),\r\n ],\r\n validators: {\r\n required,\r\n },\r\n }),\r\n onlyInverterCapacityOfExistingGenerationPlant: new TextField(),\r\n orderNumber: new TextField({\r\n validators: {\r\n required,\r\n orderNumber: positiveInteger,\r\n maxLength: maxLength(8),\r\n },\r\n }),\r\n whichVoltageLevel: new RadioButtonsField({\r\n value: 'lowVoltage',\r\n options: [\r\n new FormOption({ key: 'lowVoltage' }),\r\n new FormOption({ key: 'mediumVoltage' }),\r\n new FormOption({ key: 'unknown' }),\r\n ],\r\n validators: {\r\n required,\r\n },\r\n }),\r\n hasExistingPlants: new CheckboxField(),\r\n existingPlantsTotalPower: new TextField({\r\n validators: {\r\n required,\r\n float,\r\n positive,\r\n },\r\n }),\r\n repoweringPlanned: new CheckboxField(),\r\n repoweringTotalPower: new TextField({\r\n validators: {\r\n required,\r\n float,\r\n positive,\r\n mustBeLowerThanToExistingPlantsTotalPower,\r\n },\r\n }),\r\n feedInPowerInstalled: new TextField({\r\n userChangeable: false,\r\n validators: {\r\n required,\r\n float,\r\n positive,\r\n },\r\n }),\r\n generationUnitsFeedback: new GenerationUnitsFeedbackFormGroup({\r\n excludeFromSchema: true,\r\n generationUnitsFeedbackHeadline: new FormElement(),\r\n generationUnitsFeedbackInfoText: new FormElement(),\r\n generationUnitsFeedbackButton: new FormElement(),\r\n validators: {\r\n alwaysFalse,\r\n },\r\n }),\r\n feedInPowerShallBeLimitedByAController: new CheckboxField(),\r\n feedInPower: new TextField({\r\n validators: {\r\n required,\r\n float,\r\n positive,\r\n mustBeLowerThanFeedInPowerRecommendation,\r\n },\r\n }),\r\n plannedReferencePower: new TextField({\r\n validators: {\r\n required,\r\n float,\r\n positive,\r\n },\r\n }),\r\n ofWhichOwnUseGeneratingPlant: new TextField({\r\n validators: {\r\n required,\r\n float,\r\n positive,\r\n },\r\n }),\r\n ownUseExceedsPlannedPowerWarning: new FormElement({\r\n validators: {\r\n alwaysFalse,\r\n },\r\n }),\r\n noConnectionAvailable: new FormElement(),\r\n reactivePowerCompensationSystemExists: new CheckboxField(),\r\n unitCapacity: new TextField({\r\n validators: {\r\n required,\r\n float,\r\n },\r\n }),\r\n unitIsPrototype: new CheckboxField(),\r\n buildingPowerDemand: new CheckboxField(),\r\n requiredPower: new TextField({\r\n validators: {\r\n required,\r\n float,\r\n },\r\n }),\r\n fromWhen: new DateField({\r\n validators: {\r\n requiredDate,\r\n },\r\n }),\r\n});\r\n","import { TextField } from '../fields/textField';\r\nimport { FormGroup } from '../formGroup';\r\nimport { WithOptional } from '../utility';\r\n\r\ntype ConfigProps = WithOptional;\r\n\r\nexport class FirstAndLastNameFormGroup extends FormGroup {\r\n public readonly firstName: TextField;\r\n public readonly lastName: TextField;\r\n\r\n public constructor(config: ConfigProps) {\r\n super(config);\r\n\r\n this.firstName = config.firstName;\r\n this.lastName = config.lastName;\r\n }\r\n}\r\n","import { DateField } from '../fields/dateField';\r\nimport { RadioButtonsField } from '../fields/radioButtonsField';\r\nimport { SelectField } from '../fields/selectField';\r\nimport { TextField } from '../fields/textField';\r\nimport { FormElementConfig } from '../formElement';\r\nimport { FormGroup } from '../formGroup';\r\nimport type { SalutationValueType } from '../shared/salutationValueType';\r\nimport type { TitleValueType } from '../shared/titleValueType';\r\nimport { FirstAndLastNameFormGroup } from './firstAndLastNameFormGroup';\r\n\r\nexport type OperatorFormGroupConfig = FormElementConfig &\r\n Omit;\r\n\r\nexport class OperatorFormGroup extends FormGroup {\r\n public readonly salutation: RadioButtonsField;\r\n public readonly companyName: TextField;\r\n public readonly title: SelectField;\r\n public readonly operatorName: FirstAndLastNameFormGroup;\r\n public readonly contactPersonName: FirstAndLastNameFormGroup;\r\n public readonly birthday: DateField;\r\n\r\n public constructor(config: OperatorFormGroupConfig) {\r\n super(config);\r\n\r\n this.salutation = config.salutation;\r\n this.companyName = config.companyName;\r\n this.title = config.title;\r\n this.operatorName = config.operatorName;\r\n this.contactPersonName = config.contactPersonName;\r\n this.birthday = config.birthday;\r\n }\r\n}\r\n","import { CheckboxField } from '../fields/checkboxField';\r\nimport { RadioButtonsField } from '../fields/radioButtonsField';\r\nimport { SelectField } from '../fields/selectField';\r\nimport { TextField } from '../fields/textField';\r\nimport { OperatorFormListType } from '../formGroups/operatorFormList';\r\nimport { StreetAndHousenumberFormGroup } from '../formGroups/streetAndHousenumberFormGroup';\r\nimport { ZipAndCityFormGroup } from '../formGroups/zipAndCityFormGroup';\r\nimport { FormStep } from '../formStep';\r\nimport type { CountryValueType } from '../shared/countryValueType';\r\nimport { PlantBuilderValueType } from '../shared/plantBuilderValueType';\r\nimport { YesNoValueType } from '../shared/yesNoValueType';\r\nimport { WithOptional } from '../utility';\r\n\r\ntype ConfigProps = WithOptional;\r\n\r\nexport class PlantOperatorFormStep extends FormStep {\r\n public readonly separatePropertyOwner: RadioButtonsField;\r\n public readonly plantBuilder: RadioButtonsField;\r\n public readonly operators: OperatorFormListType;\r\n public readonly country: SelectField;\r\n public readonly usePlantLocation: CheckboxField;\r\n public readonly zipAndCity: ZipAndCityFormGroup;\r\n public readonly streetAndHousenumber: StreetAndHousenumberFormGroup;\r\n public readonly email: TextField;\r\n public readonly emailRepeat: TextField;\r\n public readonly phoneNumber1: TextField;\r\n public readonly phoneNumber2: TextField;\r\n\r\n public constructor(config: ConfigProps) {\r\n super(config);\r\n\r\n this.separatePropertyOwner = config.separatePropertyOwner;\r\n this.plantBuilder = config.plantBuilder;\r\n this.operators = config.operators;\r\n this.country = config.country;\r\n this.usePlantLocation = config.usePlantLocation;\r\n this.zipAndCity = config.zipAndCity;\r\n this.streetAndHousenumber = config.streetAndHousenumber;\r\n this.email = config.email;\r\n this.emailRepeat = config.emailRepeat;\r\n this.phoneNumber1 = config.phoneNumber1;\r\n this.phoneNumber2 = config.phoneNumber2;\r\n }\r\n}\r\n","import moment from 'moment';\r\nimport { maxDate } from './maxDate';\r\nimport { germanDateFormat } from '@/utilities/germanFormats';\r\n\r\n/*\r\n * Determines whether the given value is a date, which is the current date or a past date. Moment js is\r\n used here to parse the string in German format. The moment() function accepts the string and format and\r\n will internally create a Date object. The chained isSameOrBefore function performs the comparison.\r\n https://momentjs.com/docs/#/use-it/\r\n*/\r\n\r\nexport const maxDateNow = maxDate(moment().format(germanDateFormat));\r\n","import { helpers } from 'vuelidate/lib/validators';\r\n\r\nexport const name = helpers.regex(\r\n 'name',\r\n /^[a-zA-ZàáâäãåąčćęèéêëėįìíîïłńòóôöõøùúûüųūÿýżźñçčšžÀÁÂÄÃÅĄĆČĖĘÈÉÊËÌÍÎÏĮŁŃÒÓÔÖÕØÙÚÛÜŲŪŸÝŻŹÑßÇŒÆČŠŽ∂ð ,.'-]+$/u,\r\n);\r\n","import { helpers, ValidationRule } from 'vuelidate/lib/validators';\r\nimport { get as _get } from 'lodash';\r\nimport { SelectField } from '@/types/forms/fields/selectField';\r\nimport { CountryValueType } from '@/types/forms/shared/countryValueType';\r\nimport { Forms } from '@/types/forms/forms';\r\n\r\ninterface MockFormModel {\r\n model: Forms;\r\n}\r\n\r\nexport function zip(modelCountryPath: string): ValidationRule {\r\n return helpers.withParams({ type: 'modelCountryPath' }, function (\r\n this: MockFormModel,\r\n value: number | string,\r\n ): boolean {\r\n let localModelCountryPath = modelCountryPath;\r\n if (!helpers.req(value)) {\r\n return true;\r\n }\r\n\r\n const normalizedValue = `${value}`;\r\n\r\n if (localModelCountryPath.indexOf('[*]') >= 0) {\r\n // Path contains index. That means we have a form list, probably the propertyOwner case.\r\n // So now we have to determine the correct index, by matching the zip:\r\n const matches = /(.+\\.(.+))\\[\\*\\]\\..+/g.exec(localModelCountryPath);\r\n if (matches?.length == 3) {\r\n // const fullPath = matches[0];\r\n const subPath = matches[1];\r\n const listElementName = matches[2];\r\n const listElements = _get(this.model, subPath);\r\n if (listElements) {\r\n for (const listElementIndex in listElements) {\r\n const listElement = listElements[listElementIndex];\r\n const listElementZip =\r\n listElement?.zipAndCity?.zip?.value;\r\n if (listElementZip == normalizedValue) {\r\n // Found the correct index\r\n // (There is an edge-case, where zips in both owners are identical, but country differs.\r\n // There is no solution for that. Shouldn't be an actual issue, though.)\r\n localModelCountryPath = localModelCountryPath.replace(\r\n `${listElementName}[*]`,\r\n `${listElementName}[${listElementIndex}]`,\r\n );\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n const country = (_get(this.model, localModelCountryPath) as SelectField<\r\n CountryValueType\r\n >)?.value;\r\n let regex = /.*/g;\r\n\r\n switch (country) {\r\n case 'deu' /* Deutschland */:\r\n case 'fra' /* Frankreich */:\r\n regex = /^(\\d{5})$/g;\r\n break;\r\n case 'aut' /* Österreich */:\r\n case 'dnk' /* Dänemark */:\r\n case 'che' /* Schweiz */:\r\n regex = /^(\\d{4})$/g;\r\n break;\r\n case 'nld' /* Niederlande */:\r\n regex = /^(\\d{4}\\s?[a-zA-Z]{2})$/g;\r\n break;\r\n case 'pol' /* Polen */:\r\n regex = /^(\\d{2}-\\d{3})$/g;\r\n break;\r\n }\r\n\r\n const result = new RegExp(regex).test(normalizedValue);\r\n return result;\r\n });\r\n}\r\n","import { ValidationRule } from 'vuelidate/lib/validators';\r\n\r\ninterface EmailValue {\r\n email: string;\r\n}\r\n\r\nexport const emailRepeatMustBeIdentical = ((\r\n value: string,\r\n vm: EmailValue,\r\n): boolean => {\r\n return value === vm.email;\r\n}) as ValidationRule;\r\n","/*!\n * @license\n * This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n/**\n * Validation, extraction and creation of IBAN, BBAN, BIC/SWIFT numbers plus some other helpful stuff\n * @packageDocumentation\n * @author Saša Jovanić\n * @module ibantools\n * @version 3.3.1\n * @license MPL-2.0\n * @preferred\n */\n'use strict';\n/**\n * Validate IBAN\n * ```\n * // returns true\n * ibantools.isValidIBAN(\"NL91ABNA0517164300\");\n * ```\n * ```\n * // returns false\n * ibantools.isValidIBAN(\"NL92ABNA0517164300\");\n * ```\nv */\nexport function isValidIBAN(iban) {\n if (iban !== undefined && iban !== null) {\n var reg = new RegExp('^[0-9]{2}$', '');\n var spec = countrySpecs[iban.slice(0, 2)];\n if (spec !== undefined &&\n spec.bban_regexp &&\n spec.bban_regexp !== null &&\n spec.chars &&\n spec.chars === iban.length &&\n reg.test(iban.slice(2, 4)) &&\n checkFormatBBAN(iban.slice(4), spec.bban_regexp) &&\n isValidIBANChecksum(iban)) {\n return true;\n }\n }\n return false;\n}\n/**\n * IBAM validation errors\n */\nexport var ValidationErrorsIBAN;\n(function (ValidationErrorsIBAN) {\n ValidationErrorsIBAN[ValidationErrorsIBAN[\"NoIBANProvided\"] = 0] = \"NoIBANProvided\";\n ValidationErrorsIBAN[ValidationErrorsIBAN[\"NoIBANCountry\"] = 1] = \"NoIBANCountry\";\n ValidationErrorsIBAN[ValidationErrorsIBAN[\"WrongBBANLength\"] = 2] = \"WrongBBANLength\";\n ValidationErrorsIBAN[ValidationErrorsIBAN[\"WrongBBANFormat\"] = 3] = \"WrongBBANFormat\";\n ValidationErrorsIBAN[ValidationErrorsIBAN[\"ChecksumNotNumber\"] = 4] = \"ChecksumNotNumber\";\n ValidationErrorsIBAN[ValidationErrorsIBAN[\"WrongIBANChecksum\"] = 5] = \"WrongIBANChecksum\";\n})(ValidationErrorsIBAN || (ValidationErrorsIBAN = {}));\n/**\n * validateIBAN\n * ```\n * // returns {errorCodes: [], valid: true}\n * ibantools.validateIBAN(\"NL91 ABNA 0417 1643 00\");\n * ```\n */\nexport function validateIBAN(iban) {\n var result = { errorCodes: [], valid: true };\n if (iban !== undefined && iban !== null && iban !== '') {\n var spec = countrySpecs[iban.slice(0, 2)];\n if (!spec || !(spec.bban_regexp || spec.chars)) {\n result.valid = false;\n result.errorCodes.push(ValidationErrorsIBAN.NoIBANCountry);\n }\n if (spec && spec.chars && spec.chars !== iban.length) {\n result.valid = false;\n result.errorCodes.push(ValidationErrorsIBAN.WrongBBANLength);\n }\n if (spec && spec.bban_regexp && !checkFormatBBAN(iban.slice(4), spec.bban_regexp)) {\n result.valid = false;\n result.errorCodes.push(ValidationErrorsIBAN.WrongBBANFormat);\n }\n var reg = new RegExp('^[0-9]{2}$', '');\n if (!reg.test(iban.slice(2, 4))) {\n result.valid = false;\n result.errorCodes.push(ValidationErrorsIBAN.ChecksumNotNumber);\n }\n if (!isValidIBANChecksum(iban)) {\n result.valid = false;\n result.errorCodes.push(ValidationErrorsIBAN.WrongIBANChecksum);\n }\n }\n else {\n result.valid = false;\n result.errorCodes.push(ValidationErrorsIBAN.NoIBANProvided);\n }\n return result;\n}\n/**\n * Validate BBAN\n *\n * ```\n * // returns true\n * ibantools.isValidBBAN(\"ABNA0517164300\", \"NL\");\n * ```\n * ```\n * // returns false\n * ibantools.isValidBBAN(\"A7NA0517164300\", \"NL\");\n * ```\n */\nexport function isValidBBAN(bban, countryCode) {\n if (bban !== undefined && bban !== null && countryCode !== undefined && countryCode !== null) {\n var spec = countrySpecs[countryCode];\n if (spec !== undefined &&\n spec !== null &&\n spec.bban_regexp &&\n spec.bban_regexp !== null &&\n spec.chars &&\n spec.chars !== null &&\n spec.chars - 4 === bban.length &&\n checkFormatBBAN(bban, spec.bban_regexp)) {\n return true;\n }\n }\n return false;\n}\n/**\n * Validate if country code is from a SEPA country\n * ```\n * // returns true\n * ibantools.isSEPACountry(\"NL\");\n * ```\n * ```\n * // returns false\n * ibantools.isSEPACountry(\"PK\");\n * ```\n */\nexport function isSEPACountry(countryCode) {\n if (countryCode !== undefined && countryCode !== null) {\n var spec = countrySpecs[countryCode];\n if (spec !== undefined) {\n return spec.SEPA ? spec.SEPA : false;\n }\n }\n return false;\n}\n/**\n * composeIBAN\n *\n * ```\n * // returns NL91ABNA0417164300\n * ibantools.composeIBAN({ countryCode: \"NL\", bban: \"ABNA0417164300\" });\n * ```\n */\nexport function composeIBAN(params) {\n var formated_bban = electronicFormatIBAN(params.bban) || '';\n if (params.countryCode === null || params.countryCode === undefined) {\n return null;\n }\n var spec = countrySpecs[params.countryCode];\n if (formated_bban !== '' &&\n spec !== undefined &&\n spec.chars &&\n spec.chars !== null &&\n spec.chars === formated_bban.length + 4 &&\n spec.bban_regexp &&\n spec.bban_regexp !== null &&\n checkFormatBBAN(formated_bban, spec.bban_regexp)) {\n var checksom = mod9710(params.countryCode + '00' + formated_bban);\n return params.countryCode + ('0' + (98 - checksom)).slice(-2) + formated_bban;\n }\n return null;\n}\n/**\n * extractIBAN\n * ```\n * // returns {iban: \"NL91ABNA0417164300\", bban: \"ABNA0417164300\", countryCode: \"NL\", valid: true}\n * ibantools.extractIBAN(\"NL91 ABNA 0417 1643 00\");\n * ```\n */\nexport function extractIBAN(iban) {\n var result = {};\n result.iban = iban;\n if (isValidIBAN(iban)) {\n result.bban = iban.slice(4);\n result.countryCode = iban.slice(0, 2);\n result.valid = true;\n }\n else {\n result.valid = false;\n }\n return result;\n}\n/**\n * Check BBAN format\n *\n * @ignore\n */\nfunction checkFormatBBAN(bban, bformat) {\n var reg = new RegExp(bformat, '');\n return reg.test(bban);\n}\n/**\n * Get IBAN in electronic format (no spaces)\n * IBAN validation is not performed.\n * When non-string value for IBAN is provided, returns null.\n * ```\n * // returns \"NL91ABNA0417164300\"\n * ibantools.electronicFormatIBAN(\"NL91 ABNA 0417 1643 00\");\n * ```\n */\nexport function electronicFormatIBAN(iban) {\n if (typeof iban !== 'string') {\n return null;\n }\n return iban.replace(/[-\\ ]/g, '').toUpperCase();\n}\n/**\n * Get IBAN in friendly format (separated after every 4 characters)\n * IBAN validation is not performed.\n * When non-string value for IBAN is provided, returns null.\n * ```\n * // returns \"NL91 ABNA 0417 1643 00\"\n * ibantools.friendlyFormatIBAN(\"NL91ABNA0417164300\");\n * ```\n * ```\n * // returns \"NL91-ABNA-0417-1643-00\"\n * ibantools.friendlyFormatIBAN(\"NL91ABNA0417164300\",\"-\");\n * ```\n */\nexport function friendlyFormatIBAN(iban, separator) {\n if (typeof iban !== 'string') {\n return null;\n }\n if (separator === undefined || separator === null) {\n separator = ' ';\n }\n var electronic_iban = electronicFormatIBAN(iban);\n /* istanbul ignore if */\n if (electronic_iban === null) {\n return null;\n }\n return electronic_iban.replace(/(.{4})(?!$)/g, '$1' + separator);\n}\n/**\n * Calculate checksum of IBAN and compares it with checksum provided in IBAN Registry\n *\n * @ignore\n */\nfunction isValidIBANChecksum(iban) {\n var providedChecksum = parseInt(iban.slice(2, 4), 10);\n var temp = iban.slice(3) + iban.slice(0, 2) + '00';\n var validationString = '';\n for (var n = 1; n < temp.length; n++) {\n var c = temp.charCodeAt(n);\n if (c >= 65) {\n validationString += (c - 55).toString();\n }\n else {\n validationString += temp[n];\n }\n }\n while (validationString.length > 2) {\n var part = validationString.slice(0, 6);\n validationString = (parseInt(part, 10) % 97).toString() + validationString.slice(part.length);\n }\n var rest = parseInt(validationString, 10) % 97;\n return 98 - rest === providedChecksum;\n}\n/**\n * MOD-97-10\n *\n * @ignore\n */\nfunction mod9710(iban) {\n iban = iban.slice(3) + iban.slice(0, 4);\n var validationString = '';\n for (var n = 1; n < iban.length; n++) {\n var c = iban.charCodeAt(n);\n if (c >= 65) {\n validationString += (c - 55).toString();\n }\n else {\n validationString += iban[n];\n }\n }\n while (validationString.length > 2) {\n var part = validationString.slice(0, 6);\n validationString = (parseInt(part, 10) % 97).toString() + validationString.slice(part.length);\n }\n return parseInt(validationString, 10) % 97;\n}\n/**\n * Returns specifications for all countries, even those who are not\n * members of IBAN registry. `IBANRegistry` field indicates if country\n * is member of not.\n *\n * ```\n * // Validating IBAN form field after user selects his country\n * // \n * $(\"#countries\").select(function() {\n * // Find country\n * let country = ibantools.getCountrySpecifications()[$(this).val()];\n * // Add country code letters to IBAN form field\n * $(\"input#iban\").value($(this).val());\n * // Add New value to \"pattern\" attribute to #iban input text field\n * $(\"input#iban\").attr(\"pattern\", $(this).val() + \"[0-9]{2}\" + country.bban_regexp.slice(1).replace(\"$\",\"\"));\n * });\n * ```\n */\nexport function getCountrySpecifications() {\n var countyMap = {};\n for (var countyCode in countrySpecs) {\n var county = countrySpecs[countyCode];\n countyMap[countyCode] = {\n chars: county.chars ? county.chars : null,\n bban_regexp: county.bban_regexp ? county.bban_regexp : null,\n IBANRegistry: county.IBANRegistry ? county.IBANRegistry : false,\n SEPA: county.SEPA ? county.SEPA : false,\n };\n }\n return countyMap;\n}\n/**\n * Validate BIC/SWIFT\n *\n * ```\n * // returns true\n * ibantools.isValidBIC(\"ABNANL2A\");\n *\n * // returns true\n * ibantools.isValidBIC(\"NEDSZAJJXXX\");\n *\n * // returns false\n * ibantools.isValidBIC(\"ABN4NL2A\");\n *\n * // returns false\n * ibantools.isValidBIC(\"ABNA NL 2A\");\n * ```\n */\nexport function isValidBIC(bic) {\n if (!bic) {\n return false;\n }\n var reg = new RegExp('^[a-zA-Z]{6}[a-zA-Z0-9]{2}([a-zA-Z0-9]{3})?$', '');\n var spec = countrySpecs[bic.toUpperCase().slice(4, 6)];\n return reg.test(bic) && spec !== undefined;\n}\n/**\n * BIC validation errors\n */\nexport var ValidationErrorsBIC;\n(function (ValidationErrorsBIC) {\n ValidationErrorsBIC[ValidationErrorsBIC[\"NoBICProvided\"] = 0] = \"NoBICProvided\";\n ValidationErrorsBIC[ValidationErrorsBIC[\"NoBICCountry\"] = 1] = \"NoBICCountry\";\n ValidationErrorsBIC[ValidationErrorsBIC[\"WrongBICFormat\"] = 2] = \"WrongBICFormat\";\n})(ValidationErrorsBIC || (ValidationErrorsBIC = {}));\n/**\n * validateBIC\n * ```\n * // returns {errorCodes: [], valid: true}\n * ibantools.validateBIC(\"NEDSZAJJXXX\");\n * ```\n */\nexport function validateBIC(bic) {\n var result = { errorCodes: [], valid: true };\n if (bic !== undefined && bic !== null && bic !== '') {\n var spec = countrySpecs[bic.toUpperCase().slice(4, 6)];\n if (spec === undefined) {\n result.valid = false;\n result.errorCodes.push(ValidationErrorsBIC.NoBICCountry);\n }\n else {\n var reg = new RegExp('^[a-zA-Z]{6}[a-zA-Z0-9]{2}([a-zA-Z0-9]{3})?$', '');\n if (!reg.test(bic)) {\n result.valid = false;\n result.errorCodes.push(ValidationErrorsBIC.WrongBICFormat);\n }\n }\n }\n else {\n result.valid = false;\n result.errorCodes.push(ValidationErrorsBIC.NoBICProvided);\n }\n return result;\n}\n/**\n * extractBIC\n * ```\n * // returns {bankCode: \"ABNA\", countryCode: \"NL\", locationCode: \"2A\", branchCode: null, testBIC: flase, valid: true}\n * ibantools.extractBIC(\"ABNANL2A\");\n * ```\n */\nexport function extractBIC(inputBic) {\n var result = {};\n var bic = inputBic.toUpperCase();\n if (isValidBIC(bic)) {\n result.bankCode = bic.slice(0, 4);\n result.countryCode = bic.slice(4, 6);\n result.locationCode = bic.slice(6, 8);\n result.testBIC = result.locationCode[1] === '0' ? true : false;\n result.branchCode = bic.length > 8 ? bic.slice(8) : '619';\n result.valid = true;\n }\n else {\n result.valid = false;\n }\n return result;\n}\n/**\n * Country specifications\n */\nexport var countrySpecs = {\n AD: {\n chars: 24,\n bban_regexp: '^[0-9]{8}[A-Z0-9]{12}$',\n IBANRegistry: true,\n SEPA: true,\n },\n AE: {\n chars: 23,\n bban_regexp: '^[0-9]{3}[0-9]{16}$',\n IBANRegistry: true,\n },\n AF: {},\n AG: {},\n AI: {},\n AL: {\n chars: 28,\n bban_regexp: '^[0-9]{8}[A-Z0-9]{16}$',\n IBANRegistry: true,\n },\n AM: {},\n AO: {\n chars: 25,\n bban_regexp: '^[0-9]{21}$',\n },\n AQ: {},\n AR: {},\n AS: {},\n AT: { chars: 20, bban_regexp: '^[0-9]{16}$', IBANRegistry: true, SEPA: true },\n AU: {},\n AW: {},\n AX: {\n chars: 18,\n bban_regexp: '^[0-9]{14}$',\n IBANRegistry: true,\n },\n AZ: {\n chars: 28,\n bban_regexp: '^[A-Z]{4}[A-Z0-9]{20}$',\n IBANRegistry: true,\n },\n BA: {\n chars: 20,\n bban_regexp: '^[0-9]{16}$',\n IBANRegistry: true,\n },\n BB: {},\n BD: {},\n BE: { chars: 16, bban_regexp: '^[0-9]{12}$', IBANRegistry: true, SEPA: true },\n BF: {\n chars: 28,\n bban_regexp: '^[A-Z0-9]{2}[0-9]{22}$',\n },\n BG: {\n chars: 22,\n bban_regexp: '^[A-Z]{4}[0-9]{6}[A-Z0-9]{8}$',\n IBANRegistry: true,\n SEPA: true,\n },\n BH: {\n chars: 22,\n bban_regexp: '^[A-Z]{4}[A-Z0-9]{14}$',\n IBANRegistry: true,\n },\n BI: {\n chars: 16,\n bban_regexp: '^[0-9]{12}$',\n },\n BJ: {\n chars: 28,\n bban_regexp: '^[A-Z0-9]{2}[0-9]{22}$',\n },\n BL: {\n chars: 27,\n bban_regexp: '^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$',\n IBANRegistry: true,\n },\n BM: {},\n BN: {},\n BO: {},\n BQ: {},\n BR: {\n chars: 29,\n bban_regexp: '^[0-9]{23}[A-Z]{1}[A-Z0-9]{1}$',\n IBANRegistry: true,\n },\n BS: {},\n BT: {},\n BV: {},\n BW: {},\n BY: {\n chars: 28,\n bban_regexp: '^[A-Z]{4}[0-9]{4}[A-Z0-9]{16}$',\n IBANRegistry: true,\n },\n BZ: {},\n CA: {},\n CC: {},\n CD: {},\n CF: {\n chars: 27,\n bban_regexp: '^[0-9]{23}$',\n },\n CG: {\n chars: 27,\n bban_regexp: '^[0-9]{23}$',\n },\n CH: {\n chars: 21,\n bban_regexp: '^[0-9]{5}[A-Z0-9]{12}$',\n IBANRegistry: true,\n SEPA: true,\n },\n CI: {\n chars: 28,\n bban_regexp: '^[A-Z]{1}[0-9]{23}$',\n },\n CK: {},\n CL: {},\n CM: {\n chars: 27,\n bban_regexp: '^[0-9]{23}$',\n },\n CN: {},\n CO: {},\n CR: {\n chars: 22,\n bban_regexp: '^[0-9]{18}$',\n IBANRegistry: true,\n },\n CU: {},\n CV: { chars: 25, bban_regexp: '^[0-9]{21}$' },\n CW: {},\n CX: {},\n CY: {\n chars: 28,\n bban_regexp: '^[0-9]{8}[A-Z0-9]{16}$',\n IBANRegistry: true,\n SEPA: true,\n },\n CZ: { chars: 24, bban_regexp: '^[0-9]{20}$', IBANRegistry: true, SEPA: true },\n DE: { chars: 22, bban_regexp: '^[0-9]{18}$', IBANRegistry: true, SEPA: true },\n DJ: {\n chars: 27,\n bban_regexp: '^[0-9]{23}$',\n },\n DK: { chars: 18, bban_regexp: '^[0-9]{14}$', IBANRegistry: true, SEPA: true },\n DM: {},\n DO: {\n chars: 28,\n bban_regexp: '^[A-Z]{4}[0-9]{20}$',\n IBANRegistry: true,\n },\n DZ: {\n chars: 26,\n bban_regexp: '^[0-9]{22}$',\n },\n EC: {},\n EE: { chars: 20, bban_regexp: '^[0-9]{16}$', IBANRegistry: true, SEPA: true },\n EG: { chars: 29, bban_regexp: '^[0-9]{25}', IBANRegistry: true },\n EH: {},\n ER: {},\n ES: { chars: 24, bban_regexp: '^[0-9]{20}$', IBANRegistry: true, SEPA: true },\n ET: {},\n FI: { chars: 18, bban_regexp: '^[0-9]{14}$', IBANRegistry: true, SEPA: true },\n FJ: {},\n FK: {},\n FM: {},\n FO: { chars: 18, bban_regexp: '^[0-9]{14}$', IBANRegistry: true },\n FR: {\n chars: 27,\n bban_regexp: '^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$',\n IBANRegistry: true,\n SEPA: true,\n },\n GA: {\n chars: 27,\n bban_regexp: '^[0-9]{23}$',\n },\n GB: {\n chars: 22,\n bban_regexp: '^[A-Z]{4}[0-9]{14}$',\n IBANRegistry: true,\n SEPA: true,\n },\n GD: {},\n GE: {\n chars: 22,\n bban_regexp: '^[A-Z0-9]{2}[0-9]{16}$',\n IBANRegistry: true,\n },\n GF: {\n chars: 27,\n bban_regexp: '^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$',\n IBANRegistry: true,\n },\n GG: {},\n GH: {},\n GI: {\n chars: 23,\n bban_regexp: '^[A-Z]{4}[A-Z0-9]{15}$',\n IBANRegistry: true,\n SEPA: true,\n },\n GL: { chars: 18, bban_regexp: '^[0-9]{14}$', IBANRegistry: true },\n GM: {},\n GN: {},\n GP: {\n chars: 27,\n bban_regexp: '^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$',\n IBANRegistry: true,\n },\n GQ: {\n chars: 27,\n bban_regexp: '^[0-9]{23}$',\n },\n GR: {\n chars: 27,\n bban_regexp: '^[0-9]{7}[A-Z0-9]{16}$',\n IBANRegistry: true,\n SEPA: true,\n },\n GS: {},\n GT: {\n chars: 28,\n bban_regexp: '^[A-Z0-9]{24}$',\n IBANRegistry: true,\n },\n GU: {},\n GW: {\n chars: 25,\n bban_regexp: '^[A-Z]{2}[0-9]{19}$',\n },\n GY: {},\n HK: {},\n HM: {},\n HN: {\n chars: 28,\n bban_regexp: '^[A-Z]{4}[0-9]{20}$',\n },\n HR: { chars: 21, bban_regexp: '^[0-9]{17}$', IBANRegistry: true, SEPA: true },\n HT: {},\n HU: { chars: 28, bban_regexp: '^[0-9]{24}$', IBANRegistry: true, SEPA: true },\n ID: {},\n IE: {\n chars: 22,\n bban_regexp: '^[A-Z0-9]{4}[0-9]{14}$',\n IBANRegistry: true,\n SEPA: true,\n },\n IL: {\n chars: 23,\n bban_regexp: '^[0-9]{19}$',\n IBANRegistry: true,\n },\n IM: {},\n IN: {},\n IO: {},\n IQ: {\n chars: 23,\n bban_regexp: '^[A-Z]{4}[0-9]{15}$',\n IBANRegistry: true,\n },\n IR: {\n chars: 26,\n bban_regexp: '^[0-9]{22}$',\n },\n IS: { chars: 26, bban_regexp: '^[0-9]{22}$', IBANRegistry: true, SEPA: true },\n IT: {\n chars: 27,\n bban_regexp: '^[A-Z]{1}[0-9]{10}[A-Z0-9]{12}$',\n IBANRegistry: true,\n SEPA: true,\n },\n JE: {},\n JM: {},\n JO: {\n chars: 30,\n bban_regexp: '^[A-Z]{4}[0-9]{4}[A-Z0-9]{18}$',\n IBANRegistry: true,\n },\n JP: {},\n KE: {},\n KG: {},\n KH: {},\n KI: {},\n KM: {\n chars: 27,\n bban_regexp: '^[0-9]{23}$',\n },\n KN: {},\n KP: {},\n KR: {},\n KW: {\n chars: 30,\n bban_regexp: '^[A-Z]{4}[A-Z0-9]{22}$',\n IBANRegistry: true,\n },\n KY: {},\n KZ: {\n chars: 20,\n bban_regexp: '^[0-9]{3}[A-Z0-9]{13}$',\n IBANRegistry: true,\n },\n LA: {},\n LB: {\n chars: 28,\n bban_regexp: '^[0-9]{4}[A-Z0-9]{20}$',\n IBANRegistry: true,\n },\n LC: {\n chars: 32,\n bban_regexp: '^[A-Z]{4}[A-Z0-9]{24}$',\n IBANRegistry: true,\n },\n LI: {\n chars: 21,\n bban_regexp: '^[0-9]{5}[A-Z0-9]{12}$',\n IBANRegistry: true,\n SEPA: true,\n },\n LK: {},\n LR: {},\n LS: {},\n LT: { chars: 20, bban_regexp: '^[0-9]{16}$', IBANRegistry: true, SEPA: true },\n LU: {\n chars: 20,\n bban_regexp: '^[0-9]{3}[A-Z0-9]{13}$',\n IBANRegistry: true,\n SEPA: true,\n },\n LV: {\n chars: 21,\n bban_regexp: '^[A-Z]{4}[A-Z0-9]{13}$',\n IBANRegistry: true,\n SEPA: true,\n },\n LY: {\n chars: 25,\n bban_regexp: '^[0-9]{21}$',\n IBANRegistry: true,\n },\n MA: {\n chars: 28,\n bban_regexp: '^[0-9]{24}$',\n },\n MC: {\n chars: 27,\n bban_regexp: '^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$',\n IBANRegistry: true,\n SEPA: true,\n },\n MD: {\n chars: 24,\n bban_regexp: '^[A-Z0-9]{2}[A-Z0-9]{18}$',\n IBANRegistry: true,\n },\n ME: {\n chars: 22,\n bban_regexp: '^[0-9]{18}$',\n IBANRegistry: true,\n },\n MF: {\n chars: 27,\n bban_regexp: '^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$',\n IBANRegistry: true,\n },\n MG: {\n chars: 27,\n bban_regexp: '^[0-9]{23}$',\n },\n MH: {},\n MK: {\n chars: 19,\n bban_regexp: '^[0-9]{3}[A-Z0-9]{10}[0-9]{2}$',\n IBANRegistry: true,\n },\n ML: {\n chars: 28,\n bban_regexp: '^[A-Z0-9]{2}[0-9]{22}$',\n },\n MM: {},\n MN: {},\n MO: {},\n MP: {},\n MQ: {\n chars: 27,\n bban_regexp: '^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$',\n IBANRegistry: true,\n },\n MR: {\n chars: 27,\n bban_regexp: '^[0-9]{23}$',\n IBANRegistry: true,\n },\n MS: {},\n MT: {\n chars: 31,\n bban_regexp: '^[A-Z]{4}[0-9]{5}[A-Z0-9]{18}$',\n IBANRegistry: true,\n SEPA: true,\n },\n MU: {\n chars: 30,\n bban_regexp: '^[A-Z]{4}[0-9]{19}[A-Z]{3}$',\n IBANRegistry: true,\n },\n MV: {},\n MW: {},\n MX: {},\n MY: {},\n MZ: {\n chars: 25,\n bban_regexp: '^[0-9]{21}$',\n },\n NA: {},\n NC: {\n chars: 27,\n bban_regexp: '^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$',\n IBANRegistry: true,\n },\n NE: {\n chars: 28,\n bban_regexp: '^[A-Z]{2}[0-9]{22}$',\n },\n NF: {},\n NG: {},\n NI: {\n chars: 32,\n bban_regexp: '^[A-Z]{4}[0-9]{24}$',\n },\n NL: {\n chars: 18,\n bban_regexp: '^[A-Z]{4}[0-9]{10}$',\n IBANRegistry: true,\n SEPA: true,\n },\n NO: { chars: 15, bban_regexp: '^[0-9]{11}$', IBANRegistry: true, SEPA: true },\n NP: {},\n NR: {},\n NU: {},\n NZ: {},\n OM: {},\n PA: {},\n PE: {},\n PF: {\n chars: 27,\n bban_regexp: '^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$',\n IBANRegistry: true,\n },\n PG: {},\n PH: {},\n PK: {\n chars: 24,\n bban_regexp: '^[A-Z0-9]{4}[0-9]{16}$',\n IBANRegistry: true,\n },\n PL: { chars: 28, bban_regexp: '^[0-9]{24}$', IBANRegistry: true, SEPA: true },\n PM: {\n chars: 27,\n bban_regexp: '^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$',\n IBANRegistry: true,\n },\n PN: {},\n PR: {},\n PS: {\n chars: 29,\n bban_regexp: '^[A-Z0-9]{4}[0-9]{21}$',\n IBANRegistry: true,\n },\n PT: { chars: 25, bban_regexp: '^[0-9]{21}$', IBANRegistry: true, SEPA: true },\n PW: {},\n PY: {},\n QA: {\n chars: 29,\n bban_regexp: '^[A-Z]{4}[A-Z0-9]{21}$',\n IBANRegistry: true,\n },\n RE: {\n chars: 27,\n bban_regexp: '^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$',\n IBANRegistry: true,\n },\n RO: {\n chars: 24,\n bban_regexp: '^[A-Z]{4}[A-Z0-9]{16}$',\n IBANRegistry: true,\n SEPA: true,\n },\n RS: {\n chars: 22,\n bban_regexp: '^[0-9]{18}$',\n IBANRegistry: true,\n },\n RU: {},\n RW: {},\n SA: {\n chars: 24,\n bban_regexp: '^[0-9]{2}[A-Z0-9]{18}$',\n IBANRegistry: true,\n },\n SB: {},\n SC: {\n chars: 31,\n bban_regexp: '^[A-Z]{4}[0-9]{20}[A-Z]{3}$',\n IBANRegistry: true,\n },\n SD: {},\n SE: { chars: 24, bban_regexp: '^[0-9]{20}$', IBANRegistry: true, SEPA: true },\n SG: {},\n SH: {},\n SI: { chars: 19, bban_regexp: '^[0-9]{15}$', IBANRegistry: true, SEPA: true },\n SJ: {},\n SK: { chars: 24, bban_regexp: '^[0-9]{20}$', IBANRegistry: true, SEPA: true },\n SL: {},\n SM: {\n chars: 27,\n bban_regexp: '^[A-Z]{1}[0-9]{10}[A-Z0-9]{12}$',\n IBANRegistry: true,\n SEPA: true,\n },\n SN: {\n chars: 28,\n bban_regexp: '^[A-Z]{1}[0-9]{23}$',\n },\n SO: {},\n SR: {},\n SS: {},\n ST: {\n chars: 25,\n bban_regexp: '^[0-9]{21}$',\n IBANRegistry: true,\n },\n SV: {\n chars: 28,\n bban_regexp: '^[A-Z]{4}[0-9]{20}$',\n IBANRegistry: true,\n },\n SX: {},\n SY: {},\n SZ: {},\n TC: {},\n TD: {\n chars: 27,\n bban_regexp: '^[0-9]{23}$',\n },\n TF: {\n chars: 27,\n bban_regexp: '^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$',\n IBANRegistry: true,\n },\n TG: {\n chars: 28,\n bban_regexp: '^[A-Z]{2}[0-9]{22}$',\n },\n TH: {},\n TJ: {},\n TK: {},\n TL: {\n chars: 23,\n bban_regexp: '^[0-9]{19}$',\n IBANRegistry: true,\n },\n TM: {},\n TN: {\n chars: 24,\n bban_regexp: '^[0-9]{20}$',\n IBANRegistry: true,\n },\n TO: {},\n TR: {\n chars: 26,\n bban_regexp: '^[0-9]{5}[A-Z0-9]{17}$',\n IBANRegistry: true,\n },\n TT: {},\n TV: {},\n TW: {},\n TZ: {},\n UA: {\n chars: 29,\n bban_regexp: '^[0-9]{6}[A-Z0-9]{19}$',\n IBANRegistry: true,\n },\n UG: {},\n UM: {},\n US: {},\n UY: {},\n UZ: {},\n VA: { chars: 22, bban_regexp: '^[0-9]{18}', IBANRegistry: true },\n VC: {},\n VE: {},\n VG: {\n chars: 24,\n bban_regexp: '^[A-Z0-9]{4}[0-9]{16}$',\n IBANRegistry: true,\n },\n VI: {},\n VN: {},\n VU: {},\n WF: {\n chars: 27,\n bban_regexp: '^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$',\n IBANRegistry: true,\n },\n WS: {},\n XK: {\n chars: 20,\n bban_regexp: '^[0-9]{16}$',\n IBANRegistry: true,\n },\n YE: {},\n YT: {\n chars: 27,\n bban_regexp: '^[0-9]{10}[A-Z0-9]{11}[0-9]{2}$',\n IBANRegistry: true,\n },\n ZA: {},\n ZM: {},\n ZW: {},\n};\n","import { DateField } from '@/types/forms/fields/dateField';\r\nimport { FormList } from '@/types/forms/fields/formList';\r\nimport { RadioButtonsField } from '@/types/forms/fields/radioButtonsField';\r\nimport { SelectField } from '@/types/forms/fields/selectField';\r\nimport { TextField } from '@/types/forms/fields/textField';\r\nimport { FirstAndLastNameFormGroup } from '@/types/forms/formGroups/firstAndLastNameFormGroup';\r\nimport { OperatorFormGroup } from '@/types/forms/formGroups/operatorFormGroup';\r\nimport { StreetAndHousenumberFormGroup } from '@/types/forms/formGroups/streetAndHousenumberFormGroup';\r\nimport { ZipAndCityFormGroup } from '@/types/forms/formGroups/zipAndCityFormGroup';\r\nimport { FormOption } from '@/types/forms/formOption';\r\nimport { PlantOperatorFormStep } from '@/types/forms/formSteps/plantOperatorFormStep';\r\nimport { maxDateNow } from '@/validators/maxDateNow';\r\nimport { name } from '@/validators/name';\r\nimport { houseNumber } from '@/validators/houseNumber';\r\nimport { positiveInteger } from '@/validators/positiveInteger';\r\nimport { email, maxLength, required } from 'vuelidate/lib/validators';\r\nimport { requiredDate } from '@/validators/requiredDate';\r\nimport { CheckboxField } from '@/types/forms/fields/checkboxField';\r\nimport { zip } from '@/validators/zip';\r\nimport { emailRepeatMustBeIdentical } from '@/validators/emailRepeatMustBeIdentical';\r\n\r\nexport const plantOperatorFormStep = new PlantOperatorFormStep({\r\n separatePropertyOwner: new RadioButtonsField({\r\n value: 'no',\r\n options: [\r\n new FormOption({ key: 'no' }),\r\n new FormOption({ key: 'yes' }),\r\n ],\r\n validators: {\r\n required,\r\n },\r\n }),\r\n plantBuilder: new RadioButtonsField({\r\n value: 'operator',\r\n options: [\r\n new FormOption({ key: 'operator' }),\r\n new FormOption({ key: 'contractor' }),\r\n ],\r\n validators: {\r\n required,\r\n },\r\n }),\r\n operators: new FormList(OperatorFormGroup, {\r\n initializeItems: 1,\r\n minItemCount: 1,\r\n maxItemCount: 2,\r\n salutation: new RadioButtonsField({\r\n value: 'mr',\r\n options: [\r\n new FormOption({ key: 'mr' }),\r\n new FormOption({ key: 'mrs' }),\r\n new FormOption({ key: 'company' }),\r\n ],\r\n validators: {\r\n required,\r\n },\r\n }),\r\n companyName: new TextField({\r\n validators: {\r\n required,\r\n },\r\n }),\r\n title: new SelectField({\r\n value: 'untitled',\r\n options: [\r\n new FormOption({ key: 'untitled' }),\r\n new FormOption({ key: 'dr' }),\r\n new FormOption({ key: 'prof' }),\r\n new FormOption({ key: 'profDr' }),\r\n ],\r\n }),\r\n operatorName: new FirstAndLastNameFormGroup({\r\n firstName: new TextField({\r\n validators: {\r\n required,\r\n name,\r\n },\r\n }),\r\n lastName: new TextField({\r\n validators: {\r\n required,\r\n name,\r\n },\r\n }),\r\n }),\r\n contactPersonName: new FirstAndLastNameFormGroup({\r\n firstName: new TextField({\r\n validators: {\r\n required,\r\n name,\r\n },\r\n }),\r\n lastName: new TextField({\r\n validators: {\r\n required,\r\n name,\r\n },\r\n }),\r\n }),\r\n birthday: new DateField({\r\n validators: {\r\n requiredDate,\r\n maxDateNow,\r\n },\r\n }),\r\n }),\r\n country: new SelectField({\r\n value: 'deu',\r\n options: [\r\n new FormOption({ key: 'deu' }),\r\n new FormOption({ key: 'aut' }),\r\n new FormOption({ key: 'dnk' }),\r\n new FormOption({ key: 'fra' }),\r\n new FormOption({ key: 'nld' }),\r\n new FormOption({ key: 'pol' }),\r\n new FormOption({ key: 'che' }),\r\n ],\r\n }),\r\n usePlantLocation: new CheckboxField(),\r\n zipAndCity: new ZipAndCityFormGroup({\r\n zip: new TextField({\r\n validators: {\r\n required,\r\n zip: zip('application.plantOperator.country'),\r\n },\r\n }),\r\n city: new TextField({\r\n validators: {\r\n required,\r\n },\r\n }),\r\n }),\r\n streetAndHousenumber: new StreetAndHousenumberFormGroup({\r\n street: new TextField({\r\n validators: {\r\n required,\r\n },\r\n }),\r\n housenumber: new TextField({\r\n validators: {\r\n required,\r\n houseNumber,\r\n maxLength: maxLength(8),\r\n },\r\n }),\r\n }),\r\n email: new TextField({\r\n validators: {\r\n required,\r\n email,\r\n },\r\n }),\r\n emailRepeat: new TextField({\r\n validators: {\r\n required,\r\n email,\r\n emailRepeatMustBeIdentical,\r\n },\r\n }),\r\n phoneNumber1: new TextField({\r\n validators: {\r\n required,\r\n phoneNumber: positiveInteger,\r\n },\r\n }),\r\n phoneNumber2: new TextField({\r\n validators: {\r\n phoneNumber: positiveInteger,\r\n },\r\n }),\r\n});\r\n","import { FormStep } from '../formStep';\r\nimport { TextField } from '../fields/textField';\r\nimport { SelectField } from '../fields/selectField';\r\nimport { FirstAndLastNameFormGroup } from '../formGroups/firstAndLastNameFormGroup';\r\nimport { ZipAndCityFormGroup } from '../formGroups/zipAndCityFormGroup';\r\nimport { StreetAndHousenumberFormGroup } from '../formGroups/streetAndHousenumberFormGroup';\r\nimport type { CountryValueType } from '../shared/countryValueType';\r\nimport { WithOptional } from '../utility';\r\n\r\ntype ConfigProps = WithOptional;\r\n\r\nexport class PlantBuilderFormStep extends FormStep {\r\n public readonly companyName: TextField;\r\n public readonly builderName: FirstAndLastNameFormGroup;\r\n public readonly country: SelectField;\r\n public readonly zipAndCity: ZipAndCityFormGroup;\r\n public readonly streetAndHousenumber: StreetAndHousenumberFormGroup;\r\n public readonly email: TextField;\r\n public readonly phoneNumber1: TextField;\r\n public readonly phoneNumber2: TextField;\r\n\r\n public constructor(config: ConfigProps) {\r\n super(config);\r\n\r\n this.companyName = config.companyName;\r\n this.builderName = config.builderName;\r\n this.country = config.country;\r\n this.zipAndCity = config.zipAndCity;\r\n this.streetAndHousenumber = config.streetAndHousenumber;\r\n this.email = config.email;\r\n this.phoneNumber1 = config.phoneNumber1;\r\n this.phoneNumber2 = config.phoneNumber2;\r\n }\r\n}\r\n","import { required, email, maxLength } from 'vuelidate/lib/validators';\r\nimport { name } from '@/validators/name';\r\nimport { houseNumber } from '@/validators/houseNumber';\r\nimport { FormOption } from '@/types/forms/formOption';\r\nimport { TextField } from '@/types/forms/fields/textField';\r\nimport { SelectField } from '@/types/forms/fields/selectField';\r\nimport { ZipAndCityFormGroup } from '@/types/forms/formGroups/zipAndCityFormGroup';\r\nimport { StreetAndHousenumberFormGroup } from '@/types/forms/formGroups/streetAndHousenumberFormGroup';\r\nimport { PlantBuilderFormStep } from '@/types/forms/formSteps/plantBuilderFormStep';\r\nimport { FirstAndLastNameFormGroup } from '@/types/forms/formGroups/firstAndLastNameFormGroup';\r\nimport { positiveInteger } from '@/validators/positiveInteger';\r\nimport { zip } from '@/validators/zip';\r\n\r\nexport const plantBuilderFormStep = new PlantBuilderFormStep({\r\n companyName: new TextField({\r\n validators: {\r\n required,\r\n },\r\n }),\r\n builderName: new FirstAndLastNameFormGroup({\r\n firstName: new TextField({\r\n validators: {\r\n name,\r\n },\r\n }),\r\n lastName: new TextField({\r\n validators: {\r\n name,\r\n },\r\n }),\r\n }),\r\n country: new SelectField({\r\n value: 'deu',\r\n options: [\r\n new FormOption({ key: 'deu' }),\r\n new FormOption({ key: 'aut' }),\r\n new FormOption({ key: 'dnk' }),\r\n new FormOption({ key: 'fra' }),\r\n new FormOption({ key: 'nld' }),\r\n new FormOption({ key: 'pol' }),\r\n new FormOption({ key: 'che' }),\r\n ],\r\n }),\r\n zipAndCity: new ZipAndCityFormGroup({\r\n zip: new TextField({\r\n validators: {\r\n required,\r\n zip: zip('application.plantBuilder.country'),\r\n },\r\n }),\r\n city: new TextField({\r\n validators: {\r\n required,\r\n },\r\n }),\r\n }),\r\n streetAndHousenumber: new StreetAndHousenumberFormGroup({\r\n street: new TextField({\r\n validators: {\r\n required,\r\n },\r\n }),\r\n housenumber: new TextField({\r\n validators: {\r\n required,\r\n houseNumber,\r\n maxLength: maxLength(8),\r\n },\r\n }),\r\n }),\r\n email: new TextField({\r\n validators: {\r\n required,\r\n email,\r\n },\r\n }),\r\n phoneNumber1: new TextField({\r\n validators: {\r\n required,\r\n phoneNumber: positiveInteger,\r\n },\r\n }),\r\n phoneNumber2: new TextField({\r\n validators: {\r\n phoneNumber: positiveInteger,\r\n },\r\n }),\r\n});\r\n","import { CheckboxField } from '../fields/checkboxField';\r\nimport { DateField } from '../fields/dateField';\r\nimport { RadioButtonsField } from '../fields/radioButtonsField';\r\nimport { SelectField } from '../fields/selectField';\r\nimport { TextField } from '../fields/textField';\r\nimport { FormElement } from '../formElement';\r\nimport { FormStep } from '../formStep';\r\nimport { NewOrExistingApplicationValueType } from '../shared/newOrExistingApplicationValueType';\r\nimport { NewOrExistingPlantValueType } from '../shared/newOrExistingPlantValueType';\r\nimport { PlantBuildingTypeValueType } from '../shared/plantBuildingTypeValueType';\r\nimport { PlantPositionValueType } from '../shared/plantPositionValueType';\r\nimport { PowerHeatCouplingPlantTypeValueType } from '../shared/powerHeatCouplingPlantTypeValueType';\r\nimport { PvInstallationTypeValueType } from '../shared/pvInstallationTypeValueType';\r\nimport { PvInstallationTypeForAgriculturalLandOrParkingLotsValueType } from '../shared/pvInstallationTypeForAgriculturalLandOrParkingLotsValueType';\r\nimport { StorageBalancingEnergyMarketParticipationTypeValueType } from '../shared/storageBalancingEnergyMarketParticipationTypeValueType';\r\nimport { StorageChargeValueType } from '../shared/storageChargeValueType';\r\nimport { StorageConnectionConceptValueType } from '../shared/storageConnectionConceptValueType';\r\nimport { StorageCouplingValueType } from '../shared/storageCouplingValueType';\r\nimport { StorageDischargeValueType } from '../shared/storageDischargeValueType';\r\nimport { WithOptional } from '../utility';\r\nimport { InfeedManagementFormGroup } from '../formGroups/plantData/infeedManagement/infeedManagementFormGroup';\r\nimport { PlantBuildingTypeForTenantElectricitySurchargeValueType } from '../shared/plantBuildingTypeForTenantElectricitySurchargeValueType';\r\n\r\ntype ConfigProps = WithOptional;\r\n\r\nexport class PlantDataFormStep extends FormStep {\r\n public readonly newOrExistingApplication: RadioButtonsField<\r\n NewOrExistingApplicationValueType\r\n >;\r\n public readonly applicationNumber: TextField;\r\n public readonly newOrExistingPlant: RadioButtonsField<\r\n NewOrExistingPlantValueType\r\n >;\r\n public readonly powerHeatCouplingPlantType: RadioButtonsField<\r\n PowerHeatCouplingPlantTypeValueType\r\n >;\r\n public readonly powerHeatCouplingPaymentsBasedOnLawHint: FormElement;\r\n public readonly bafaApprovalWillBeSubmittedLater: CheckboxField;\r\n public readonly plantWasAlreadyCommissioned: CheckboxField;\r\n public readonly initialCommissioningDate: DateField;\r\n\r\n public readonly plantBuildingType: RadioButtonsField<\r\n PlantBuildingTypeValueType\r\n >;\r\n public readonly plantBuildingTypeForTenantElectricitySurcharge: RadioButtonsField<\r\n PlantBuildingTypeForTenantElectricitySurchargeValueType\r\n >;\r\n public readonly plantPosition: RadioButtonsField;\r\n public readonly pvInstallationType: RadioButtonsField<\r\n PvInstallationTypeValueType\r\n >;\r\n public readonly pvInstallationTypeForAgriculturalLandOrParkingLots: RadioButtonsField<\r\n PvInstallationTypeForAgriculturalLandOrParkingLotsValueType\r\n >;\r\n public readonly storageConnection: FormElement;\r\n public readonly storageCoupling: SelectField;\r\n public readonly storageConnectionConcept: RadioButtonsField<\r\n StorageConnectionConceptValueType\r\n >;\r\n public readonly electricityTaxExemptionHint: FormElement;\r\n public readonly tenantElectricitySurcharge: CheckboxField;\r\n public readonly requirementTenantElectricitySurchargeHint: FormElement;\r\n public readonly minimumRequirementLivingSpace: CheckboxField;\r\n public readonly noResidentialExemptions: CheckboxField;\r\n public readonly electricityConsumptionWithinThisBuilding: CheckboxField;\r\n public readonly noAdditionalNetworkForEndConsumer: CheckboxField;\r\n public readonly federalNetworkAgencyHint: FormElement;\r\n public readonly proofOfRegistrationPhotovoltaic: CheckboxField;\r\n public readonly proofOfAllocationOfTenantElectricitySurcharge: CheckboxField;\r\n public readonly declarationEnwgHint: FormElement;\r\n public readonly plantOperatorKnowsEnwgSpecifications: CheckboxField;\r\n public readonly storageCharge: SelectField;\r\n public readonly storageDischarge: SelectField;\r\n public readonly storagePublicDischargeWarning: FormElement;\r\n public readonly storageBalancingEnergyMarketParticipation: CheckboxField;\r\n public readonly storageBalancingEnergyMarketParticipationType: RadioButtonsField<\r\n StorageBalancingEnergyMarketParticipationTypeValueType\r\n >;\r\n public readonly infeedManagement: InfeedManagementFormGroup;\r\n\r\n public readonly activePowerLimit60: CheckboxField;\r\n\r\n public constructor(config: ConfigProps) {\r\n super(config);\r\n\r\n this.newOrExistingApplication = config.newOrExistingApplication;\r\n this.applicationNumber = config.applicationNumber;\r\n this.newOrExistingPlant = config.newOrExistingPlant;\r\n this.powerHeatCouplingPlantType = config.powerHeatCouplingPlantType;\r\n this.powerHeatCouplingPaymentsBasedOnLawHint =\r\n config.powerHeatCouplingPaymentsBasedOnLawHint;\r\n this.bafaApprovalWillBeSubmittedLater =\r\n config.bafaApprovalWillBeSubmittedLater;\r\n this.plantWasAlreadyCommissioned = config.plantWasAlreadyCommissioned;\r\n this.initialCommissioningDate = config.initialCommissioningDate;\r\n this.plantBuildingType = config.plantBuildingType;\r\n this.plantBuildingTypeForTenantElectricitySurcharge =\r\n config.plantBuildingTypeForTenantElectricitySurcharge;\r\n this.plantPosition = config.plantPosition;\r\n this.pvInstallationType = config.pvInstallationType;\r\n this.pvInstallationTypeForAgriculturalLandOrParkingLots =\r\n config.pvInstallationTypeForAgriculturalLandOrParkingLots;\r\n this.storageConnection = config.storageConnection;\r\n this.storageCoupling = config.storageCoupling;\r\n this.storageConnectionConcept = config.storageConnectionConcept;\r\n this.electricityTaxExemptionHint = config.electricityTaxExemptionHint;\r\n this.tenantElectricitySurcharge = config.tenantElectricitySurcharge;\r\n this.requirementTenantElectricitySurchargeHint =\r\n config.requirementTenantElectricitySurchargeHint;\r\n this.minimumRequirementLivingSpace =\r\n config.minimumRequirementLivingSpace;\r\n this.noResidentialExemptions = config.noResidentialExemptions;\r\n this.electricityConsumptionWithinThisBuilding =\r\n config.electricityConsumptionWithinThisBuilding;\r\n this.noAdditionalNetworkForEndConsumer =\r\n config.noAdditionalNetworkForEndConsumer;\r\n this.federalNetworkAgencyHint = config.federalNetworkAgencyHint;\r\n this.proofOfRegistrationPhotovoltaic =\r\n config.proofOfRegistrationPhotovoltaic;\r\n this.proofOfAllocationOfTenantElectricitySurcharge =\r\n config.proofOfAllocationOfTenantElectricitySurcharge;\r\n this.declarationEnwgHint = config.declarationEnwgHint;\r\n this.plantOperatorKnowsEnwgSpecifications =\r\n config.plantOperatorKnowsEnwgSpecifications;\r\n this.storageCharge = config.storageCharge;\r\n this.storageDischarge = config.storageDischarge;\r\n this.storagePublicDischargeWarning =\r\n config.storagePublicDischargeWarning;\r\n this.storageBalancingEnergyMarketParticipation =\r\n config.storageBalancingEnergyMarketParticipation;\r\n this.storageBalancingEnergyMarketParticipationType =\r\n config.storageBalancingEnergyMarketParticipationType;\r\n this.infeedManagement = config.infeedManagement;\r\n this.activePowerLimit60 = config.activePowerLimit60;\r\n }\r\n}\r\n","import { ValidationRule, helpers } from 'vuelidate/lib/validators';\r\nimport { isValidIBAN } from 'ibantools';\r\n\r\nexport const iban = ((value: string): boolean => {\r\n return !helpers.req(value) || isValidIBAN(value);\r\n}) as ValidationRule;\r\n","import { DateField } from '@/types/forms/fields/dateField';\r\nimport { RadioButtonsField } from '@/types/forms/fields/radioButtonsField';\r\nimport { TextField } from '@/types/forms/fields/textField';\r\nimport { FormElement } from '@/types/forms/formElement';\r\nimport { FormGroup } from '@/types/forms/formGroup';\r\nimport { BillingValueType } from '@/types/forms/shared/billingValueType';\r\nimport { PowerReductionValueType } from '@/types/forms/shared/powerReductionValueType';\r\nimport { WithOptional } from '@/types/forms/utility';\r\nimport { toneFrequencyReceiverToPlantOperatorOrBuilderValueType } from '@/types/forms/shared/toneFrequencyReceiverToPlantOperatorOrBuilderValueType';\r\n\r\ntype ConfigProps = WithOptional;\r\n\r\nexport class InfeedManagementFormGroup extends FormGroup {\r\n public readonly imHeadline: FormElement;\r\n public readonly imPowerReductionType: RadioButtonsField<\r\n PowerReductionValueType\r\n >;\r\n public readonly toneFrequencyReceiverToPlantOperatorOrBuilder: RadioButtonsField<\r\n toneFrequencyReceiverToPlantOperatorOrBuilderValueType\r\n >;\r\n public readonly imAudioFrequencyControlReceiverContract: FormElement;\r\n public readonly imProvisionThrough: TextField;\r\n public readonly imTechnicalSpecificationsNote: FormElement;\r\n\r\n public readonly imBilling: RadioButtonsField;\r\n public readonly imDirectDebitMandate: FormElement;\r\n public readonly imIban: TextField;\r\n public readonly imCreditInstitutionName: TextField;\r\n public readonly imAccountHolderName: TextField;\r\n public readonly imBillingDate: DateField;\r\n\r\n public constructor(config: ConfigProps) {\r\n super(config);\r\n\r\n this.imHeadline = config.imHeadline;\r\n this.imPowerReductionType = config.imPowerReductionType;\r\n this.imAudioFrequencyControlReceiverContract =\r\n config.imAudioFrequencyControlReceiverContract;\r\n this.imProvisionThrough = config.imProvisionThrough;\r\n this.imTechnicalSpecificationsNote =\r\n config.imTechnicalSpecificationsNote;\r\n this.imBilling = config.imBilling;\r\n this.imDirectDebitMandate = config.imDirectDebitMandate;\r\n this.imIban = config.imIban;\r\n this.imCreditInstitutionName = config.imCreditInstitutionName;\r\n this.imAccountHolderName = config.imAccountHolderName;\r\n this.imBillingDate = config.imBillingDate;\r\n this.toneFrequencyReceiverToPlantOperatorOrBuilder =\r\n config.toneFrequencyReceiverToPlantOperatorOrBuilder;\r\n }\r\n}\r\n","import { FormElement } from '@/types/forms/formElement';\r\nimport { FormOption } from '@/types/forms/formOption';\r\nimport { required } from 'vuelidate/lib/validators';\r\nimport { iban } from '@/validators/iban';\r\nimport { requiredDate } from '@/validators/requiredDate';\r\nimport { InfeedManagementFormGroup } from '@/types/forms/formGroups/plantData/infeedManagement/infeedManagementFormGroup';\r\nimport { RadioButtonsField } from '@/types/forms/fields/radioButtonsField';\r\nimport { TextField } from '@/types/forms/fields/textField';\r\nimport { DateField } from '@/types/forms/fields/dateField';\r\n\r\nexport const infeedManagementFormGroup = new InfeedManagementFormGroup({\r\n imHeadline: new FormElement(),\r\n imPowerReductionType: new RadioButtonsField({\r\n value: 'noPowerReduction',\r\n options: [\r\n new FormOption({ key: 'noPowerReduction' }),\r\n new FormOption({ key: 'audioFrequencyControlReceiverInternal' }),\r\n new FormOption({ key: 'audioFrequencyControlReceiverExternal' }),\r\n ],\r\n validators: {\r\n required,\r\n },\r\n }),\r\n toneFrequencyReceiverToPlantOperatorOrBuilder: new RadioButtonsField({\r\n options: [\r\n new FormOption({ key: 'plantBuilder' }),\r\n new FormOption({ key: 'plantOperator' }),\r\n ],\r\n validators: {\r\n required,\r\n },\r\n }),\r\n imAudioFrequencyControlReceiverContract: new FormElement(),\r\n imProvisionThrough: new TextField({\r\n validators: {\r\n required,\r\n },\r\n }),\r\n imTechnicalSpecificationsNote: new FormElement(),\r\n imBilling: new RadioButtonsField({\r\n value: 'invoice',\r\n options: [\r\n new FormOption({ key: 'invoice' }),\r\n new FormOption({ key: 'sepa' }),\r\n ],\r\n validators: {\r\n required,\r\n },\r\n }),\r\n imDirectDebitMandate: new FormElement(),\r\n imIban: new TextField({\r\n validators: {\r\n required,\r\n iban,\r\n },\r\n }),\r\n imCreditInstitutionName: new TextField(),\r\n imAccountHolderName: new TextField({\r\n validators: {\r\n required,\r\n },\r\n }),\r\n imBillingDate: new DateField({\r\n validators: {\r\n requiredDate,\r\n },\r\n }),\r\n});\r\n","import { required } from 'vuelidate/lib/validators';\r\nimport { checked } from '@/validators/checked';\r\nimport { RadioButtonsField } from '@/types/forms/fields/radioButtonsField';\r\nimport { FormOption } from '@/types/forms/formOption';\r\nimport { PlantDataFormStep } from '@/types/forms/formSteps/plantDataFormStep';\r\nimport { TextField } from '@/types/forms/fields/textField';\r\nimport { SelectField } from '@/types/forms/fields/selectField';\r\nimport { CheckboxField } from '@/types/forms/fields/checkboxField';\r\nimport { maxDateNow } from '@/validators/maxDateNow';\r\nimport { DateField } from '@/types/forms/fields/dateField';\r\nimport { FormElement } from '@/types/forms/formElement';\r\nimport { infeedManagementFormGroup } from './plantData/infeedManagement';\r\n\r\nexport const plantDataFormStep = new PlantDataFormStep({\r\n newOrExistingApplication: new RadioButtonsField({\r\n value: 'new',\r\n options: [\r\n new FormOption({ key: 'new' }),\r\n new FormOption({ key: 'change' }),\r\n ],\r\n validators: {\r\n required,\r\n },\r\n }),\r\n applicationNumber: new TextField({\r\n validators: {\r\n required,\r\n },\r\n }),\r\n newOrExistingPlant: new RadioButtonsField({\r\n value: 'first',\r\n options: [\r\n new FormOption({ key: 'first' }),\r\n new FormOption({ key: 'additional' }),\r\n new FormOption({ key: 'performanceIncrease' }),\r\n new FormOption({ key: 'capacityIncrease' }),\r\n new FormOption({\r\n key: 'capacityIncreaseWithNominalDischargeCapacityChange',\r\n }),\r\n ],\r\n validators: {\r\n required,\r\n },\r\n }),\r\n powerHeatCouplingPlantType: new RadioButtonsField({\r\n value: 'nonHighEfficiencyChpPlant',\r\n options: [\r\n new FormOption({ key: 'nonHighEfficiencyChpPlant' }),\r\n new FormOption({ key: 'highEfficiencyChpPlant' }),\r\n ],\r\n validators: {\r\n required,\r\n },\r\n }),\r\n powerHeatCouplingPaymentsBasedOnLawHint: new FormElement(),\r\n bafaApprovalWillBeSubmittedLater: new CheckboxField(),\r\n plantWasAlreadyCommissioned: new CheckboxField(),\r\n initialCommissioningDate: new DateField({\r\n validators: {\r\n maxDateNow,\r\n },\r\n }),\r\n plantBuildingType: new RadioButtonsField({\r\n value: 'residentialBuilding',\r\n options: [\r\n new FormOption({ key: 'residentialBuilding' }),\r\n new FormOption({ key: 'noResidentialBuilding' }),\r\n ],\r\n validators: {\r\n required,\r\n },\r\n }),\r\n plantBuildingTypeForTenantElectricitySurcharge: new RadioButtonsField({\r\n value: 'residentialBuilding',\r\n options: [\r\n new FormOption({ key: 'residentialBuilding' }),\r\n new FormOption({ key: 'noResidentialBuilding' }),\r\n ],\r\n validators: {\r\n required,\r\n },\r\n }),\r\n plantPosition: new RadioButtonsField({\r\n value: 'indoor',\r\n options: [\r\n new FormOption({ key: 'indoor' }),\r\n new FormOption({ key: 'outdoor' }),\r\n ],\r\n validators: {\r\n required,\r\n },\r\n }),\r\n pvInstallationType: new RadioButtonsField({\r\n value: 'residentialOrSimilarBuilding',\r\n options: [\r\n new FormOption({ key: 'residentialOrSimilarBuilding' }),\r\n new FormOption({ key: 'outsideNonResidentialBuilding' }),\r\n new FormOption({ key: 'outsideNonResidentialBuildingEEG48Abs1' }),\r\n new FormOption({ key: 'structuralFacility' }),\r\n new FormOption({ key: 'nextToResidentialBuilding' }),\r\n new FormOption({ key: 'publicWasteDisposalFacilities' }),\r\n new FormOption({ key: 'approvedDevelopmentPlan' }),\r\n new FormOption({ key: 'agriculturalLandOrParkingLots' }),\r\n new FormOption({ key: 'artificialWaterBody' }),\r\n new FormOption({ key: 'drainedPeatland' }),\r\n ],\r\n validators: {\r\n required,\r\n },\r\n }),\r\n pvInstallationTypeForAgriculturalLandOrParkingLots: new RadioButtonsField({\r\n value: 'agriculturalLand',\r\n options: [\r\n new FormOption({ key: 'agriculturalLand' }),\r\n new FormOption({ key: 'permanentCrops' }),\r\n new FormOption({ key: 'grassLand' }),\r\n new FormOption({ key: 'parkingLots' }),\r\n new FormOption({ key: 'peatSoils' }),\r\n ],\r\n validators: {\r\n required,\r\n },\r\n }),\r\n storageCoupling: new SelectField({\r\n options: [\r\n new FormOption({\r\n key: 'acCoupled',\r\n }),\r\n new FormOption({\r\n key: 'dcCoupled',\r\n }),\r\n ],\r\n validators: {\r\n required,\r\n },\r\n }),\r\n storageConnectionConcept: new RadioButtonsField({\r\n value:\r\n 'powerGenerationPlantWithStorageInTheConsumerPathAndConsumptionPlant',\r\n options: [\r\n new FormOption({\r\n key:\r\n 'powerGenerationPlantWithStorageInTheConsumerPathAndConsumptionPlant',\r\n }),\r\n new FormOption({\r\n key:\r\n 'storageWithoutPowerGenerationPlantAndWithoutConsumptionPlant',\r\n }),\r\n new FormOption({\r\n key:\r\n 'storageWithoutPowerGenerationPlantAndWithConsumptionPlant',\r\n }),\r\n new FormOption({\r\n key:\r\n 'storageFacilityWithPowerGenerationPlantAndWithoutConsumptionPlant',\r\n }),\r\n new FormOption({\r\n key:\r\n 'powerGenerationPlantWithStorageFacilityInTheGenerationPathAndConsumptionPlant',\r\n }),\r\n ],\r\n validators: {\r\n required,\r\n },\r\n }),\r\n electricityTaxExemptionHint: new FormElement(),\r\n tenantElectricitySurcharge: new CheckboxField(),\r\n requirementTenantElectricitySurchargeHint: new FormElement(),\r\n minimumRequirementLivingSpace: new CheckboxField({\r\n validators: {\r\n checked,\r\n },\r\n }),\r\n noResidentialExemptions: new CheckboxField({\r\n validators: {\r\n checked,\r\n },\r\n }),\r\n electricityConsumptionWithinThisBuilding: new CheckboxField({\r\n validators: {\r\n checked,\r\n },\r\n }),\r\n noAdditionalNetworkForEndConsumer: new CheckboxField({\r\n validators: {\r\n checked,\r\n },\r\n }),\r\n federalNetworkAgencyHint: new FormElement(),\r\n proofOfRegistrationPhotovoltaic: new CheckboxField({\r\n validators: {\r\n checked,\r\n },\r\n }),\r\n proofOfAllocationOfTenantElectricitySurcharge: new CheckboxField({\r\n validators: {\r\n checked,\r\n },\r\n }),\r\n declarationEnwgHint: new FormElement(),\r\n plantOperatorKnowsEnwgSpecifications: new CheckboxField({\r\n validators: {\r\n checked,\r\n },\r\n }),\r\n storageConnection: new FormElement(),\r\n storageCharge: new SelectField({\r\n options: [\r\n new FormOption({ key: 'onlyFromEeg' }),\r\n new FormOption({ key: 'onlyFromKwkg' }),\r\n new FormOption({ key: 'fromEegAndKwkg' }),\r\n new FormOption({ key: 'onlyFromPublicGrid' }),\r\n new FormOption({ key: 'fromPublicGridAndEeg' }),\r\n new FormOption({ key: 'fromPublicGridAndKwkg' }),\r\n new FormOption({ key: 'fromPublicGridAndEegAndKwkg' }),\r\n ],\r\n validators: {\r\n required,\r\n },\r\n }),\r\n storageDischarge: new SelectField({\r\n options: [\r\n new FormOption({ key: 'onlyIntoCustomersGridSelfSupply' }),\r\n new FormOption({ key: 'onlyIntoPublicGridGridFeedIn' }),\r\n new FormOption({ key: 'intoCustomersGridAndPublicGridBivalent' }),\r\n ],\r\n validators: {\r\n required,\r\n },\r\n }),\r\n storagePublicDischargeWarning: new FormElement(),\r\n storageBalancingEnergyMarketParticipation: new CheckboxField(),\r\n storageBalancingEnergyMarketParticipationType: new RadioButtonsField({\r\n value: 'positiveAndNegative',\r\n options: [\r\n new FormOption({ key: 'positiveAndNegative' }),\r\n new FormOption({ key: 'onlyPositive' }),\r\n new FormOption({ key: 'onlyNegative' }),\r\n ],\r\n validators: {\r\n required,\r\n },\r\n }),\r\n infeedManagement: infeedManagementFormGroup,\r\n activePowerLimit60: new CheckboxField({\r\n validators: {\r\n checked,\r\n },\r\n }),\r\n});\r\n","import { DateField } from '../fields/dateField';\r\nimport { RadioButtonsField } from '../fields/radioButtonsField';\r\nimport { SelectField } from '../fields/selectField';\r\nimport { TextField } from '../fields/textField';\r\nimport { StreetAndHousenumberFormGroup } from '../formGroups/streetAndHousenumberFormGroup';\r\nimport { ZipAndCityFormGroup } from '../formGroups/zipAndCityFormGroup';\r\nimport type { CountryValueType } from '../shared/countryValueType';\r\nimport { FormElementConfig } from '../formElement';\r\nimport { FormGroup } from '../formGroup';\r\nimport type { SalutationValueType } from '../shared/salutationValueType';\r\nimport type { TitleValueType } from '../shared/titleValueType';\r\nimport { FirstAndLastNameFormGroup } from './firstAndLastNameFormGroup';\r\n\r\nexport type OwnerFormGroupConfig = FormElementConfig &\r\n Omit;\r\n\r\nexport class OwnerFormGroup extends FormGroup {\r\n public readonly salutation: RadioButtonsField;\r\n public readonly companyName: TextField;\r\n public readonly title: SelectField;\r\n public readonly ownerName: FirstAndLastNameFormGroup;\r\n public readonly contactPersonName: FirstAndLastNameFormGroup;\r\n public readonly birthday: DateField;\r\n public readonly country: SelectField;\r\n public readonly zipAndCity: ZipAndCityFormGroup;\r\n public readonly streetAndHousenumber: StreetAndHousenumberFormGroup;\r\n public readonly email: TextField;\r\n public readonly phoneNumber1: TextField;\r\n public readonly phoneNumber2: TextField;\r\n\r\n public constructor(config: OwnerFormGroupConfig) {\r\n super(config);\r\n\r\n this.salutation = config.salutation;\r\n this.companyName = config.companyName;\r\n this.title = config.title;\r\n this.ownerName = config.ownerName;\r\n this.contactPersonName = config.contactPersonName;\r\n this.birthday = config.birthday;\r\n this.country = config.country;\r\n this.zipAndCity = config.zipAndCity;\r\n this.streetAndHousenumber = config.streetAndHousenumber;\r\n this.email = config.email;\r\n this.phoneNumber1 = config.phoneNumber1;\r\n this.phoneNumber2 = config.phoneNumber2;\r\n }\r\n}\r\n","import { CheckboxField } from '../fields/checkboxField';\r\nimport { OwnerFormListType } from '../formGroups/ownerFormList';\r\nimport { FormStep } from '../formStep';\r\nimport { WithOptional } from '../utility';\r\n\r\ntype ConfigProps = WithOptional;\r\n\r\nexport class PropertyOwnerFormStep extends FormStep {\r\n public readonly propertyOwnerAgreement: CheckboxField;\r\n public readonly owners: OwnerFormListType;\r\n\r\n public constructor(config: ConfigProps) {\r\n super(config);\r\n\r\n this.propertyOwnerAgreement = config.propertyOwnerAgreement;\r\n this.owners = config.owners;\r\n }\r\n}\r\n","import { CheckboxField } from '@/types/forms/fields/checkboxField';\r\nimport { checked } from '@/validators/checked';\r\nimport { DateField } from '@/types/forms/fields/dateField';\r\nimport { FormList } from '@/types/forms/fields/formList';\r\nimport { RadioButtonsField } from '@/types/forms/fields/radioButtonsField';\r\nimport { SelectField } from '@/types/forms/fields/selectField';\r\nimport { TextField } from '@/types/forms/fields/textField';\r\nimport { FirstAndLastNameFormGroup } from '@/types/forms/formGroups/firstAndLastNameFormGroup';\r\nimport { OwnerFormGroup } from '@/types/forms/formGroups/ownerFormGroup';\r\nimport { StreetAndHousenumberFormGroup } from '@/types/forms/formGroups/streetAndHousenumberFormGroup';\r\nimport { ZipAndCityFormGroup } from '@/types/forms/formGroups/zipAndCityFormGroup';\r\nimport { FormOption } from '@/types/forms/formOption';\r\nimport { PropertyOwnerFormStep } from '@/types/forms/formSteps/propertyOwnerFormStep';\r\nimport { maxDateNow } from '@/validators/maxDateNow';\r\nimport { name } from '@/validators/name';\r\nimport { houseNumber } from '@/validators/houseNumber';\r\nimport { positiveInteger } from '@/validators/positiveInteger';\r\nimport { email, maxLength, required } from 'vuelidate/lib/validators';\r\nimport { zip } from '@/validators/zip';\r\n\r\nexport const propertyOwnerFormStep = new PropertyOwnerFormStep({\r\n propertyOwnerAgreement: new CheckboxField({\r\n validators: {\r\n checked,\r\n },\r\n }),\r\n owners: new FormList(OwnerFormGroup, {\r\n initializeItems: 1,\r\n minItemCount: 1,\r\n maxItemCount: 3,\r\n salutation: new RadioButtonsField({\r\n value: 'mr',\r\n options: [\r\n new FormOption({ key: 'mr' }),\r\n new FormOption({ key: 'mrs' }),\r\n new FormOption({ key: 'company' }),\r\n ],\r\n validators: {\r\n required,\r\n },\r\n }),\r\n companyName: new TextField({\r\n validators: {\r\n required,\r\n },\r\n }),\r\n title: new SelectField({\r\n value: 'untitled',\r\n options: [\r\n new FormOption({ key: 'untitled' }),\r\n new FormOption({ key: 'dr' }),\r\n new FormOption({ key: 'prof' }),\r\n new FormOption({ key: 'profDr' }),\r\n ],\r\n }),\r\n ownerName: new FirstAndLastNameFormGroup({\r\n firstName: new TextField({\r\n validators: {\r\n required,\r\n name,\r\n },\r\n }),\r\n lastName: new TextField({\r\n validators: {\r\n required,\r\n name,\r\n },\r\n }),\r\n }),\r\n contactPersonName: new FirstAndLastNameFormGroup({\r\n firstName: new TextField({\r\n validators: {\r\n required,\r\n name,\r\n },\r\n }),\r\n lastName: new TextField({\r\n validators: {\r\n required,\r\n name,\r\n },\r\n }),\r\n }),\r\n birthday: new DateField({\r\n validators: {\r\n maxDateNow,\r\n },\r\n }),\r\n country: new SelectField({\r\n value: 'deu',\r\n options: [\r\n new FormOption({ key: 'deu' }),\r\n new FormOption({ key: 'aut' }),\r\n new FormOption({ key: 'dnk' }),\r\n new FormOption({ key: 'fra' }),\r\n new FormOption({ key: 'nld' }),\r\n new FormOption({ key: 'pol' }),\r\n new FormOption({ key: 'che' }),\r\n ],\r\n }),\r\n zipAndCity: new ZipAndCityFormGroup({\r\n zip: new TextField({\r\n validators: {\r\n required,\r\n zip: zip(\r\n 'application.propertyOwner.owners.items[*].country',\r\n ),\r\n },\r\n }),\r\n city: new TextField({\r\n validators: {\r\n required,\r\n },\r\n }),\r\n }),\r\n streetAndHousenumber: new StreetAndHousenumberFormGroup({\r\n street: new TextField({\r\n validators: {\r\n required,\r\n },\r\n }),\r\n housenumber: new TextField({\r\n validators: {\r\n required,\r\n houseNumber,\r\n maxLength: maxLength(8),\r\n },\r\n }),\r\n }),\r\n email: new TextField({\r\n validators: {\r\n email,\r\n },\r\n }),\r\n phoneNumber1: new TextField({\r\n validators: {\r\n required,\r\n phoneNumber: positiveInteger,\r\n },\r\n }),\r\n phoneNumber2: new TextField({\r\n validators: {\r\n phoneNumber: positiveInteger,\r\n },\r\n }),\r\n }),\r\n});\r\n","import { CheckboxField } from '../fields/checkboxField';\r\nimport { RadioButtonsField } from '../fields/radioButtonsField';\r\nimport { SelectField } from '../fields/selectField';\r\nimport { TextField } from '../fields/textField';\r\nimport { FormElement } from '../formElement';\r\nimport { FormStep } from '../formStep';\r\nimport { MeasuringConceptOperatingModeType } from '../shared/measuringConceptsOperatingModeType';\r\nimport { MeasuringPointOperationType } from '../shared/measuringPointOperationType';\r\nimport { WithOptional } from '../utility';\r\n\r\ntype ConfigProps = WithOptional;\r\n\r\nexport class MeasuringConceptsFormStep extends FormStep {\r\n public readonly operatingMode: SelectField<\r\n MeasuringConceptOperatingModeType\r\n >;\r\n public readonly operatingModeStorage: SelectField<\r\n MeasuringConceptOperatingModeType\r\n >;\r\n public readonly fullInfeedBonusHeadline: FormElement;\r\n public readonly fullInfeedBonus: CheckboxField;\r\n public readonly measuringPointOperatorInfo: FormElement;\r\n public readonly measuringPointOperation: RadioButtonsField<\r\n MeasuringPointOperationType\r\n >;\r\n public readonly meterNumber: TextField;\r\n public readonly measuringPointOperator: SelectField;\r\n public readonly priceSheetMeasuringPointOperation: FormElement;\r\n public readonly measuringPointOperationInfoEwe: FormElement;\r\n public readonly measuringPointOperationFollowingConditionsAndGtacEwe: CheckboxField;\r\n public readonly measuringPointOperationInfoOther: FormElement;\r\n public readonly selfGenerationQuantity: TextField;\r\n public readonly selfSupplyQuantity: TextField;\r\n public readonly remainingElectricityInfo: FormElement;\r\n public readonly storageHeadline: FormElement;\r\n\r\n constructor(config: ConfigProps) {\r\n super(config);\r\n this.operatingMode = config.operatingMode;\r\n this.operatingModeStorage = config.operatingModeStorage;\r\n this.fullInfeedBonusHeadline = config.fullInfeedBonusHeadline;\r\n this.fullInfeedBonus = config.fullInfeedBonus;\r\n this.measuringPointOperatorInfo = config.measuringPointOperatorInfo;\r\n this.measuringPointOperation = config.measuringPointOperation;\r\n this.meterNumber = config.meterNumber;\r\n this.measuringPointOperator = config.measuringPointOperator;\r\n this.priceSheetMeasuringPointOperation =\r\n config.priceSheetMeasuringPointOperation;\r\n this.measuringPointOperationInfoEwe =\r\n config.measuringPointOperationInfoEwe;\r\n this.measuringPointOperationFollowingConditionsAndGtacEwe =\r\n config.measuringPointOperationFollowingConditionsAndGtacEwe;\r\n this.measuringPointOperationInfoOther =\r\n config.measuringPointOperationInfoOther;\r\n this.selfGenerationQuantity = config.selfGenerationQuantity;\r\n this.selfSupplyQuantity = config.selfSupplyQuantity;\r\n this.remainingElectricityInfo = config.remainingElectricityInfo;\r\n this.storageHeadline = config.storageHeadline;\r\n }\r\n}\r\n","import { parseGermanFloat } from '@/utilities/germanFormats';\r\nimport { ValidationRule } from 'vuelidate/lib/validators';\r\n\r\ninterface SelfGenerationQuantityPartialVm {\r\n selfGenerationQuantity: string;\r\n}\r\n\r\nexport const mustBeLowerThanOrEqualToSelfGenerationQuantity = ((\r\n value: string,\r\n vm: SelfGenerationQuantityPartialVm,\r\n) => {\r\n const selfGenerationQuantity = parseGermanFloat(\r\n vm.selfGenerationQuantity || '0',\r\n );\r\n const val = parseGermanFloat(value || '0');\r\n return val <= selfGenerationQuantity;\r\n}) as ValidationRule;\r\n","import { isPv } from '@/services/form/rules/application/common';\r\nimport { Forms } from '@/types/forms/forms';\r\nimport { parseGermanFloat } from '@/utilities/germanFormats';\r\nimport { CombinedVueInstance } from 'vue/types/vue';\r\nimport { ValidationRule } from 'vuelidate/lib/validators';\r\n\r\n// eslint-disable-next-line @typescript-eslint/comma-dangle\r\nexport const mustBeNoMoreThan20PercentAboveSuggestion = function <\r\n Instance extends Vue\r\n>(\r\n this: CombinedVueInstance<\r\n Instance,\r\n { model: Forms },\r\n unknown,\r\n unknown,\r\n unknown\r\n >,\r\n value: string,\r\n) {\r\n const pv = isPv(this.model.application);\r\n if (!pv) {\r\n return true;\r\n }\r\n const PV_OVERALLNOMINALPOWER_TO_SELFGENERATIONQUANTITY_FACTOR = 850;\r\n const selfGenerationQuantitySuggestion =\r\n (this.model.application.plantPerformance.photovoltaic\r\n .pvOverallNominalPower.value ?? 0) *\r\n PV_OVERALLNOMINALPOWER_TO_SELFGENERATIONQUANTITY_FACTOR;\r\n\r\n const val = parseGermanFloat(value || '0');\r\n return val <= selfGenerationQuantitySuggestion * 1.2;\r\n} as ValidationRule;\r\n","import { CheckboxField } from '@/types/forms/fields/checkboxField';\r\nimport { RadioButtonsField } from '@/types/forms/fields/radioButtonsField';\r\nimport { SelectField } from '@/types/forms/fields/selectField';\r\nimport { TextField } from '@/types/forms/fields/textField';\r\nimport { FormElement } from '@/types/forms/formElement';\r\nimport { FormOption } from '@/types/forms/formOption';\r\nimport { MeasuringConceptsFormStep } from '@/types/forms/formSteps/measuringConceptsFormStep';\r\nimport { checked } from '@/validators/checked';\r\nimport { float } from '@/validators/float';\r\nimport { mustBeLowerThanOrEqualToSelfGenerationQuantity } from '@/validators/mustBeLowerThanOrEqualToSelfGenerationQuantity';\r\nimport { mustBeNoMoreThan20PercentAboveSuggestion } from '@/validators/mustBeNoMoreThan20PercentAboveSuggestion';\r\nimport { positive } from '@/validators/positive';\r\nimport { alphaNum, maxLength, required } from 'vuelidate/lib/validators';\r\nimport { cloneDeep as _cloneDeep } from 'lodash';\r\nimport { MeasuringConceptOperatingModeType } from '@/types/forms/shared/measuringConceptsOperatingModeType';\r\n\r\nconst operatingMode = new SelectField({\r\n options: [\r\n new FormOption({ key: 'fullInfeed' }),\r\n new FormOption({ key: 'surplusInfeed' }),\r\n new FormOption({ key: 'zeroInfeed' }),\r\n new FormOption({ key: 'commercialTransfer' }),\r\n ],\r\n validators: {\r\n required,\r\n },\r\n});\r\n\r\nconst operatingModeStorage = _cloneDeep(operatingMode);\r\n\r\nexport const measuringConceptsFormStep = new MeasuringConceptsFormStep({\r\n operatingMode,\r\n operatingModeStorage,\r\n fullInfeedBonusHeadline: new FormElement(),\r\n fullInfeedBonus: new CheckboxField(),\r\n measuringPointOperatorInfo: new FormElement(),\r\n meterNumber: new TextField({\r\n validators: {\r\n required,\r\n alphaNum,\r\n maxLength: maxLength(14),\r\n },\r\n }),\r\n measuringPointOperation: new RadioButtonsField({\r\n value: 'ewe',\r\n options: [\r\n new FormOption({ key: 'ewe' }),\r\n new FormOption({ key: 'other' }),\r\n ],\r\n validators: {\r\n required,\r\n },\r\n }),\r\n measuringPointOperator: new SelectField({\r\n hasServiceDrivenOptions: true,\r\n validators: {\r\n required,\r\n },\r\n }),\r\n priceSheetMeasuringPointOperation: new FormElement(),\r\n measuringPointOperationInfoEwe: new FormElement(),\r\n measuringPointOperationFollowingConditionsAndGtacEwe: new CheckboxField({\r\n value: false,\r\n validators: { checked },\r\n }),\r\n measuringPointOperationInfoOther: new FormElement(),\r\n selfGenerationQuantity: new TextField({\r\n value: '0,00',\r\n validators: {\r\n required,\r\n float,\r\n positive,\r\n mustBeNoMoreThan20PercentAboveSuggestion,\r\n },\r\n }),\r\n selfSupplyQuantity: new TextField({\r\n value: '0,00',\r\n validators: {\r\n required,\r\n float,\r\n positive,\r\n mustBeLowerThanOrEqualToSelfGenerationQuantity,\r\n },\r\n }),\r\n remainingElectricityInfo: new FormElement(),\r\n storageHeadline: new FormElement(),\r\n});\r\n","import { CheckboxField } from '../fields/checkboxField';\r\nimport { FormList } from '../fields/formList';\r\nimport { RadioButtonsField } from '../fields/radioButtonsField';\r\nimport { TextField } from '../fields/textField';\r\nimport { FormElement, FormElementConfig } from '../formElement';\r\nimport { FormStep } from '../formStep';\r\nimport { ConnectionTypeSelectorType } from '../shared/connectionTypeSelectorType';\r\nimport { GridControlImplementationPreferenceType } from '../shared/gridControlImplementationPreferenceType';\r\nimport { WithOptional } from '../utility';\r\n\r\ntype ConfigProps = WithOptional<\r\n ControllableConsumptionDevicesFormStep,\r\n keyof FormStep\r\n>;\r\n\r\nexport class ControllableConsumptionDevicesFormStep extends FormStep {\r\n public readonly controllableConsumptionDevicesInfo: FormElement;\r\n public readonly gridControlConditionsAccepted: CheckboxField;\r\n public readonly gridControlImplementationPreference: RadioButtonsField<\r\n GridControlImplementationPreferenceType\r\n >;\r\n public readonly connectionTypeSelector: RadioButtonsField<\r\n ConnectionTypeSelectorType\r\n >;\r\n public readonly identificationNumbersOfRegisteredConsumptionDevices: FormList<\r\n TextField,\r\n FormElementConfig\r\n >;\r\n public readonly controllableConsumptionFacilitiesRequirementInfo: FormElement;\r\n\r\n constructor(config: ConfigProps) {\r\n super(config);\r\n this.controllableConsumptionDevicesInfo =\r\n config.controllableConsumptionDevicesInfo;\r\n this.gridControlConditionsAccepted =\r\n config.gridControlConditionsAccepted;\r\n this.gridControlImplementationPreference =\r\n config.gridControlImplementationPreference;\r\n this.connectionTypeSelector = config.connectionTypeSelector;\r\n this.identificationNumbersOfRegisteredConsumptionDevices =\r\n config.identificationNumbersOfRegisteredConsumptionDevices;\r\n this.controllableConsumptionFacilitiesRequirementInfo =\r\n config.controllableConsumptionFacilitiesRequirementInfo;\r\n }\r\n}\r\n","import { helpers } from 'vuelidate/lib/validators';\r\n\r\n/**\r\n * All rcdin's must follow a certain pattern (One uppercase letter, followed by 10 digits)\r\n */\r\nexport const registeredConsumptionDeviceIdentificationNumber = helpers.regex(\r\n 'registeredConsumptionDeviceIdentificationNumber',\r\n /^[A-Z]\\d{10}$/,\r\n);\r\n","import { Forms } from '@/types/forms/forms';\r\nimport { CombinedVueInstance } from 'vue/types/vue';\r\nimport { ValidationRule } from 'vuelidate/lib/validators';\r\n\r\n/**\r\n * Validates that the form list of rcdin's doesn't end up having additional but empty fields,\r\n * though the field is inherintly optional, as long as no information is provided at all\r\n */\r\nexport const registeredConsumptionDeviceIdentificationNumbers = function <\r\n Instance extends Vue\r\n>(\r\n this: CombinedVueInstance<\r\n Instance,\r\n { model: Forms },\r\n unknown,\r\n unknown,\r\n unknown\r\n >,\r\n) {\r\n const numbers = this.model.application.controllableConsumptionDevices.identificationNumbersOfRegisteredConsumptionDevices.items.map(\r\n (item) => item.value,\r\n );\r\n\r\n if (!numbers || !Array.isArray(numbers) || numbers.length <= 1) {\r\n return true;\r\n }\r\n\r\n return numbers.every(\r\n (val) =>\r\n val !== undefined &&\r\n val !== null &&\r\n (typeof val !== 'string' || val !== ''),\r\n );\r\n} as ValidationRule;\r\n","import { CheckboxField } from '@/types/forms/fields/checkboxField';\r\nimport { FormList } from '@/types/forms/fields/formList';\r\nimport { RadioButtonsField } from '@/types/forms/fields/radioButtonsField';\r\nimport { TextField } from '@/types/forms/fields/textField';\r\nimport { FormElement } from '@/types/forms/formElement';\r\nimport { FormOption } from '@/types/forms/formOption';\r\nimport { ControllableConsumptionDevicesFormStep } from '@/types/forms/formSteps/controllableConsumptionDevicesFormStep';\r\nimport { checked } from '@/validators/checked';\r\nimport { registeredConsumptionDeviceIdentificationNumber } from '@/validators/registeredConsumptionDeviceIdentificationNumber';\r\nimport { registeredConsumptionDeviceIdentificationNumbers } from '@/validators/registeredConsumptionDeviceIdentificationNumbers';\r\nimport { required } from 'vuelidate/lib/validators';\r\n\r\nexport const controllableConsumptionDevicesFormStep = new ControllableConsumptionDevicesFormStep(\r\n {\r\n controllableConsumptionDevicesInfo: new FormElement(),\r\n gridControlConditionsAccepted: new CheckboxField({\r\n validators: {\r\n checked,\r\n },\r\n }),\r\n gridControlImplementationPreference: new RadioButtonsField({\r\n value: 'directControl',\r\n options: [\r\n new FormOption({ key: 'directControl' }),\r\n new FormOption({ key: 'emsControl' }),\r\n ],\r\n validators: {\r\n required,\r\n },\r\n }),\r\n connectionTypeSelector: new RadioButtonsField({\r\n value: 'relayContacts',\r\n options: [\r\n new FormOption({ key: 'relayContacts' }),\r\n new FormOption({ key: 'digitalInterfaceEEBUS' }),\r\n ],\r\n validators: {\r\n required,\r\n },\r\n }),\r\n identificationNumbersOfRegisteredConsumptionDevices: new FormList(\r\n TextField,\r\n {\r\n initializeItems: 1,\r\n minItemCount: 0,\r\n maxItemCount: 8,\r\n validators: {\r\n registeredConsumptionDeviceIdentificationNumber,\r\n registeredConsumptionDeviceIdentificationNumbers,\r\n },\r\n },\r\n ),\r\n controllableConsumptionFacilitiesRequirementInfo: new FormElement(),\r\n },\r\n);\r\n","import { TextField } from '../fields/textField';\r\nimport { FormElement } from '../formElement';\r\nimport { RadioButtonsField } from '../fields/radioButtonsField';\r\nimport { DateField } from '../fields/dateField';\r\nimport { FormStep } from '../formStep';\r\nimport { WithOptional } from '../utility';\r\nimport { TaxValueType } from '../shared/taxValueType';\r\nimport { CheckboxField } from '../fields/checkboxField';\r\nimport { ReasonNoEegRemunerationType } from '../shared/reasonNoEegRemunerationType';\r\nimport { PlantSalesMethodAssignmentType } from '../shared/plantSalesMethodAssignmentType';\r\n\r\ntype ConfigProps = WithOptional;\r\n\r\nexport class BillingFormStep extends FormStep {\r\n public readonly paymentRequirements: FormElement;\r\n public readonly plantSalesMethodAssignment: RadioButtonsField<\r\n PlantSalesMethodAssignmentType\r\n >;\r\n public readonly noEegRemuneration: CheckboxField;\r\n public readonly reasonNoEegRemuneration: RadioButtonsField<\r\n ReasonNoEegRemunerationType\r\n >;\r\n public readonly noEegRemunerationHint: FormElement;\r\n public readonly explanationNoEegRemuneration: TextField;\r\n public readonly taxNumberWillFollow: CheckboxField;\r\n public readonly taxNumber: TextField;\r\n public readonly smallPVTaxAdvisorHint: FormElement;\r\n public readonly matchingTaxIDHint: FormElement;\r\n public readonly tax: RadioButtonsField;\r\n public readonly noFinancialDistress: CheckboxField;\r\n public readonly noPendingEURecoveryClaims: CheckboxField;\r\n public readonly directDebitMandate: FormElement;\r\n public readonly iban: TextField;\r\n public readonly nameAndDomicileCreditInstitution: TextField;\r\n public readonly date: DateField;\r\n public readonly accountOwnerName: TextField;\r\n\r\n public constructor(config: ConfigProps) {\r\n super(config);\r\n\r\n this.paymentRequirements = config.paymentRequirements;\r\n this.plantSalesMethodAssignment = config.plantSalesMethodAssignment;\r\n this.noEegRemuneration = config.noEegRemuneration;\r\n this.reasonNoEegRemuneration = config.reasonNoEegRemuneration;\r\n this.noEegRemunerationHint = config.noEegRemunerationHint;\r\n this.explanationNoEegRemuneration = config.explanationNoEegRemuneration;\r\n this.taxNumberWillFollow = config.taxNumberWillFollow;\r\n this.taxNumber = config.taxNumber;\r\n this.smallPVTaxAdvisorHint = config.smallPVTaxAdvisorHint;\r\n this.matchingTaxIDHint = config.matchingTaxIDHint;\r\n this.tax = config.tax;\r\n this.noFinancialDistress = config.noFinancialDistress;\r\n this.noPendingEURecoveryClaims = config.noPendingEURecoveryClaims;\r\n this.directDebitMandate = config.directDebitMandate;\r\n this.iban = config.iban;\r\n this.nameAndDomicileCreditInstitution =\r\n config.nameAndDomicileCreditInstitution;\r\n this.date = config.date;\r\n this.accountOwnerName = config.accountOwnerName;\r\n }\r\n}\r\n","import { helpers, ValidationRule } from 'vuelidate/lib/validators';\r\nimport moment from 'moment';\r\nimport { germanDateFormat } from '@/utilities/germanFormats';\r\nimport { date } from './date';\r\nimport { DateRange } from '@/types/forms/shared/dateRange';\r\n\r\n/*\r\n * Determines whether the given value is greater than the given minDate. Moment js is used\r\n here to parse the string in German format. The moment() function accepts the string and format and\r\n will internally create a Date object. The chained isSameOrAfter function performs the comparison.\r\n https://momentjs.com/docs/#/use-it/\r\n*/\r\n\r\nexport const minDate = (minDate: string): ValidationRule => {\r\n return helpers.withParams(\r\n { type: 'minDate', minDate },\r\n (value: string | null | DateRange) => {\r\n const validateValue =\r\n typeof value === 'string' || value == null\r\n ? value\r\n : value.start;\r\n return (\r\n !!minDate &&\r\n (!helpers.req(validateValue) ||\r\n !date(validateValue) ||\r\n moment(validateValue, germanDateFormat, true).isSameOrAfter(\r\n moment(minDate, germanDateFormat, true),\r\n ))\r\n );\r\n },\r\n );\r\n};\r\n","import moment from 'moment';\r\nimport { minDate } from './minDate';\r\nimport { germanDateFormat } from '@/utilities/germanFormats';\r\n\r\nexport const minDateNow = minDate(moment().format(germanDateFormat));\r\n","import moment from 'moment';\r\nimport { maxDate } from './maxDate';\r\nimport { germanDateFormat } from '@/utilities/germanFormats';\r\n\r\nexport const maxDate3Months = maxDate(\r\n moment().add(3, 'months').format(germanDateFormat),\r\n);\r\n","import { required } from 'vuelidate/lib/validators';\r\nimport { FormElement } from '@/types/forms/formElement';\r\nimport { FormOption } from '@/types/forms/formOption';\r\nimport { DateField } from '@/types/forms/fields/dateField';\r\nimport { TextField } from '@/types/forms/fields/textField';\r\nimport { RadioButtonsField } from '@/types/forms/fields/radioButtonsField';\r\nimport { iban } from '@/validators/iban';\r\nimport { BillingFormStep } from '@/types/forms/formSteps/billingFormStep';\r\nimport { CheckboxField } from '@/types/forms/fields/checkboxField';\r\nimport { requiredDate } from '@/validators/requiredDate';\r\nimport { minDateNow } from '@/validators/minDateNow';\r\nimport { maxDate3Months } from '@/validators/maxDate3Months';\r\nimport { checked } from '@/validators/checked';\r\n\r\nexport const billingFormStep = new BillingFormStep({\r\n paymentRequirements: new FormElement(),\r\n plantSalesMethodAssignment: new RadioButtonsField({\r\n value: 'statutoryCompensation',\r\n options: [\r\n new FormOption({ key: 'statutoryCompensation' }),\r\n new FormOption({ key: 'directMarketingMarketPremium' }),\r\n new FormOption({ key: 'otherDirectMarketing' }),\r\n new FormOption({ key: 'freeAcceptance' }),\r\n ],\r\n validators: {\r\n required,\r\n },\r\n }),\r\n noEegRemuneration: new CheckboxField(),\r\n reasonNoEegRemuneration: new RadioButtonsField({\r\n value: 'economicDisadvantages',\r\n options: [\r\n new FormOption({ key: 'economicDisadvantages' }),\r\n new FormOption({ key: 'other' }),\r\n ],\r\n validators: {\r\n required,\r\n },\r\n }),\r\n explanationNoEegRemuneration: new TextField({\r\n validators: {\r\n required,\r\n },\r\n }),\r\n noEegRemunerationHint: new FormElement(),\r\n taxNumberWillFollow: new CheckboxField(),\r\n taxNumber: new TextField({\r\n validators: {\r\n required,\r\n },\r\n }),\r\n smallPVTaxAdvisorHint: new FormElement(),\r\n matchingTaxIDHint: new FormElement(),\r\n tax: new RadioButtonsField({\r\n value: 'noSalesTax',\r\n options: [\r\n new FormOption({ key: 'noSalesTax' }),\r\n new FormOption({ key: 'salesTax' }),\r\n ],\r\n validators: {\r\n required,\r\n },\r\n }),\r\n noFinancialDistress: new CheckboxField({\r\n validators: {\r\n checked,\r\n },\r\n }),\r\n noPendingEURecoveryClaims: new CheckboxField({\r\n validators: {\r\n checked,\r\n },\r\n }),\r\n directDebitMandate: new FormElement(),\r\n iban: new TextField({\r\n validators: {\r\n required,\r\n iban,\r\n },\r\n }),\r\n nameAndDomicileCreditInstitution: new TextField(),\r\n date: new DateField({\r\n validators: {\r\n requiredDate,\r\n minDateNow,\r\n maxDate3Months,\r\n },\r\n }),\r\n accountOwnerName: new TextField({\r\n validators: {\r\n required,\r\n },\r\n }),\r\n});\r\n","import { CheckboxField } from '../fields/checkboxField';\r\nimport { TextField } from '../fields/textField';\r\nimport { FormElement } from '../formElement';\r\nimport { FormStep } from '../formStep';\r\nimport { WithOptional } from '../utility';\r\n\r\ntype ConfigProps = WithOptional;\r\n\r\nexport class CheckAndSendFormStep extends FormStep {\r\n public readonly checkNotice: FormElement;\r\n public readonly comments: TextField;\r\n public readonly summaryDocument: FormElement;\r\n public readonly privacyInformation: CheckboxField;\r\n public readonly generalTermsConsent: CheckboxField;\r\n public readonly marketingConsent: CheckboxField;\r\n public readonly correctnessNotice: FormElement;\r\n\r\n public constructor(config: ConfigProps) {\r\n super(config);\r\n\r\n this.checkNotice = config.checkNotice;\r\n this.comments = config.comments;\r\n this.summaryDocument = config.summaryDocument;\r\n this.privacyInformation = config.privacyInformation;\r\n this.generalTermsConsent = config.generalTermsConsent;\r\n this.marketingConsent = config.marketingConsent;\r\n this.correctnessNotice = config.correctnessNotice;\r\n }\r\n}\r\n","import { CheckboxField } from '@/types/forms/fields/checkboxField';\r\nimport { TextField } from '@/types/forms/fields/textField';\r\nimport { FormElement } from '@/types/forms/formElement';\r\nimport { CheckAndSendFormStep } from '@/types/forms/formSteps/checkAndSendFormStep';\r\nimport { checked } from '@/validators/checked';\r\n\r\nexport const checkAndSendFormStep = new CheckAndSendFormStep({\r\n checkNotice: new FormElement(),\r\n comments: new TextField(),\r\n summaryDocument: new FormElement(),\r\n privacyInformation: new CheckboxField({\r\n validators: {\r\n checked,\r\n },\r\n }),\r\n generalTermsConsent: new CheckboxField({\r\n validators: {\r\n checked,\r\n },\r\n }),\r\n marketingConsent: new CheckboxField(),\r\n correctnessNotice: new FormElement(),\r\n});\r\n","import { UploadedFileInfo } from '@/api/interfaces/file/uploadedFileInfo';\r\nimport { JSONSchema7Definition } from 'json-schema';\r\nimport { defaults as _defaults } from 'lodash';\r\nimport {\r\n FormFieldConfig,\r\n formFieldDefaultConfig,\r\n FormField,\r\n} from './formField';\r\n\r\nexport interface UploadFieldConfig extends FormFieldConfig {\r\n value?: UploadedFileInfo;\r\n}\r\n\r\nexport const uploadFieldDefaultConfig = {\r\n ...formFieldDefaultConfig,\r\n};\r\n\r\nexport class UploadField extends FormField {\r\n public constructor(config?: UploadFieldConfig) {\r\n const resolvedConfig = _defaults(\r\n config || ({} as UploadFieldConfig),\r\n uploadFieldDefaultConfig,\r\n );\r\n\r\n super(resolvedConfig);\r\n }\r\n\r\n public getJsonSchema(): JSONSchema7Definition {\r\n return {\r\n type: 'object',\r\n properties: {\r\n id: {\r\n type: 'string',\r\n },\r\n name: {\r\n type: 'string',\r\n },\r\n size: {\r\n type: 'number',\r\n },\r\n url: {\r\n type: 'string',\r\n },\r\n },\r\n };\r\n }\r\n}\r\n","import { FormStep } from '../formStep';\r\nimport { WithOptional } from '../utility';\r\nimport { UploadField } from '../fields/uploadField';\r\nimport { FormGroup } from '../formGroup';\r\nimport { FormList } from '../fields/formList';\r\nimport { FormElementConfig } from '../formElement';\r\nimport { ReferenceFormGroup } from '../formGroups/referenceFormGroup';\r\n\r\ntype ConfigProps = WithOptional;\r\n\r\ntype GeneratorModuleFormGroupConfig = FormElementConfig &\r\n Omit;\r\n\r\nexport class GeneratorModuleFormGroup extends ReferenceFormGroup {\r\n public readonly generatorTechnicalDataSheet: UploadField;\r\n public readonly generatorConformityConfirmationOrUnitCertificate: UploadField;\r\n public readonly generatorProofOfConformity: UploadField;\r\n public readonly generatorUnitOrPrototypeConfirmation: UploadField;\r\n public readonly generatorComponentCertificate: UploadField;\r\n\r\n constructor(\r\n config: GeneratorModuleFormGroupConfig,\r\n id: string | undefined = undefined,\r\n ) {\r\n super(config, id);\r\n\r\n this.generatorTechnicalDataSheet = config.generatorTechnicalDataSheet;\r\n this.generatorConformityConfirmationOrUnitCertificate =\r\n config.generatorConformityConfirmationOrUnitCertificate;\r\n this.generatorProofOfConformity = config.generatorProofOfConformity;\r\n this.generatorUnitOrPrototypeConfirmation =\r\n config.generatorUnitOrPrototypeConfirmation;\r\n this.generatorComponentCertificate =\r\n config.generatorComponentCertificate;\r\n }\r\n}\r\n\r\nexport type GeneratorModuleFormList = FormList<\r\n GeneratorModuleFormGroup,\r\n GeneratorModuleFormGroupConfig\r\n>;\r\n\r\nexport type InverterModuleFormGroupConfig = FormElementConfig &\r\n Omit;\r\n\r\nexport class InverterModuleFormGroup extends ReferenceFormGroup {\r\n public readonly inverterConformityConfirmationOrUnitCertificate: UploadField;\r\n public readonly inverterTechnicalDataSheet: UploadField;\r\n public readonly inverterProofOfConformity: UploadField;\r\n public readonly inverterUnitCertificate: UploadField;\r\n\r\n public constructor(\r\n config: InverterModuleFormGroupConfig,\r\n id: string | undefined = undefined,\r\n ) {\r\n super(config, id);\r\n\r\n this.inverterConformityConfirmationOrUnitCertificate =\r\n config.inverterConformityConfirmationOrUnitCertificate;\r\n this.inverterTechnicalDataSheet = config.inverterTechnicalDataSheet;\r\n this.inverterProofOfConformity = config.inverterProofOfConformity;\r\n this.inverterUnitCertificate = config.inverterUnitCertificate;\r\n }\r\n}\r\n\r\nexport type InverterModuleFormList = FormList<\r\n InverterModuleFormGroup,\r\n InverterModuleFormGroupConfig\r\n>;\r\n\r\nexport type StorageModuleFormGroupConfig = FormElementConfig &\r\n Omit;\r\n\r\nexport class StorageModuleFormGroup extends ReferenceFormGroup {\r\n public readonly storageManufacturerDataSheet: UploadField;\r\n\r\n public constructor(\r\n config: StorageModuleFormGroupConfig,\r\n id: string | undefined = undefined,\r\n ) {\r\n super(config, id);\r\n\r\n this.storageManufacturerDataSheet = config.storageManufacturerDataSheet;\r\n }\r\n}\r\n\r\nexport type StorageModuleFormList = FormList<\r\n StorageModuleFormGroup,\r\n StorageModuleFormGroupConfig\r\n>;\r\n\r\nexport class DocumentsFormStep extends FormStep {\r\n public readonly meterPicture: UploadField;\r\n public readonly bafaApproval: UploadField;\r\n\r\n public readonly gridAndPlantProtectionProofOfConformity: UploadField;\r\n\r\n public readonly performanceMonitoringCertificate: UploadField;\r\n public readonly sitePlanWithLotNumber: UploadField;\r\n public readonly electricalSystemCircuitDiagram: UploadField;\r\n\r\n public readonly proofOfReadyForPlanning: UploadField;\r\n\r\n public readonly generatorModules: GeneratorModuleFormList;\r\n public readonly inverterModules: InverterModuleFormList;\r\n public readonly inverterStorageModules: InverterModuleFormList;\r\n public readonly storageModules: StorageModuleFormList;\r\n\r\n public constructor(config: ConfigProps) {\r\n super(config);\r\n this.meterPicture = config.meterPicture;\r\n this.bafaApproval = config.bafaApproval;\r\n\r\n this.gridAndPlantProtectionProofOfConformity =\r\n config.gridAndPlantProtectionProofOfConformity;\r\n\r\n this.performanceMonitoringCertificate =\r\n config.performanceMonitoringCertificate;\r\n this.sitePlanWithLotNumber = config.sitePlanWithLotNumber;\r\n this.electricalSystemCircuitDiagram =\r\n config.electricalSystemCircuitDiagram;\r\n\r\n this.proofOfReadyForPlanning = config.proofOfReadyForPlanning;\r\n\r\n this.generatorModules = config.generatorModules;\r\n this.inverterModules = config.inverterModules;\r\n this.inverterStorageModules = config.inverterStorageModules;\r\n this.storageModules = config.storageModules;\r\n }\r\n}\r\n","import { UploadedFileInfo } from '@/api/interfaces/file/uploadedFileInfo';\r\nimport { helpers } from 'vuelidate/lib/validators';\r\nimport { appConfiguration } from '@/services/form/appConfiguration';\r\n\r\n// file types as array of extensions without the dot. e.g. ['pdf', 'jpg']\r\nexport const fileType = (value: UploadedFileInfo): boolean => {\r\n if (value?.scId) {\r\n const allowedTypes =\r\n appConfiguration?.fileUploadConfigurations[value.scId]?.fileTypes;\r\n const lowercaseExtension = value?.name?.split('.').pop()?.toLowerCase();\r\n return (\r\n !helpers.req(value) ||\r\n allowedTypes.some((key) => key.toLowerCase() === lowercaseExtension)\r\n );\r\n }\r\n return true;\r\n};\r\n","import { UploadedFileInfo } from '@/api/interfaces/file/uploadedFileInfo';\r\nimport { appConfiguration } from '@/services/form/appConfiguration';\r\nimport { helpers } from 'vuelidate/lib/validators';\r\n\r\n// maximum file size in bytes\r\nexport const maxFileSize = (value: UploadedFileInfo): boolean => {\r\n if (value?.scId) {\r\n const maxSize =\r\n appConfiguration?.fileUploadConfigurations[value.scId]?.maxFileSize;\r\n return !helpers.req(value) || maxSize >= value.size;\r\n }\r\n return true;\r\n};\r\n","import { UploadField } from '@/types/forms/fields/uploadField';\r\nimport {\r\n DocumentsFormStep,\r\n GeneratorModuleFormGroup,\r\n InverterModuleFormGroup,\r\n StorageModuleFormGroup,\r\n} from '@/types/forms/formSteps/documentsFormStep';\r\nimport { fileType } from '@/validators/fileType';\r\nimport { maxFileSize } from '@/validators/maxFileSize';\r\nimport { required } from 'vuelidate/lib/validators';\r\nimport { FormList } from '@/types/forms/fields/formList';\r\nimport { cloneDeep as _cloneDeep } from 'lodash';\r\n\r\nconst inverterModules = new FormList(InverterModuleFormGroup, {\r\n initializeItems: 1,\r\n minItemCount: 1,\r\n maxItemCount: 5,\r\n inverterConformityConfirmationOrUnitCertificate: new UploadField({\r\n validators: {\r\n required,\r\n fileType,\r\n maxFileSize,\r\n },\r\n }),\r\n inverterTechnicalDataSheet: new UploadField({\r\n validators: {\r\n required,\r\n fileType,\r\n maxFileSize,\r\n },\r\n }),\r\n inverterProofOfConformity: new UploadField({\r\n validators: {\r\n fileType,\r\n maxFileSize,\r\n },\r\n }),\r\n inverterUnitCertificate: new UploadField({\r\n validators: {\r\n required,\r\n fileType,\r\n maxFileSize,\r\n },\r\n }),\r\n});\r\n\r\nexport const documentsFormStep = new DocumentsFormStep({\r\n meterPicture: new UploadField({\r\n validators: {\r\n required,\r\n fileType,\r\n maxFileSize,\r\n },\r\n }),\r\n bafaApproval: new UploadField({\r\n validators: {\r\n fileType,\r\n maxFileSize,\r\n },\r\n }),\r\n gridAndPlantProtectionProofOfConformity: new UploadField({\r\n validators: {\r\n fileType,\r\n maxFileSize,\r\n },\r\n }),\r\n performanceMonitoringCertificate: new UploadField({\r\n validators: {\r\n required,\r\n fileType,\r\n maxFileSize,\r\n },\r\n }),\r\n sitePlanWithLotNumber: new UploadField({\r\n validators: {\r\n required,\r\n fileType,\r\n maxFileSize,\r\n },\r\n }),\r\n electricalSystemCircuitDiagram: new UploadField({\r\n validators: {\r\n required,\r\n fileType,\r\n maxFileSize,\r\n },\r\n }),\r\n proofOfReadyForPlanning: new UploadField({\r\n validators: {\r\n required,\r\n fileType,\r\n maxFileSize,\r\n },\r\n }),\r\n generatorModules: new FormList(GeneratorModuleFormGroup, {\r\n initializeItems: 1,\r\n minItemCount: 1,\r\n maxItemCount: 5,\r\n generatorConformityConfirmationOrUnitCertificate: new UploadField({\r\n validators: {\r\n required,\r\n fileType,\r\n maxFileSize,\r\n },\r\n }),\r\n generatorTechnicalDataSheet: new UploadField({\r\n validators: {\r\n required,\r\n fileType,\r\n maxFileSize,\r\n },\r\n }),\r\n generatorProofOfConformity: new UploadField({\r\n validators: {\r\n fileType,\r\n maxFileSize,\r\n },\r\n }),\r\n generatorUnitOrPrototypeConfirmation: new UploadField({\r\n validators: {\r\n required,\r\n fileType,\r\n maxFileSize,\r\n },\r\n }),\r\n generatorComponentCertificate: new UploadField({\r\n validators: {\r\n fileType,\r\n maxFileSize,\r\n },\r\n }),\r\n }),\r\n inverterModules,\r\n inverterStorageModules: _cloneDeep(inverterModules),\r\n storageModules: new FormList(StorageModuleFormGroup, {\r\n initializeItems: 1,\r\n minItemCount: 1,\r\n maxItemCount: 5,\r\n storageManufacturerDataSheet: new UploadField({\r\n validators: {\r\n required,\r\n fileType,\r\n maxFileSize,\r\n },\r\n }),\r\n }),\r\n});\r\n","import { ApplicationForm } from '@/types/forms/specific/applicationForm';\r\nimport { locationFormStep } from './application/location';\r\nimport { generationTypeFormStep } from './application/generationType';\r\nimport { powerConnectionFormStep } from './application/powerConnection';\r\nimport { plantOperatorFormStep } from './application/plantOperator';\r\nimport { plantBuilderFormStep } from './application/plantBuilder';\r\nimport { plantDataFormStep } from './application/plantData';\r\nimport { propertyOwnerFormStep } from './application/propertyOwner';\r\nimport { plantPerformanceFormStep } from './application/plantPerformance';\r\nimport { measuringConceptsFormStep } from './application/measuringConcepts';\r\nimport { controllableConsumptionDevicesFormStep } from './application/controllableConsumptionDevices';\r\nimport { billingFormStep } from './application/billing';\r\nimport { checkAndSendFormStep } from './application/checkAndSend';\r\nimport { documentsFormStep } from './application/documents';\r\n\r\nexport const applicationForm = new ApplicationForm({\r\n steps: [\r\n '_init_',\r\n 'generationType',\r\n 'location',\r\n 'plantPerformance',\r\n 'powerConnection',\r\n 'plantData',\r\n 'measuringConcepts',\r\n 'controllableConsumptionDevices',\r\n 'plantOperator',\r\n 'plantBuilder',\r\n 'propertyOwner',\r\n 'billing',\r\n 'documents',\r\n 'checkAndSend',\r\n ],\r\n applicationId: null,\r\n generationType: generationTypeFormStep,\r\n location: locationFormStep,\r\n plantPerformance: plantPerformanceFormStep,\r\n powerConnection: powerConnectionFormStep,\r\n plantOperator: plantOperatorFormStep,\r\n plantBuilder: plantBuilderFormStep,\r\n plantData: plantDataFormStep,\r\n propertyOwner: propertyOwnerFormStep,\r\n measuringConcepts: measuringConceptsFormStep,\r\n controllableConsumptionDevices: controllableConsumptionDevicesFormStep,\r\n billing: billingFormStep,\r\n documents: documentsFormStep,\r\n checkAndSend: checkAndSendFormStep,\r\n /**\r\n * If you change the version, you also have to modify src\\services\\form\\modelService.ts -> migrateApplicationFormData() accordingly\r\n */\r\n version: 10,\r\n serverSideMigration: false,\r\n});\r\n","import { Form } from '../form';\r\nimport { WithOptional } from '../utility';\r\nimport { KitchenSinkFormStep1 } from './kitchensinkFormStep1';\r\nimport { KitchenSinkFormStep2 } from './kitchensinkFormStep2';\r\nimport { KitchenSinkFormStep3 } from './kitchensinkFormStep3';\r\nimport { KitchenSinkFormStep4 } from './kitchensinkFormStep4';\r\n\r\ntype ConfigProps = WithOptional;\r\n\r\nexport class KitchenSinkForm extends Form {\r\n public readonly applicationId: string;\r\n public readonly step1: KitchenSinkFormStep1;\r\n public readonly step2: KitchenSinkFormStep2;\r\n public readonly step3: KitchenSinkFormStep3;\r\n public readonly step4: KitchenSinkFormStep4;\r\n\r\n public constructor(config: ConfigProps) {\r\n super(Object.assign(config) as Form);\r\n\r\n this.applicationId = config.applicationId;\r\n this.step1 = config.step1;\r\n this.step2 = config.step2;\r\n this.step3 = config.step3;\r\n this.step4 = config.step4;\r\n }\r\n}\r\n","import { helpers, ValidationRule } from 'vuelidate/lib/validators';\r\nimport moment from 'moment';\r\nimport { germanDateFormat } from '@/utilities/germanFormats';\r\nimport { date } from './date';\r\nimport { DateRange } from '@/types/forms/shared/dateRange';\r\n\r\n/*\r\n * Determines whether the given value is between the specified minDate and maxDate. Moment js is used\r\n here to parse the string in German format. The moment() function accepts the string and format and\r\n will internally create a Date object. The chained isBetween function performs the comparison. The last\r\n parameter sets inclusivity for the start and end dates.\r\n https://momentjs.com/docs/#/use-it/\r\n*/\r\n\r\nexport const inDateRange = (\r\n minDate: string,\r\n maxDate: string,\r\n): ValidationRule => {\r\n return helpers.withParams(\r\n { type: 'inDateRange', minDate, maxDate },\r\n (value: string | null | DateRange) => {\r\n const validateValueMin =\r\n typeof value === 'string' || value == null\r\n ? value\r\n : value.start;\r\n const validateValueMax =\r\n typeof value === 'string' || value == null ? value : value.end;\r\n return (\r\n !!minDate &&\r\n !!maxDate &&\r\n (!helpers.req(validateValueMin) ||\r\n !date(validateValueMin) ||\r\n moment(validateValueMin, germanDateFormat, true).isBetween(\r\n moment(minDate, germanDateFormat, true),\r\n moment(maxDate, germanDateFormat, true),\r\n undefined,\r\n '[]',\r\n )) &&\r\n !!minDate &&\r\n !!maxDate &&\r\n (!helpers.req(validateValueMax) ||\r\n !date(validateValueMax) ||\r\n moment(validateValueMax, germanDateFormat, true).isBetween(\r\n moment(minDate, germanDateFormat, true),\r\n moment(maxDate, germanDateFormat, true),\r\n undefined,\r\n '[]',\r\n ))\r\n );\r\n },\r\n );\r\n};\r\n","import { FormElement } from '../formElement';\r\nimport { FormStep } from '../formStep';\r\nimport { TextField } from '../fields/textField';\r\nimport { GeoCoordinatesFormGroup } from '../fields/geoCoordinatesFormGroup';\r\nimport { CheckboxField } from '../fields/checkboxField';\r\nimport { SelectField } from '../fields/selectField';\r\nimport { UploadField } from '../fields/uploadField';\r\nimport { DateField } from '../fields/dateField';\r\nimport { CountField } from '../fields/countField';\r\nimport { WithOptional } from '../utility';\r\nimport { DateRangeField } from '../fields/dateRangeField';\r\n\r\ntype ConfigProps = WithOptional;\r\n\r\nexport class KitchenSinkFormStep1 extends FormStep {\r\n public readonly textBlock: FormElement;\r\n public readonly requiredField: TextField;\r\n public readonly multiLineField: TextField;\r\n public readonly numberField: TextField;\r\n public readonly wideField: TextField;\r\n public readonly innerLabelField: TextField;\r\n public readonly geoCoordinatesField: GeoCoordinatesFormGroup;\r\n public readonly checkboxField1: CheckboxField;\r\n public readonly checkboxField2: CheckboxField;\r\n public readonly selectField: SelectField;\r\n public readonly selectFieldSingleOption: SelectField;\r\n public readonly selectFieldSearch: SelectField;\r\n public readonly selectFieldMsb: SelectField;\r\n public readonly fileUpload: UploadField;\r\n public readonly datePickerField: DateField;\r\n public readonly datePickerRangeField: DateRangeField;\r\n public readonly countField: CountField;\r\n public readonly documentDownload: FormElement;\r\n public readonly formLinkButton: FormElement;\r\n public readonly formScriptButton: FormElement;\r\n\r\n public constructor(config: ConfigProps) {\r\n super(config);\r\n\r\n this.textBlock = config.textBlock;\r\n this.requiredField = config.requiredField;\r\n this.multiLineField = config.multiLineField;\r\n this.numberField = config.numberField;\r\n this.wideField = config.wideField;\r\n this.innerLabelField = config.innerLabelField;\r\n this.geoCoordinatesField = config.geoCoordinatesField;\r\n this.checkboxField1 = config.checkboxField1;\r\n this.checkboxField2 = config.checkboxField2;\r\n this.selectField = config.selectField;\r\n this.selectFieldSingleOption = config.selectFieldSingleOption;\r\n this.selectFieldSearch = config.selectFieldSearch;\r\n this.selectFieldMsb = config.selectFieldMsb;\r\n this.fileUpload = config.fileUpload;\r\n this.datePickerField = config.datePickerField;\r\n this.datePickerRangeField = config.datePickerRangeField;\r\n this.countField = config.countField;\r\n this.documentDownload = config.documentDownload;\r\n this.formLinkButton = config.formLinkButton;\r\n this.formScriptButton = config.formScriptButton;\r\n }\r\n}\r\n","import { required, integer } from 'vuelidate/lib/validators';\r\nimport { checked } from '@/validators/checked';\r\nimport { positive } from '@/validators/positive';\r\nimport { minDate } from '@/validators/minDate';\r\nimport { maxDate } from '@/validators/maxDate';\r\nimport { inDateRange } from '@/validators/inDateRange';\r\nimport { fileType } from '@/validators/fileType';\r\nimport { requiredDate } from '@/validators/requiredDate';\r\nimport { maxFileSize } from '@/validators/maxFileSize';\r\nimport { FormElement } from '@/types/forms/formElement';\r\nimport { FormOption } from '@/types/forms/formOption';\r\nimport { TextField } from '@/types/forms/fields/textField';\r\nimport { CheckboxField } from '@/types/forms/fields/checkboxField';\r\nimport {\r\n GeoCoordinatesFormGroup,\r\n GeoOrientation,\r\n} from '@/types/forms/fields/geoCoordinatesFormGroup';\r\nimport { SelectField } from '@/types/forms/fields/selectField';\r\nimport { UploadField } from '@/types/forms/fields/uploadField';\r\nimport { DateField } from '@/types/forms/fields/dateField';\r\nimport { KitchenSinkFormStep1 } from '@/types/forms/dummy/kitchensinkFormStep1';\r\nimport { CountField } from '@/types/forms/fields/countField';\r\nimport { DateRangeField } from '@/types/forms/fields/dateRangeField';\r\n\r\nexport const kitchenSinkFormStep1 = new KitchenSinkFormStep1({\r\n textBlock: new FormElement(),\r\n requiredField: new TextField({\r\n validators: {\r\n required,\r\n },\r\n }),\r\n multiLineField: new TextField({\r\n validators: {\r\n required,\r\n },\r\n }),\r\n numberField: new TextField({\r\n validators: {\r\n required,\r\n integer,\r\n positive,\r\n },\r\n }),\r\n wideField: new TextField({\r\n validators: {\r\n required,\r\n },\r\n }),\r\n innerLabelField: new TextField(),\r\n geoCoordinatesField: new GeoCoordinatesFormGroup({\r\n orientation: GeoOrientation.longitude,\r\n }),\r\n checkboxField1: new CheckboxField({\r\n validators: {\r\n checked,\r\n },\r\n }),\r\n checkboxField2: new CheckboxField({\r\n validators: {\r\n checked,\r\n },\r\n }),\r\n selectField: new SelectField({\r\n options: [\r\n new FormOption({ key: 'opt1' }),\r\n new FormOption({ key: 'opt2' }),\r\n new FormOption({ key: 'opt3' }),\r\n ],\r\n validators: {\r\n required,\r\n },\r\n }),\r\n selectFieldSingleOption: new SelectField({\r\n options: [new FormOption({ key: 'opt1' })],\r\n validators: {\r\n required,\r\n },\r\n }),\r\n selectFieldSearch: new SelectField({\r\n options: [\r\n new FormOption({ key: 'opt1' }),\r\n new FormOption({ key: 'opt2' }),\r\n new FormOption({ key: 'opt3' }),\r\n new FormOption({ key: 'opt4' }),\r\n new FormOption({ key: 'opt5' }),\r\n new FormOption({ key: 'opt6' }),\r\n new FormOption({ key: 'opt7' }),\r\n new FormOption({ key: 'opt8' }),\r\n new FormOption({ key: 'opt9' }),\r\n ],\r\n validators: {\r\n required,\r\n },\r\n }),\r\n selectFieldMsb: new SelectField({\r\n options: [],\r\n validators: {\r\n required,\r\n },\r\n }),\r\n fileUpload: new UploadField({\r\n validators: {\r\n required,\r\n fileType,\r\n maxFileSize,\r\n },\r\n }),\r\n datePickerField: new DateField({\r\n // value: '12.12.2020',\r\n availableStart: new Date(2020, 11, 1),\r\n availableEnd: new Date(2020, 11, 31),\r\n validators: {\r\n requiredDate,\r\n minDate: minDate('01.12.2020'),\r\n maxDate: maxDate('31.12.2020'),\r\n inDateRange: inDateRange('01.12.2020', '31.12.2020'),\r\n },\r\n }),\r\n datePickerRangeField: new DateRangeField({\r\n // value: {\r\n // start: '06.04.2024',\r\n // end: '10.04.2024',\r\n // },\r\n validators: {\r\n requiredDate,\r\n minDate: minDate('01.12.2020'),\r\n maxDate: maxDate('31.12.2020'),\r\n inDateRange: inDateRange('01.12.2020', '31.12.2020'),\r\n },\r\n }),\r\n countField: new CountField({\r\n validators: {\r\n required,\r\n },\r\n }),\r\n documentDownload: new FormElement(),\r\n formLinkButton: new FormElement(),\r\n formScriptButton: new FormElement(),\r\n});\r\n","import { FormStep } from '../formStep';\r\nimport { RadioButtonsField } from '../fields/radioButtonsField';\r\nimport { WithOptional } from '../utility';\r\n\r\ntype ConfigProps = WithOptional;\r\n\r\nexport class KitchenSinkFormStep2 extends FormStep {\r\n public readonly selected: RadioButtonsField;\r\n public readonly selectedTiles: RadioButtonsField;\r\n\r\n public constructor(config: ConfigProps) {\r\n super(config);\r\n\r\n this.selected = config.selected;\r\n this.selectedTiles = config.selectedTiles;\r\n }\r\n}\r\n","import { FormOption } from '@/types/forms/formOption';\r\nimport { RadioButtonsField } from '@/types/forms/fields/radioButtonsField';\r\nimport { KitchenSinkFormStep2 } from '@/types/forms/dummy/kitchensinkFormStep2';\r\n\r\nexport const kitchenSinkFormStep2 = new KitchenSinkFormStep2({\r\n selected: new RadioButtonsField({\r\n value: 'opt1',\r\n options: [\r\n new FormOption({ key: 'opt1' }),\r\n new FormOption({ key: 'opt2' }),\r\n new FormOption({ key: 'opt3' }),\r\n ],\r\n validators: {\r\n option3RightAnswer: (value: string): boolean => value === 'opt3',\r\n },\r\n }),\r\n selectedTiles: new RadioButtonsField({\r\n value: 'netzanschluss',\r\n options: [\r\n new FormOption({ key: 'netzanschluss' }),\r\n new FormOption({ key: 'einspeiseleistung' }),\r\n new FormOption({ key: 'verguetungen' }),\r\n ],\r\n validators: {\r\n everybodyIsInterestedInNetzanschluessen: (value: string): boolean =>\r\n value === 'netzanschluss',\r\n },\r\n }),\r\n});\r\n","import { FormStep } from '../formStep';\r\nimport { CheckboxesField } from '../fields/checkboxesField';\r\nimport { WithOptional } from '../utility';\r\n\r\ntype ConfigProps = WithOptional;\r\n\r\nexport class KitchenSinkFormStep3 extends FormStep {\r\n public readonly checkedOptions1: CheckboxesField;\r\n public readonly checkedOptions2: CheckboxesField;\r\n public readonly dropdownCheckedOptions: CheckboxesField;\r\n\r\n public constructor(config: ConfigProps) {\r\n super(config);\r\n\r\n this.checkedOptions1 = config.checkedOptions1;\r\n this.checkedOptions2 = config.checkedOptions2;\r\n this.dropdownCheckedOptions = config.dropdownCheckedOptions;\r\n }\r\n}\r\n","import { required, helpers } from 'vuelidate/lib/validators';\r\nimport { FormOption } from '@/types/forms/formOption';\r\nimport { CheckboxesField } from '@/types/forms/fields/checkboxesField';\r\nimport { KitchenSinkFormStep3 } from '@/types/forms/dummy/kitchensinkFormStep3';\r\n\r\nexport const kitchenSinkFormStep3 = new KitchenSinkFormStep3({\r\n checkedOptions1: new CheckboxesField({\r\n value: ['opt1', 'opt2'],\r\n options: [\r\n new FormOption({ key: 'opt1' }),\r\n new FormOption({ key: 'opt2' }),\r\n new FormOption({ key: 'opt3' }),\r\n ],\r\n validators: {\r\n required,\r\n },\r\n }),\r\n checkedOptions2: new CheckboxesField({\r\n options: [\r\n new FormOption({ key: 'friends' }),\r\n new FormOption({ key: 'internet' }),\r\n new FormOption({ key: 'television' }),\r\n new FormOption({ key: 'radio' }),\r\n ],\r\n validators: {\r\n radioIsForbidden: (value: string[]): boolean =>\r\n !helpers.req(value) || !value.includes('radio'),\r\n },\r\n }),\r\n dropdownCheckedOptions: new CheckboxesField({\r\n options: [\r\n new FormOption({ key: 'friends' }),\r\n new FormOption({ key: 'internet' }),\r\n new FormOption({ key: 'television' }),\r\n new FormOption({ key: 'radio' }),\r\n ],\r\n }),\r\n});\r\n","import { FormStep } from '../formStep';\r\nimport { TextField } from '../fields/textField';\r\nimport { KitchenSinkUserListType } from './formGroups/kitchenSinkUserList';\r\nimport { KitchenSinkPlantListType } from './formGroups/kitchenSinkPlantList';\r\nimport { WithOptional } from '../utility';\r\n\r\nexport type KitchenSinkFormStep4Config = WithOptional<\r\n KitchenSinkFormStep4,\r\n keyof FormStep\r\n>;\r\n\r\nexport class KitchenSinkFormStep4 extends FormStep {\r\n public readonly primary: TextField;\r\n public readonly secondary: TextField;\r\n\r\n public readonly users: KitchenSinkUserListType;\r\n public readonly plants: KitchenSinkPlantListType;\r\n\r\n public constructor(config: KitchenSinkFormStep4Config) {\r\n super(config);\r\n\r\n this.primary = config.primary;\r\n this.secondary = config.secondary;\r\n\r\n this.users = config.users;\r\n this.plants = config.plants;\r\n }\r\n}\r\n","import { FormElementConfig } from '../../formElement';\r\nimport { CheckboxField } from '../../fields/checkboxField';\r\nimport { FormGroup } from '../../formGroup';\r\nimport { TextField } from '../../fields/textField';\r\n\r\nexport type KitchenSinkPlantFormGroupConfig = FormElementConfig &\r\n Omit;\r\n\r\nexport class KitchenSinkPlantFormGroup extends FormGroup {\r\n public readonly number: TextField;\r\n public readonly checkbox: CheckboxField;\r\n\r\n public constructor(config: KitchenSinkPlantFormGroupConfig) {\r\n super(config);\r\n\r\n this.number = config.number;\r\n this.checkbox = config.checkbox;\r\n }\r\n}\r\n","import { FormElementConfig } from '../../formElement';\r\nimport { FormGroup } from '../../formGroup';\r\nimport { TextField } from '../../fields/textField';\r\n\r\nexport type KitchenSinkUserFormGroupConfig = FormElementConfig &\r\n Omit;\r\n\r\nexport class KitchenSinkUserFormGroup extends FormGroup {\r\n public readonly firstName: TextField;\r\n public readonly lastName: TextField;\r\n\r\n public constructor(config: KitchenSinkUserFormGroupConfig) {\r\n super(config);\r\n\r\n this.firstName = config.firstName;\r\n this.lastName = config.lastName;\r\n }\r\n}\r\n","import { CheckboxField } from '@/types/forms/fields/checkboxField';\r\nimport { KitchenSinkFormStep4 } from '@/types/forms/dummy/kitchensinkFormStep4';\r\nimport { KitchenSinkPlantFormGroup } from '@/types/forms/dummy/formGroups/kitchenSinkPlantFormGroup';\r\nimport { KitchenSinkUserFormGroup } from '@/types/forms/dummy/formGroups/kitchenSinkUserFormGroup';\r\nimport { FormList } from '@/types/forms/fields/formList';\r\nimport { TextField } from '@/types/forms/fields/textField';\r\nimport { required } from 'vuelidate/lib/validators';\r\n\r\nexport const kitchenSinkFormStep4 = new KitchenSinkFormStep4({\r\n primary: new TextField({\r\n validators: {\r\n required,\r\n },\r\n }),\r\n secondary: new TextField({\r\n validators: {\r\n required,\r\n },\r\n }),\r\n users: new FormList(KitchenSinkUserFormGroup, {\r\n initializeItems: 1,\r\n firstName: new TextField(),\r\n lastName: new TextField({\r\n validators: { required },\r\n }),\r\n }),\r\n plants: new FormList(KitchenSinkPlantFormGroup, {\r\n maxItemCount: 5,\r\n number: new TextField({\r\n validators: {\r\n required,\r\n },\r\n }),\r\n checkbox: new CheckboxField(),\r\n }),\r\n});\r\n","import { KitchenSinkForm } from '@/types/forms/dummy/kitchenSinkForm';\r\nimport { kitchenSinkFormStep1 } from './kitchenSink/step1';\r\nimport { kitchenSinkFormStep2 } from './kitchenSink/step2';\r\nimport { kitchenSinkFormStep3 } from './kitchenSink/step3';\r\nimport { kitchenSinkFormStep4 } from './kitchenSink/step4';\r\n\r\nexport const kitchenSinkForm = new KitchenSinkForm({\r\n applicationId: 'kitchenSink',\r\n step1: kitchenSinkFormStep1,\r\n step2: kitchenSinkFormStep2,\r\n step3: kitchenSinkFormStep3,\r\n step4: kitchenSinkFormStep4,\r\n});\r\n","import Vue from 'vue';\r\nimport { Forms } from '@/types/forms/forms';\r\nimport { applicationForm } from './config/application';\r\nimport { kitchenSinkForm } from './config/kitchenSink';\r\n\r\n/**\r\n * The main forms config object. Should be used as static readonly config, not as form state. See model.ts for that.\r\n */\r\nexport const formsConfig = Vue.observable(\r\n new Forms({\r\n kitchenSink: kitchenSinkForm,\r\n application: applicationForm,\r\n }),\r\n);\r\n","var $ = require('../internals/export');\n\nvar ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.github.io/ecma262/#sec-math.trunc\n$({ target: 'Math', stat: true }, {\n trunc: function trunc(it) {\n return (it > 0 ? floor : ceil)(it);\n }\n});\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('InfoIconWrapper',{attrs:{\"show-info-icon\":_vm.showInfoIcon,\"content\":_vm.content,\"model\":_vm.model,\"align-top\":_vm.alignTop,\"inline-element\":_vm.inlineElement}},[_vm._t(\"default\")],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport Vue, { PropType } from 'vue';\r\nimport InfoIconWrapper from '@/components/molecules/infoIconWrapper/InfoIconWrapper.vue';\r\nimport { InfoIconContent } from '@/api/interfaces/content/form/base/infoIconContent';\r\nimport { FormElement } from '@/types/forms/formElement';\r\n\r\nexport default Vue.extend({\r\n name: 'FieldWithInfoIcon',\r\n components: {\r\n InfoIconWrapper,\r\n },\r\n props: {\r\n content: {\r\n type: Object as PropType,\r\n required: true,\r\n },\r\n model: {\r\n type: Object as PropType,\r\n default: () => ({} as FormElement),\r\n },\r\n showInfoIcon: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n alignTop: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n inlineElement: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FieldWithInfoIcon.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FieldWithInfoIcon.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FieldWithInfoIcon.vue?vue&type=template&id=4e59aa6a&\"\nimport script from \"./FieldWithInfoIcon.vue?vue&type=script&lang=ts&\"\nexport * from \"./FieldWithInfoIcon.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.model.disabled)?_c('FieldWithInfoIcon',{attrs:{\"show-info-icon\":_vm.showInfoIcon,\"content\":_vm.content}},[(_vm.selectCustomized && _vm.isInitialized)?_c('FormInputSelectCustomized',{attrs:{\"model\":_vm.model,\"classes\":[\n {\n 'text-on-surface-variant placeholder-on-surface-variant':\n _vm.content.placeholder && !_vm.model.value,\n },\n _vm.errorClass ],\"content\":_vm.content,\"options\":_vm.enabledOptions,\"show-search\":_vm.selectCustomizedShowSearch},on:{\"change\":function($event){return _vm.$emit('change', $event)}},model:{value:(_vm.model.value),callback:function ($$v) {_vm.$set(_vm.model, \"value\", $$v)},expression:\"model.value\"}}):_vm._e(),(!_vm.selectCustomized && _vm.isInitialized)?_c('FormInputSelect',{attrs:{\"model\":_vm.model,\"classes\":[\n {\n 'text-on-surface-variant':\n _vm.content.placeholder && !_vm.model.value,\n },\n _vm.errorClass ],\"content\":_vm.content},on:{\"change\":function($event){return _vm.$emit('change', $event)}},model:{value:(_vm.model.value),callback:function ($$v) {_vm.$set(_vm.model, \"value\", $$v)},expression:\"model.value\"}},[(_vm.content.placeholder)?_c('FormInputOption',{attrs:{\"value\":null,\"text\":_vm.content.placeholder,\"disabled\":\"\",\"selected\":\"\",\"hidden\":\"\"}}):_vm._e(),_vm._l((_vm.enabledOptions),function(option){return _c('FormInputOption',{key:option.key,staticClass:\"text-primary\",attrs:{\"value\":option.key,\"text\":_vm.content.options[option.key].label}})})],2):_vm._e()],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"relative\"},[_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.inputVal),expression:\"inputVal\"}],staticClass:\"select appearance-none text-primary bg-surface-variant border border-primary rounded px-4 py-3 lg:text-lg xl:text-xl w-full\",class:_vm.classes,attrs:{\"disabled\":_vm.model.userChangeable === false},on:{\"change\":[function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.inputVal=$event.target.multiple ? $$selectedVal : $$selectedVal[0]},function($event){return _vm.$emit('change', $event)}]}},[_vm._t(\"default\")],2),_c('span',{staticClass:\"icon absolute block top-0 right-0 bottom-0 flex items-center pointer-events-none pr-3\"},[_c('Icon',{staticClass:\"text-3xl text-primary\",attrs:{\"id\":\"keyboard_arrow_down\"}})],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { getFormInputMixin } from '@/mixins/formInputMixin';\r\nimport Icon from '@/components/atoms/icon/Icon.vue';\r\nimport { SelectField } from '@/types/forms/fields/selectField';\r\n\r\nexport default getFormInputMixin, undefined>().extend({\r\n name: 'FormInputSelect',\r\n components: {\r\n Icon,\r\n },\r\n props: {\r\n value: {\r\n type: String,\r\n default: null,\r\n },\r\n classes: {\r\n type: [String, Object, Array],\r\n default: null,\r\n },\r\n },\r\n computed: {\r\n inputVal: {\r\n get(): string {\r\n return this.value;\r\n },\r\n set(val: string) {\r\n this.$emit('input', val);\r\n },\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FormInputSelect.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FormInputSelect.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FormInputSelect.vue?vue&type=template&id=b6daa9c0&scoped=true&\"\nimport script from \"./FormInputSelect.vue?vue&type=script&lang=ts&\"\nexport * from \"./FormInputSelect.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./FormInputSelect.vue?vue&type=style&index=0&id=b6daa9c0&lang=postcss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"b6daa9c0\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"relative\",class:{ 'show-dropdown': _vm.isDropdownVisible }},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.inputVal),expression:\"inputVal\"},{name:\"click-outside\",rawName:\"v-click-outside\",value:(_vm.vClickOutsideConfig),expression:\"vClickOutsideConfig\"}],ref:\"input\",staticClass:\"custom-select select-none cursor-default appearance-none placeholder-primary text-primary bg-surface-variant border border-primary rounded px-4 py-3 lg:text-lg xl:text-xl w-full\",class:_vm.classes,attrs:{\"type\":\"text\",\"readonly\":\"\",\"placeholder\":_vm.ghostInputVal || _vm.content.placeholder,\"disabled\":_vm.model.userChangeable === false},domProps:{\"value\":(_vm.inputVal)},on:{\"change\":function($event){return _vm.$emit('change', $event)},\"click\":function($event){return _vm.toggleDropdown()},\"mousedown\":function($event){$event.preventDefault();},\"keydown\":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"])){ return null; }if($event.ctrlKey||$event.shiftKey||$event.altKey||$event.metaKey){ return null; }$event.preventDefault();return _vm.closeDropdown()},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }if($event.ctrlKey||$event.shiftKey||$event.altKey||$event.metaKey){ return null; }$event.preventDefault();return _vm.closeDropdown()},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"up\",38,$event.key,[\"Up\",\"ArrowUp\"])){ return null; }if(!$event.altKey){ return null; }if($event.ctrlKey||$event.shiftKey||$event.metaKey){ return null; }$event.preventDefault();return _vm.toggleDropdown(true)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"down\",40,$event.key,[\"Down\",\"ArrowDown\"])){ return null; }if(!$event.altKey){ return null; }if($event.ctrlKey||$event.shiftKey||$event.metaKey){ return null; }$event.preventDefault();return _vm.toggleDropdown(true)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"up\",38,$event.key,[\"Up\",\"ArrowUp\"])){ return null; }if($event.ctrlKey||$event.shiftKey||$event.altKey||$event.metaKey){ return null; }$event.preventDefault();return _vm.cursorUp()},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"down\",40,$event.key,[\"Down\",\"ArrowDown\"])){ return null; }if($event.ctrlKey||$event.shiftKey||$event.altKey||$event.metaKey){ return null; }$event.preventDefault();return _vm.cursorDown()}],\"input\":function($event){if($event.target.composing){ return; }_vm.inputVal=$event.target.value}}}),_c('span',{staticClass:\"icon absolute block top-0 right-0 bottom-0 flex items-center pointer-events-none pr-3\"},[_c('Icon',{staticClass:\"text-3xl text-primary\",attrs:{\"id\":\"keyboard_arrow_down\"}})],1),_c('div',{staticClass:\"dropdown-wrapper relative\"},[_c('div',{staticClass:\"dropdown hidden absolute z-1 text-primary bg-surface-variant border border-primary rounded lg:text-lg xl:text-xl w-full shadow-lg\",class:{\n hovered: !!_vm.hoveredOption,\n }},[(_vm.isSearchEnabled)?_c('div',{staticClass:\"search border-b border-primary\"},[_c('div',{staticClass:\"input-field relative table w-full bg-surface-variant\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.searchTerm),expression:\"searchTerm\"}],ref:\"searchInput\",staticClass:\"search-input table-cell text-primary pl-4 pr-2 py-2 lg:text-lg xl:text-xl w-full outline outline-primary\",attrs:{\"type\":\"text\",\"placeholder\":_vm.content.search.placeholder,\"tabindex\":\"-1\"},domProps:{\"value\":(_vm.searchTerm)},on:{\"keydown\":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"])){ return null; }if($event.ctrlKey||$event.shiftKey||$event.altKey||$event.metaKey){ return null; }$event.preventDefault();return _vm.closeDropdown()},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }if($event.ctrlKey||$event.shiftKey||$event.altKey||$event.metaKey){ return null; }$event.preventDefault();return _vm.closeDropdown()},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"tab\",9,$event.key,\"Tab\")){ return null; }return _vm.closeDropdown()},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"up\",38,$event.key,[\"Up\",\"ArrowUp\"])){ return null; }if(!$event.altKey){ return null; }if($event.ctrlKey||$event.shiftKey||$event.metaKey){ return null; }$event.preventDefault();return _vm.toggleDropdown(true)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"down\",40,$event.key,[\"Down\",\"ArrowDown\"])){ return null; }if(!$event.altKey){ return null; }if($event.ctrlKey||$event.shiftKey||$event.metaKey){ return null; }$event.preventDefault();return _vm.toggleDropdown(true)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"up\",38,$event.key,[\"Up\",\"ArrowUp\"])){ return null; }if($event.ctrlKey||$event.shiftKey||$event.altKey||$event.metaKey){ return null; }$event.preventDefault();return _vm.cursorUp()},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"down\",40,$event.key,[\"Down\",\"ArrowDown\"])){ return null; }if($event.ctrlKey||$event.shiftKey||$event.altKey||$event.metaKey){ return null; }$event.preventDefault();return _vm.cursorDown()}],\"input\":function($event){if($event.target.composing){ return; }_vm.searchTerm=$event.target.value}}})])]):_vm._e(),_c('ul',{staticClass:\"list overflow-y-auto\"},[_vm._l((_vm.filteredOptions),function(option){return _c('li',{key:option.key,ref:\"list\",refInFor:true,staticClass:\"option\",class:{\n active:\n !!_vm.selectedOption &&\n _vm.selectedOption.key == option.key,\n hovered:\n !!_vm.hoveredOption &&\n _vm.hoveredOption.key == option.key,\n },attrs:{\"data-value\":option.key},on:{\"mouseover\":function($event){return _vm.hoverOption(option)},\"click\":function($event){return _vm.selectOption(option)}}},[_vm._v(\" \"+_vm._s(_vm.content.options && _vm.content.options[option.key].label)+\" \")])}),(!!_vm.searchTerm && !_vm.filteredOptions.length)?_c('li',{staticClass:\"option no-entries\"},[_vm._v(\" \"+_vm._s(_vm.content.search.noResults)+\" \")]):_vm._e()],2)])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport Vue, { PropType } from 'vue';\r\nimport { getFormInputMixin } from '@/mixins/formInputMixin';\r\nimport Icon from '@/components/atoms/icon/Icon.vue';\r\nimport { SelectContent } from '@/api/interfaces/content/form/base/selectContent';\r\nimport { SelectSearchContent } from '@/api/interfaces/content/form/base/selectSearchContent';\r\nimport { FormOption } from '@/types/forms/formOption';\r\nimport { noop as _noop } from 'lodash';\r\nimport { SelectField } from '@/types/forms/fields/selectField';\r\n\r\nexport default getFormInputMixin, unknown>().extend({\r\n name: 'FormInputSelectCustomized',\r\n components: {\r\n Icon,\r\n },\r\n props: {\r\n content: {\r\n type: Object as PropType,\r\n default: () => {\r\n return {} as SelectContent & SelectSearchContent;\r\n },\r\n },\r\n options: {\r\n type: Array as PropType[]>,\r\n default: () => {\r\n return [] as FormOption[];\r\n },\r\n },\r\n value: {\r\n type: String,\r\n default: null,\r\n },\r\n classes: {\r\n type: [String, Object, Array],\r\n default: null,\r\n },\r\n showSearch: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n },\r\n data: function () {\r\n return {\r\n isDropdownVisible: false,\r\n isSearchEnabled: false,\r\n selectedOption: (null as unknown) as FormOption | null,\r\n hoveredOption: (null as unknown) as FormOption | null,\r\n cursorOption: (null as unknown) as FormOption | null,\r\n searchTerm: '',\r\n vClickOutsideConfig: {\r\n handler: _noop,\r\n middleware: _noop,\r\n events: ['dblclick', 'click'],\r\n },\r\n };\r\n },\r\n computed: {\r\n ghostInputVal(): string {\r\n if (this.cursorOption) {\r\n return this.content.options\r\n ? this.content.options[this.cursorOption.key]?.label\r\n : '';\r\n }\r\n return '';\r\n },\r\n inputVal: {\r\n get(): string {\r\n if (this.ghostInputVal) {\r\n return this.ghostInputVal;\r\n }\r\n if (this.selectedOption === null) {\r\n return '';\r\n }\r\n return this.content.options\r\n ? this.content.options[this.selectedOption?.key]?.label\r\n : '';\r\n },\r\n set() {\r\n this.$emit('input', this.selectedOption?.key);\r\n },\r\n },\r\n filteredOptions(): FormOption[] {\r\n if (!this.isSearchEnabled || !this.searchTerm) {\r\n return this.options;\r\n }\r\n\r\n return this.options.filter(\r\n (option) =>\r\n this.content.options &&\r\n this.content.options[option.key].label\r\n .toLowerCase()\r\n .indexOf(this.searchTerm.toLowerCase()) > -1,\r\n );\r\n },\r\n },\r\n created(): void {\r\n this.vClickOutsideConfig.handler = this.vClickOutsideHandler;\r\n this.vClickOutsideConfig.middleware = this.vClickOutsideMiddleware;\r\n },\r\n mounted(): void {\r\n this.isSearchEnabled = !!this.content.search && this.showSearch;\r\n const selectedOption = this.options.find(\r\n (option) => option.key == this.value,\r\n );\r\n this.selectedOption =\r\n selectedOption !== undefined ? selectedOption : null;\r\n },\r\n methods: {\r\n openDropdown(): void {\r\n if (!this.isDropdownVisible) {\r\n this.isDropdownVisible = true;\r\n if (this.isSearchEnabled) {\r\n const searchInput = this.$refs.searchInput as HTMLElement;\r\n Vue.nextTick(function () {\r\n searchInput?.focus();\r\n });\r\n }\r\n }\r\n },\r\n closeDropdown(keepFocused = false): void {\r\n if (this.cursorOption) {\r\n const option = this.cursorOption;\r\n this.cursorOption = null;\r\n this.selectOption(option);\r\n return;\r\n }\r\n if (this.isDropdownVisible) {\r\n this.isDropdownVisible = false;\r\n this.searchTerm = '';\r\n this.hoveredOption = null;\r\n if (keepFocused) {\r\n const input = this.$refs.input as HTMLElement;\r\n Vue.nextTick(function () {\r\n input?.focus();\r\n });\r\n }\r\n }\r\n },\r\n toggleDropdown(keepFocused = false): void {\r\n if (this.isDropdownVisible) {\r\n this.closeDropdown(keepFocused);\r\n } else {\r\n this.openDropdown();\r\n }\r\n },\r\n selectOption(option: FormOption): void {\r\n this.selectedOption = option;\r\n this.inputVal = option.key;\r\n this.closeDropdown();\r\n },\r\n unselectOption(ensureOpenDropdown: boolean) {\r\n this.selectedOption = null;\r\n this.inputVal = '';\r\n if (ensureOpenDropdown) {\r\n this.openDropdown();\r\n }\r\n },\r\n hoverOption(option: FormOption): void {\r\n this.hoveredOption = option;\r\n const optionIndex = this.filteredOptions.indexOf(option);\r\n if (optionIndex != -1) {\r\n (this.$refs.list as HTMLElement[])[optionIndex].scrollIntoView({\r\n behavior: 'smooth',\r\n block: 'nearest',\r\n inline: 'start',\r\n });\r\n }\r\n },\r\n cursorUp(): void {\r\n let index =\r\n this.filteredOptions.findIndex(\r\n (option) => option.key === this.value,\r\n ) || 0;\r\n if (this.hoveredOption) {\r\n index = this.filteredOptions.indexOf(this.hoveredOption);\r\n }\r\n index--;\r\n if (index < 0) {\r\n index = 0;\r\n }\r\n const option = this.filteredOptions[index];\r\n if (this.isDropdownVisible) {\r\n this.hoverOption(option);\r\n this.cursorOption = option;\r\n } else {\r\n this.selectOption(option);\r\n }\r\n },\r\n cursorDown(): void {\r\n const filteredOptionsCountMinusOne =\r\n this.filteredOptions.length - 1;\r\n let index =\r\n this.filteredOptions.findIndex(\r\n (option) => option.key === this.value,\r\n ) || 0;\r\n if (this.hoveredOption) {\r\n index = this.filteredOptions.indexOf(this.hoveredOption);\r\n }\r\n index++;\r\n if (index > filteredOptionsCountMinusOne) {\r\n index = filteredOptionsCountMinusOne;\r\n }\r\n const option = this.filteredOptions[index];\r\n if (this.isDropdownVisible) {\r\n this.hoverOption(option);\r\n this.cursorOption = option;\r\n } else {\r\n this.selectOption(option);\r\n }\r\n },\r\n vClickOutsideHandler(/*event*/): void {\r\n this.closeDropdown();\r\n },\r\n vClickOutsideMiddleware(event: Event): boolean {\r\n return !(event.target as HTMLElement)?.closest('.dropdown');\r\n },\r\n /** As the options may change (enabledOptions on parent FormSelect.vue),\r\n * we may have reason to evaluate whether the option is properly set, based on the value */\r\n reloadSelectedOption(): void {\r\n if (!this.value) {\r\n // presumed that an empty string is never a valid option\r\n this.unselectOption(false);\r\n } else {\r\n const option = this.options.find(\r\n (option) => option.key === this.value,\r\n );\r\n if (option) {\r\n this.selectOption(option);\r\n }\r\n }\r\n },\r\n },\r\n watch: {\r\n // As with the value itself below, options changing may cause a \"de-sync\" between value and selected option\r\n options(): void {\r\n this.reloadSelectedOption();\r\n },\r\n\r\n // For setting the value technically, we need a watcher that ensures the UI is updated.\r\n // When the value is updated via the UI, value and inputVal will already be equal and not cause any changes\r\n value(): void {\r\n if (this.value == this.inputVal) {\r\n return;\r\n }\r\n\r\n this.reloadSelectedOption();\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FormInputSelectCustomized.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FormInputSelectCustomized.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FormInputSelectCustomized.vue?vue&type=template&id=6689e7a3&scoped=true&\"\nimport script from \"./FormInputSelectCustomized.vue?vue&type=script&lang=ts&\"\nexport * from \"./FormInputSelectCustomized.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./FormInputSelectCustomized.vue?vue&type=style&index=0&id=6689e7a3&lang=postcss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6689e7a3\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('option',{staticClass:\"option\",domProps:{\"value\":_vm.value}},[_vm._v(_vm._s(_vm.text))])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FormInputOption.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FormInputOption.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./FormInputOption.vue?vue&type=template&id=23d04c5e&scoped=true&\"\nimport script from \"./FormInputOption.vue?vue&type=script&lang=js&\"\nexport * from \"./FormInputOption.vue?vue&type=script&lang=js&\"\nimport style0 from \"./FormInputOption.vue?vue&type=style&index=0&id=23d04c5e&lang=postcss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"23d04c5e\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport FormInputSelect from '@/components/atoms/formInputSelect/FormInputSelect.vue';\r\nimport FormInputSelectCustomized from '@/components/atoms/formInputSelectCustomized/FormInputSelectCustomized.vue';\r\nimport FormInputOption from '@/components/atoms/formInputOption/FormInputOption.vue';\r\nimport { getFormInputMixin } from '@/mixins/formInputMixin';\r\nimport { FormOption } from '@/types/forms/formOption';\r\nimport { SelectContent } from '@/api/interfaces/content/form/base/selectContent';\r\nimport { SelectField } from '@/types/forms/fields/selectField';\r\nimport FieldWithInfoIcon from '@/components/molecules/fieldWithInfoIcon/FieldWithInfoIcon.vue';\r\n\r\nexport default getFormInputMixin, SelectContent>().extend({\r\n name: 'FormSelect',\r\n components: {\r\n FieldWithInfoIcon,\r\n FormInputSelect,\r\n FormInputSelectCustomized,\r\n FormInputOption,\r\n },\r\n data() {\r\n return {\r\n countRanEnabledOptionsWatcher: 0,\r\n isInitialized: false,\r\n };\r\n },\r\n props: {\r\n selectCustomized: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n selectCustomizedShowSearch: {\r\n type: Boolean,\r\n default: true,\r\n },\r\n },\r\n computed: {\r\n enabledOptions(): FormOption[] {\r\n return (\r\n this.model.options?.filter((options) => !options.disabled) ?? []\r\n );\r\n },\r\n },\r\n async created(): Promise {\r\n if (this.model.onMountOptionsSetter !== undefined) {\r\n const options = await this.model.onMountOptionsSetter();\r\n\r\n // Set techncial data\r\n this.model.options = options;\r\n\r\n // Set display texts\r\n this.content.options = {};\r\n for (const option of options) {\r\n this.content.options[option.key] = { label: option.key };\r\n }\r\n }\r\n this.isInitialized = true;\r\n },\r\n watch: {\r\n enabledOptions: {\r\n async handler() {\r\n this.countRanEnabledOptionsWatcher++;\r\n if (\r\n this.countRanEnabledOptionsWatcher <= 1 &&\r\n this.model.onMountOptionsSetter !== undefined\r\n ) {\r\n return;\r\n }\r\n\r\n await this.handleEnabledOptionsChange();\r\n },\r\n immediate: true,\r\n },\r\n },\r\n methods: {\r\n async handleEnabledOptionsChange(): Promise {\r\n // do not change value, if it is still enabled\r\n if (\r\n this.enabledOptions.some(\r\n (option) => option.key === this.model.value,\r\n )\r\n ) {\r\n return;\r\n }\r\n\r\n // wait additional step to trigger rules again\r\n await this.$nextTick();\r\n\r\n // if there is just a single option, reset to it, otherwise reset to null\r\n this.model.value =\r\n this.enabledOptions.length === 1\r\n ? this.enabledOptions[0].key\r\n : null;\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FormSelect.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FormSelect.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FormSelect.vue?vue&type=template&id=9c935d38&\"\nimport script from \"./FormSelect.vue?vue&type=script&lang=ts&\"\nexport * from \"./FormSelect.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue, { PropType } from 'vue';\r\nimport {\r\n ValidationGroups,\r\n ValidationProperties,\r\n VueConstructor,\r\n} from 'vue/types/vue';\r\nimport { Validation } from 'vuelidate';\r\nimport {\r\n ValidationError,\r\n getErrorsByValidation,\r\n} from '@/services/form/validationErrors';\r\nimport type { ValidationsCommonType } from '@/services/form/validations';\r\n\r\nexport interface FormFieldVue {\r\n readonly hasErrors: boolean;\r\n readonly errors: ValidationError[];\r\n registerFormInputComponent(formInputComponent: Vue): void;\r\n}\r\n\r\nexport interface FormInputComponent\r\n extends Vue {\r\n readonly content: TContent;\r\n readonly model: TModel;\r\n readonly formModel: TFormType;\r\n readonly validations:\r\n | (Validation & ValidationGroups & ValidationProperties)\r\n | null;\r\n readonly hasErrors: boolean;\r\n readonly errors: ValidationError[];\r\n readonly formField: FormFieldVue | null;\r\n readonly formFieldHasErrors: boolean;\r\n readonly formFieldErrors: ValidationError[];\r\n readonly showInfoIcon: boolean;\r\n readonly showSummary: boolean;\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/comma-dangle\r\nexport function getFormInputMixin<\r\n TModel,\r\n TContent,\r\n TConfiguration = void,\r\n TFormType = void\r\n>(): VueConstructor> {\r\n return Vue.extend({\r\n inject: {\r\n injectedFormField: {\r\n from: 'formField',\r\n default: null as (Vue & FormFieldVue) | null,\r\n },\r\n },\r\n props: {\r\n content: {\r\n type: Object as PropType,\r\n default: () => {\r\n return {} as TContent;\r\n },\r\n },\r\n configuration: {\r\n type: Object as PropType,\r\n default: () => ({} as TConfiguration),\r\n },\r\n model: {\r\n type: Object as PropType,\r\n default: () => {\r\n return {} as TModel;\r\n },\r\n },\r\n formModel: {\r\n type: Object as PropType,\r\n default: () => ({} as TFormType),\r\n },\r\n validations: {\r\n type: Object as PropType<\r\n | (Validation &\r\n ValidationGroups &\r\n ValidationProperties)\r\n | null\r\n >,\r\n default: null,\r\n },\r\n showInfoIcon: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n showSummary: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n },\r\n computed: {\r\n formField(this: {\r\n injectedFormField: FormFieldVue;\r\n }): FormFieldVue | null {\r\n return this.injectedFormField || null;\r\n },\r\n formFieldHasErrors(): boolean {\r\n return !!this.formField && this.formField.hasErrors;\r\n },\r\n formFieldErrors(): ValidationError[] {\r\n return this.formField ? this.formField.errors : [];\r\n },\r\n hasErrors(): boolean {\r\n return !!this.validations && this.validations.$anyError;\r\n },\r\n errors(): ValidationError[] {\r\n if (!this.validations || !this.hasErrors) {\r\n return [];\r\n }\r\n return getErrorsByValidation(\r\n this.validations as Validation & ValidationGroups,\r\n );\r\n },\r\n errorClass(): string | null {\r\n return this.hasErrors ? 'has-errors' : null;\r\n },\r\n /**\r\n * Use this for formList item validations.\r\n * Validations of formList items are dependent of its instances.\r\n * Since we cannot use validations?.property in templates use validationsProps.property instead.\r\n */\r\n validationProps(): ValidationsCommonType | unknown {\r\n return this.validations || {};\r\n },\r\n },\r\n watch: {\r\n formField: {\r\n handler(): void {\r\n if (this.formField) {\r\n this.formField.registerFormInputComponent(this);\r\n }\r\n },\r\n immediate: true,\r\n },\r\n 'model.value'(): void {\r\n if (this.validations) {\r\n this.validations.$touch();\r\n }\r\n },\r\n },\r\n });\r\n}\r\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ButtonSpacer.vue?vue&type=style&index=0&id=1f405d72&lang=postcss&scoped=true&\"","'use strict';\nvar $ = require('../internals/export');\nvar $findIndex = require('../internals/array-iteration').findIndex;\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar FIND_INDEX = 'findIndex';\nvar SKIPS_HOLES = true;\n\nvar USES_TO_LENGTH = arrayMethodUsesToLength(FIND_INDEX);\n\n// Shouldn't skip holes\nif (FIND_INDEX in []) Array(1)[FIND_INDEX](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.findIndex` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.findindex\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES || !USES_TO_LENGTH }, {\n findIndex: function findIndex(callbackfn /* , that = undefined */) {\n return $findIndex(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND_INDEX);\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FormInputCheckbox.vue?vue&type=style&index=0&id=1fc87b32&lang=postcss&scoped=true&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"radio-group flex flex-wrap flex-col\"},[_vm._l((_vm.enabledOptions),function(option){return [_c('div',{key:option.key,staticClass:\"mr-auto mb-2\"},[_c('InfoIconWrapper',{attrs:{\"show-info-icon\":_vm.showInfoIcon,\"content\":_vm.content.options[option.key],\"align-top\":true,\"inline-element\":false}},[_c('FormLabel',{staticClass:\"mr-4 cursor-pointer inline-flex\",attrs:{\"text\":_vm.content.options[option.key].label}},[_c('FormInputRadio',{staticClass:\"mr-4\",attrs:{\"model\":_vm.model,\"name\":_vm.radioButtonGroupName,\"input-value\":option.key,\"show-info-icon\":_vm.showInfoIcon,\"info-text\":\"test\"}})],1)],1)],1)]})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { v4 as uuidv4 } from 'uuid';\r\nimport FormLabel from '@/components/atoms/formLabel/FormLabel.vue';\r\nimport FormInputRadio from '@/components/atoms/formInputRadio/FormInputRadio.vue';\r\nimport { getFormInputMixin } from '@/mixins/formInputMixin';\r\nimport { FormOption } from '@/types/forms/formOption';\r\nimport FieldWithInfoIcon from '@/components/molecules/fieldWithInfoIcon/FieldWithInfoIcon.vue';\r\nimport { RadioButtonContent } from '@/api/interfaces/content/form/base/radioButtonContent';\r\nimport { RadioButtonsField } from '@/types/forms/fields/radioButtonsField';\r\nimport InfoIconWrapper from '@/components/molecules/infoIconWrapper/InfoIconWrapper.vue';\r\n\r\nexport default getFormInputMixin<\r\n RadioButtonsField,\r\n RadioButtonContent\r\n>().extend({\r\n name: 'FormRadioGroup',\r\n components: {\r\n FieldWithInfoIcon,\r\n FormLabel,\r\n FormInputRadio,\r\n InfoIconWrapper,\r\n },\r\n data: () => {\r\n return {\r\n radioButtonGroupName: uuidv4(),\r\n };\r\n },\r\n computed: {\r\n enabledOptions(): FormOption[] {\r\n return this.model.options.filter((options) => !options.disabled);\r\n },\r\n },\r\n watch: {\r\n enabledOptions: {\r\n async handler() {\r\n // do not change value, if it is still enabled\r\n if (\r\n this.enabledOptions.some(\r\n (option) => option.key === this.model.value,\r\n )\r\n ) {\r\n return;\r\n }\r\n\r\n // wait additional step to trigger rules again\r\n await this.$nextTick();\r\n\r\n // reset value to first option, if there is any\r\n this.model.value =\r\n this.enabledOptions.length > 0\r\n ? this.enabledOptions[0].key\r\n : null;\r\n },\r\n immediate: true,\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FormRadioGroup.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FormRadioGroup.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FormRadioGroup.vue?vue&type=template&id=6b848b36&\"\nimport script from \"./FormRadioGroup.vue?vue&type=script&lang=ts&\"\nexport * from \"./FormRadioGroup.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export const kitchenSinkRules = (): void => {\r\n // todo\r\n};\r\n","import { ApplicationForm } from '@/types/forms/specific/applicationForm';\r\nimport {\r\n isDischargePowerAboveTippingPoint,\r\n lawParagraph14aConditionsMet,\r\n isPluginGeneratingPlant,\r\n isPv,\r\n isRequestWithoutPlanning,\r\n isStorage,\r\n} from './common';\r\nimport Vue from 'vue';\r\nimport { parseGermanDate } from '@/utilities/germanFormats';\r\n\r\nexport const generalRules = async (\r\n application: ApplicationForm,\r\n): Promise => {\r\n await Vue.nextTick();\r\n\r\n application.powerConnection.disabled = isPluginGeneratingPlant(application);\r\n\r\n application.plantBuilder.disabled =\r\n (!application.plantOperator.plantBuilder.disabled &&\r\n application.plantOperator.plantBuilder.value === 'operator') ||\r\n isRequestWithoutPlanning(application);\r\n\r\n application.propertyOwner.disabled =\r\n application.plantOperator.separatePropertyOwner.disabled ||\r\n application.plantOperator.separatePropertyOwner.value === 'no';\r\n\r\n application.billing.disabled =\r\n application.generationType.plantType.value === 'storage' ||\r\n application.powerConnection.doesConnectionExist.value === 'no' ||\r\n application.powerConnection.whichVoltageLevel.value ===\r\n 'mediumVoltage' ||\r\n application.powerConnection.whichVoltageLevel.value === 'unknown' ||\r\n isRequestWithoutPlanning(application) ||\r\n (isPv(application) &&\r\n (application.plantPerformance.photovoltaic.pvOverallNominalPower\r\n .value ?? 0) > 100);\r\n\r\n application.plantData.disabled =\r\n isRequestWithoutPlanning(application) &&\r\n application.generationType.plantType.value !== 'storage';\r\n\r\n application.measuringConcepts.disabled = isRequestWithoutPlanning(\r\n application,\r\n );\r\n\r\n application.controllableConsumptionDevices.disabled = !lawParagraph14aConditionsMet(\r\n application,\r\n );\r\n};\r\n","import { required } from 'vuelidate/lib/validators';\r\nimport { FormField } from '@/types/forms/fields/formField';\r\nimport { UploadedFileInfo } from '@/api/interfaces/file/uploadedFileInfo';\r\n\r\nexport function addRequiredValidator(\r\n formField: FormField,\r\n): void {\r\n if (\r\n !Object.prototype.hasOwnProperty.call(formField.validators, 'required')\r\n ) {\r\n formField.validators = {\r\n ...formField.validators,\r\n required,\r\n };\r\n }\r\n}\r\n","import Vue from 'vue';\r\nimport { FormField } from '@/types/forms/fields/formField';\r\n\r\nexport function removeRequiredValidator(formField: FormField): void {\r\n if (\r\n Object.prototype.hasOwnProperty.call(formField.validators, 'required')\r\n ) {\r\n Vue.delete(formField.validators, 'required');\r\n }\r\n}\r\n","import { FormField } from '@/types/forms/fields/formField';\r\nimport { addRequiredValidator } from './addRequiredValidator';\r\nimport { removeRequiredValidator } from './removeRequiredValidator';\r\n\r\nexport function toggleRequiredValidator(\r\n formField: FormField,\r\n addOrRemove: boolean,\r\n): void {\r\n removeRequiredValidator(formField);\r\n if (addOrRemove) {\r\n addRequiredValidator(formField);\r\n }\r\n}\r\n","import { LocationFormStep } from '@/types/forms/formSteps/locationFormStep';\r\nimport { ApplicationForm } from '@/types/forms/specific/applicationForm';\r\nimport { isPv, isPluginGeneratingPlant } from './common';\r\nimport { toggleRequiredValidator } from '@/utilities/toggleRequiredValidator';\r\nimport Vue from 'vue';\r\n\r\nexport const locationRules = async (\r\n formStep: {\r\n model: LocationFormStep;\r\n formModel: ApplicationForm;\r\n } & Vue,\r\n): Promise => {\r\n const isPvButNoPluginGeneratingPlant =\r\n !isPluginGeneratingPlant(formStep.formModel) &&\r\n isPv(formStep.formModel);\r\n\r\n // we have to wait one additional tick for the component watchers\r\n // to set the overall sums to the underlying models\r\n await Vue.nextTick();\r\n\r\n formStep.model.proceedWithCadastral.disabled = isPluginGeneratingPlant(\r\n formStep.formModel,\r\n );\r\n\r\n const proceedWithCadastral: boolean =\r\n !formStep.model.proceedWithCadastral.disabled &&\r\n formStep.model.proceedWithCadastral.value === true; // can also be null, that's why to check against true specifically\r\n\r\n toggleRequiredValidator(\r\n formStep.model.streetAndHousenumber.street,\r\n !proceedWithCadastral,\r\n );\r\n toggleRequiredValidator(\r\n formStep.model.streetAndHousenumber.housenumber,\r\n !proceedWithCadastral,\r\n );\r\n\r\n // https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4854565594/Formular+Standort#FormularStandort-subdistrict\r\n formStep.model.subdistrict.disabled = !proceedWithCadastral;\r\n\r\n // https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4854565594/Formular+Standort#FormularStandort-meadow\r\n // https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4854565594/Formular+Standort#FormularStandort-lot\r\n formStep.model.meadowAndLot.disabled = !proceedWithCadastral;\r\n\r\n // https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4854565594/Formular+Standort#FormularStandort-building\r\n formStep.model.building.disabled = isPluginGeneratingPlant(\r\n formStep.formModel,\r\n );\r\n\r\n formStep.model.geographicMap.disabled = isPluginGeneratingPlant(\r\n formStep.formModel,\r\n );\r\n\r\n // https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4854565594/Formular+Standort#FormularStandort-geographicLatCoordinates\r\n formStep.model.geographicLatCoordinates.disabled = isPluginGeneratingPlant(\r\n formStep.formModel,\r\n );\r\n\r\n // https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4854565594/Formular+Standort#FormularStandort-geographicLngCoordinates\r\n formStep.model.geographicLngCoordinates.disabled = isPluginGeneratingPlant(\r\n formStep.formModel,\r\n );\r\n\r\n toggleRequiredValidator(\r\n formStep.model.geographicLatCoordinates.seconds,\r\n isPvButNoPluginGeneratingPlant,\r\n );\r\n toggleRequiredValidator(\r\n formStep.model.geographicLatCoordinates.degrees,\r\n isPvButNoPluginGeneratingPlant,\r\n );\r\n toggleRequiredValidator(\r\n formStep.model.geographicLatCoordinates.minutes,\r\n isPvButNoPluginGeneratingPlant,\r\n );\r\n\r\n toggleRequiredValidator(\r\n formStep.model.geographicLngCoordinates.seconds,\r\n isPvButNoPluginGeneratingPlant,\r\n );\r\n toggleRequiredValidator(\r\n formStep.model.geographicLngCoordinates.degrees,\r\n isPvButNoPluginGeneratingPlant,\r\n );\r\n toggleRequiredValidator(\r\n formStep.model.geographicLngCoordinates.minutes,\r\n isPvButNoPluginGeneratingPlant,\r\n );\r\n};\r\n","import { GenerationTypeFormStep } from '@/types/forms/formSteps/generationTypeFormStep';\r\nimport { EnergyTypeFieldType } from '@/types/forms/shared/energyTypeFieldType';\r\nimport { PlantTypeFieldTypeForGenerationTypeFormStep } from '@/types/forms/shared/plantTypeFieldType';\r\nimport { ApplicationForm } from '@/types/forms/specific/applicationForm';\r\nimport { isPluginGeneratingPlantSimplified } from './common';\r\n\r\nconst PLANT_TYPE_RULES: Record<\r\n EnergyTypeFieldType,\r\n PlantTypeFieldTypeForGenerationTypeFormStep[]\r\n> = {\r\n energyStorage: ['storage'],\r\n sun: ['photovoltaicPowerPlant'],\r\n sunAndEnergyStorageLte30: ['photovoltaicPowerPlantAndStorageLte30'],\r\n wind: ['windPowerPlant'],\r\n water: ['hydroPowerPlant', 'steamTurbine'],\r\n biogas: ['thermalPowerPlantDea', 'gasTurbine', 'orcPowerPlant'],\r\n biowaste: ['thermalPowerPlantDea', 'gasTurbine', 'orcPowerPlant'],\r\n biodiesel: ['thermalPowerPlantDea', 'gasTurbine', 'orcPowerPlant'],\r\n slurry: ['thermalPowerPlantDea', 'gasTurbine', 'orcPowerPlant'],\r\n plantOil: ['thermalPowerPlantDea', 'gasTurbine', 'orcPowerPlant'],\r\n woodGas: ['thermalPowerPlantDea', 'gasTurbine', 'orcPowerPlant'],\r\n mineGas: ['thermalPowerPlantDea', 'gasTurbine', 'orcPowerPlant'],\r\n sewageGas: ['thermalPowerPlantDea', 'gasTurbine', 'orcPowerPlant'],\r\n landfillGas: ['thermalPowerPlantDea', 'gasTurbine', 'orcPowerPlant'],\r\n geothermics: ['thermalPowerPlantDea', 'gasTurbine', 'orcPowerPlant'],\r\n naturalGas: [\r\n 'thermalPowerPlantKwk',\r\n 'gasTurbine',\r\n 'fuelCell',\r\n 'orcPowerPlant',\r\n 'emergencyGenerator',\r\n 'stirlingEngine',\r\n ],\r\n liquidGas: ['thermalPowerPlantKwk', 'gasTurbine', 'orcPowerPlant'],\r\n dieselOil: [\r\n 'thermalPowerPlantKwk',\r\n 'gasTurbine',\r\n 'orcPowerPlant',\r\n 'emergencyGenerator',\r\n ],\r\n};\r\n\r\nexport const generationTypeRules = async (\r\n formStep: {\r\n model: GenerationTypeFormStep;\r\n formModel: ApplicationForm;\r\n } & Vue,\r\n): Promise => {\r\n formStep.model.energyType.options.forEach((option) => {\r\n if (!formStep.model.plugInGeneratingPlant.value) {\r\n option.disabled = false;\r\n return;\r\n }\r\n\r\n const isEnergyStorageOrSunOrWind =\r\n option.key === 'energyStorage' ||\r\n option.key === 'sun' ||\r\n option.key === 'wind';\r\n\r\n option.disabled = !isEnergyStorageOrSunOrWind;\r\n });\r\n\r\n // https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4854565587/Energieart+Anlagenart\r\n formStep.model.plantType.options.forEach((option) => {\r\n if (\r\n formStep.model.energyType.value == null ||\r\n formStep.model.energyType.value === '' ||\r\n option.key === ''\r\n ) {\r\n option.disabled = false;\r\n return;\r\n }\r\n\r\n const optionRules = PLANT_TYPE_RULES[formStep.model.energyType.value];\r\n option.disabled = !optionRules.includes(option.key);\r\n });\r\n\r\n // https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4854565613/Formular+Erzeugungsart#FormularErzeugungsart-plantType\r\n formStep.model.plantType.disabled = !formStep.model.energyType.value;\r\n\r\n formStep.model.proceedWithFullRegistrationForEEGCompensation.disabled =\r\n formStep.model.plantType.value !== 'photovoltaicPowerPlant' ||\r\n formStep.model.plugInGeneratingPlant.disabled ||\r\n !formStep.model.plugInGeneratingPlant.value;\r\n\r\n //\r\n // Hide everything for plugin generating plants when proceedWithFullRegistrationForEEGCompensation not checked.\r\n //\r\n const pluginSimplified = isPluginGeneratingPlantSimplified(formStep.model);\r\n\r\n // https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4868800911/Formular+Anlagendaten#FormularAnlagendaten-plantStructureType\r\n formStep.model.plantStructureType.disabled =\r\n pluginSimplified ||\r\n (formStep.model.plantType.value !== 'photovoltaicPowerPlant' &&\r\n formStep.model.plantType.value !==\r\n 'photovoltaicPowerPlantAndStorageLte30');\r\n\r\n formStep.model.totalPlantPerformance.disabled =\r\n (!formStep.model.plugInGeneratingPlant.disabled &&\r\n !!formStep.model.plugInGeneratingPlant.value) ||\r\n formStep.model.plantType.value ===\r\n 'photovoltaicPowerPlantAndStorageLte30';\r\n\r\n formStep.model.requestType.disabled =\r\n (!formStep.model.plantStructureType.disabled &&\r\n formStep.model.plantStructureType.value == 'building') ||\r\n formStep.model.totalPlantPerformance.disabled ||\r\n formStep.model.totalPlantPerformance.value == 'below300' ||\r\n (!formStep.model.plantType.disabled &&\r\n formStep.model.plantType.value == 'emergencyGenerator');\r\n\r\n if (formStep.model.plantType.value === 'emergencyGenerator') {\r\n formStep.model.requestType.value = 'requestWithPlanning';\r\n }\r\n formStep.model.requestWithPlanningInfo.disabled =\r\n formStep.model.requestType.disabled ||\r\n formStep.model.requestType.value == 'requestWithoutPlanning';\r\n\r\n formStep.model.requestWithoutPlanningInfo.disabled =\r\n formStep.model.requestType.disabled ||\r\n formStep.model.requestType.value == 'requestWithPlanning';\r\n\r\n // https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4854565613/Formular+Erzeugungsart#FormularErzeugungsart-emergencyGeneratorOperatingMode\r\n formStep.model.emergencyGeneratorOperatingMode.disabled =\r\n formStep.model.plantType.disabled ||\r\n !(formStep.model.plantType.value === 'emergencyGenerator');\r\n\r\n // https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4854565613/Formular+Erzeugungsart#FormularErzeugungsart-specifiedEmergencyGeneratorOperatingMode\r\n formStep.model.specifiedEmergencyGeneratorOperatingMode.disabled =\r\n formStep.model.emergencyGeneratorOperatingMode.disabled ||\r\n !formStep.model.emergencyGeneratorOperatingMode.value?.includes(\r\n 'other',\r\n );\r\n\r\n // https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4854565613/Formular+Erzeugungsart#FormularErzeugungsart-bidirectionalMeter\r\n formStep.model.bidirectionalMeter.disabled = true; // Disabled temporarily, as per customer requirement.\r\n // formStep.model.plugInGeneratingPlant.disabled ||\r\n // !formStep.model.plugInGeneratingPlant.value ||\r\n // pluginSimplified;\r\n\r\n // https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4854565613/Formular+Erzeugungsart#FormularErzeugungsart-bidirectionalMeterInfo\r\n formStep.model.bidirectionalMeterInfo.disabled = true; // Disabled temporarily, as per customer requirement.\r\n // formStep.model.bidirectionalMeter.disabled ||\r\n // !!formStep.model.bidirectionalMeter.value;\r\n\r\n // https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4854565613/Formular+Erzeugungsart#FormularErzeugungsart-consumption\r\n formStep.model.consumption.disabled = true; // Disabled temporarily, as per customer requirement.\r\n // formStep.model.bidirectionalMeter.disabled ||\r\n // !formStep.model.bidirectionalMeter.value;\r\n\r\n // https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4854565613/Formular+Erzeugungsart#FormularErzeugungsart-infeed\r\n formStep.model.infeed.disabled = true; // Disabled temporarily, as per customer requirement.\r\n // formStep.model.bidirectionalMeter.disabled ||\r\n // !formStep.model.bidirectionalMeter.value;\r\n\r\n // https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4854565613/Formular+Erzeugungsart#FormularErzeugungsart-readingDate\r\n formStep.model.readingDate.disabled = true; // Disabled temporarily, as per customer requirement.\r\n // formStep.model.bidirectionalMeter.disabled ||\r\n // !formStep.model.bidirectionalMeter.value;\r\n\r\n // https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4854565613/Formular+Erzeugungsart#FormularErzeugungsart-plugInGeneratingPlantInfo\r\n formStep.model.plugInGeneratingPlantInfo.disabled = true; // Disabled temporarily, as per customer requirement.\r\n // formStep.model.plugInGeneratingPlant.disabled ||\r\n // !formStep.model.plugInGeneratingPlant.value ||\r\n // pluginSimplified;\r\n\r\n formStep.model.simplifiedProcedureHint.disabled =\r\n formStep.model.plugInGeneratingPlant.disabled ||\r\n !formStep.model.plugInGeneratingPlant.value ||\r\n pluginSimplified;\r\n\r\n formStep.model.simplifiedRegistrationProcessNotice.disabled =\r\n !pluginSimplified ||\r\n formStep.model.plantType.value !== 'photovoltaicPowerPlant' ||\r\n formStep.model.plugInGeneratingPlant.disabled ||\r\n !formStep.model.plugInGeneratingPlant.value;\r\n};\r\n","export const findFirstValidKey = function (\r\n ruleset: Record,\r\n): string {\r\n return Object.keys(ruleset).find((key) => ruleset[key]) ?? '';\r\n};\r\n","import { parseGermanFloat } from './germanFormats';\r\n\r\n// As there are fields of type string, that actually contain something else,\r\n// this group of utils intends to provide parsing certain checks\r\n// that also take care of the parsing necessary\r\n\r\n/**\r\n * Compares two number strings, whether one is higher than or equal to the other\r\n * @param value the value that should be higher or equal\r\n * @param valueToCompareTo the value that should be lower or equal\r\n * @returns {boolean} whether `value` is higher than or equal to `valueToCompareTo`\r\n */\r\nexport function isHigherThanOrEqual(\r\n value: string | null,\r\n valueToCompareTo: string | null,\r\n): boolean {\r\n const parsedValue = parseGermanFloat(value || '0');\r\n const parsedValueToCompareTo = parseGermanFloat(valueToCompareTo || '0');\r\n\r\n return parsedValue >= parsedValueToCompareTo;\r\n}\r\n","import { PowerConnectionFormStep } from '@/types/forms/formSteps/powerConnectionFormStep';\r\nimport {\r\n isDea,\r\n isDischargePowerBelowOrEqualTippingPoint,\r\n isLowVoltage,\r\n isPluginGeneratingPlant,\r\n isPowerHeatCoupling,\r\n isPv,\r\n isPvAndStorageLte30,\r\n isRequestWithoutPlanning,\r\n isStorage,\r\n isUnknown,\r\n} from './common';\r\nimport { ApplicationForm } from '@/types/forms/specific/applicationForm';\r\nimport { findFirstValidKey } from '@/utilities/findFirstValidKey';\r\nimport { isHigherThanOrEqual } from '@/utilities/stringParsingUtils';\r\nimport { getInvalidGenerationUnitsWithPreExisting } from '../../utilities/application/powerConnection';\r\nimport { ConnectionRulesType } from '@/types/forms/shared/connectionRulesType';\r\n\r\nexport const powerConnectionRules = async (\r\n formStep: {\r\n model: PowerConnectionFormStep;\r\n formModel: ApplicationForm;\r\n } & Vue,\r\n): Promise => {\r\n const hasLowVoltage = isLowVoltage(formStep.model);\r\n\r\n const isOther = (formModel: ApplicationForm) =>\r\n isDea(formModel) ||\r\n isPowerHeatCoupling(formModel) ||\r\n isUnknown(formModel);\r\n\r\n const requestWithoutPlanning = isRequestWithoutPlanning(formStep.formModel);\r\n\r\n // https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4854565649/Formular+Netzanschluss#FormularNetzanschluss-orderNumber\r\n formStep.model.orderNumber.disabled =\r\n formStep.model.doesConnectionExist.disabled ||\r\n formStep.model.doesConnectionExist.value !== 'ordered';\r\n\r\n // https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4854565649/Formular+Netzanschluss#FormularNetzanschluss-hasExistingPlants\r\n formStep.model.hasExistingPlants.disabled =\r\n isPluginGeneratingPlant(formStep.formModel) ||\r\n (!formStep.model.doesConnectionExist.disabled &&\r\n formStep.model.doesConnectionExist.value !== 'yes') ||\r\n (isStorage(formStep.formModel) &&\r\n !isPvAndStorageLte30(formStep.formModel));\r\n\r\n formStep.model.onlyInverterCapacityOfExistingGenerationPlant.disabled =\r\n formStep.model.hasExistingPlants.disabled ||\r\n !formStep.model.hasExistingPlants.value;\r\n\r\n // https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4854565649/Formular+Netzanschluss#FormularNetzanschluss-existingPlantsTotalPower\r\n formStep.model.existingPlantsTotalPower.disabled =\r\n formStep.model.hasExistingPlants.disabled ||\r\n !formStep.model.hasExistingPlants.value;\r\n\r\n type ExistingPlantsTotalPowerConditionalInfoKey =\r\n | 'pvInfo'\r\n | 'storageInfo'\r\n | 'otherInfo';\r\n\r\n //In-Feed Management Conditional Info\r\n const existingPlantsTotalPowerConditionInfo = {\r\n pvInfo: isPv(formStep.formModel),\r\n storageInfo: isStorage(formStep.formModel),\r\n otherInfo: isOther(formStep.formModel),\r\n } as Record;\r\n\r\n formStep.model.existingPlantsTotalPower.conditionalInfoKey = findFirstValidKey(\r\n existingPlantsTotalPowerConditionInfo,\r\n );\r\n\r\n // https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4854565649/Formular+Netzanschluss#FormularNetzanschluss-hasExistingPlants\r\n formStep.model.repoweringPlanned.disabled =\r\n formStep.model.hasExistingPlants.disabled ||\r\n !formStep.model.hasExistingPlants.value;\r\n\r\n // https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4854565649/Formular+Netzanschluss#FormularNetzanschluss-existingPlantsTotalPower\r\n formStep.model.repoweringTotalPower.disabled =\r\n formStep.model.repoweringPlanned.disabled ||\r\n !formStep.model.repoweringPlanned.value;\r\n\r\n // Units mustn't become invalid due to additional power info on this form step.\r\n // However, as additional power info can't allow total power to reduced,\r\n // we only need to check for units that have become invalid due to an increase in total power leading to 4105 certification not being enough anymore\r\n // DEV NOTE: The logic do identify a certificate not matching anymore is heavily reliant on knowing the requirements for all certifications,\r\n // as finding out the exact reason for not being valid relies on checking against all certifications, whether they are valid or invalid\r\n // Therefore, it's possible for this logic to somewhat easily break, should additional certifications (other than 4105 and 4110) be added\r\n const invalidGenerationUnits = getInvalidGenerationUnitsWithPreExisting(\r\n formStep.formModel.applicationType,\r\n formStep.formModel.plantPerformance,\r\n formStep.model,\r\n );\r\n formStep.model.generationUnitsFeedback.disabled = !(\r\n invalidGenerationUnits.length > 0 &&\r\n invalidGenerationUnits.some((unit) =>\r\n unit.norm.some((norm) => norm === ConnectionRulesType.rules4105),\r\n )\r\n );\r\n\r\n const isLvStorageBelow30 =\r\n isStorage(formStep.formModel) &&\r\n isLowVoltage(formStep.model) &&\r\n isDischargePowerBelowOrEqualTippingPoint(\r\n formStep.formModel.plantPerformance,\r\n 30,\r\n );\r\n\r\n // https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4854565649/Formular+Netzanschluss#FormularNetzanschluss-feedInPowerShallBeLimitedByAController\r\n formStep.model.feedInPowerShallBeLimitedByAController.disabled =\r\n isPluginGeneratingPlant(formStep.formModel) ||\r\n (isLvStorageBelow30 && !isPvAndStorageLte30(formStep.formModel));\r\n\r\n // https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4854565649/Formular+Netzanschluss#FormularNetzanschluss-feedInPower\r\n formStep.model.feedInPower.disabled =\r\n isPluginGeneratingPlant(formStep.formModel) ||\r\n (isLvStorageBelow30 && !isPvAndStorageLte30(formStep.formModel));\r\n formStep.model.feedInPower.userChangeable =\r\n !formStep.model.feedInPowerShallBeLimitedByAController.disabled &&\r\n (formStep.model.feedInPowerShallBeLimitedByAController.value ?? false);\r\n\r\n const requestTypeIsWithPlanningOrDisabled =\r\n formStep.formModel.generationType.requestType.disabled ||\r\n (!formStep.formModel.generationType.requestType.disabled &&\r\n formStep.formModel.generationType.requestType.value ===\r\n 'requestWithPlanning');\r\n const doesConnectionExistIsOrderedOrNo =\r\n !formStep.model.doesConnectionExist.disabled &&\r\n (formStep.model.doesConnectionExist.value === 'ordered' ||\r\n formStep.model.doesConnectionExist.value === 'no');\r\n const doesConnectionExistIsOrderedOrNoWithRequestTypePlanning =\r\n requestTypeIsWithPlanningOrDisabled && doesConnectionExistIsOrderedOrNo;\r\n\r\n // https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4854565649/Formular+Netzanschluss#FormularNetzanschluss-plannedReferencePower\r\n formStep.model.plannedReferencePower.disabled = !doesConnectionExistIsOrderedOrNoWithRequestTypePlanning;\r\n\r\n // https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4854565649/Formular+Netzanschluss#FormularNetzanschluss-ofWhichOwnUseGeneratingPlant\r\n formStep.model.ofWhichOwnUseGeneratingPlant.disabled = !doesConnectionExistIsOrderedOrNoWithRequestTypePlanning;\r\n\r\n // https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4854565649/Formular+Netzanschluss#FormularNetzanschluss-noConnectionAvailable\r\n formStep.model.noConnectionAvailable.disabled =\r\n formStep.model.doesConnectionExist.disabled ||\r\n formStep.model.doesConnectionExist.value !== 'no';\r\n\r\n // https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4854565649/Formular+Netzanschluss#FormularNetzanschluss-reactivePowerCompensationSystemExists\r\n formStep.model.reactivePowerCompensationSystemExists.disabled = hasLowVoltage;\r\n\r\n // https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4854565649/Formular+Netzanschluss#FormularNetzanschluss-unitCapacity\r\n formStep.model.unitCapacity.disabled =\r\n formStep.model.reactivePowerCompensationSystemExists.disabled ||\r\n !formStep.model.reactivePowerCompensationSystemExists.value;\r\n\r\n // https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4854565649/Formular+Netzanschluss#FormularNetzanschluss-unitIsPrototype\r\n formStep.model.unitIsPrototype.disabled = hasLowVoltage;\r\n\r\n // https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4854565649/Formular+Netzanschluss#FormularNetzanschluss-buildingPowerDemand\r\n formStep.model.buildingPowerDemand.disabled =\r\n hasLowVoltage || requestWithoutPlanning;\r\n\r\n // https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4854565649/Formular+Netzanschluss#FormularNetzanschluss-requiredPower\r\n formStep.model.requiredPower.disabled =\r\n formStep.model.buildingPowerDemand.disabled ||\r\n !formStep.model.buildingPowerDemand.value;\r\n\r\n // https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4854565649/Formular+Netzanschluss#FormularNetzanschluss-fromWhen\r\n formStep.model.fromWhen.disabled =\r\n formStep.model.buildingPowerDemand.disabled ||\r\n !formStep.model.buildingPowerDemand.value;\r\n\r\n // https://netzkern.atlassian.net/browse/ED-597\r\n formStep.model.ownUseExceedsPlannedPowerWarning.disabled =\r\n formStep.model.plannedReferencePower.disabled ||\r\n formStep.model.ofWhichOwnUseGeneratingPlant.disabled ||\r\n isHigherThanOrEqual(\r\n formStep.model.plannedReferencePower.value,\r\n formStep.model.ofWhichOwnUseGeneratingPlant.value,\r\n );\r\n};\r\n","import { PlantOperatorFormStep } from '@/types/forms/formSteps/plantOperatorFormStep';\r\nimport { ApplicationForm } from '@/types/forms/specific/applicationForm';\r\nimport { isPluginGeneratingPlant } from './common';\r\n\r\nexport const plantOperatorRules = async (\r\n formStep: {\r\n model: PlantOperatorFormStep;\r\n formModel: ApplicationForm;\r\n } & Vue,\r\n): Promise => {\r\n // https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4854570380/Formular+Anlagenbetreiber#FormularAnlagenbetreiber-plantBuilder\r\n formStep.model.plantBuilder.disabled = !isPluginGeneratingPlant(\r\n formStep.formModel,\r\n );\r\n\r\n formStep.model.separatePropertyOwner.disabled = isPluginGeneratingPlant(\r\n formStep.formModel,\r\n );\r\n\r\n formStep.model.operators.items.forEach((operator) => {\r\n // https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4854570380/Formular+Anlagenbetreiber#FormularAnlagenbetreiber-companyName\r\n operator.companyName.disabled = operator.salutation.value !== 'company';\r\n\r\n // https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4854570380/Formular+Anlagenbetreiber#FormularAnlagenbetreiber-operatorName.firstName\r\n // https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4854570380/Formular+Anlagenbetreiber#FormularAnlagenbetreiber-operatorName.lastName\r\n operator.operatorName.disabled =\r\n operator.salutation.value === 'company';\r\n\r\n // https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4854570380/Formular+Anlagenbetreiber#FormularAnlagenbetreiber-contactPersonName.firstName\r\n // https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4854570380/Formular+Anlagenbetreiber#FormularAnlagenbetreiber-contactPersonName.lastName\r\n operator.contactPersonName.disabled =\r\n operator.salutation.value !== 'company';\r\n\r\n // https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4854570380/Formular+Anlagenbetreiber#FormularAnlagenbetreiber-birthday\r\n operator.birthday.disabled = operator.salutation.value === 'company';\r\n });\r\n\r\n const usePlantLocation =\r\n (!formStep.model.usePlantLocation.disabled &&\r\n formStep.model.usePlantLocation.value) ??\r\n false;\r\n formStep.model.zipAndCity.disabled = usePlantLocation;\r\n formStep.model.streetAndHousenumber.disabled = usePlantLocation;\r\n\r\n const isStreetAndHouseNumberAvailable =\r\n !!formStep.formModel.location.streetAndHousenumber.street.value &&\r\n !!formStep.formModel.location.streetAndHousenumber.housenumber.value;\r\n\r\n formStep.model.usePlantLocation.disabled =\r\n formStep.formModel.location.streetAndHousenumber.disabled ||\r\n !isStreetAndHouseNumberAvailable;\r\n};\r\n","export const plantBuilderRules = async (): Promise => {\r\n // no rules at the moment\r\n};\r\n","import { PlantPerformanceFormStep } from '@/types/forms/formSteps/plantPerformanceFormStep';\r\nimport { PowerReductionValueType } from '@/types/forms/shared/powerReductionValueType';\r\nimport { ApplicationForm } from '@/types/forms/specific/applicationForm';\r\nimport {\r\n isPv,\r\n isPowerHeatCoupling,\r\n isDea,\r\n isUnknown,\r\n isNominalPowerBelowOrEqualTippingPoint,\r\n isActivePowerAboveTippingPoint,\r\n isActivePowerBelowOrEqualTippingPoint,\r\n isNonHighEfficiencyChpPlant,\r\n isHighEfficiencyChpPlant,\r\n isPluginGeneratingPlant,\r\n isNominalPowerAboveTippingPoint,\r\n} from '../common';\r\nimport { findFirstValidKey } from '@/utilities/findFirstValidKey';\r\nimport { PlantDataFormStep } from '@/types/forms/formSteps/plantDataFormStep';\r\n\r\nconst isOther = (formModel: ApplicationForm) =>\r\n isDea(formModel) || isPowerHeatCoupling(formModel) || isUnknown(formModel);\r\n\r\n//https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4854573319/Formular+Anlagenleistung#FormularAnlagenleistung-isPvNominalPowerInRange\r\nconst isPvNominalPowerInRangeRule = function (\r\n model: PlantPerformanceFormStep,\r\n formModel: ApplicationForm,\r\n): boolean {\r\n return (\r\n isPv(formModel) &&\r\n isNominalPowerAboveTippingPoint(model, 25) &&\r\n isNominalPowerBelowOrEqualTippingPoint(model, 100)\r\n );\r\n};\r\n\r\n//https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4854573319/Formular+Anlagenleistung#FormularAnlagenleistung-isPhcActivePowerInRange\r\nconst isPhcActivePowerInRangeRule = function (\r\n model: PlantPerformanceFormStep,\r\n formModel: ApplicationForm,\r\n): boolean {\r\n return (\r\n isPowerHeatCoupling(formModel) &&\r\n ((isNonHighEfficiencyChpPlant(formModel.plantData) &&\r\n isActivePowerBelowOrEqualTippingPoint(model, 100)) ||\r\n (isHighEfficiencyChpPlant(formModel.plantData) &&\r\n isActivePowerAboveTippingPoint(model, 25) &&\r\n isActivePowerBelowOrEqualTippingPoint(model, 100)))\r\n );\r\n};\r\n\r\n//https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4854573319/Formular+Anlagenleistung#FormularAnlagenleistung-isDeaUnknownMiddleRangeActivePower\r\nconst isDeaUnknownMiddleRangeActivePowerRule = function (\r\n model: PlantPerformanceFormStep,\r\n formModel: ApplicationForm,\r\n): boolean {\r\n return (\r\n (isDea(formModel) || isUnknown(formModel)) &&\r\n isActivePowerAboveTippingPoint(model, 25) &&\r\n isActivePowerBelowOrEqualTippingPoint(model, 100)\r\n );\r\n};\r\n\r\n/**\r\n * Disables any invalid options in the Power Reduction Type Radio Group based on the supplied powerReductionRules\r\n */\r\nconst setPowerReductionTypeOptions = function (\r\n model: PlantDataFormStep,\r\n powerReductionRules: Record,\r\n): void {\r\n model.infeedManagement.imPowerReductionType.options.forEach((o) => {\r\n o.disabled = !powerReductionRules[o.key];\r\n });\r\n};\r\n\r\ntype InfeedManagementConditionalInfoKey = 'pvInfo' | 'otherInfo';\r\n\r\nexport const plantDataInfeedManagementRules = async (\r\n formStep: {\r\n model: PlantDataFormStep;\r\n formModel: ApplicationForm;\r\n } & Vue,\r\n): Promise => {\r\n //Execute Rules\r\n const isPvNominalPowerInRange = isPvNominalPowerInRangeRule(\r\n formStep.formModel.plantPerformance,\r\n formStep.formModel,\r\n );\r\n\r\n const isPhcActivePowerInRange = isPhcActivePowerInRangeRule(\r\n formStep.formModel.plantPerformance,\r\n formStep.formModel,\r\n );\r\n\r\n const isDeaUnknownMiddleRangeActivePower = isDeaUnknownMiddleRangeActivePowerRule(\r\n formStep.formModel.plantPerformance,\r\n formStep.formModel,\r\n );\r\n\r\n const isPlugin = isPluginGeneratingPlant(formStep.formModel);\r\n\r\n //set overall visibility of the infeed management section\r\n formStep.model.infeedManagement.disabled =\r\n isPlugin ||\r\n formStep.formModel.applicationType === 'storage' ||\r\n (!isPvNominalPowerInRange &&\r\n !isPhcActivePowerInRange &&\r\n !isDeaUnknownMiddleRangeActivePower);\r\n\r\n //In-Feed Management Conditional Info\r\n const infeedManagementConditionInfo = {\r\n pvInfo: isPv(formStep.formModel),\r\n otherInfo: isOther(formStep.formModel),\r\n } as Record;\r\n\r\n formStep.model.infeedManagement.imHeadline.conditionalInfoKey = findFirstValidKey(\r\n infeedManagementConditionInfo,\r\n );\r\n\r\n //Power Reduction Items Display Logic\r\n const isAudioFrequencyControlReceiver =\r\n isPvNominalPowerInRange ||\r\n isPhcActivePowerInRange ||\r\n isDeaUnknownMiddleRangeActivePower;\r\n\r\n const noPowerReduction =\r\n isPluginGeneratingPlant(formStep.formModel) &&\r\n (isPvNominalPowerInRange || isDeaUnknownMiddleRangeActivePower);\r\n\r\n const powerReductionRules: Record = {\r\n noPowerReduction: noPowerReduction,\r\n audioFrequencyControlReceiverInternal: isAudioFrequencyControlReceiver,\r\n audioFrequencyControlReceiverExternal: isAudioFrequencyControlReceiver,\r\n };\r\n\r\n setPowerReductionTypeOptions(formStep.model, powerReductionRules);\r\n\r\n //Billing and Contracting Rules\r\n const isAudioFrequencyControlReceiverInternal =\r\n !formStep.model.infeedManagement.imPowerReductionType.disabled &&\r\n formStep.model.infeedManagement.imPowerReductionType.value ===\r\n 'audioFrequencyControlReceiverInternal';\r\n\r\n const isAudioFrequencyControlReceiverExternal =\r\n !formStep.model.infeedManagement.imPowerReductionType.disabled &&\r\n formStep.model.infeedManagement.imPowerReductionType.value ===\r\n 'audioFrequencyControlReceiverExternal';\r\n\r\n formStep.formModel.plantData.infeedManagement.toneFrequencyReceiverToPlantOperatorOrBuilder.disabled = !isAudioFrequencyControlReceiverInternal;\r\n\r\n formStep.model.infeedManagement.imAudioFrequencyControlReceiverContract.disabled = !isAudioFrequencyControlReceiverInternal;\r\n\r\n formStep.model.infeedManagement.imProvisionThrough.disabled = !isAudioFrequencyControlReceiverExternal;\r\n\r\n //Billing Rules\r\n formStep.model.infeedManagement.imBilling.disabled = !isAudioFrequencyControlReceiverInternal;\r\n const isSepa =\r\n !formStep.model.infeedManagement.imBilling.disabled &&\r\n formStep.model.infeedManagement.imBilling.value === 'sepa';\r\n formStep.model.infeedManagement.imDirectDebitMandate.disabled = !isSepa;\r\n formStep.model.infeedManagement.imIban.disabled = !isSepa;\r\n formStep.model.infeedManagement.imCreditInstitutionName.disabled = !isSepa;\r\n formStep.model.infeedManagement.imAccountHolderName.disabled = !isSepa;\r\n formStep.model.infeedManagement.imBillingDate.disabled = !isSepa;\r\n\r\n formStep.model.infeedManagement.imTechnicalSpecificationsNote.disabled =\r\n !formStep.formModel.billing.noEegRemuneration.disabled &&\r\n !!formStep.formModel.billing.noEegRemuneration.value;\r\n};\r\n","import { PlantDataFormStep } from '@/types/forms/formSteps/plantDataFormStep';\r\nimport { ApplicationForm } from '@/types/forms/specific/applicationForm';\r\nimport {\r\n isStorageCouplingAcCoupled,\r\n isStorageCouplingDcCoupled,\r\n isStorageConnectionConceptWithoutPowerGeneration,\r\n isStorageConnectionConceptWithoutPowerGenerationAndWithConsumptionPlant,\r\n isStorageConnectionConceptWithPowerGeneration,\r\n isStorageConnectionConceptStorageInGenerationPath,\r\n isStorageConnectionConceptStorageInConsumerPath,\r\n isStorageChargeFromPublicGrid,\r\n isStorageDischargeIntoPublicGrid,\r\n isPluginGeneratingPlant,\r\n isPv,\r\n isMediumVoltage,\r\n isStorage,\r\n isStorageDischargeCustomersGridAndPublicGrid,\r\n isRequestWithoutPlanning,\r\n isPvAndStorageLte30,\r\n isHighEfficiencyChpPlant,\r\n} from './common';\r\nimport { plantDataInfeedManagementRules } from './plantData/infeedManagement';\r\nimport { getOverallNominalPower } from '../../utilities/application/plantPerformance';\r\nimport { toggleRequiredValidator } from '@/utilities/toggleRequiredValidator';\r\n\r\nexport const plantDataRules = async (\r\n formStep: { model: PlantDataFormStep; formModel: ApplicationForm } & Vue,\r\n): Promise => {\r\n const applicationType = formStep.formModel.applicationType;\r\n const hasStorage = isStorage(formStep.formModel);\r\n formStep.model.newOrExistingApplication.disabled =\r\n applicationType == 'photovoltaicAndStorageLte30' ||\r\n (applicationType === 'storage' &&\r\n isRequestWithoutPlanning(formStep.formModel));\r\n formStep.model.plantWasAlreadyCommissioned.disabled =\r\n applicationType === 'storage' &&\r\n isRequestWithoutPlanning(formStep.formModel);\r\n\r\n formStep.model.applicationNumber.disabled =\r\n formStep.model.newOrExistingApplication.disabled ||\r\n formStep.model.newOrExistingApplication.value !== 'change';\r\n\r\n // https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4868800911/Formular+Anlagendaten#FormularAnlagendaten-newOrExistingPlant\r\n {\r\n if (\r\n formStep.formModel.applicationType == 'photovoltaicAndStorageLte30'\r\n ) {\r\n formStep.model.newOrExistingPlant.value = 'first';\r\n }\r\n\r\n formStep.model.newOrExistingPlant.disabled =\r\n applicationType === 'photovoltaic' ||\r\n applicationType == 'photovoltaicAndStorageLte30' ||\r\n (applicationType === 'storage' &&\r\n isRequestWithoutPlanning(formStep.formModel));\r\n\r\n for (const option of formStep.model.newOrExistingPlant.options) {\r\n switch (option.key) {\r\n case 'performanceIncrease':\r\n option.disabled = hasStorage;\r\n break;\r\n case 'capacityIncrease':\r\n case 'capacityIncreaseWithNominalDischargeCapacityChange':\r\n option.disabled = !hasStorage;\r\n }\r\n }\r\n }\r\n\r\n // https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4868800911/Formular+Anlagendaten#FormularAnlagendaten-powerHeatCouplingPlantType\r\n formStep.model.powerHeatCouplingPlantType.disabled =\r\n applicationType !== 'powerHeatCoupling';\r\n\r\n // https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4868800911/Formular+Anlagendaten#FormularAnlagendaten-powerHeatCouplingPaymentsBasedOnLawHint\r\n formStep.model.powerHeatCouplingPaymentsBasedOnLawHint.disabled =\r\n formStep.model.powerHeatCouplingPlantType.disabled ||\r\n formStep.model.powerHeatCouplingPlantType.value !==\r\n 'highEfficiencyChpPlant';\r\n\r\n // https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4868800911/Formular+Anlagendaten#FormularAnlagendaten-bafaApprovalWillBeSubmittedLater\r\n formStep.model.bafaApprovalWillBeSubmittedLater.disabled =\r\n formStep.model.powerHeatCouplingPlantType.disabled ||\r\n formStep.model.powerHeatCouplingPlantType.value !==\r\n 'highEfficiencyChpPlant';\r\n\r\n // https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4868800911/Formular+Anlagendaten#FormularAnlagendaten-initialCommissioningDate\r\n formStep.model.initialCommissioningDate.disabled =\r\n formStep.model.plantWasAlreadyCommissioned.value !== true;\r\n\r\n // https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4868800911/Formular+Anlagendaten#FormularAnlagendaten-plantBuildingType\r\n {\r\n formStep.model.plantBuildingType.disabled =\r\n formStep.formModel.generationType.plantStructureType.disabled ||\r\n formStep.formModel.generationType.plantStructureType.value !==\r\n 'building' ||\r\n (isPv(formStep.formModel) &&\r\n (formStep.formModel.plantPerformance.photovoltaic\r\n .pvOverallNominalPower.value ?? 0) > 100) ||\r\n isMediumVoltage(formStep.formModel.powerConnection);\r\n }\r\n // https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4868800911/Formular+Anlagendaten#FormularAnlagendaten-plantPosition\r\n formStep.model.plantPosition.disabled =\r\n formStep.model.plantBuildingType.disabled ||\r\n formStep.model.plantBuildingType.value !== 'noResidentialBuilding';\r\n\r\n // https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4868800911/Formular+Anlagendaten#FormularAnlagendaten-pvInstallationType\r\n {\r\n formStep.model.pvInstallationType.disabled =\r\n (applicationType !== 'photovoltaic' &&\r\n applicationType !== 'photovoltaicAndStorageLte30') ||\r\n (formStep.formModel.plantPerformance.photovoltaic\r\n .pvOverallNominalPower.value ?? 0) > 100 ||\r\n isMediumVoltage(formStep.formModel.powerConnection);\r\n\r\n for (const option of formStep.model.pvInstallationType.options) {\r\n switch (option.key) {\r\n case 'residentialOrSimilarBuilding':\r\n option.disabled =\r\n (formStep.formModel.generationType.plantStructureType\r\n .disabled ||\r\n formStep.formModel.generationType.plantStructureType\r\n .value !== 'noiseBarrier') &&\r\n (formStep.model.plantBuildingType.disabled ||\r\n formStep.model.plantBuildingType.value !==\r\n 'residentialBuilding') &&\r\n (formStep.model.plantPosition.disabled ||\r\n formStep.model.plantPosition.value) !== 'indoor';\r\n break;\r\n\r\n case 'outsideNonResidentialBuilding':\r\n option.disabled =\r\n formStep.model.plantPosition.disabled ||\r\n formStep.model.plantPosition.value !== 'outdoor';\r\n break;\r\n case 'outsideNonResidentialBuildingEEG48Abs1':\r\n option.disabled =\r\n formStep.model.plantPosition.disabled ||\r\n formStep.model.plantPosition.value !== 'outdoor';\r\n break;\r\n\r\n case 'structuralFacility':\r\n case 'nextToResidentialBuilding':\r\n case 'publicWasteDisposalFacilities':\r\n case 'approvedDevelopmentPlan':\r\n case 'agriculturalLandOrParkingLots':\r\n case 'artificialWaterBody':\r\n case 'drainedPeatland':\r\n option.disabled =\r\n formStep.formModel.generationType.disabled ||\r\n formStep.formModel.generationType.plantStructureType\r\n .value !== 'openSpacePlant';\r\n break;\r\n }\r\n }\r\n }\r\n\r\n // https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4868800911/Formular+Anlagendaten#FormularAnlagendaten-pvInstallationTypeForAgriculturalLandOrParkingLots\r\n formStep.model.pvInstallationTypeForAgriculturalLandOrParkingLots.disabled =\r\n applicationType !== 'photovoltaic' ||\r\n formStep.model.pvInstallationType.disabled ||\r\n formStep.model.pvInstallationType.value !==\r\n 'agriculturalLandOrParkingLots';\r\n\r\n // https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4868800911/Formular+Anlagendaten#FormularAnlagendaten-storageConnection\r\n // The field is only displayed if it is an application with storage.\r\n // and this application has planning maturity.\r\n formStep.model.storageConnection.disabled = !(\r\n hasStorage && !isRequestWithoutPlanning(formStep.formModel)\r\n );\r\n // https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4868800911/Formular+Anlagendaten#FormularAnlagendaten-storageCoupling\r\n {\r\n formStep.model.storageCoupling.disabled = !hasStorage;\r\n }\r\n // https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4868800911/Formular+Anlagendaten#FormularAnlagendaten-storageConnectionConcept\r\n {\r\n formStep.model.storageConnectionConcept.disabled =\r\n !hasStorage || !formStep.model.storageCoupling.value;\r\n\r\n for (const option of formStep.model.storageConnectionConcept.options) {\r\n switch (option.key) {\r\n case 'storageWithoutPowerGenerationPlantAndWithoutConsumptionPlant':\r\n case 'storageWithoutPowerGenerationPlantAndWithConsumptionPlant':\r\n case 'storageFacilityWithPowerGenerationPlantAndWithoutConsumptionPlant':\r\n case 'powerGenerationPlantWithStorageInTheConsumerPathAndConsumptionPlant':\r\n option.disabled = !isStorageCouplingAcCoupled(\r\n formStep.model,\r\n );\r\n break;\r\n\r\n case 'powerGenerationPlantWithStorageFacilityInTheGenerationPathAndConsumptionPlant':\r\n option.disabled = !isStorageCouplingDcCoupled(\r\n formStep.model,\r\n );\r\n break;\r\n }\r\n }\r\n }\r\n\r\n // Enable or disable all storageCoupling options based on the value of storageHasSeparateInverter\r\n // For normal storage applications, the options are always enabled.\r\n // For photovoltaicAndStorageLte30 applications, the options need to be set to acCoupled or dcCoupled depending on the value of storageHasSeparateInverter.\r\n const isStorageHasSeparateInverterEnabled = !formStep.formModel\r\n .plantPerformance.storageHasSeparateInverter.disabled;\r\n formStep.model.storageCoupling.options.forEach((option) => {\r\n option.disabled = isStorageHasSeparateInverterEnabled;\r\n });\r\n formStep.model.storageCoupling.userChangeable = !isStorageHasSeparateInverterEnabled;\r\n if (isStorageHasSeparateInverterEnabled) {\r\n formStep.model.storageCoupling.options.forEach((option) => {\r\n if (option.key === 'acCoupled') {\r\n option.disabled = !formStep.formModel.plantPerformance\r\n .storageHasSeparateInverter.value;\r\n } else if (option.key === 'dcCoupled') {\r\n option.disabled = !!formStep.formModel.plantPerformance\r\n .storageHasSeparateInverter.value;\r\n }\r\n });\r\n }\r\n\r\n // https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4868800911/Formular+Anlagendaten#FormularAnlagendaten-electricityTaxExemptionHint\r\n formStep.model.electricityTaxExemptionHint.disabled = hasStorage;\r\n\r\n // https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4868800911/Formular+Anlagendaten#FormularAnlagendaten-tenantElectricitySurcharge\r\n formStep.model.tenantElectricitySurcharge.disabled =\r\n (applicationType !== 'photovoltaic' &&\r\n applicationType !== 'photovoltaicAndStorageLte30') ||\r\n isPluginGeneratingPlant(formStep.formModel) ||\r\n formStep.formModel.generationType.plantStructureType.value !==\r\n 'building';\r\n\r\n // https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4868800911/Formular+Anlagendaten#FormularAnlagendaten-requirementTenantElectricitySurchargeHint\r\n formStep.model.requirementTenantElectricitySurchargeHint.disabled =\r\n formStep.model.tenantElectricitySurcharge.disabled ||\r\n !formStep.model.tenantElectricitySurcharge.value;\r\n\r\n formStep.model.plantBuildingTypeForTenantElectricitySurcharge.disabled =\r\n formStep.model.tenantElectricitySurcharge.disabled ||\r\n !formStep.model.tenantElectricitySurcharge.value ||\r\n !formStep.model.plantBuildingType.disabled ||\r\n (isPv(formStep.formModel) &&\r\n (formStep.formModel.plantPerformance.photovoltaic\r\n .pvOverallNominalPower.value ?? 0) <= 100);\r\n\r\n // https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4868800911/Formular+Anlagendaten#FormularAnlagendaten-minimumRequirementLivingSpace\r\n formStep.model.minimumRequirementLivingSpace.disabled =\r\n (formStep.model.plantBuildingTypeForTenantElectricitySurcharge.value ==\r\n 'noResidentialBuilding' &&\r\n !formStep.model.plantBuildingTypeForTenantElectricitySurcharge\r\n .disabled) ||\r\n (formStep.model.plantBuildingType.value == 'noResidentialBuilding' &&\r\n !formStep.model.plantBuildingType.disabled) ||\r\n formStep.model.tenantElectricitySurcharge.disabled ||\r\n !formStep.model.tenantElectricitySurcharge.value;\r\n\r\n formStep.model.noResidentialExemptions.disabled =\r\n formStep.model.tenantElectricitySurcharge.disabled ||\r\n !formStep.model.tenantElectricitySurcharge.value == true ||\r\n (formStep.model.plantBuildingTypeForTenantElectricitySurcharge.value !==\r\n 'noResidentialBuilding' &&\r\n !formStep.model.plantBuildingTypeForTenantElectricitySurcharge\r\n .disabled) ||\r\n (formStep.model.plantBuildingType.value !== 'noResidentialBuilding' &&\r\n !formStep.model.plantBuildingType.disabled);\r\n\r\n // https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4868800911/Formular+Anlagendaten#FormularAnlagendaten-electricityConsumptionWithinThisBuilding\r\n formStep.model.electricityConsumptionWithinThisBuilding.disabled =\r\n formStep.model.tenantElectricitySurcharge.disabled ||\r\n !formStep.model.tenantElectricitySurcharge.value;\r\n\r\n // https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4868800911/Formular+Anlagendaten#FormularAnlagendaten-noAdditionalNetworkForEndConsumer\r\n formStep.model.noAdditionalNetworkForEndConsumer.disabled =\r\n formStep.model.tenantElectricitySurcharge.disabled ||\r\n !formStep.model.tenantElectricitySurcharge.value;\r\n\r\n // https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4868800911/Formular+Anlagendaten#FormularAnlagendaten-federalNetworkAgencyHint\r\n formStep.model.federalNetworkAgencyHint.disabled =\r\n formStep.model.tenantElectricitySurcharge.disabled ||\r\n !formStep.model.tenantElectricitySurcharge.value;\r\n\r\n // https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4868800911/Formular+Anlagendaten#FormularAnlagendaten-proofOfRegistrationPhotovoltaic\r\n formStep.model.proofOfRegistrationPhotovoltaic.disabled =\r\n formStep.model.tenantElectricitySurcharge.disabled ||\r\n !formStep.model.tenantElectricitySurcharge.value;\r\n\r\n // https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4868800911/Formular+Anlagendaten#FormularAnlagendaten-proofOfAllocationOfTenantElectricitySurcharge\r\n formStep.model.proofOfAllocationOfTenantElectricitySurcharge.disabled =\r\n formStep.model.tenantElectricitySurcharge.disabled ||\r\n !formStep.model.tenantElectricitySurcharge.value;\r\n\r\n // https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4868800911/Formular+Anlagendaten#FormularAnlagendaten-declarationEnwgHint\r\n formStep.model.declarationEnwgHint.disabled =\r\n formStep.model.tenantElectricitySurcharge.disabled ||\r\n !formStep.model.tenantElectricitySurcharge.value;\r\n\r\n // https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4868800911/Formular+Anlagendaten#FormularAnlagendaten-plantOperatorKnowsEnwgSpecifications\r\n formStep.model.plantOperatorKnowsEnwgSpecifications.disabled =\r\n formStep.model.tenantElectricitySurcharge.disabled ||\r\n !formStep.model.tenantElectricitySurcharge.value;\r\n\r\n // https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4868800911/Formular+Anlagendaten#FormularAnlagendaten-storageCharge\r\n {\r\n formStep.model.storageCharge.disabled =\r\n !hasStorage || !formStep.model.storageCoupling.value;\r\n\r\n for (const option of formStep.model.storageCharge.options) {\r\n switch (option.key) {\r\n case 'onlyFromEeg':\r\n case 'onlyFromKwkg':\r\n case 'fromEegAndKwkg':\r\n case 'fromPublicGridAndEeg':\r\n case 'fromPublicGridAndKwkg':\r\n case 'fromPublicGridAndEegAndKwkg':\r\n option.disabled =\r\n isStorageConnectionConceptWithoutPowerGeneration(\r\n formStep.model,\r\n ) ||\r\n isStorageConnectionConceptWithoutPowerGenerationAndWithConsumptionPlant(\r\n formStep.model,\r\n );\r\n break;\r\n\r\n case 'onlyFromPublicGrid':\r\n option.disabled =\r\n !isStorageConnectionConceptWithoutPowerGeneration(\r\n formStep.model,\r\n ) &&\r\n !isStorageConnectionConceptWithoutPowerGenerationAndWithConsumptionPlant(\r\n formStep.model,\r\n );\r\n break;\r\n }\r\n }\r\n }\r\n\r\n // https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4868800911/Formular+Anlagendaten#FormularAnlagendaten-storageDischarge\r\n {\r\n formStep.model.storageDischarge.disabled =\r\n !hasStorage || !formStep.model.storageCoupling.value;\r\n\r\n for (const option of formStep.model.storageDischarge.options) {\r\n switch (option.key) {\r\n case 'onlyIntoCustomersGridSelfSupply':\r\n case 'intoCustomersGridAndPublicGridBivalent':\r\n option.disabled =\r\n !isStorageConnectionConceptStorageInGenerationPath(\r\n formStep.model,\r\n ) &&\r\n !isStorageConnectionConceptStorageInConsumerPath(\r\n formStep.model,\r\n ) &&\r\n !isStorageConnectionConceptWithoutPowerGenerationAndWithConsumptionPlant(\r\n formStep.model,\r\n );\r\n break;\r\n\r\n case 'onlyIntoPublicGridGridFeedIn':\r\n option.disabled =\r\n !isStorageConnectionConceptWithoutPowerGeneration(\r\n formStep.model,\r\n ) &&\r\n !isStorageConnectionConceptWithPowerGeneration(\r\n formStep.model,\r\n );\r\n break;\r\n }\r\n }\r\n }\r\n const isEligibleApplicationType =\r\n formStep.formModel.applicationType === 'photovoltaicAndStorageLte30' ||\r\n formStep.formModel.applicationType === 'dea' ||\r\n formStep.formModel.applicationType === 'photovoltaic' ||\r\n (formStep.formModel.applicationType === 'powerHeatCoupling' &&\r\n isHighEfficiencyChpPlant(formStep.formModel.plantData));\r\n\r\n const overallNominalPower =\r\n getOverallNominalPower(formStep.formModel.plantPerformance) || 0;\r\n\r\n const isPlugin = isPluginGeneratingPlant(formStep.formModel);\r\n\r\n formStep.model.activePowerLimit60.disabled =\r\n !(\r\n overallNominalPower > 2 &&\r\n overallNominalPower < 100 &&\r\n isEligibleApplicationType\r\n ) ||\r\n isPlugin ||\r\n formStep.formModel.applicationType === 'storage';\r\n\r\n const storageChargeFromPublicGrid = isStorageChargeFromPublicGrid(\r\n formStep.model,\r\n );\r\n\r\n const storageDischargeIntoPublicGrid = isStorageDischargeIntoPublicGrid(\r\n formStep.model,\r\n );\r\n\r\n // https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4868800911/Formular+Anlagendaten#FormularAnlagendaten-storageBalancingEnergyMarketParticipation\r\n formStep.model.storageBalancingEnergyMarketParticipation.disabled =\r\n !hasStorage ||\r\n (!storageChargeFromPublicGrid && !storageDischargeIntoPublicGrid);\r\n\r\n // https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4868800911/Formular+Anlagendaten#FormularAnlagendaten-storageBalancingEnergyMarketParticipationType\r\n {\r\n formStep.model.storageBalancingEnergyMarketParticipationType.disabled =\r\n formStep.model.storageBalancingEnergyMarketParticipation.disabled ||\r\n !formStep.model.storageBalancingEnergyMarketParticipation.value;\r\n\r\n for (const option of formStep.model\r\n .storageBalancingEnergyMarketParticipationType.options) {\r\n switch (option.key) {\r\n case 'positiveAndNegative':\r\n option.disabled =\r\n !storageChargeFromPublicGrid ||\r\n !storageDischargeIntoPublicGrid;\r\n break;\r\n\r\n case 'onlyPositive':\r\n option.disabled = !storageDischargeIntoPublicGrid;\r\n break;\r\n\r\n case 'onlyNegative':\r\n option.disabled = !storageChargeFromPublicGrid;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n formStep.model.storagePublicDischargeWarning.disabled =\r\n !hasStorage ||\r\n !(\r\n (isStorageConnectionConceptStorageInGenerationPath(\r\n formStep.model,\r\n ) ||\r\n isStorageConnectionConceptStorageInConsumerPath(\r\n formStep.model,\r\n )) &&\r\n isStorageDischargeCustomersGridAndPublicGrid(formStep.model)\r\n );\r\n\r\n await plantDataInfeedManagementRules(formStep);\r\n};\r\n","import { PropertyOwnerFormStep } from '@/types/forms/formSteps/propertyOwnerFormStep';\r\n\r\nexport const propertyOwnerRules = async (\r\n formStep: { model: PropertyOwnerFormStep } & Vue,\r\n): Promise => {\r\n formStep.model.owners.items.forEach((owner) => {\r\n // https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4854571973/Formular+Grundst+ckseigent+mer#FormularGrundstückseigentümer-companyName\r\n owner.companyName.disabled = owner.salutation.value !== 'company';\r\n\r\n // https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4854571973/Formular+Grundst+ckseigent+mer#FormularGrundstückseigentümer-ownerName.firstName\r\n // https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4854571973/Formular+Grundst+ckseigent+mer#FormularGrundstückseigentümer-ownerName.lastName\r\n owner.ownerName.disabled = owner.salutation.value === 'company';\r\n\r\n // https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4854571973/Formular+Grundst+ckseigent+mer#FormularGrundstückseigentümer-contactPerson.firstName\r\n // https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4854571973/Formular+Grundst+ckseigent+mer#FormularGrundstückseigentümer-contactPerson.lastName\r\n owner.contactPersonName.disabled = owner.salutation.value !== 'company';\r\n\r\n // https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4854571973/Formular+Grundst+ckseigent+mer#FormularGrundstückseigentümer-birthday\r\n owner.birthday.disabled = owner.salutation.value === 'company';\r\n });\r\n};\r\n","import { PlantPerformanceFormStep } from '@/types/forms/formSteps/plantPerformanceFormStep';\r\nimport { ApplicationForm } from '@/types/forms/specific/applicationForm';\r\n\r\nexport const plantPerformancePhotovoltaicRules = async (\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n formStep: {\r\n model: PlantPerformanceFormStep;\r\n formModel: ApplicationForm;\r\n } & Vue,\r\n): Promise => {\r\n const pvOverallNominalPower =\r\n formStep.model.photovoltaic.pvOverallNominalPower.value;\r\n\r\n formStep.model.photovoltaic.pvTotalPower30.disabled =\r\n formStep.formModel.applicationType !== 'photovoltaicAndStorageLte30' ||\r\n pvOverallNominalPower === null ||\r\n pvOverallNominalPower <= 30;\r\n};\r\n","import { PlantPerformanceFormStep } from '@/types/forms/formSteps/plantPerformanceFormStep';\r\nimport { ApplicationForm } from '@/types/forms/specific/applicationForm';\r\nimport { isTotalPlantPerformanceAbove300 } from '../common';\r\n\r\nexport const plantPerformanceStorageRules = async (\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n formStep: {\r\n model: PlantPerformanceFormStep;\r\n formModel: ApplicationForm;\r\n } & Vue,\r\n): Promise => {\r\n const storageOverallDischargePower =\r\n formStep.model.storage.storageOverallDischargePower.value;\r\n\r\n const hasTotalPlantPerformanceAbove300 = isTotalPlantPerformanceAbove300(\r\n formStep.formModel,\r\n );\r\n\r\n for (const module of formStep.model.storage.storageModules.items) {\r\n module.storageMemoryExpansion.disabled = hasTotalPlantPerformanceAbove300;\r\n }\r\n\r\n formStep.model.storage.storageTotalPower30.disabled =\r\n formStep.formModel.applicationType !== 'photovoltaicAndStorageLte30' ||\r\n storageOverallDischargePower === null ||\r\n storageOverallDischargePower <= 30;\r\n};\r\n","import Vue from 'vue';\r\nimport { PlantPerformanceFormStep } from '@/types/forms/formSteps/plantPerformanceFormStep';\r\nimport { ApplicationForm } from '@/types/forms/specific/applicationForm';\r\nimport {\r\n isRequestWithoutPlanning,\r\n isTotalPlantPerformanceBelow300,\r\n} from '../common';\r\nimport { toggleRequiredValidator } from '@/utilities/toggleRequiredValidator';\r\nimport { powerMatchesConnectionRules } from '@/utilities/utils';\r\nimport { getOverallActivePowerWithPreExisting } from '@/services/form/utilities/application/powerConnection';\r\nimport { GeneratorDataContentSearchByManufacturer } from '@/api/interfaces/content/form/serviceDriven/generatorDataContentSearchByManufacturer';\r\nimport { GeneratorDataContent } from '@/api/interfaces/content/form/serviceDriven/generatorDataContent';\r\nimport { contentServices } from '@/services/contentService';\r\n\r\nfunction getGenerators(\r\n data: GeneratorDataContentSearchByManufacturer,\r\n): GeneratorDataContent[] | undefined {\r\n const content = contentServices.form.content;\r\n if (!content) {\r\n return undefined;\r\n }\r\n\r\n const generatorsContent = content?.serviceDrivenContent?.generatorsContent;\r\n if (!generatorsContent) {\r\n return undefined;\r\n }\r\n\r\n return generatorsContent.filter(\r\n (generator) => generator.manufacturerName === data.manufacturerName,\r\n );\r\n}\r\n\r\nexport const plantPerformanceGeneratorRules = async (\r\n formStep: {\r\n model: PlantPerformanceFormStep;\r\n formModel: ApplicationForm;\r\n } & Vue,\r\n): Promise => {\r\n const hasTotalPlantPerformanceBelow300 = isTotalPlantPerformanceBelow300(\r\n formStep.formModel,\r\n );\r\n const requestWithoutPlanning = isRequestWithoutPlanning(formStep.formModel);\r\n\r\n const overallActivePowerWithPreexisting =\r\n getOverallActivePowerWithPreExisting(\r\n formStep.formModel.applicationType,\r\n formStep.model,\r\n formStep.formModel.powerConnection,\r\n ) ?? 0;\r\n\r\n for (const module of formStep.model.generator.generatorModules.items) {\r\n module.generatorManualInputManufacturerTypeZerezId.disabled = requestWithoutPlanning;\r\n const enableManualInput =\r\n !module.generatorManualInputManufacturerTypeZerezId.disabled &&\r\n module.generatorManualInputManufacturerTypeZerezId.value === true;\r\n\r\n module.generatorActivePowerAndApparentPower.activePower.userChangeable =\r\n enableManualInput || requestWithoutPlanning;\r\n module.generatorActivePowerAndApparentPower.apparentPower.userChangeable =\r\n enableManualInput || requestWithoutPlanning;\r\n\r\n module.generatorManufacturerAndModuleType.manufacturer.disabled = requestWithoutPlanning;\r\n module.generatorManufacturerAndModuleType.moduleType.disabled = requestWithoutPlanning;\r\n module.generatorManufacturerAndModuleType.manufacturerText.disabled =\r\n requestWithoutPlanning || !enableManualInput;\r\n module.generatorManufacturerAndModuleType.moduleTypeText.disabled =\r\n requestWithoutPlanning || !enableManualInput;\r\n module.generatorManufacturerAndModuleType.manufacturerSelect.disabled =\r\n enableManualInput || requestWithoutPlanning;\r\n module.generatorManufacturerAndModuleType.moduleTypeSelect.disabled =\r\n enableManualInput || requestWithoutPlanning;\r\n module.generatorManufacturerAndModuleType.disabled =\r\n module.generatorManufacturerAndModuleType.manufacturer.disabled &&\r\n module.generatorManufacturerAndModuleType.moduleType.disabled;\r\n\r\n module.generatorZerezIdAndNorm.zerezId.disabled =\r\n enableManualInput || requestWithoutPlanning;\r\n module.generatorZerezIdAndNorm.norm.disabled =\r\n enableManualInput || requestWithoutPlanning;\r\n module.generatorZerezIdAndNorm.normText.disabled =\r\n enableManualInput || requestWithoutPlanning;\r\n module.generatorZerezIdAndNorm.disabled =\r\n module.generatorZerezIdAndNorm.zerezId.disabled &&\r\n module.generatorZerezIdAndNorm.norm.disabled &&\r\n module.generatorZerezIdAndNorm.normText.disabled;\r\n\r\n // Make module type select not-user-editable, if no manufacturer is selected\r\n module.generatorManufacturerAndModuleType.moduleTypeSelect.userChangeable = !!module\r\n .generatorManufacturerAndModuleType.manufacturerSelect.value;\r\n\r\n // Disable module type options that are not supported by the selected manufacturer\r\n if (\r\n !enableManualInput &&\r\n module.generatorManufacturerAndModuleType.manufacturerSelect.value\r\n ) {\r\n const generators = getGenerators({\r\n manufacturerName:\r\n module.generatorManufacturerAndModuleType.manufacturerSelect\r\n .value,\r\n });\r\n if (\r\n generators &&\r\n module.generatorManufacturerAndModuleType.moduleTypeSelect\r\n .options\r\n ) {\r\n for (const option of module.generatorManufacturerAndModuleType\r\n .moduleTypeSelect.options) {\r\n option.disabled = !generators.some(\r\n (generators) => generators.moduleType === option.key,\r\n );\r\n }\r\n }\r\n }\r\n\r\n toggleRequiredValidator(\r\n module.generatorZerezIdAndNorm.norm,\r\n !enableManualInput,\r\n );\r\n toggleRequiredValidator(\r\n module.generatorZerezIdAndNorm.normText,\r\n !enableManualInput,\r\n );\r\n\r\n const dependantFieldsHaveValues =\r\n module.generatorManufacturerAndModuleType.manufacturer.value &&\r\n module.generatorManufacturerAndModuleType.moduleType.value &&\r\n module.generatorZerezIdAndNorm.zerezId.value;\r\n module.unitCertificateInvalidForInstalledPower.disabled = !(\r\n // We only need this error message, if the required fields for it are themselves filled in the first place\r\n (\r\n dependantFieldsHaveValues &&\r\n // Input is based on selection, instead of free text input\r\n !enableManualInput &&\r\n // Power check match, based on which connections the selected inverter supports\r\n !powerMatchesConnectionRules(\r\n overallActivePowerWithPreexisting,\r\n module.generatorZerezIdAndNorm.norm?.value ?? [],\r\n )\r\n )\r\n );\r\n\r\n const generatorTotalActivePower =\r\n module.generatorTotalActivePower.value ?? 0;\r\n const generatorTotalApparentPower =\r\n module.generatorTotalApparentPower.value ?? 0;\r\n\r\n // https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4854573576/Feldgruppe+Generatoren+nicht+PV+oder+Speicher+NS#FeldgruppeGeneratoren(nichtPVoderSpeicher)NS-totalActivePower\r\n // https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4854573576/Feldgruppe+Generatoren+nicht+PV+oder+Speicher+NS#FeldgruppeGeneratoren(nichtPVoderSpeicher)NS-totalApparentPower\r\n module.generatorTotalActivePowerIsGreaterThanTotalApparentPowerWarning.disabled =\r\n !hasTotalPlantPerformanceBelow300 ||\r\n generatorTotalActivePower <= generatorTotalApparentPower;\r\n }\r\n};\r\n","import Vue from 'vue';\r\nimport { PlantPerformanceFormStep } from '@/types/forms/formSteps/plantPerformanceFormStep';\r\nimport { ApplicationForm } from '@/types/forms/specific/applicationForm';\r\nimport {\r\n getOverallNominalPower,\r\n isOverallActivePowerWarningEnabled,\r\n} from '../../../utilities/application/plantPerformance';\r\nimport {\r\n isPluginGeneratingPlant,\r\n isPv,\r\n isRequestWithoutPlanning,\r\n} from '../common';\r\nimport { toggleRequiredValidator } from '@/utilities/toggleRequiredValidator';\r\nimport { powerMatchesConnectionRules } from '@/utilities/utils';\r\nimport { getOverallActivePowerWithPreExisting } from '@/services/form/utilities/application/powerConnection';\r\nimport { InverterDataContent } from '@/api/interfaces/content/form/serviceDriven/inverterDataContent';\r\nimport { InverterDataContentSearchByManufacturer } from '@/api/interfaces/content/form/serviceDriven/inverterDataContentSearchByManufacturer';\r\nimport { contentServices } from '@/services/contentService';\r\n\r\nfunction getInverters(\r\n data: InverterDataContentSearchByManufacturer,\r\n): InverterDataContent[] | undefined {\r\n const content = contentServices.form.content;\r\n if (!content) {\r\n return undefined;\r\n }\r\n\r\n const invertersContent = content?.serviceDrivenContent?.invertersContent;\r\n if (!invertersContent) {\r\n return undefined;\r\n }\r\n\r\n return invertersContent.filter(\r\n (inverter) => inverter.manufacturerName === data.manufacturerName,\r\n );\r\n}\r\n\r\nexport const plantPerformanceInverterRules = async (\r\n formStep: {\r\n model: PlantPerformanceFormStep;\r\n formModel: ApplicationForm;\r\n } & Vue,\r\n): Promise => {\r\n const requestWithoutPlanning = isRequestWithoutPlanning(formStep.formModel);\r\n const pluginGeneratingPlant = isPluginGeneratingPlant(formStep.formModel);\r\n\r\n // Get power including additional input of the next form step,\r\n // to avoid cases where input of this form step would be invalid by itself, but valid with the input on the following step\r\n const overallActivePowerWithPreexisting =\r\n getOverallActivePowerWithPreExisting(\r\n formStep.formModel.applicationType,\r\n formStep.model,\r\n formStep.formModel.powerConnection,\r\n ) ?? 0;\r\n\r\n for (const module of formStep.model.inverter.inverterModules.items.concat(\r\n formStep.model.inverterStorage.inverterModules.items,\r\n )) {\r\n module.inverterManualInputManufacturerTypeZerezId.disabled =\r\n pluginGeneratingPlant || requestWithoutPlanning;\r\n const enableManualInput =\r\n !module.inverterManualInputManufacturerTypeZerezId.disabled &&\r\n module.inverterManualInputManufacturerTypeZerezId.value === true;\r\n\r\n module.inverterActivePowerAndApparentPower.activePower.userChangeable =\r\n pluginGeneratingPlant ||\r\n enableManualInput ||\r\n requestWithoutPlanning;\r\n module.inverterActivePowerAndApparentPower.apparentPower.userChangeable =\r\n pluginGeneratingPlant ||\r\n enableManualInput ||\r\n requestWithoutPlanning;\r\n\r\n module.inverterManufacturerAndModuleType.manufacturer.disabled =\r\n pluginGeneratingPlant || requestWithoutPlanning;\r\n module.inverterManufacturerAndModuleType.moduleType.disabled =\r\n pluginGeneratingPlant || requestWithoutPlanning;\r\n module.inverterManufacturerAndModuleType.manufacturerText.disabled =\r\n pluginGeneratingPlant ||\r\n requestWithoutPlanning ||\r\n !enableManualInput;\r\n module.inverterManufacturerAndModuleType.moduleTypeText.disabled =\r\n pluginGeneratingPlant ||\r\n requestWithoutPlanning ||\r\n !enableManualInput;\r\n module.inverterManufacturerAndModuleType.manufacturerSelect.disabled =\r\n pluginGeneratingPlant ||\r\n enableManualInput ||\r\n requestWithoutPlanning;\r\n module.inverterManufacturerAndModuleType.moduleTypeSelect.disabled =\r\n pluginGeneratingPlant ||\r\n enableManualInput ||\r\n requestWithoutPlanning;\r\n module.inverterManufacturerAndModuleType.disabled =\r\n module.inverterManufacturerAndModuleType.manufacturer.disabled &&\r\n module.inverterManufacturerAndModuleType.moduleType.disabled;\r\n\r\n module.inverterZerezIdAndNorm.zerezId.disabled =\r\n pluginGeneratingPlant ||\r\n enableManualInput ||\r\n requestWithoutPlanning;\r\n module.inverterZerezIdAndNorm.norm.disabled =\r\n pluginGeneratingPlant ||\r\n enableManualInput ||\r\n requestWithoutPlanning;\r\n module.inverterZerezIdAndNorm.normText.disabled =\r\n pluginGeneratingPlant ||\r\n enableManualInput ||\r\n requestWithoutPlanning;\r\n module.inverterZerezIdAndNorm.disabled =\r\n module.inverterZerezIdAndNorm.zerezId.disabled &&\r\n module.inverterZerezIdAndNorm.norm.disabled &&\r\n module.inverterZerezIdAndNorm.normText.disabled;\r\n\r\n // Make module type select not-user-editable, if no manufacturer is selected\r\n module.inverterManufacturerAndModuleType.moduleTypeSelect.userChangeable = !!module\r\n .inverterManufacturerAndModuleType.manufacturerSelect.value;\r\n\r\n // Disable module type options that are not supported by the selected manufacturer\r\n if (\r\n !enableManualInput &&\r\n module.inverterManufacturerAndModuleType.manufacturerSelect.value\r\n ) {\r\n const inverters = getInverters({\r\n manufacturerName:\r\n module.inverterManufacturerAndModuleType.manufacturerSelect\r\n .value,\r\n });\r\n if (\r\n inverters &&\r\n module.inverterManufacturerAndModuleType.moduleTypeSelect\r\n .options\r\n ) {\r\n for (const option of module.inverterManufacturerAndModuleType\r\n .moduleTypeSelect.options) {\r\n option.disabled = !inverters.some(\r\n (inverter) => inverter.moduleType === option.key,\r\n );\r\n }\r\n }\r\n }\r\n\r\n toggleRequiredValidator(\r\n module.inverterZerezIdAndNorm.norm,\r\n !enableManualInput,\r\n );\r\n toggleRequiredValidator(\r\n module.inverterZerezIdAndNorm.normText,\r\n !enableManualInput,\r\n );\r\n\r\n // It's important that dependant fields are checked before, so the error message is only displayed,\r\n // if the user has actually filled out all fields\r\n const dependantFieldsHaveValues =\r\n module.inverterManufacturerAndModuleType.manufacturer.value !==\r\n null &&\r\n module.inverterManufacturerAndModuleType.moduleType.value !==\r\n null &&\r\n module.inverterZerezIdAndNorm.zerezId.value !== null;\r\n module.unitCertificateInvalidForInstalledPower.disabled = !(\r\n // We only need this error message, if the required fields for it are themselves filled in the first place\r\n (\r\n dependantFieldsHaveValues &&\r\n // Input is based on selection, instead of free text input\r\n !enableManualInput &&\r\n // Power check match, based on which connections the selected inverter supports\r\n !powerMatchesConnectionRules(\r\n overallActivePowerWithPreexisting,\r\n module.inverterZerezIdAndNorm.norm?.value ?? [],\r\n )\r\n )\r\n );\r\n }\r\n\r\n // https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4864934167/Feldgruppe+Wechselrichter+PV+und+Speicher+MS#FeldgruppeWechselrichterPVundSpeicherMS-overallActivePower\r\n // if the overall active power differs from the photovoltaic overall nominal power\r\n // or the storage overall discharge power by more than 10%, a warning is shown in the form\r\n formStep.model.inverter.inverterOverallActivePowerWarning.disabled =\r\n isPluginGeneratingPlant(formStep.formModel) ||\r\n !isPv(formStep.formModel) ||\r\n !isOverallActivePowerWarningEnabled(\r\n formStep.model.inverter.inverterOverallActivePower.value,\r\n getOverallNominalPower(formStep.model),\r\n );\r\n\r\n formStep.model.inverter.inverterOverallActivePower.disabled = formStep.model.inverterStorage.inverterOverallActivePower.disabled = isPluginGeneratingPlant(\r\n formStep.formModel,\r\n );\r\n\r\n formStep.model.inverter.inverterOverallApparentPower.disabled = formStep.model.inverterStorage.inverterOverallApparentPower.disabled = isPluginGeneratingPlant(\r\n formStep.formModel,\r\n );\r\n\r\n formStep.model.inverterStorage.inverterOverallActivePowerWarning.disabled = true;\r\n};\r\n","import { PlantPerformanceFormStep } from '@/types/forms/formSteps/plantPerformanceFormStep';\r\nimport { ApplicationForm } from '@/types/forms/specific/applicationForm';\r\nimport {\r\n isPluginGeneratingPlant,\r\n isPv,\r\n isPvAndStorageLte30,\r\n isStorage,\r\n isTotalPlantPerformanceAbove300,\r\n isTotalPlantPerformanceBelow300,\r\n} from './common';\r\nimport Vue from 'vue';\r\nimport { plantPerformancePhotovoltaicRules } from './plantPerformance/photovoltaic';\r\nimport { plantPerformanceStorageRules } from './plantPerformance/storage';\r\nimport { plantPerformanceGeneratorRules } from './plantPerformance/generator';\r\nimport { plantPerformanceInverterRules } from './plantPerformance/inverter';\r\nimport { getOverallNominalPower } from '../../utilities/application/plantPerformance';\r\n\r\nexport const plantPerformanceRules = async (\r\n formStep: {\r\n model: PlantPerformanceFormStep;\r\n formModel: ApplicationForm;\r\n } & Vue,\r\n): Promise => {\r\n formStep.model.photovoltaic.disabled = !isPv(formStep.formModel);\r\n\r\n formStep.model.storage.disabled = !isStorage(formStep.formModel);\r\n\r\n formStep.model.inverter.disabled = !isInverterEnabled(formStep.formModel);\r\n\r\n formStep.model.inverterStorage.disabled = !isStorageInverterEnabled(\r\n formStep.formModel,\r\n );\r\n\r\n formStep.model.generator.disabled = !isGeneratorEnabled(formStep.formModel);\r\n\r\n formStep.model.certificateHint.disabled = !isPluginGeneratingPlant(\r\n formStep.formModel,\r\n );\r\n\r\n // we have to wait one additional tick for the component watchers\r\n // to set the overall sums to the underlying models\r\n await Vue.nextTick();\r\n\r\n // https://netzkern.atlassian.net/browse/ED-597\r\n const overallNominalPower = getOverallNominalPower(formStep.model);\r\n\r\n formStep.model.overallNominalPowerNotMatchingTotalPlantPerformanceValueTypeWarning.disabled =\r\n formStep.formModel.generationType.totalPlantPerformance.disabled ||\r\n overallNominalPower === null ||\r\n overallNominalPower === 0 ||\r\n (isTotalPlantPerformanceAbove300(formStep.formModel) &&\r\n overallNominalPower > 300) ||\r\n (isTotalPlantPerformanceBelow300(formStep.formModel) &&\r\n overallNominalPower <= 300);\r\n\r\n formStep.model.storageHasSeparateInverter.disabled = !isPvAndStorageLte30(\r\n formStep.formModel,\r\n );\r\n\r\n formStep.model.inverterStorage.disabled =\r\n formStep.model.storageHasSeparateInverter.disabled ||\r\n !formStep.model.storageHasSeparateInverter.value;\r\n\r\n await plantPerformanceGeneratorRules(formStep);\r\n await plantPerformanceInverterRules(formStep);\r\n await plantPerformancePhotovoltaicRules(formStep);\r\n await plantPerformanceStorageRules(formStep);\r\n};\r\n\r\nfunction isInverterEnabled(form: ApplicationForm): boolean {\r\n const result = isStorage(form) || isPv(form);\r\n return result;\r\n}\r\n\r\nfunction isStorageInverterEnabled(form: ApplicationForm): boolean {\r\n const result = isPvAndStorageLte30(form) && true;\r\n return result;\r\n}\r\n\r\nfunction isGeneratorEnabled(form: ApplicationForm): boolean {\r\n return !isStorage(form) && !isPv(form);\r\n}\r\n","import { SelectField } from '@/types/forms/fields/selectField';\r\nimport { MeasuringConceptsFormStep } from '@/types/forms/formSteps/measuringConceptsFormStep';\r\nimport { ApplicationForm } from '@/types/forms/specific/applicationForm';\r\nimport {\r\n isPluginGeneratingPlant,\r\n isPvAndStorageLte30,\r\n isStorage,\r\n lawParagraph14aConditionsMet,\r\n} from './common';\r\nimport { ValidationProperties, ValidationEvaluation } from 'vue/types/vue';\r\nimport { Validation } from 'vuelidate';\r\n\r\nexport const measuringConceptsRules = async (\r\n formStep: {\r\n model: MeasuringConceptsFormStep;\r\n formModel: ApplicationForm;\r\n validations:\r\n | (Validation &\r\n ValidationProperties &\r\n ValidationEvaluation)\r\n | undefined;\r\n } & Vue,\r\n): Promise => {\r\n const zeroInfeed = formStep.model.operatingMode.options.find(\r\n (o) => o.key === 'zeroInfeed',\r\n );\r\n\r\n if (zeroInfeed) {\r\n zeroInfeed.disabled = true;\r\n }\r\n\r\n const commercialTransfer = formStep.model.operatingMode.options.find(\r\n (o) => o.key === 'commercialTransfer',\r\n );\r\n\r\n if (commercialTransfer) {\r\n commercialTransfer.disabled =\r\n formStep.formModel.applicationType === 'storage' ||\r\n isPluginGeneratingPlant(formStep.formModel);\r\n }\r\n\r\n const storageOperatingMode = isPvAndStorageLte30(formStep.formModel)\r\n ? formStep.model.operatingModeStorage\r\n : formStep.model.operatingMode;\r\n\r\n formStep.model.operatingModeStorage.disabled = !isPvAndStorageLte30(\r\n formStep.formModel,\r\n );\r\n\r\n if (isStorage(formStep.formModel)) {\r\n storageOperatingMode.options.forEach((o) => (o.disabled = true));\r\n\r\n const storageDischarge =\r\n formStep.formModel.plantData.storageDischarge.value;\r\n\r\n switch (storageDischarge) {\r\n case 'onlyIntoCustomersGridSelfSupply':\r\n SelectField.preselectExactlyOneOption(\r\n storageOperatingMode,\r\n 'zeroInfeed',\r\n );\r\n break;\r\n case 'intoCustomersGridAndPublicGridBivalent':\r\n SelectField.preselectExactlyOneOption(\r\n storageOperatingMode,\r\n 'surplusInfeed',\r\n );\r\n break;\r\n case 'onlyIntoPublicGridGridFeedIn':\r\n SelectField.preselectExactlyOneOption(\r\n storageOperatingMode,\r\n 'fullInfeed',\r\n );\r\n break;\r\n }\r\n }\r\n\r\n if (isPluginGeneratingPlant(formStep.formModel)) {\r\n if (isStorage(formStep.formModel)) {\r\n SelectField.preselectExactlyOneOption(\r\n formStep.model.operatingMode,\r\n 'zeroInfeed',\r\n );\r\n } else {\r\n SelectField.preselectExactlyOneOption(\r\n formStep.model.operatingMode,\r\n 'surplusInfeed',\r\n );\r\n }\r\n }\r\n\r\n formStep.model.fullInfeedBonus.disabled =\r\n (formStep.formModel.applicationType !== 'photovoltaic' &&\r\n formStep.formModel.applicationType !==\r\n 'photovoltaicAndStorageLte30') ||\r\n formStep.model.operatingMode.value !== 'fullInfeed' ||\r\n (formStep.formModel.generationType.plantStructureType.value !==\r\n 'building' &&\r\n formStep.formModel.generationType.plantStructureType.value !==\r\n 'noiseBarrier');\r\n\r\n formStep.model.fullInfeedBonusHeadline.disabled =\r\n formStep.model.fullInfeedBonus.disabled;\r\n\r\n // https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4854565613/Formular+Erzeugungsart#FormularErzeugungsart-meterNumber\r\n // https://netzkern.atlassian.net/browse/ED-644\r\n const isLowVoltageWithExistingConnection =\r\n !formStep.formModel.powerConnection.doesConnectionExist.disabled &&\r\n formStep.formModel.powerConnection.doesConnectionExist.value ===\r\n 'yes' &&\r\n !formStep.formModel.powerConnection.whichVoltageLevel.disabled &&\r\n formStep.formModel.powerConnection.whichVoltageLevel.value ===\r\n 'lowVoltage';\r\n formStep.model.meterNumber.disabled =\r\n !(\r\n isPluginGeneratingPlant(formStep.formModel) ||\r\n isLowVoltageWithExistingConnection\r\n ) || formStep.model.operatingMode.value == 'fullInfeed';\r\n\r\n formStep.model.measuringPointOperatorInfo.disabled = !lawParagraph14aConditionsMet(\r\n formStep.formModel,\r\n );\r\n\r\n formStep.model.measuringPointOperation.disabled =\r\n isStorage(formStep.formModel) &&\r\n !lawParagraph14aConditionsMet(formStep.formModel);\r\n\r\n formStep.model.measuringPointOperator.disabled =\r\n formStep.model.measuringPointOperation.disabled ||\r\n formStep.model.measuringPointOperation.value !== 'other';\r\n\r\n formStep.model.priceSheetMeasuringPointOperation.disabled =\r\n formStep.model.measuringPointOperation.disabled ||\r\n formStep.model.measuringPointOperation.value !== 'ewe';\r\n\r\n formStep.model.measuringPointOperationInfoEwe.disabled =\r\n !isStorage(formStep.formModel) ||\r\n !(\r\n !formStep.model.measuringPointOperation.disabled &&\r\n formStep.model.measuringPointOperation.value === 'ewe'\r\n );\r\n formStep.model.measuringPointOperationFollowingConditionsAndGtacEwe.disabled =\r\n !isStorage(formStep.formModel) ||\r\n !(\r\n !formStep.model.measuringPointOperation.disabled &&\r\n formStep.model.measuringPointOperation.value === 'ewe'\r\n );\r\n formStep.model.measuringPointOperationInfoOther.disabled =\r\n !isStorage(formStep.formModel) ||\r\n !(\r\n !formStep.model.measuringPointOperation.disabled &&\r\n formStep.model.measuringPointOperation.value === 'other'\r\n );\r\n\r\n formStep.model.storageHeadline.disabled = !isPvAndStorageLte30(\r\n formStep.formModel,\r\n );\r\n};\r\n","export const controllableConsumptionDevicesRules = async (): Promise => {\r\n // no rules at the moment\r\n};\r\n","import { ApplicationForm } from '@/types/forms/specific/applicationForm';\r\nimport { BillingFormStep } from '@/types/forms/formSteps/billingFormStep';\r\nimport { getOverallNominalPower } from '../../utilities/application/plantPerformance';\r\nimport { isMediumVoltage } from './common';\r\n\r\nexport const billingRules = async (\r\n formStep: { model: BillingFormStep; formModel: ApplicationForm } & Vue,\r\n): Promise => {\r\n const applicationType = formStep.formModel.applicationType;\r\n\r\n const nominalPower =\r\n getOverallNominalPower(formStep.formModel.plantPerformance) ?? 0;\r\n\r\n const noPvOrDeaWithNominalPowerLte100AndNotMv =\r\n (applicationType !== 'photovoltaic' &&\r\n applicationType !== 'photovoltaicAndStorageLte30' &&\r\n applicationType !== 'dea') ||\r\n nominalPower > 100 ||\r\n isMediumVoltage(formStep.formModel.powerConnection);\r\n\r\n formStep.model.plantSalesMethodAssignment.disabled = noPvOrDeaWithNominalPowerLte100AndNotMv;\r\n\r\n // https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4868800911/Formular+Abrechnung#FormularAbrechnung-noEegRemuneration\r\n formStep.model.noEegRemuneration.disabled =\r\n (applicationType !== 'photovoltaic' &&\r\n applicationType !== 'photovoltaicAndStorageLte30' &&\r\n applicationType !== 'dea') ||\r\n (!formStep.formModel.generationType\r\n .proceedWithFullRegistrationForEEGCompensation.disabled &&\r\n !!formStep.formModel.generationType\r\n .proceedWithFullRegistrationForEEGCompensation.value);\r\n\r\n // https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4868800911/Formular+Abrechnung#FormularAbrechnung-reasonNoEegRemuneration\r\n formStep.model.reasonNoEegRemuneration.disabled =\r\n formStep.model.noEegRemuneration.disabled ||\r\n !formStep.model.noEegRemuneration.value;\r\n\r\n // https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4868800911/Formular+Abrechnung#FormularAbrechnung-explanationNoEegRemuneration\r\n formStep.model.explanationNoEegRemuneration.disabled =\r\n formStep.model.reasonNoEegRemuneration.disabled ||\r\n formStep.model.reasonNoEegRemuneration.value !== 'other';\r\n\r\n // https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4868800911/Formular+Abrechnung#FormularAbrechnung-noEegRemunerationHint\r\n formStep.model.noEegRemunerationHint.disabled =\r\n formStep.model.noEegRemuneration.disabled ||\r\n !formStep.model.noEegRemuneration.value;\r\n\r\n // https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4854573897/Formular+Abrechnung#FormularAbrechnung-taxNumber\r\n formStep.model.taxNumber.disabled =\r\n (!formStep.model.taxNumberWillFollow.disabled &&\r\n !!formStep.model.taxNumberWillFollow.value) ||\r\n formStep.model.tax.disabled ||\r\n formStep.model.tax.value === 'noSalesTax';\r\n\r\n formStep.model.smallPVTaxAdvisorHint.disabled =\r\n nominalPower > 30 ||\r\n formStep.formModel.powerConnection.hasExistingPlants.value ||\r\n formStep.model.tax.value === 'noSalesTax';\r\n\r\n formStep.model.matchingTaxIDHint.disabled = !formStep.formModel\r\n .powerConnection.hasExistingPlants.value;\r\n\r\n // https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4854573897/Formular+Abrechnung#FormularAbrechnung-taxNumberWillFollow\r\n formStep.model.taxNumberWillFollow.disabled =\r\n formStep.model.tax.disabled ||\r\n formStep.model.tax.value === 'noSalesTax';\r\n\r\n formStep.model.noFinancialDistress.disabled = noPvOrDeaWithNominalPowerLte100AndNotMv;\r\n\r\n formStep.model.noPendingEURecoveryClaims.disabled = noPvOrDeaWithNominalPowerLte100AndNotMv;\r\n\r\n const noEegRenumerationIsChecked =\r\n !formStep.model.noEegRemuneration.disabled &&\r\n !!formStep.model.noEegRemuneration.value;\r\n\r\n // https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4854573897/Formular+Abrechnung#FormularAbrechnung-directDebitMandate\r\n formStep.model.directDebitMandate.disabled = noEegRenumerationIsChecked;\r\n\r\n // https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4854573897/Formular+Abrechnung#FormularAbrechnung-iban\r\n formStep.model.iban.disabled = noEegRenumerationIsChecked;\r\n\r\n // https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4854573897/Formular+Abrechnung#FormularAbrechnung-nameAndDomicileCreditInstitution\r\n formStep.model.nameAndDomicileCreditInstitution.disabled = noEegRenumerationIsChecked;\r\n\r\n // https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4854573897/Formular+Abrechnung#FormularAbrechnung-date\r\n formStep.model.date.disabled = noEegRenumerationIsChecked;\r\n\r\n // https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4854573897/Formular+Abrechnung#FormularAbrechnung-accountOwnerName\r\n formStep.model.accountOwnerName.disabled = noEegRenumerationIsChecked;\r\n};\r\n","import { DocumentsFormStep } from '@/types/forms/formSteps/documentsFormStep';\r\nimport { ApplicationForm } from '@/types/forms/specific/applicationForm';\r\nimport {\r\n isPluginGeneratingPlant,\r\n isPvAndStorageLte30,\r\n isRequestWithPlanning,\r\n isRequestWithoutPlanning,\r\n isStorage,\r\n isStorageConnectionConceptStorageInGenerationPath,\r\n isTotalPlantPerformanceAbove300,\r\n isTotalPlantPerformanceBelow300,\r\n} from './common';\r\nimport Vue from 'vue';\r\nimport { FormList } from '@/types/forms/fields/formList';\r\nimport { ReferenceFormGroup } from '@/types/forms/formGroups/referenceFormGroup';\r\nimport { FormField } from '@/types/forms/fields/formField';\r\nimport { toggleRequiredValidator } from '@/utilities/toggleRequiredValidator';\r\nimport {\r\n getOverallActivePower,\r\n getOverallApparentPower,\r\n} from '../../utilities/application/plantPerformance';\r\nimport { getOverallActivePowerWithPreExisting } from '../../utilities/application/powerConnection';\r\n\r\nexport const documentsRules = async (\r\n formStep: {\r\n model: DocumentsFormStep;\r\n formModel: ApplicationForm;\r\n } & Vue,\r\n): Promise => {\r\n const hasStorage = isStorage(formStep.formModel);\r\n const hasLowVoltage =\r\n formStep.formModel.powerConnection.whichVoltageLevel.value ==\r\n 'lowVoltage';\r\n const isphotovoltaicAndStorageLte30 =\r\n formStep.formModel.applicationType == 'photovoltaicAndStorageLte30';\r\n const hasMediumVoltage =\r\n formStep.formModel.powerConnection.whichVoltageLevel.value ==\r\n 'mediumVoltage';\r\n const hasUnknownVoltage =\r\n formStep.formModel.powerConnection.whichVoltageLevel.value == 'unknown';\r\n\r\n const apparentPower =\r\n getOverallApparentPower(\r\n formStep.formModel.applicationType,\r\n formStep.formModel.plantPerformance,\r\n ) ?? 0;\r\n const activePower =\r\n getOverallActivePower(\r\n formStep.formModel.applicationType,\r\n formStep.formModel.plantPerformance,\r\n ) ?? 0;\r\n\r\n const newAndExistingActivePower = getOverallActivePowerWithPreExisting(\r\n formStep.formModel.applicationType,\r\n formStep.formModel.plantPerformance,\r\n formStep.formModel.powerConnection,\r\n );\r\n\r\n const hasLvApparentBelowOrEqual30 = hasLowVoltage && apparentPower <= 30;\r\n const hasLvApparentAbove30 = hasLowVoltage && apparentPower > 30;\r\n\r\n const hasMvAbove135 = hasMediumVoltage && activePower >= 135;\r\n const hasUnBelowOrEqual300 = hasUnknownVoltage && activePower <= 300;\r\n const hasUnAbove300 = hasUnknownVoltage && activePower > 300;\r\n\r\n const hasLvWithPreExistingAbove30 =\r\n hasLowVoltage && newAndExistingActivePower > 30;\r\n const hasMvWithPreExistingAbove30 =\r\n hasMediumVoltage && newAndExistingActivePower > 30;\r\n const hasMvWithPreExistingAbove270 =\r\n hasMediumVoltage && newAndExistingActivePower > 270;\r\n\r\n const requestWithPlanning = isRequestWithPlanning(formStep.formModel);\r\n const requestWithoutPlanning = isRequestWithoutPlanning(formStep.formModel);\r\n\r\n const hasTotalPlantPerformanceAbove300 = isTotalPlantPerformanceAbove300(\r\n formStep.formModel,\r\n );\r\n const hasTotalPlantPerformanceBelow300 = isTotalPlantPerformanceBelow300(\r\n formStep.formModel,\r\n );\r\n\r\n if (requestWithoutPlanning) {\r\n for (const field of Object.values(formStep.model)) {\r\n if (field instanceof FormField) {\r\n field.disabled = true;\r\n }\r\n\r\n if (field instanceof FormList) {\r\n field.disabled = true;\r\n\r\n for (const module of field.items) {\r\n for (const moduleField of Object.values(module)) {\r\n if (moduleField instanceof FormField) {\r\n moduleField.disabled = true;\r\n }\r\n }\r\n }\r\n }\r\n\r\n formStep.model.sitePlanWithLotNumber.disabled = false;\r\n }\r\n } else {\r\n syncArray(\r\n formStep.formModel.plantPerformance.generator.generatorModules,\r\n formStep.model.generatorModules,\r\n );\r\n syncArray(\r\n formStep.formModel.plantPerformance.inverter.inverterModules,\r\n formStep.model.inverterModules,\r\n );\r\n syncArray(\r\n formStep.formModel.plantPerformance.inverterStorage.inverterModules,\r\n formStep.model.inverterStorageModules,\r\n );\r\n syncArray(\r\n formStep.formModel.plantPerformance.storage.storageModules,\r\n formStep.model.storageModules,\r\n );\r\n\r\n await Vue.nextTick();\r\n\r\n // https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4854565613/Formular+Erzeugungsart#FormularErzeugungsart-meterPicture\r\n formStep.model.meterPicture.disabled =\r\n formStep.formModel.generationType.plugInGeneratingPlant.disabled ||\r\n !formStep.formModel.generationType.plugInGeneratingPlant.value;\r\n\r\n // https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4868800911/Formular+Anlagendaten#FormularAnlagendaten-bafaApproval\r\n formStep.model.bafaApproval.disabled =\r\n formStep.formModel.plantData.bafaApprovalWillBeSubmittedLater\r\n .disabled ||\r\n formStep.formModel.plantData.bafaApprovalWillBeSubmittedLater\r\n .value === true;\r\n\r\n //https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4854573319/Formular+Anlagenleistung#FormularAnlagenleistung-gridAndPlantProtectionProofOfConformity\r\n formStep.model.gridAndPlantProtectionProofOfConformity.disabled =\r\n isPluginGeneratingPlant(formStep.formModel) ||\r\n isTotalPlantPerformanceAbove300(formStep.formModel) ||\r\n hasMvWithPreExistingAbove270 ||\r\n hasUnAbove300;\r\n\r\n toggleRequiredValidator(\r\n formStep.model.gridAndPlantProtectionProofOfConformity,\r\n hasLvApparentAbove30 ||\r\n hasLvWithPreExistingAbove30 ||\r\n hasMvWithPreExistingAbove30 ||\r\n (hasUnBelowOrEqual300 && newAndExistingActivePower > 30),\r\n );\r\n\r\n // we have to wait one additional tick for the component watchers\r\n // to set the overall sums to the underlying models\r\n await Vue.nextTick();\r\n\r\n const isNotStorageOrNotPowerGenerationPlantWithStorageFacilityInTheGenerationPathAndConsumptionPlant =\r\n !hasStorage ||\r\n isphotovoltaicAndStorageLte30 ||\r\n formStep.formModel.plantData.storageConnectionConcept.value !==\r\n 'powerGenerationPlantWithStorageFacilityInTheGenerationPathAndConsumptionPlant';\r\n\r\n // Generator\r\n const allGenerators =\r\n formStep.formModel.plantPerformance.generator.generatorModules\r\n .items;\r\n\r\n for (const module of formStep.model.generatorModules.items) {\r\n const generator = allGenerators.find(\r\n (g) => g.id?.value === module.id?.value,\r\n );\r\n const generatorIsUnknownOrigin =\r\n generator !== undefined &&\r\n !generator.generatorManualInputManufacturerTypeZerezId\r\n .disabled &&\r\n generator.generatorManualInputManufacturerTypeZerezId.value;\r\n\r\n module.generatorTechnicalDataSheet.disabled = !generatorIsUnknownOrigin;\r\n\r\n module.generatorProofOfConformity.disabled =\r\n !hasTotalPlantPerformanceBelow300 ||\r\n !isNotStorageOrNotPowerGenerationPlantWithStorageFacilityInTheGenerationPathAndConsumptionPlant ||\r\n isPluginGeneratingPlant(formStep.formModel) ||\r\n hasMvAbove135 ||\r\n hasUnAbove300 ||\r\n !generatorIsUnknownOrigin;\r\n\r\n toggleRequiredValidator(\r\n module.generatorProofOfConformity,\r\n hasLvApparentBelowOrEqual30,\r\n );\r\n\r\n // lv / <=300\r\n module.generatorConformityConfirmationOrUnitCertificate.disabled =\r\n !hasTotalPlantPerformanceBelow300 || !generatorIsUnknownOrigin;\r\n\r\n // mv / >300\r\n module.generatorUnitOrPrototypeConfirmation.disabled =\r\n !hasTotalPlantPerformanceAbove300 || !generatorIsUnknownOrigin;\r\n module.generatorComponentCertificate.disabled =\r\n !hasTotalPlantPerformanceAbove300 || !generatorIsUnknownOrigin;\r\n }\r\n\r\n // Inverter\r\n const allInverters = formStep.formModel.plantPerformance.inverter.inverterModules.items.concat(\r\n formStep.formModel.plantPerformance.inverterStorage.inverterModules\r\n .items,\r\n );\r\n\r\n for (const module of formStep.model.inverterModules.items.concat(\r\n formStep.model.inverterStorageModules.items,\r\n )) {\r\n const inverter = allInverters.find(\r\n (i) => i.id?.value === module.id?.value,\r\n );\r\n const inverterIsUnknownOrigin =\r\n inverter !== undefined &&\r\n !inverter.inverterManualInputManufacturerTypeZerezId.disabled &&\r\n inverter.inverterManualInputManufacturerTypeZerezId.value;\r\n\r\n // https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4854573355/Feldgruppe+Wechselrichter+PV+und+Speicher+NS#FeldgruppeWechselrichterPVundSpeicherNS-conformityConfirmationOrUnitCertificate\r\n module.inverterConformityConfirmationOrUnitCertificate.disabled =\r\n (!hasTotalPlantPerformanceBelow300 &&\r\n !formStep.formModel.generationType.totalPlantPerformance\r\n .disabled) ||\r\n !isNotStorageOrNotPowerGenerationPlantWithStorageFacilityInTheGenerationPathAndConsumptionPlant ||\r\n isPluginGeneratingPlant(formStep.formModel) ||\r\n !inverterIsUnknownOrigin;\r\n // https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4854573355/Feldgruppe+Wechselrichter+PV+und+Speicher+NS#FeldgruppeWechselrichterPVundSpeicherNS-technicalDataSheet\r\n module.inverterTechnicalDataSheet.disabled =\r\n !isNotStorageOrNotPowerGenerationPlantWithStorageFacilityInTheGenerationPathAndConsumptionPlant ||\r\n isPluginGeneratingPlant(formStep.formModel) ||\r\n !inverterIsUnknownOrigin;\r\n\r\n // https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4854573355/Feldgruppe+Wechselrichter+PV+und+Speicher+NS#FeldgruppeWechselrichterPVundSpeicherNS-proofOfConformity\r\n module.inverterProofOfConformity.disabled =\r\n (!hasTotalPlantPerformanceBelow300 &&\r\n !formStep.formModel.generationType.totalPlantPerformance\r\n .disabled) ||\r\n !isNotStorageOrNotPowerGenerationPlantWithStorageFacilityInTheGenerationPathAndConsumptionPlant ||\r\n isPluginGeneratingPlant(formStep.formModel) ||\r\n hasMvAbove135 ||\r\n hasUnAbove300 ||\r\n !inverterIsUnknownOrigin;\r\n\r\n toggleRequiredValidator(\r\n module.inverterProofOfConformity,\r\n hasLvApparentBelowOrEqual30,\r\n );\r\n\r\n // https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4864934167/Feldgruppe+Wechselrichter+PV+und+Speicher+MS#FeldgruppeWechselrichterPVundSpeicherMS-unitCertificate\r\n module.inverterUnitCertificate.disabled =\r\n isPvAndStorageLte30(formStep.formModel) ||\r\n (!hasTotalPlantPerformanceAbove300 &&\r\n !formStep.formModel.generationType.totalPlantPerformance\r\n .disabled) ||\r\n isStorageConnectionConceptStorageInGenerationPath(\r\n formStep.formModel.plantData,\r\n );\r\n }\r\n\r\n // https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4854565649/Formular+Netzanschluss#FormularNetzanschluss-performanceMonitoringCertificate\r\n formStep.model.performanceMonitoringCertificate.disabled =\r\n formStep.formModel.powerConnection\r\n .feedInPowerShallBeLimitedByAController.disabled ||\r\n !(\r\n formStep.formModel.powerConnection\r\n .feedInPowerShallBeLimitedByAController.value ?? false\r\n );\r\n\r\n // https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4854565649/Formular+Netzanschluss#FormularNetzanschluss-electricalSystemCircuitDiagram\r\n formStep.model.electricalSystemCircuitDiagram.disabled = !(\r\n activePower > 300 ||\r\n (activePower > 60 &&\r\n formStep.formModel.powerConnection.hasExistingPlants.value) ||\r\n formStep.formModel.generationType.plantType.value ===\r\n 'emergencyGenerator'\r\n );\r\n\r\n formStep.model.proofOfReadyForPlanning.disabled = !requestWithPlanning;\r\n\r\n formStep.model.generatorModules.disabled =\r\n formStep.formModel.plantPerformance.generator.disabled;\r\n formStep.model.inverterModules.disabled =\r\n formStep.formModel.plantPerformance.inverter.disabled ||\r\n isPluginGeneratingPlant(formStep.formModel);\r\n formStep.model.inverterStorageModules.disabled =\r\n formStep.formModel.plantPerformance.inverterStorage.disabled ||\r\n isPluginGeneratingPlant(formStep.formModel);\r\n formStep.model.storageModules.disabled =\r\n formStep.formModel.plantPerformance.storage.disabled;\r\n\r\n formStep.model.sitePlanWithLotNumber.disabled = isPluginGeneratingPlant(\r\n formStep.formModel,\r\n );\r\n }\r\n};\r\n\r\n// eslint-disable-next-line @typescript-eslint/comma-dangle\r\nfunction syncArray<\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n T extends FormList,\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n K extends FormList\r\n>(source: T, destination: K) {\r\n const sourceIds = new Set(\r\n source.items\r\n .map((item) => item.id?.value)\r\n .filter((item) => item != null),\r\n );\r\n\r\n for (let i = destination.items.length - 1; i >= 0; i--) {\r\n if (!sourceIds.has(destination.items[i].id?.value ?? '')) {\r\n destination.sudoRemoveAt(i);\r\n }\r\n }\r\n\r\n source.items.forEach((sourceItem) => {\r\n if (\r\n !destination.items.some(\r\n (destItem) => destItem.id?.value === sourceItem.id?.value,\r\n )\r\n ) {\r\n destination.createItem(sourceItem.id?.value ?? undefined);\r\n }\r\n });\r\n}\r\n","import { ApplicationForm } from '@/types/forms/specific/applicationForm';\r\nimport { CheckAndSendFormStep } from '@/types/forms/formSteps/checkAndSendFormStep';\r\nimport { isPluginGeneratingPlant, isRequestWithoutPlanning } from './common';\r\n\r\nexport const checkAndSendRules = async (\r\n formStep: { model: CheckAndSendFormStep; formModel: ApplicationForm } & Vue,\r\n): Promise => {\r\n // https://netzkern.atlassian.net/wiki/spaces/EWE/pages/4854573899/Formular+berpr+fen+Absenden#FormularÜberprüfen&Absenden-correctnessNotice\r\n formStep.model.correctnessNotice.disabled =\r\n isPluginGeneratingPlant(formStep.formModel) ||\r\n isRequestWithoutPlanning(formStep.formModel);\r\n\r\n formStep.model.generalTermsConsent.disabled = isRequestWithoutPlanning(\r\n formStep.formModel,\r\n );\r\n};\r\n","export const confirmationRules = async (): Promise => {\r\n // this is most likely not going to be used\r\n};\r\n","import { generalRules } from './application/general';\r\nimport { locationRules } from './application/location';\r\nimport { generationTypeRules } from './application/generationType';\r\nimport { powerConnectionRules } from './application/powerConnection';\r\nimport { plantOperatorRules } from './application/plantOperator';\r\nimport { plantBuilderRules } from './application/plantBuilder';\r\nimport { plantDataRules } from './application/plantData';\r\nimport { propertyOwnerRules } from './application/propertyOwner';\r\nimport { plantPerformanceRules } from './application/plantPerformance';\r\nimport { measuringConceptsRules } from './application/measuringConcepts';\r\nimport { controllableConsumptionDevicesRules } from './application/controllableConsumptionDevices';\r\nimport { billingRules } from './application/billing';\r\nimport { documentsRules } from './application/documents';\r\nimport { checkAndSendRules } from './application/checkAndSend';\r\nimport { confirmationRules } from './application/confirmation';\r\n\r\nexport const applicationRules = {\r\n general: generalRules,\r\n location: locationRules,\r\n generationType: generationTypeRules,\r\n powerConnection: powerConnectionRules,\r\n plantOperator: plantOperatorRules,\r\n plantBuilder: plantBuilderRules,\r\n plantData: plantDataRules,\r\n propertyOwner: propertyOwnerRules,\r\n plantPerformance: plantPerformanceRules,\r\n measuringConcepts: measuringConceptsRules,\r\n controllableConsumptionDevices: controllableConsumptionDevicesRules,\r\n billing: billingRules,\r\n documents: documentsRules,\r\n checkAndSend: checkAndSendRules,\r\n confirmation: confirmationRules,\r\n};\r\n","import { kitchenSinkRules } from './rules/kitchenSink';\r\nimport { applicationRules } from './rules/application';\r\n\r\nexport const rules = {\r\n kitchenSink: kitchenSinkRules,\r\n application: applicationRules,\r\n};\r\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LocationMap.vue?vue&type=style&index=0&id=112a9a48&lang=postcss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FormInputRadio.vue?vue&type=style&index=0&id=d0fdcf9c&lang=postcss&scoped=true&\"","'use strict';\n\nvar defaultControls = {\n selectionUp: [38],\n selectionDown: [40],\n select: [13],\n hideList: [27],\n showList: [40],\n autocomplete: [32, 13]\n};\n\nvar modes = {\n input: String,\n select: Object\n};\n\nfunction fromPath(obj, path) {\n return path.split('.').reduce(function (o, i) {\n return o === Object(o) ? o[i] : o;\n }, obj);\n}\n\nfunction hasKeyCode(arr, event) {\n return hasKeyCodeByCode(arr, event.keyCode);\n}\n\nfunction hasKeyCodeByCode(arr, keyCode) {\n if (arr.length <= 0) return false;\n\n var has = function has(arr) {\n return arr.some(function (code) {\n return code === keyCode;\n });\n };\n if (Array.isArray(arr[0])) {\n return arr.some(function (array) {\n return has(array);\n });\n } else {\n return has(arr);\n }\n}\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\nfunction _empty() {}function _awaitIgnored(value, direct) {\n if (!direct) {\n return value && value.then ? value.then(_empty) : Promise.resolve();\n }\n}function _invoke(body, then) {\n var result = body();if (result && result.then) {\n\n return result.then(then);\n }return then(result);\n}function _await(value, then, direct) {\n if (direct) {\n return then ? then(value) : value;\n }if (!value || !value.then) {\n value = Promise.resolve(value);\n }return then ? value.then(then) : value;\n}function _invokeIgnored(body) {\n var result = body();if (result && result.then) {\n return result.then(_empty);\n }\n}function _catch(body, recover) {\n try {\n var result = body();\n } catch (e) {\n return recover(e);\n }if (result && result.then) {\n return result.then(void 0, recover);\n }return result;\n}function _finally(body, finalizer) {\n try {\n var result = body();\n } catch (e) {\n return finalizer();\n }if (result && result.then) {\n return result.then(finalizer, finalizer);\n }return finalizer();\n}var VueSimpleSuggest = {\n render: function render() {\n var _vm = this;var _h = _vm.$createElement;var _c = _vm._self._c || _h;return _c('div', { staticClass: \"vue-simple-suggest\", class: [_vm.styles.vueSimpleSuggest, { designed: !_vm.destyled, focus: _vm.isInFocus }], on: { \"keydown\": function keydown($event) {\n if (!$event.type.indexOf('key') && _vm._k($event.keyCode, \"tab\", 9, $event.key, \"Tab\")) {\n return null;\n }_vm.isTabbed = true;\n } } }, [_c('div', { ref: \"inputSlot\", staticClass: \"input-wrapper\", class: _vm.styles.inputWrapper, attrs: { \"role\": \"combobox\", \"aria-haspopup\": \"listbox\", \"aria-owns\": _vm.listId, \"aria-expanded\": !!_vm.listShown && !_vm.removeList ? 'true' : 'false' } }, [_vm._t(\"default\", [_c('input', _vm._b({ staticClass: \"default-input\", class: _vm.styles.defaultInput, domProps: { \"value\": _vm.text || '' } }, 'input', _vm.$attrs, false))])], 2), _vm._v(\" \"), _c('transition', { attrs: { \"name\": \"vue-simple-suggest\" } }, [!!_vm.listShown && !_vm.removeList ? _c('ul', { staticClass: \"suggestions\", class: _vm.styles.suggestions, attrs: { \"id\": _vm.listId, \"role\": \"listbox\", \"aria-labelledby\": _vm.listId } }, [!!this.$scopedSlots['misc-item-above'] ? _c('li', [_vm._t(\"misc-item-above\", null, { \"suggestions\": _vm.suggestions, \"query\": _vm.text })], 2) : _vm._e(), _vm._v(\" \"), _vm._l(_vm.suggestions, function (suggestion, index) {\n return _c('li', { key: _vm.getId(suggestion, index), staticClass: \"suggest-item\", class: [_vm.styles.suggestItem, {\n selected: _vm.isSelected(suggestion),\n hover: _vm.isHovered(suggestion)\n }], attrs: { \"role\": \"option\", \"aria-selected\": _vm.isHovered(suggestion) || _vm.isSelected(suggestion) ? 'true' : 'false', \"id\": _vm.getId(suggestion, index) }, on: { \"mouseenter\": function mouseenter($event) {\n return _vm.hover(suggestion, $event.target);\n }, \"mouseleave\": function mouseleave($event) {\n return _vm.hover(undefined);\n }, \"click\": function click($event) {\n return _vm.suggestionClick(suggestion, $event);\n } } }, [_vm._t(\"suggestion-item\", [_c('span', [_vm._v(_vm._s(_vm.displayProperty(suggestion)))])], { \"autocomplete\": function autocomplete() {\n return _vm.autocompleteText(suggestion);\n }, \"suggestion\": suggestion, \"query\": _vm.text })], 2);\n }), _vm._v(\" \"), !!this.$scopedSlots['misc-item-below'] ? _c('li', [_vm._t(\"misc-item-below\", null, { \"suggestions\": _vm.suggestions, \"query\": _vm.text })], 2) : _vm._e()], 2) : _vm._e()])], 1);\n },\n staticRenderFns: [],\n name: 'vue-simple-suggest',\n inheritAttrs: false,\n model: {\n prop: 'value',\n event: 'input'\n },\n props: {\n styles: {\n type: Object,\n default: function _default() {\n return {};\n }\n },\n controls: {\n type: Object,\n default: function _default() {\n return defaultControls;\n }\n },\n minLength: {\n type: Number,\n default: 1\n },\n maxSuggestions: {\n type: Number,\n default: 10\n },\n displayAttribute: {\n type: String,\n default: 'title'\n },\n valueAttribute: {\n type: String,\n default: 'id'\n },\n list: {\n type: [Function, Array],\n default: function _default() {\n return [];\n }\n },\n removeList: {\n type: Boolean,\n default: false\n },\n destyled: {\n type: Boolean,\n default: false\n },\n filterByQuery: {\n type: Boolean,\n default: false\n },\n filter: {\n type: Function,\n default: function _default(el, value) {\n return value ? ~this.displayProperty(el).toLowerCase().indexOf(value.toLowerCase()) : true;\n }\n },\n debounce: {\n type: Number,\n default: 0\n },\n nullableSelect: {\n type: Boolean,\n default: false\n },\n value: {},\n mode: {\n type: String,\n default: 'input',\n validator: function validator(value) {\n return !!~Object.keys(modes).indexOf(value.toLowerCase());\n }\n }\n },\n // Handle run-time mode changes (now working):\n watch: {\n mode: {\n handler: function handler(current, old) {\n var _this = this;\n\n this.constructor.options.model.event = current;\n\n // Can be null if the component is root\n this.$parent && this.$parent.$forceUpdate();\n\n this.$nextTick(function () {\n if (current === 'input') {\n _this.$emit('input', _this.text);\n } else {\n _this.$emit('select', _this.selected);\n }\n });\n },\n\n immediate: true\n },\n value: {\n handler: function handler(current) {\n if (typeof current !== 'string') {\n current = this.displayProperty(current);\n }\n this.updateTextOutside(current);\n },\n\n immediate: true\n }\n },\n //\n data: function data() {\n return {\n selected: null,\n hovered: null,\n suggestions: [],\n listShown: false,\n inputElement: null,\n canSend: true,\n timeoutInstance: null,\n text: this.value,\n isPlainSuggestion: false,\n isClicking: false,\n isInFocus: false,\n isFalseFocus: false,\n isTabbed: false,\n controlScheme: {},\n listId: this._uid + '-suggestions'\n };\n },\n\n computed: {\n listIsRequest: function listIsRequest() {\n return typeof this.list === 'function';\n },\n inputIsComponent: function inputIsComponent() {\n return this.$slots.default && this.$slots.default.length > 0 && !!this.$slots.default[0].componentInstance;\n },\n input: function input() {\n return this.inputIsComponent ? this.$slots.default[0].componentInstance : this.inputElement;\n },\n on: function on() {\n return this.inputIsComponent ? '$on' : 'addEventListener';\n },\n off: function off() {\n return this.inputIsComponent ? '$off' : 'removeEventListener';\n },\n hoveredIndex: function hoveredIndex() {\n for (var i = 0; i < this.suggestions.length; i++) {\n var el = this.suggestions[i];\n if (this.hovered && this.valueProperty(this.hovered) == this.valueProperty(el)) {\n return i;\n }\n }\n return -1;\n },\n textLength: function textLength() {\n return this.text && this.text.length || this.inputElement.value.length || 0;\n },\n isSelectedUpToDate: function isSelectedUpToDate() {\n return !!this.selected && this.displayProperty(this.selected) === this.text;\n }\n },\n created: function created() {\n this.controlScheme = Object.assign({}, defaultControls, this.controls);\n },\n mounted: function mounted() {\n this.inputElement = this.$refs['inputSlot'].querySelector('input');\n\n this.setInputAriaAttributes();\n this.prepareEventHandlers(true);\n },\n beforeDestroy: function beforeDestroy() {\n this.prepareEventHandlers(false);\n },\n\n methods: {\n isEqual: function isEqual(suggestion, item) {\n return item && this.valueProperty(suggestion) == this.valueProperty(item);\n },\n isSelected: function isSelected(suggestion) {\n return this.isEqual(suggestion, this.selected);\n },\n isHovered: function isHovered(suggestion) {\n return this.isEqual(suggestion, this.hovered);\n },\n setInputAriaAttributes: function setInputAriaAttributes() {\n this.inputElement.setAttribute('aria-activedescendant', '');\n this.inputElement.setAttribute('aria-autocomplete', 'list');\n this.inputElement.setAttribute('aria-controls', this.listId);\n },\n prepareEventHandlers: function prepareEventHandlers(enable) {\n var binder = this[enable ? 'on' : 'off'];\n var keyEventsList = {\n click: this.showSuggestions,\n keydown: this.onKeyDown,\n keyup: this.onListKeyUp\n };\n var eventsList = Object.assign({\n blur: this.onBlur,\n focus: this.onFocus,\n input: this.onInput\n }, keyEventsList);\n\n for (var event in eventsList) {\n this.input[binder](event, eventsList[event]);\n }\n\n var listenerBinder = enable ? 'addEventListener' : 'removeEventListener';\n\n for (var _event in keyEventsList) {\n this.inputElement[listenerBinder](_event, keyEventsList[_event]);\n }\n },\n isScopedSlotEmpty: function isScopedSlotEmpty(slot) {\n if (slot) {\n var vNode = slot(this);\n return !(Array.isArray(vNode) || vNode && (vNode.tag || vNode.context || vNode.text || vNode.children));\n }\n\n return true;\n },\n miscSlotsAreEmpty: function miscSlotsAreEmpty() {\n var _this2 = this;\n\n var slots = ['misc-item-above', 'misc-item-below'].map(function (s) {\n return _this2.$scopedSlots[s];\n });\n\n if (slots.every(function (s) {\n return !!s;\n })) {\n return slots.every(this.isScopedSlotEmpty.bind(this));\n }\n\n var slot = slots.find(function (s) {\n return !!s;\n });\n\n return this.isScopedSlotEmpty.call(this, slot);\n },\n getPropertyByAttribute: function getPropertyByAttribute(obj, attr) {\n return this.isPlainSuggestion ? obj : (typeof obj === 'undefined' ? 'undefined' : _typeof(obj)) !== undefined ? fromPath(obj, attr) : obj;\n },\n displayProperty: function displayProperty(obj) {\n if (this.isPlainSuggestion) {\n return obj;\n }\n\n var display = this.getPropertyByAttribute(obj, this.displayAttribute);\n\n if (typeof display === 'undefined') {\n display = JSON.stringify(obj);\n\n if (process && ~process.env.NODE_ENV.indexOf('dev')) {\n console.warn('[vue-simple-suggest]: Please, provide `display-attribute` as a key or a dotted path for a property from your object.');\n }\n }\n\n return String(display || '');\n },\n valueProperty: function valueProperty(obj) {\n if (this.isPlainSuggestion) {\n return obj;\n }\n\n var value = this.getPropertyByAttribute(obj, this.valueAttribute);\n\n if (typeof value === 'undefined') {\n console.error('[vue-simple-suggest]: Please, check if you passed \\'value-attribute\\' (default is \\'id\\') and \\'display-attribute\\' (default is \\'title\\') props correctly.\\n Your list objects should always contain a unique identifier.');\n }\n\n return value;\n },\n autocompleteText: function autocompleteText(suggestion) {\n this.setText(this.displayProperty(suggestion));\n },\n setText: function setText(text) {\n var _this3 = this;\n\n this.$nextTick(function () {\n _this3.inputElement.value = text;\n _this3.text = text;\n _this3.$emit('input', text);\n });\n },\n select: function select(item) {\n if (this.selected !== item || this.nullableSelect && !item) {\n this.selected = item;\n this.$emit('select', item);\n\n if (item) {\n this.autocompleteText(item);\n }\n }\n\n this.hover(null);\n },\n hover: function hover(item, elem) {\n var elemId = !!item ? this.getId(item, this.hoveredIndex) : '';\n\n this.inputElement.setAttribute('aria-activedescendant', elemId);\n\n if (item && item !== this.hovered) {\n this.$emit('hover', item, elem);\n }\n\n this.hovered = item;\n },\n hideList: function hideList() {\n if (this.listShown) {\n this.listShown = false;\n this.hover(null);\n this.$emit('hide-list');\n }\n },\n showList: function showList() {\n if (!this.listShown) {\n if (this.textLength >= this.minLength && (this.suggestions.length > 0 || !this.miscSlotsAreEmpty())) {\n this.listShown = true;\n this.$emit('show-list');\n }\n }\n },\n showSuggestions: function showSuggestions() {\n try {\n var _this5 = this;\n\n return _invoke(function () {\n if (_this5.suggestions.length === 0 && _this5.minLength <= _this5.textLength) {\n // try show misc slots while researching\n _this5.showList();\n return _awaitIgnored(_this5.research());\n }\n }, function () {\n\n _this5.showList();\n });\n } catch (e) {\n return Promise.reject(e);\n }\n },\n onShowList: function onShowList(e) {\n if (hasKeyCode(this.controlScheme.showList, e)) {\n this.showSuggestions();\n }\n },\n moveSelection: function moveSelection(e) {\n if (!this.listShown || !this.suggestions.length) return;\n if (hasKeyCode([this.controlScheme.selectionUp, this.controlScheme.selectionDown], e)) {\n e.preventDefault();\n\n var isMovingDown = hasKeyCode(this.controlScheme.selectionDown, e);\n var direction = isMovingDown * 2 - 1;\n var listEdge = isMovingDown ? 0 : this.suggestions.length - 1;\n var hoversBetweenEdges = isMovingDown ? this.hoveredIndex < this.suggestions.length - 1 : this.hoveredIndex > 0;\n\n var item = null;\n\n if (!this.hovered) {\n item = this.selected || this.suggestions[listEdge];\n } else if (hoversBetweenEdges) {\n item = this.suggestions[this.hoveredIndex + direction];\n } else /* if hovers on edge */{\n item = this.suggestions[listEdge];\n }\n this.hover(item);\n }\n },\n onKeyDown: function onKeyDown(e) {\n var select = this.controlScheme.select,\n hideList = this.controlScheme.hideList;\n\n // prevent form submit on keydown if Enter key registered in the keyup list\n if (e.key === 'Enter' && this.listShown && hasKeyCodeByCode([select, hideList], 13)) {\n e.preventDefault();\n }\n\n if (e.key === 'Tab' && this.hovered) {\n this.select(this.hovered);\n }\n\n this.onShowList(e);\n this.moveSelection(e);\n this.onAutocomplete(e);\n },\n onListKeyUp: function onListKeyUp(e) {\n var select = this.controlScheme.select,\n hideList = this.controlScheme.hideList;\n\n if (this.listShown && hasKeyCode([select, hideList], e)) {\n e.preventDefault();\n if (hasKeyCode(select, e)) {\n this.select(this.hovered);\n }\n\n this.hideList();\n }\n },\n onAutocomplete: function onAutocomplete(e) {\n if (hasKeyCode(this.controlScheme.autocomplete, e) && (e.ctrlKey || e.shiftKey) && this.suggestions.length > 0 && this.suggestions[0] && this.listShown) {\n e.preventDefault();\n this.hover(this.suggestions[0]);\n this.autocompleteText(this.suggestions[0]);\n }\n },\n suggestionClick: function suggestionClick(suggestion, e) {\n this.$emit('suggestion-click', suggestion, e);\n this.select(suggestion);\n this.hideList();\n\n /// Ensure, that all needed flags are off before finishing the click.\n this.isClicking = false;\n },\n onBlur: function onBlur(e) {\n var _this6 = this;\n\n if (this.isInFocus) {\n\n /// Clicking starts here, because input's blur occurs before the suggestionClick\n /// and exactly when the user clicks the mouse button or taps the screen.\n this.isClicking = this.hovered && !this.isTabbed;\n\n if (!this.isClicking) {\n this.isInFocus = false;\n this.hideList();\n\n this.$emit('blur', e);\n } else if (e && e.isTrusted && !this.isTabbed) {\n this.isFalseFocus = true;\n setTimeout(function () {\n _this6.inputElement.focus();\n }, 0);\n }\n } else {\n this.inputElement.blur();\n console.error('This should never happen!\\n If you encountered this error, please make sure that your input component emits \\'focus\\' events properly.\\n For more info see https://github.com/KazanExpress/vue-simple-suggest#custom-input.\\n\\n If your \\'vue-simple-suggest\\' setup does not include a custom input component - please,\\n report to https://github.com/KazanExpress/vue-simple-suggest/issues/new');\n }\n\n this.isTabbed = false;\n },\n onFocus: function onFocus(e) {\n this.isInFocus = true; // Only emit, if it was a native input focus\n if (e && !this.isFalseFocus) {\n this.$emit('focus', e);\n }\n\n // Show list only if the item has not been clicked (isFalseFocus indicates that click was made earlier)\n if (!this.isClicking && !this.isFalseFocus) {\n this.showSuggestions();\n }\n\n this.isFalseFocus = false;\n },\n onInput: function onInput(inputEvent) {\n var value = !inputEvent.target ? inputEvent : inputEvent.target.value;\n\n this.updateTextOutside(value);\n this.$emit('input', value);\n },\n updateTextOutside: function updateTextOutside(value) {\n if (this.text === value) {\n return;\n }\n\n this.text = value;\n if (this.hovered) this.hover(null);\n\n if (this.text.length < this.minLength) {\n this.hideList();\n return;\n }\n\n if (this.debounce) {\n clearTimeout(this.timeoutInstance);\n this.timeoutInstance = setTimeout(this.research, this.debounce);\n } else {\n this.research();\n }\n },\n research: function research() {\n try {\n var _this8 = this;\n\n return _finally(function () {\n return _catch(function () {\n return _invokeIgnored(function () {\n if (_this8.canSend) {\n _this8.canSend = false;\n // @TODO: fix when promises will be cancelable (never :D)\n var textBeforeRequest = _this8.text;\n return _await(_this8.getSuggestions(_this8.text), function (newList) {\n if (textBeforeRequest === _this8.text) {\n _this8.$set(_this8, 'suggestions', newList);\n }\n });\n }\n });\n }, function (e) {\n _this8.clearSuggestions();\n throw e;\n });\n }, function () {\n _this8.canSend = true;\n\n if (_this8.suggestions.length === 0 && _this8.miscSlotsAreEmpty()) {\n _this8.hideList();\n } else if (_this8.isInFocus) {\n _this8.showList();\n }\n\n return _this8.suggestions;\n });\n } catch (e) {\n return Promise.reject(e);\n }\n },\n getSuggestions: function getSuggestions(value) {\n try {\n var _this10 = this;\n\n value = value || '';\n\n if (value.length < _this10.minLength) {\n return [];\n }\n\n _this10.selected = null;\n\n // Start request if can\n if (_this10.listIsRequest) {\n _this10.$emit('request-start', value);\n }\n\n var result = [];\n return _finally(function () {\n return _catch(function () {\n return _invoke(function () {\n if (_this10.listIsRequest) {\n return _await(_this10.list(value), function (_this9$list) {\n result = _this9$list || [];\n });\n } else {\n result = _this10.list;\n }\n }, function () {\n\n // IFF the result is not an array (just in case!) - make it an array\n if (!Array.isArray(result)) {\n result = [result];\n }\n\n _this10.isPlainSuggestion = _typeof(result[0]) !== 'object' || Array.isArray(result[0]);\n\n if (_this10.filterByQuery) {\n result = result.filter(function (el) {\n return _this10.filter(el, value);\n });\n }\n\n if (_this10.listIsRequest) {\n _this10.$emit('request-done', result);\n }\n });\n }, function (e) {\n if (_this10.listIsRequest) {\n _this10.$emit('request-failed', e);\n } else {\n throw e;\n }\n });\n }, function () {\n if (_this10.maxSuggestions) {\n result.splice(_this10.maxSuggestions);\n }\n\n return result;\n });\n } catch (e) {\n return Promise.reject(e);\n }\n },\n clearSuggestions: function clearSuggestions() {\n this.suggestions.splice(0);\n },\n getId: function getId(value, i) {\n return this.listId + '-suggestion-' + (this.isPlainSuggestion ? i : this.valueProperty(value) || i);\n }\n }\n};\n\nmodule.exports = VueSimpleSuggest;\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FormInputMultiLineText.vue?vue&type=style&index=0&id=0c24b3c7&lang=postcss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FormRadioGroupTiles.vue?vue&type=style&index=0&id=590afc22&lang=postcss&scoped=true&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.model.disabled)?_c('FieldWithInfoIcon',{attrs:{\"show-info-icon\":_vm.showInfoIcon,\"content\":_vm.content,\"align-top\":\"\",\"inline-element\":\"\"}},[_c('label',{staticClass:\"cursor-pointer inline-flex\"},[_c('FormInputCheckbox',{attrs:{\"model\":_vm.model,\"checkbox-style\":_vm.checkboxStyle}}),_c('div',[_c('span',{staticClass:\"dea-rich-text\",domProps:{\"innerHTML\":_vm._s(_vm.content.label)}}),(_vm.formField.isRequired)?_c('span',[_vm._v(\"*\")]):_vm._e()])],1)]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { PropType } from 'vue';\r\nimport { CheckboxContent } from '@/api/interfaces/content/form/base/checkboxContent';\r\nimport FormInputCheckbox from '@/components/atoms/formInputCheckbox/FormInputCheckbox.vue';\r\nimport { getFormInputMixin } from '@/mixins/formInputMixin';\r\nimport { CheckboxField } from '@/types/forms/fields/checkboxField';\r\nimport FieldWithInfoIcon from '@/components/molecules/fieldWithInfoIcon/FieldWithInfoIcon.vue';\r\nimport { CheckboxStyle } from '@/enums/checkboxStyle';\r\n\r\nexport default getFormInputMixin().extend({\r\n name: 'FormBooleanCheckbox',\r\n components: {\r\n FieldWithInfoIcon,\r\n FormInputCheckbox,\r\n },\r\n props: {\r\n checkboxStyle: {\r\n type: String as PropType,\r\n default: CheckboxStyle.standard,\r\n },\r\n },\r\n computed: {\r\n value: {\r\n get(): boolean {\r\n return this.model.value || false;\r\n },\r\n set(value: boolean): void {\r\n this.model.value = value;\r\n },\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FormBooleanCheckbox.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FormBooleanCheckbox.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FormBooleanCheckbox.vue?vue&type=template&id=3d583cfe&\"\nimport script from \"./FormBooleanCheckbox.vue?vue&type=script&lang=ts&\"\nexport * from \"./FormBooleanCheckbox.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue, { PropType } from 'vue';\r\nimport {\r\n ValidationGroups,\r\n ValidationProperties,\r\n VueConstructor,\r\n} from 'vue/types/vue';\r\nimport { Validation } from 'vuelidate';\r\n\r\nexport interface FormFieldVue {\r\n registerFormElementComponent(formElementComponent: Vue): void;\r\n}\r\n\r\nexport interface FormElementComponent extends Vue {\r\n readonly content: TContent;\r\n readonly model: TModel;\r\n readonly validations:\r\n | (Validation & ValidationGroups & ValidationProperties)\r\n | null;\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/comma-dangle\r\nexport function getFormElementMixin<\r\n TModel,\r\n TContent,\r\n TConfiguration = void\r\n>(): VueConstructor> {\r\n return Vue.extend({\r\n inject: {\r\n injectedFormField: {\r\n from: 'formField',\r\n default: null as (Vue & FormFieldVue) | null,\r\n },\r\n },\r\n props: {\r\n content: {\r\n type: Object as PropType,\r\n default: () => {\r\n return {} as TContent;\r\n },\r\n },\r\n configuration: {\r\n type: Object as PropType,\r\n default: () => ({} as TConfiguration),\r\n },\r\n model: {\r\n type: Object as PropType,\r\n default: () => {\r\n return {} as TModel;\r\n },\r\n },\r\n validations: {\r\n type: Object as PropType<\r\n | (Validation &\r\n ValidationGroups &\r\n ValidationProperties)\r\n | null\r\n >,\r\n default: null,\r\n },\r\n showInfoIcon: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n },\r\n computed: {\r\n formField(this: {\r\n injectedFormField: FormFieldVue;\r\n }): FormFieldVue | null {\r\n return this.injectedFormField || null;\r\n },\r\n },\r\n });\r\n}\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.model.disabled)?_c('FieldWithInfoIcon',{attrs:{\"show-info-icon\":_vm.showInfoIcon,\"content\":_vm.content}},[_c('div',{staticClass:\"form-input-count w-full flex border rounded\",class:_vm.containerClassList},[_c('button',{staticClass:\"decrement rounded-l\",class:_vm.decrementButtonClassList,on:{\"click\":_vm.decrement}}),_c('FormInputText',{staticClass:\"w-full\",attrs:{\"type\":\"number\",\"model\":_vm.inputModel,\"content\":_vm.content,\"validations\":_vm.validations,\"icon\":_vm.icon,\"allowed-characters\":_vm.digitKeys,\"align-text\":\"center\",\"embedded\":\"\"},on:{\"form-input-focus\":_vm.onFormInputFocus,\"form-input-blur\":_vm.onFormInputBlur},nativeOn:{\"keydown\":function($event){return _vm.onKeydown($event)}}}),_c('button',{staticClass:\"increment rounded-r\",class:_vm.incrementButtonClassList,on:{\"click\":_vm.increment}})],1)]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { getFormInputTextMixin } from '@/mixins/formInputTextMixin';\r\nimport { CountField } from '@/types/forms/fields/countField';\r\nimport { digitKeys } from '@/services/keys';\r\nimport FieldWithInfoIcon from '@/components/molecules/fieldWithInfoIcon/FieldWithInfoIcon.vue';\r\nimport FormInputText from '@/components/atoms/formInputText/FormInputText.vue';\r\nimport { TextInputWithUnitContent } from '@/api/interfaces/content/form/base/textInputWithUnitContent';\r\n\r\nexport default getFormInputTextMixin<\r\n CountField,\r\n TextInputWithUnitContent\r\n>().extend({\r\n name: 'FormInputCount',\r\n components: {\r\n FieldWithInfoIcon,\r\n FormInputText,\r\n },\r\n data() {\r\n return {\r\n formInputIsFocused: false,\r\n inputModel: {\r\n value: null as string | null,\r\n userChangeable: true,\r\n },\r\n };\r\n },\r\n computed: {\r\n digitKeys(): string[] {\r\n return digitKeys;\r\n },\r\n isMin(): boolean {\r\n return (\r\n this.model.value !== null && this.model.value <= this.model.min\r\n );\r\n },\r\n isMax(): boolean {\r\n return (\r\n this.model.value !== null && this.model.value >= this.model.max\r\n );\r\n },\r\n containerClassList(): string[] {\r\n const classes = [\r\n this.hasErrors ? 'border-error' : 'border-primary',\r\n ];\r\n if (this.formInputIsFocused) {\r\n classes.push(\r\n this.hasErrors ? 'outline-error' : 'outline-primary',\r\n );\r\n }\r\n return classes;\r\n },\r\n decrementButtonClassList(): string {\r\n return this.getButtonClassList(this.isMin);\r\n },\r\n incrementButtonClassList(): string {\r\n return this.getButtonClassList(this.isMax);\r\n },\r\n },\r\n watch: {\r\n model: {\r\n handler(): void {\r\n this.inputModel.value =\r\n this.model.value === null ? null : `${this.model.value}`;\r\n },\r\n deep: true,\r\n immediate: true,\r\n },\r\n inputModel: {\r\n handler(): void {\r\n if (\r\n this.inputModel.value === null ||\r\n this.inputModel.value === ''\r\n ) {\r\n this.model.value = null;\r\n return;\r\n }\r\n const parsedValue = parseInt(this.inputModel.value);\r\n if (!isNaN(parsedValue)) {\r\n this.model.value = parsedValue;\r\n }\r\n },\r\n deep: true,\r\n immediate: true,\r\n },\r\n },\r\n methods: {\r\n getButtonClassList(isLimit: boolean): string {\r\n if (isLimit) {\r\n const inactiveClass = this.hasErrors\r\n ? 'bg-error-inactive'\r\n : 'bg-primary-inactive';\r\n\r\n return `cursor-default ${inactiveClass}`;\r\n }\r\n\r\n return this.hasErrors\r\n ? 'bg-error hover:bg-error-variant'\r\n : 'bg-primary hover:bg-primary-variant';\r\n },\r\n onFormInputFocus(): void {\r\n this.formInputIsFocused = true;\r\n },\r\n onFormInputBlur(): void {\r\n this.formInputIsFocused = false;\r\n },\r\n onKeydown({ key }: KeyboardEvent): void {\r\n switch (key) {\r\n case 'ArrowDown':\r\n case '-':\r\n this.decrement();\r\n return;\r\n\r\n case 'ArrowUp':\r\n case '+':\r\n this.increment();\r\n return;\r\n }\r\n },\r\n decrement(): void {\r\n if (this.isMin) {\r\n return;\r\n }\r\n\r\n if (this.model.value === null) {\r\n this.model.value = this.model.min;\r\n return;\r\n }\r\n\r\n this.model.value -= this.model.step;\r\n },\r\n increment(): void {\r\n if (this.isMax) {\r\n return;\r\n }\r\n\r\n if (this.model.value === null) {\r\n this.model.value = this.model.min;\r\n return;\r\n }\r\n\r\n this.model.value += this.model.step;\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FormInputCount.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FormInputCount.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FormInputCount.vue?vue&type=template&id=f669a772&scoped=true&\"\nimport script from \"./FormInputCount.vue?vue&type=script&lang=ts&\"\nexport * from \"./FormInputCount.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./FormInputCount.vue?vue&type=style&index=0&id=f669a772&lang=postcss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"f669a772\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FormFileUpload.vue?vue&type=style&index=0&id=5d6a28a3&lang=postcss&scoped=true&\"","var render = function () {\nvar _obj;\nvar _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.isEdit)?_c('BackgroundOverlay',{staticClass:\"flex items-center\",attrs:{\"active\":true}}):_vm._e(),_c('div',{staticClass:\"relative lg:mx-16 px-4 py-4 sm:py-6 sm:px-32\",class:( _obj = {\n remaining: _vm.isRemaining || _vm.isRemainingWithData,\n 'sm:border-2 mb-10': !(_vm.isRemaining || _vm.isRemainingWithData),\n 'z-50': _vm.isEdit,\n 'sm:border-surface-variant-200 bg-surface': _vm.isCurrent || _vm.isEdit,\n 'sm:border-surface-variant': _vm.isDone,\n 'scroll-to-current-step': _vm.isCurrent && _vm.step !== 1\n }, _obj[_vm.stepScrollClass] = true, _obj )},[_c('div',{staticClass:\"sm:absolute sm:top-0 sm:left-0 sm:mt-6 sm:ml-8\",class:{\n 'font-normal': !(_vm.isRemaining || _vm.isRemainingWithData),\n 'sm:ml-10': _vm.isRemaining || _vm.isRemainingWithData,\n }},[_c('StepNumber',{attrs:{\"step\":_vm.step,\"is-remaining\":_vm.isRemaining || _vm.isRemainingWithData}})],1),_c('div',{staticClass:\"iconButtons absolute top-0 right-0 mr-8 mt-6 flex items-center\"},[_c('SpinnerArea',{staticClass:\"inline-block mt-2\",attrs:{\"state\":_vm.loadingState,\"size\":_vm.spinnerSize}},[(_vm.isDone)?_c('Icon',{staticClass:\"text-primary text-3xl cursor-pointer\",attrs:{\"id\":\"bleistift\",\"title\":_vm.formStepButtonEditText},nativeOn:{\"click\":function($event){return _vm.$emit('edit-current-step')}}}):_vm._e(),(_vm.isRemainingWithData)?_c('Icon',{staticClass:\"text-primary text-3xl\",attrs:{\"id\":\"stoerung\",\"title\":_vm.formStepIconRemainingWithDataText}}):_vm._e()],1),(_vm.isEdit)?_c('CloseButton',{staticClass:\"closeButton mt-2\",attrs:{\"title\":_vm.formStepButtonCancelText},nativeOn:{\"click\":function($event){return _vm.$emit('cancel-edit')}}}):_vm._e()],1),_c('div',{class:{ 'mt-1': !(_vm.isRemaining || _vm.isRemainingWithData) }},[_c('span',{staticClass:\"block font-normal\",class:{\n 'text-primary text-2xl mb-3 lg:text-3xl lg:mb-4 xl:text-4xl xl:mb-5': !(\n _vm.isRemaining || _vm.isRemainingWithData\n ),\n 'text-on-surface-variant text-xl mb-3 lg:text-2xl lg:mb-4 xl:text-3xl xl:mb-5':\n _vm.isRemaining || _vm.isRemainingWithData,\n }},[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.heading)}})]),(_vm.isCurrent)?_c('AppAlerts'):_vm._e(),(_vm.isCurrent || _vm.isEdit || _vm.isDone)?_vm._t(\"default\"):_vm._e()],2)])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"text-2xl text-on-primary bg-primary rounded-full bg-white flex items-center justify-center mr-4 relative\",class:{\n 'w-16 h-16': !_vm.isRemaining,\n 'w-12 h-12 opacity-25': _vm.isRemaining,\n }},[_vm._v(\" \"+_vm._s(_vm.step)+\" \"),(_vm.isRemaining)?_c('span',{staticClass:\"step-connector hidden sm:block absolute bg-primary\"}):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport Vue from 'vue';\r\nexport default Vue.extend({\r\n name: 'StepNumber',\r\n props: {\r\n step: {\r\n type: Number,\r\n default: 1,\r\n },\r\n isRemaining: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StepNumber.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StepNumber.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./StepNumber.vue?vue&type=template&id=39cd0218&scoped=true&\"\nimport script from \"./StepNumber.vue?vue&type=script&lang=ts&\"\nexport * from \"./StepNumber.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./StepNumber.vue?vue&type=style&index=0&id=39cd0218&lang=postcss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"39cd0218\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.isIE)?_c('span',{staticClass:\"x-ie text-primary text-4xl cursor-pointer leading-none pr-1\"},[_vm._v(\"X\")]):_c('span',{staticClass:\"x block w-10 h-10 z-1 cursor-pointer\"})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\r\nimport Vue from 'vue';\r\nimport { isIE } from '@/utilities/browserDetection';\r\n\r\nexport default Vue.extend({\r\n name: 'CloseButton',\r\n computed: {\r\n isIE,\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CloseButton.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CloseButton.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CloseButton.vue?vue&type=template&id=c4a10be6&scoped=true&\"\nimport script from \"./CloseButton.vue?vue&type=script&lang=ts&\"\nexport * from \"./CloseButton.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CloseButton.vue?vue&type=style&index=0&id=c4a10be6&lang=postcss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"c4a10be6\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport StepNumber from '@/components/atoms/stepNumber/StepNumber.vue';\r\nimport { StepState } from '@/enums/stepState';\r\nimport AppAlerts from '@/components/molecules/appAlerts/AppAlerts.vue';\r\nimport Icon from '@/components/atoms/icon/Icon.vue';\r\nimport Vue, { PropType } from 'vue';\r\nimport { BaseFormContent } from '@/api/interfaces/content/form/base/baseFormContent';\r\nimport CloseButton from '@/components/atoms/closeButton/CloseButton.vue';\r\nimport BackgroundOverlay from '@/components/atoms/backgroundOverlay/BackgroundOverlay.vue';\r\nimport SpinnerArea from '../spinnerArea/SpinnerArea.vue';\r\nimport { SpinnerState } from '@/enums/spinnerState';\r\nimport { SpinnerSize } from '@/enums/spinnerSize';\r\nimport { appState } from '@/services/form/appState';\r\n\r\nexport default Vue.extend({\r\n name: 'FormStep',\r\n components: {\r\n StepNumber,\r\n AppAlerts,\r\n Icon,\r\n CloseButton,\r\n BackgroundOverlay,\r\n SpinnerArea,\r\n },\r\n props: {\r\n content: {\r\n type: Object as PropType,\r\n required: true,\r\n },\r\n heading: {\r\n type: String,\r\n default: null,\r\n },\r\n step: {\r\n type: Number,\r\n default: 1,\r\n },\r\n stepIdentifier: {\r\n type: String,\r\n default: '',\r\n },\r\n state: {\r\n type: String as PropType,\r\n default: StepState.remaining,\r\n },\r\n },\r\n computed: {\r\n formStepButtonEditText(): string {\r\n return this.content.common.formStep.buttonEdit.text ?? '';\r\n },\r\n formStepIconRemainingWithDataText(): string {\r\n return (\r\n this.content.common.formStep.formStepIconRemainingWithData\r\n .text ?? ''\r\n );\r\n },\r\n formStepButtonCancelText(): string {\r\n return this.content.common.formStep.buttonCancel.text ?? '';\r\n },\r\n isDone(): boolean {\r\n return this.state === StepState.done;\r\n },\r\n isCurrent(): boolean {\r\n return this.state === StepState.current;\r\n },\r\n isEdit(): boolean {\r\n return this.state === StepState.edit;\r\n },\r\n isRemaining(): boolean {\r\n return this.state === StepState.remaining;\r\n },\r\n isRemainingWithData(): boolean {\r\n return this.state === StepState.remainingWithData;\r\n },\r\n loadingState(): SpinnerState {\r\n return appState.pendingFileUploads > 0\r\n ? SpinnerState.transparent\r\n : SpinnerState.off;\r\n },\r\n spinnerSize: () => SpinnerSize.small,\r\n stepScrollClass(): string {\r\n return `scroll-to-${this.stepIdentifier}-step`;\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FormStep.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FormStep.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FormStep.vue?vue&type=template&id=7d65d358&scoped=true&\"\nimport script from \"./FormStep.vue?vue&type=script&lang=ts&\"\nexport * from \"./FormStep.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7d65d358\",\n null\n \n)\n\nexport default component.exports","import { PropType } from 'vue';\r\nimport { VueConstructor } from 'vue/types/vue';\r\nimport { compact as _compact } from 'lodash';\r\nimport { isFunctionKey } from '@/services/keys';\r\nimport { TextInputWithUnitContent } from '@/api/interfaces/content/form/base/textInputWithUnitContent';\r\nimport { FormInputComponent, getFormInputMixin } from './formInputMixin';\r\nimport { TextField } from '@/types/forms/fields/textField';\r\nimport { FormElement } from '@/types/forms/formElement';\r\n\r\n// eslint-disable-next-line @typescript-eslint/comma-dangle\r\nexport interface FormInputTextComponent<\r\n TModel,\r\n TContent extends TextInputWithUnitContent\r\n> extends FormInputComponent {\r\n readonly minLength: number;\r\n readonly maxLength: number;\r\n readonly alignText: string;\r\n readonly type: string;\r\n readonly allowedCharacters: string[] | null;\r\n readonly forbiddenCharacters: string[] | null;\r\n readonly inputClasses: string[];\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/comma-dangle\r\nexport function getFormInputTextMixin<\r\n TModel extends FormElement,\r\n TContent extends TextInputWithUnitContent\r\n>(): VueConstructor> {\r\n return getFormInputMixin().extend({\r\n props: {\r\n minLength: {\r\n type: Number,\r\n default: 0,\r\n },\r\n maxLength: {\r\n type: Number,\r\n default: 256,\r\n },\r\n alignText: {\r\n type: String,\r\n validator(value: string) {\r\n return (\r\n !value ||\r\n (typeof value === 'string' &&\r\n ['left', 'center', 'right', 'justify'].includes(\r\n value,\r\n ))\r\n );\r\n },\r\n },\r\n type: {\r\n type: String,\r\n default: 'text',\r\n },\r\n allowedCharacters: {\r\n type: Array as PropType,\r\n default: null,\r\n },\r\n forbiddenCharacters: {\r\n type: Array as PropType,\r\n default: null,\r\n },\r\n inputEvents: {\r\n type: Object,\r\n default: null,\r\n },\r\n icon: {\r\n type: String,\r\n default: '',\r\n },\r\n handleBlurEvent: {\r\n type: Boolean,\r\n default: true,\r\n },\r\n focusable: {\r\n type: Object,\r\n default: null,\r\n },\r\n embedded: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n },\r\n computed: {\r\n textAlignmentClass(): string | null {\r\n // naming all variants here for tailwind purge:\r\n // text-left text-center text-right text-justify\r\n return this.alignText ? `text-${this.alignText}` : null;\r\n },\r\n errorClass(): string | null {\r\n return this.hasErrors ? 'has-errors' : null;\r\n },\r\n embeddedClass(): string | null {\r\n return this.embedded ? 'embedded' : null;\r\n },\r\n readonlyClass(): string | null {\r\n return !this.model.userChangeable ? 'readonly' : null;\r\n },\r\n inputClasses(): string[] {\r\n return _compact([\r\n this.textAlignmentClass,\r\n this.errorClass,\r\n this.embeddedClass,\r\n ]);\r\n },\r\n },\r\n watch: {\r\n focusable: function () {\r\n const input = this.$el.querySelector('input') as HTMLElement;\r\n if (input) {\r\n input.focus();\r\n }\r\n },\r\n },\r\n methods: {\r\n onFocus(): void {\r\n this.$emit('form-input-focus');\r\n },\r\n onBlur(): void {\r\n if (this.handleBlurEvent && this.validations) {\r\n this.validations.$touch();\r\n }\r\n\r\n let value = undefined;\r\n\r\n if (this.model instanceof TextField) {\r\n value = this.model.value;\r\n }\r\n\r\n this.$emit('form-input-blur', value);\r\n },\r\n onKeydown(e: KeyboardEvent): void {\r\n if (this.forbiddenCharacters) {\r\n if (this.forbiddenCharacters.includes(e.key)) {\r\n e.preventDefault();\r\n return;\r\n }\r\n }\r\n if (this.allowedCharacters) {\r\n if (e.altKey || e.ctrlKey || isFunctionKey(e.key)) {\r\n return;\r\n }\r\n if (!this.allowedCharacters.includes(e.key)) {\r\n e.preventDefault();\r\n return;\r\n }\r\n }\r\n },\r\n },\r\n });\r\n}\r\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.model.disabled)?_c('FieldWithInfoIcon',{attrs:{\"show-info-icon\":_vm.showInfoIcon,\"content\":_vm.content,\"inline-element\":\"\"}},[_c('div',[_c('SpinnerArea',{staticClass:\"inline-block\",attrs:{\"state\":_vm.loadingState,\"size\":_vm.spinnerSize}},[(_vm.showUploadButton)?_c('form',{staticClass:\"inline-block\",attrs:{\"enctype\":\"multipart/form-data\"}},[_c('span',{staticClass:\"inline-block relative bg-primary text-on-primary hover:bg-primary-variant leading-5 py-4 pr-12 pl-16 rounded uppercase\"},[_c('Icon',{staticClass:\"icon absolute top-0 left-0 ml-4 text-2xl\",attrs:{\"id\":\"upload\"}}),_vm._v(\" Hochladen \"),_c('input',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.isLoading),expression:\"!isLoading\"}],staticClass:\"file absolute top-0 left-0 bottom-0 w-full h-full cursor-pointer\",class:_vm.errorClass,attrs:{\"type\":\"file\",\"accept\":_vm.accept},on:{\"change\":function($event){return _vm.uploadFile($event.target.files[0])}}})],1)]):_c('div',[_c('p',[_vm._v(\" Hochgeladene Datei: \"),_c('strong',[_c('a',{staticClass:\"cursor-pointer text-primary hover:text-primary-variant\",attrs:{\"title\":\"Datei herunterladen\",\"download\":_vm.model.value.name},on:{\"click\":function($event){return _vm.downloadFile(_vm.model.value.id)}}},[_vm._v(\" \"+_vm._s(_vm.model.value.name)+\" \")]),_vm._v(\" \"+_vm._s(_vm._f(\"readableFileSize\")(_vm.model.value.size))+\" \")])]),_c('p',[_c('Icon',{staticClass:\"text-secondary cursor-pointer text-2xl\",attrs:{\"id\":\"Abfall-filled\",\"title\":\"Datei löschen\"},nativeOn:{\"click\":function($event){return _vm.deleteFile()}}})],1)]),(_vm.serverErrorMessage !== null)?_c('div',{staticClass:\"text-error mt-2\"},[_vm._v(\" \"+_vm._s(_vm.serverErrorMessage)+\" \")]):_vm._e()])],1)]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { PropType } from 'vue';\r\nimport Icon from '@/components/atoms/icon/Icon.vue';\r\nimport SpinnerArea from '../spinnerArea/SpinnerArea.vue';\r\nimport { SpinnerState } from '@/enums/spinnerState';\r\nimport { UploadedFileInfo } from '@/api/interfaces/file/uploadedFileInfo';\r\nimport { fileRepository } from '@/api';\r\nimport { SpinnerSize } from '@/enums/spinnerSize';\r\nimport { getFormInputMixin } from '@/mixins/formInputMixin';\r\nimport { UploadField } from '@/types/forms/fields/uploadField';\r\nimport { appState } from '@/services/form/appState';\r\nimport FieldWithInfoIcon from '@/components/molecules/fieldWithInfoIcon/FieldWithInfoIcon.vue';\r\nimport { FileUploadConfiguration } from '@/api/interfaces/configuration/form/base/fileUploadConfiguration';\r\nimport { FormFieldConfiguration } from '@/api/interfaces/configuration/form/base/formFieldConfiguration';\r\nimport { downloadFile } from '@/services/fileDownloadService';\r\nimport { ServiceError } from '@/api/interfaces/serviceError';\r\nimport { messageService } from '@/services/messageService';\r\nimport { LabelContent } from '@/api/interfaces/content/form/base/labelContent';\r\nimport { htmlDecode } from '@/utilities/utils';\r\n\r\nexport default getFormInputMixin>().extend({\r\n name: 'FormFileUpload',\r\n components: {\r\n FieldWithInfoIcon,\r\n Icon,\r\n SpinnerArea,\r\n },\r\n props: {\r\n applicationId: {\r\n type: String,\r\n required: true,\r\n },\r\n configuration: {\r\n type: Object as PropType,\r\n required: true,\r\n },\r\n content: {\r\n type: Object as PropType,\r\n default: () => {\r\n return {} as LabelContent;\r\n },\r\n },\r\n },\r\n data() {\r\n return {\r\n serverErrorMessage: null as string | null,\r\n isLoading: false,\r\n };\r\n },\r\n computed: {\r\n fileUploadConfiguration(): FileUploadConfiguration | null {\r\n const fileUploadConfiguration =\r\n ((this.configuration.configurations.find(\r\n (c) => c.type === 'fileUploadConfiguration',\r\n ) as unknown) as FileUploadConfiguration) ?? null;\r\n return fileUploadConfiguration;\r\n },\r\n loadingState(): SpinnerState {\r\n return this.isLoading ? SpinnerState.transparent : SpinnerState.off;\r\n },\r\n spinnerSize: () => SpinnerSize.small,\r\n acceptedExtensions(): Array {\r\n const scId = this.fileUploadConfiguration?.scId;\r\n return scId\r\n ? this.fileUploadConfiguration?.validations.fileTypes ?? []\r\n : [];\r\n },\r\n accept(): string | null {\r\n if (this.acceptedExtensions.length === 0) {\r\n return null; // prevents accept=\"\" from being rendered\r\n }\r\n\r\n return this.acceptedExtensions\r\n .map((extension) => `.${extension}`)\r\n .join(',');\r\n },\r\n showUploadButton(): boolean {\r\n // no file has been selected\r\n if (this.model.value === null) {\r\n return true;\r\n }\r\n\r\n // file has been selected but is still uploading\r\n if (!this.model.value?.id && this.isLoading) {\r\n return true;\r\n }\r\n\r\n return false;\r\n },\r\n },\r\n methods: {\r\n async uploadFile(file: File) {\r\n this.serverErrorMessage = null;\r\n this.model.value = {\r\n scId: this.fileUploadConfiguration?.scId,\r\n name: file.name,\r\n size: file.size,\r\n } as UploadedFileInfo;\r\n\r\n await this.$nextTick();\r\n\r\n // validate before actually uploading the file\r\n if (this.hasErrors) {\r\n return;\r\n }\r\n\r\n this.setLoading();\r\n\r\n var fileName = file.name;\r\n if (this.content?.summaryLabel) {\r\n fileName = `${htmlDecode(\r\n this.content.summaryLabel,\r\n )} ${fileName}`;\r\n } else if (this.content?.label) {\r\n fileName = `${htmlDecode(this.content.label)} ${fileName}`;\r\n }\r\n\r\n fileRepository\r\n .uploadFile(\r\n file,\r\n this.fileUploadConfiguration?.scId ?? '',\r\n fileName,\r\n this.applicationId,\r\n )\r\n .then((response) => {\r\n this.model.value = response.fileInfo;\r\n })\r\n .catch((error: ServiceError) => {\r\n this.model.value = null;\r\n this.serverErrorMessage = messageService.getErrorMessage(\r\n error.messageCode,\r\n );\r\n })\r\n .finally(() => {\r\n this.unsetLoading();\r\n });\r\n },\r\n async downloadFile() {\r\n this.serverErrorMessage = null;\r\n await this.$nextTick();\r\n\r\n // validate before actually downloading the file\r\n if (this.hasErrors) {\r\n return;\r\n }\r\n\r\n // do not download, if there is no file\r\n if (!this.model.value) {\r\n return;\r\n }\r\n\r\n this.setLoading();\r\n\r\n fileRepository\r\n .downloadFile(this.model.value.id, this.applicationId)\r\n .then((response) => {\r\n downloadFile(response.bytes, response.fileName);\r\n })\r\n .catch((error: ServiceError) => {\r\n this.serverErrorMessage = messageService.getErrorMessage(\r\n error.messageCode,\r\n );\r\n })\r\n .finally(() => {\r\n this.unsetLoading();\r\n });\r\n },\r\n deleteFile() {\r\n // no file has been selected\r\n if (this.model.value === null) {\r\n return;\r\n }\r\n\r\n // file has been selected but wasn't uploaded due too validation errors\r\n if (this.model.value !== null && this.hasErrors) {\r\n this.model.value = null;\r\n return;\r\n }\r\n\r\n this.serverErrorMessage = null;\r\n this.setLoading();\r\n\r\n fileRepository\r\n .deleteFile(this.model.value)\r\n .then(() => {\r\n this.model.value = null;\r\n })\r\n .catch((error: ServiceError) => {\r\n this.serverErrorMessage = messageService.getErrorMessage(\r\n error.messageCode,\r\n );\r\n })\r\n .finally(() => {\r\n this.unsetLoading();\r\n });\r\n },\r\n setLoading(): void {\r\n this.isLoading = true;\r\n appState.pendingFileUploads++;\r\n },\r\n unsetLoading(): void {\r\n this.isLoading = false;\r\n appState.pendingFileUploads--;\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FormFileUpload.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FormFileUpload.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FormFileUpload.vue?vue&type=template&id=5d6a28a3&scoped=true&\"\nimport script from \"./FormFileUpload.vue?vue&type=script&lang=ts&\"\nexport * from \"./FormFileUpload.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./FormFileUpload.vue?vue&type=style&index=0&id=5d6a28a3&lang=postcss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5d6a28a3\",\n null\n \n)\n\nexport default component.exports"],"sourceRoot":""}