@gridsuite/commons-ui 0.218.0 → 0.219.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. package/dist/features/index.js +16 -0
  2. package/dist/features/network-modifications/battery/batteryDialog.type.d.ts +27 -0
  3. package/dist/features/network-modifications/battery/batteryDialog.type.js +1 -0
  4. package/dist/features/network-modifications/battery/index.d.ts +2 -0
  5. package/dist/features/network-modifications/battery/index.js +17 -1
  6. package/dist/features/network-modifications/battery/modification/BatteryDialogHeader.d.ts +6 -0
  7. package/dist/features/network-modifications/battery/modification/BatteryDialogHeader.js +87 -0
  8. package/dist/features/network-modifications/battery/modification/BatteryDialogTabs.d.ts +13 -0
  9. package/dist/features/network-modifications/battery/modification/BatteryDialogTabs.js +51 -0
  10. package/dist/features/network-modifications/battery/modification/BatteryDialogTabsContent.d.ts +8 -0
  11. package/dist/features/network-modifications/battery/modification/BatteryDialogTabsContent.js +177 -0
  12. package/dist/features/network-modifications/battery/modification/BatteryModificationForm.d.ts +6 -0
  13. package/dist/features/network-modifications/battery/modification/BatteryModificationForm.js +50 -0
  14. package/dist/features/network-modifications/battery/modification/batteryModification.types.d.ts +31 -0
  15. package/dist/features/network-modifications/battery/modification/batteryModification.types.js +1 -0
  16. package/dist/features/network-modifications/battery/modification/batteryModification.utils.d.ts +95 -0
  17. package/dist/features/network-modifications/battery/modification/batteryModification.utils.js +163 -0
  18. package/dist/features/network-modifications/battery/modification/batteryTabs.utils.d.ts +8 -0
  19. package/dist/features/network-modifications/battery/modification/batteryTabs.utils.js +38 -0
  20. package/dist/features/network-modifications/battery/modification/index.d.ts +13 -0
  21. package/dist/features/network-modifications/battery/modification/index.js +18 -0
  22. package/dist/features/network-modifications/common/measurements/BusbarSectionVoltageMeasurementsForm.js +7 -7
  23. package/dist/features/network-modifications/index.js +16 -0
  24. package/dist/features/network-modifications/voltageLevel/modification/VoltageLevelModificationForm.js +59 -59
  25. package/dist/index.js +16 -0
  26. package/dist/translations/en/networkModificationsEn.d.ts +6 -0
  27. package/dist/translations/en/networkModificationsEn.js +6 -0
  28. package/dist/translations/fr/networkModificationsFr.d.ts +6 -0
  29. package/dist/translations/fr/networkModificationsFr.js +6 -0
  30. package/package.json +1 -1
@@ -0,0 +1,163 @@
1
+ import { object, number, string, ref } from "yup";
2
+ import { FieldConstants } from "../../../../utils/constants/fieldConstants.js";
3
+ import { toModificationOperation } from "../../../../utils/conversionUtils.js";
4
+ import "../../../../utils/types/equipmentType.js";
5
+ import { ModificationType } from "../../../../utils/types/modificationType.js";
6
+ import "react/jsx-runtime";
7
+ import "@mui/icons-material";
8
+ import { sanitizeString } from "../../../../utils/ts-utils.js";
9
+ import "react";
10
+ import "react-hook-form";
11
+ import { modificationPropertiesSchema, getPropertiesFromModification, toModificationProperties } from "../../common/properties/propertyUtils.js";
12
+ import "@mui/material";
13
+ import "react-intl";
14
+ import "../../../../components/ui/overflowableText/OverflowableText.js";
15
+ import "localized-countries";
16
+ import "localized-countries/data/fr";
17
+ import "localized-countries/data/en";
18
+ import "notistack";
19
+ import "../../../../components/ui/reactHookForm/provider/CustomFormProvider.js";
20
+ import "../../../../components/ui/treeViewFinder/TreeViewFinder.js";
21
+ import "../../../../components/ui/reactHookForm/numbers/RangeInput.js";
22
+ import "@material-symbols/svg-400/outlined/left_panel_open.svg?react";
23
+ import "@material-symbols/svg-400/outlined/arrows_output.svg?react";
24
+ import "@material-symbols/svg-400/outlined/arrows_input.svg?react";
25
+ import "@material-symbols/svg-400/outlined/left_panel_close.svg?react";
26
+ import "@material-symbols/svg-400/outlined/add_notes.svg?react";
27
+ import "../../../../components/ui/dialogs/descriptionModificationDialog/DescriptionModificationDialog.js";
28
+ import "../../../../components/ui/reactHookForm/expandableInput/ExpandableInput.js";
29
+ import "@hello-pangea/dnd";
30
+ import "../../../../components/ui/dialogs/elementSaveDialog/ElementSaveDialog.js";
31
+ import "../../../../components/ui/snackbarProvider/SnackbarProvider.js";
32
+ import "mui-nested-menu";
33
+ import "react-resizable-panels";
34
+ import { getInjectionActiveReactivePowerValidationSchemaProperties, getInjectionActiveReactivePowerEmptyFormDataProperties, getInjectionActiveReactivePowerEditDataProperties } from "../../common/measurements/injectionActiveReactivePowerForm.utils.js";
35
+ import "react-dom";
36
+ import "autosuggest-highlight/match";
37
+ import "autosuggest-highlight/parse";
38
+ import "clsx";
39
+ import "../../../../components/composite/filter/FilterCreationDialog.js";
40
+ import "../../../../components/composite/filter/HeaderFilterForm.js";
41
+ import "../../../../components/composite/filter/explicitNaming/ExplicitNamingFilterForm.js";
42
+ import "../../../../components/composite/filter/expert/ExpertFilterForm.js";
43
+ import "../../../../components/composite/filter/expert/ExpertFilterEditionDialog.js";
44
+ import "../../../../components/composite/filter/expert/expertFilterConstants.js";
45
+ import "react-querybuilder";
46
+ import "uuid";
47
+ import "../../../../components/composite/filter/explicitNaming/ExplicitNamingFilterEditionDialog.js";
48
+ import "../../../../components/composite/filter/utils/filterFormUtils.js";
49
+ import "@react-querybuilder/material";
50
+ import "../../../../components/composite/reactQueryBuilder/CustomReactQueryBuilder.js";
51
+ import "../../../../components/composite/reactQueryBuilder/PropertyValueEditor.js";
52
+ import "../../../../components/composite/agGridTable/BottomRightButtons.js";
53
+ import "../../../../components/composite/customAGGrid/customAggrid.js";
54
+ import "ag-grid-community";
55
+ import "react-papaparse";
56
+ import "react-csv-downloader";
57
+ import { getSetPointsSchema, getSetPointsEmptyFormData } from "../../common/setpoints/setPoints.utils.js";
58
+ import { getConnectivityWithPositionSchema, getConnectivityWithPositionEmptyFormDataProps, getConnectivityFormDataProps } from "../../common/connectivity/connectivityForm.utils.js";
59
+ import { getActivePowerControlSchema, getActivePowerControlEmptyFormData } from "../../common/activePowerControl/activePowerControlForm.utils.js";
60
+ import { getShortCircuitFormSchema, getShortCircuitEmptyFormData, getShortCircuitFormData } from "../../common/shortCircuit/shortCircuitForm.utils.js";
61
+ import { getReactiveLimitsValidationSchema, getReactiveLimitsEmptyFormDataProps, getReactiveLimitsFormDataProps } from "../../common/reactiveLimits/reactiveLimits.utils.js";
62
+ import "../../common/regulatingTerminal/RegulatingTerminalForm.js";
63
+ const batteryModificationFormSchema = object().shape({
64
+ [FieldConstants.EQUIPMENT_ID]: string().required(),
65
+ [FieldConstants.EQUIPMENT_NAME]: string().nullable(),
66
+ [FieldConstants.MAXIMUM_ACTIVE_POWER]: number().nullable(),
67
+ [FieldConstants.MINIMUM_ACTIVE_POWER]: number().nullable().when([FieldConstants.MAXIMUM_ACTIVE_POWER], {
68
+ is: (maximumActivePower) => maximumActivePower != null,
69
+ then: (schema) => schema.max(
70
+ ref(FieldConstants.MAXIMUM_ACTIVE_POWER),
71
+ "MinActivePowerMustBeLessOrEqualToMaxActivePower"
72
+ )
73
+ }),
74
+ [FieldConstants.CONNECTIVITY]: getConnectivityWithPositionSchema(true),
75
+ [FieldConstants.REACTIVE_LIMITS]: getReactiveLimitsValidationSchema(true),
76
+ [FieldConstants.STATE_ESTIMATION]: getInjectionActiveReactivePowerValidationSchemaProperties(),
77
+ ...getSetPointsSchema(true),
78
+ ...getActivePowerControlSchema(true),
79
+ ...getShortCircuitFormSchema(true)
80
+ }).concat(modificationPropertiesSchema).required();
81
+ const batteryModificationEmptyFormData = {
82
+ equipmentID: "",
83
+ equipmentName: "",
84
+ maximumActivePower: null,
85
+ minimumActivePower: null,
86
+ connectivity: getConnectivityWithPositionEmptyFormDataProps(true),
87
+ reactiveLimits: getReactiveLimitsEmptyFormDataProps(),
88
+ ...getSetPointsEmptyFormData(true),
89
+ ...getActivePowerControlEmptyFormData(true),
90
+ AdditionalProperties: [],
91
+ ...getShortCircuitEmptyFormData(),
92
+ stateEstimation: getInjectionActiveReactivePowerEmptyFormDataProperties()
93
+ };
94
+ const batteryModificationDtoToForm = (dto, includePreviousValues = true) => {
95
+ return {
96
+ equipmentID: dto?.equipmentId,
97
+ equipmentName: dto?.equipmentName?.value ?? "",
98
+ maximumActivePower: dto?.maxP?.value ?? null,
99
+ minimumActivePower: dto?.minP?.value ?? null,
100
+ activePowerSetpoint: dto?.targetP?.value ?? void 0,
101
+ reactivePowerSetpoint: dto?.targetQ?.value ?? null,
102
+ frequencyRegulation: dto?.participate?.value ?? null,
103
+ droop: dto?.droop?.value ?? null,
104
+ connectivity: getConnectivityFormDataProps({
105
+ voltageLevelId: dto?.voltageLevelId?.value ?? null,
106
+ busbarSectionId: dto?.busOrBusbarSectionId?.value ?? null,
107
+ connectionName: dto?.connectionName?.value ?? "",
108
+ connectionDirection: dto?.connectionDirection?.value ?? null,
109
+ connectionPosition: dto?.connectionPosition?.value ?? null,
110
+ terminalConnected: dto?.terminalConnected?.value ?? null,
111
+ isEquipmentModification: true
112
+ }),
113
+ reactiveLimits: getReactiveLimitsFormDataProps({
114
+ reactiveCapabilityCurveChoice: dto?.reactiveCapabilityCurve?.value ? "CURVE" : "MINMAX",
115
+ minimumReactivePower: dto?.minQ?.value ?? null,
116
+ maximumReactivePower: dto?.maxQ?.value ?? null,
117
+ reactiveCapabilityCurvePoints: dto?.reactiveCapabilityCurvePoints ?? null
118
+ }),
119
+ stateEstimation: getInjectionActiveReactivePowerEditDataProperties(dto),
120
+ ...getShortCircuitFormData({
121
+ directTransX: dto?.directTransX?.value ?? null,
122
+ stepUpTransformerX: dto?.stepUpTransformerX?.value ?? null
123
+ }),
124
+ ...getPropertiesFromModification(dto?.properties, includePreviousValues)
125
+ };
126
+ };
127
+ const batteryModificationFormToDto = (form) => {
128
+ const isReactiveCapabilityCurveOn = form.reactiveLimits?.reactiveCapabilityCurveChoice === "CURVE";
129
+ return {
130
+ type: ModificationType.BATTERY_MODIFICATION,
131
+ equipmentId: form.equipmentID ?? "",
132
+ equipmentName: toModificationOperation(sanitizeString(form.equipmentName)),
133
+ minP: toModificationOperation(form.minimumActivePower),
134
+ maxP: toModificationOperation(form.maximumActivePower),
135
+ targetP: toModificationOperation(form.activePowerSetpoint),
136
+ targetQ: toModificationOperation(form.reactivePowerSetpoint),
137
+ participate: toModificationOperation(form.frequencyRegulation),
138
+ droop: toModificationOperation(form.droop) ?? null,
139
+ reactiveCapabilityCurve: toModificationOperation(isReactiveCapabilityCurveOn),
140
+ minQ: toModificationOperation(isReactiveCapabilityCurveOn ? null : form.reactiveLimits?.minimumReactivePower),
141
+ maxQ: toModificationOperation(isReactiveCapabilityCurveOn ? null : form.reactiveLimits?.maximumReactivePower),
142
+ reactiveCapabilityCurvePoints: isReactiveCapabilityCurveOn ? form.reactiveLimits.reactiveCapabilityCurveTable ?? null : null,
143
+ voltageLevelId: toModificationOperation(form.connectivity?.voltageLevel?.id),
144
+ busOrBusbarSectionId: toModificationOperation(form.connectivity?.busOrBusbarSection?.id),
145
+ connectionDirection: toModificationOperation(form.connectivity?.connectionDirection),
146
+ connectionName: toModificationOperation(sanitizeString(form.connectivity?.connectionName)),
147
+ connectionPosition: toModificationOperation(form.connectivity?.connectionPosition),
148
+ terminalConnected: toModificationOperation(form.connectivity?.terminalConnected),
149
+ pMeasurementValue: toModificationOperation(form.stateEstimation?.measurementP?.value),
150
+ pMeasurementValidity: toModificationOperation(form.stateEstimation?.measurementP?.validity),
151
+ qMeasurementValue: toModificationOperation(form.stateEstimation?.measurementQ?.value),
152
+ qMeasurementValidity: toModificationOperation(form.stateEstimation?.measurementQ?.validity),
153
+ properties: toModificationProperties(form) ?? null,
154
+ directTransX: toModificationOperation(form.directTransX),
155
+ stepUpTransformerX: toModificationOperation(form.transformerReactance)
156
+ };
157
+ };
158
+ export {
159
+ batteryModificationDtoToForm,
160
+ batteryModificationEmptyFormData,
161
+ batteryModificationFormSchema,
162
+ batteryModificationFormToDto
163
+ };
@@ -0,0 +1,8 @@
1
+ import { FieldConstants } from '../../../../utils/constants';
2
+ export declare enum BatteryDialogTab {
3
+ CONNECTIVITY_TAB = 0,
4
+ LIMITS_AND_SETPOINTS_TAB = 1,
5
+ SPECIFIC_TAB = 2,
6
+ ADDITIONAL_INFORMATION_TAB = 3
7
+ }
8
+ export declare const BATTERY_TAB_FIELDS: Readonly<Partial<Record<BatteryDialogTab, FieldConstants[]>>>;
@@ -0,0 +1,38 @@
1
+ import { FieldConstants } from "../../../../utils/constants/fieldConstants.js";
2
+ var BatteryDialogTab = /* @__PURE__ */ ((BatteryDialogTab2) => {
3
+ BatteryDialogTab2[BatteryDialogTab2["CONNECTIVITY_TAB"] = 0] = "CONNECTIVITY_TAB";
4
+ BatteryDialogTab2[BatteryDialogTab2["LIMITS_AND_SETPOINTS_TAB"] = 1] = "LIMITS_AND_SETPOINTS_TAB";
5
+ BatteryDialogTab2[BatteryDialogTab2["SPECIFIC_TAB"] = 2] = "SPECIFIC_TAB";
6
+ BatteryDialogTab2[BatteryDialogTab2["ADDITIONAL_INFORMATION_TAB"] = 3] = "ADDITIONAL_INFORMATION_TAB";
7
+ return BatteryDialogTab2;
8
+ })(BatteryDialogTab || {});
9
+ const BATTERY_TAB_FIELDS = {
10
+ [
11
+ 0
12
+ /* CONNECTIVITY_TAB */
13
+ ]: [FieldConstants.CONNECTIVITY],
14
+ [
15
+ 1
16
+ /* LIMITS_AND_SETPOINTS_TAB */
17
+ ]: [
18
+ FieldConstants.MINIMUM_ACTIVE_POWER,
19
+ FieldConstants.MAXIMUM_ACTIVE_POWER,
20
+ FieldConstants.REACTIVE_LIMITS,
21
+ FieldConstants.ACTIVE_POWER_SET_POINT,
22
+ FieldConstants.REACTIVE_POWER_SET_POINT,
23
+ FieldConstants.FREQUENCY_REGULATION,
24
+ FieldConstants.DROOP
25
+ ],
26
+ [
27
+ 2
28
+ /* SPECIFIC_TAB */
29
+ ]: [FieldConstants.TRANSIENT_REACTANCE, FieldConstants.TRANSFORMER_REACTANCE],
30
+ [
31
+ 3
32
+ /* ADDITIONAL_INFORMATION_TAB */
33
+ ]: [FieldConstants.ADDITIONAL_PROPERTIES]
34
+ };
35
+ export {
36
+ BATTERY_TAB_FIELDS,
37
+ BatteryDialogTab
38
+ };
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Copyright (c) 2026, RTE (http://www.rte-france.com)
3
+ * This Source Code Form is subject to the terms of the Mozilla Public
4
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
5
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
6
+ */
7
+ export * from './batteryModification.types';
8
+ export * from './batteryModification.utils';
9
+ export * from './batteryTabs.utils';
10
+ export * from './BatteryDialogHeader';
11
+ export * from './BatteryDialogTabs';
12
+ export * from './BatteryDialogTabsContent';
13
+ export * from './BatteryModificationForm';
@@ -0,0 +1,18 @@
1
+ import { batteryModificationDtoToForm, batteryModificationEmptyFormData, batteryModificationFormSchema, batteryModificationFormToDto } from "./batteryModification.utils.js";
2
+ import { BATTERY_TAB_FIELDS, BatteryDialogTab } from "./batteryTabs.utils.js";
3
+ import { BatteryDialogHeader } from "./BatteryDialogHeader.js";
4
+ import { BatteryDialogTabs } from "./BatteryDialogTabs.js";
5
+ import { BatteryDialogTabsContent } from "./BatteryDialogTabsContent.js";
6
+ import { BatteryModificationForm } from "./BatteryModificationForm.js";
7
+ export {
8
+ BATTERY_TAB_FIELDS,
9
+ BatteryDialogHeader,
10
+ BatteryDialogTab,
11
+ BatteryDialogTabs,
12
+ BatteryDialogTabsContent,
13
+ BatteryModificationForm,
14
+ batteryModificationDtoToForm,
15
+ batteryModificationEmptyFormData,
16
+ batteryModificationFormSchema,
17
+ batteryModificationFormToDto
18
+ };
@@ -1,6 +1,6 @@
1
1
  import { jsxs, jsx } from "react/jsx-runtime";
2
2
  import { useFieldArray } from "react-hook-form";
3
- import { Grid, Typography } from "@mui/material";
3
+ import { Grid2 } from "@mui/material";
4
4
  import { useIntl, FormattedMessage } from "react-intl";
5
5
  import { VoltageAdornment } from "../../../../utils/constants/adornments.js";
6
6
  import { FieldConstants } from "../../../../utils/constants/fieldConstants.js";
@@ -59,8 +59,8 @@ function BusbarSectionVoltageMeasurementsForm({
59
59
  }) {
60
60
  const { fields } = useFieldArray({ name: BUSBAR_SECTION_V_MEASUREMENTS });
61
61
  const intl = useIntl();
62
- return /* @__PURE__ */ jsxs(Grid, { container: true, direction: "column", spacing: 1, sx: { pt: 1 }, children: [
63
- fields.length === 0 && /* @__PURE__ */ jsx(Grid, { item: true, children: /* @__PURE__ */ jsx(Typography, { variant: "body2", color: "text.secondary", sx: { p: 1 }, children: /* @__PURE__ */ jsx(FormattedMessage, { id: "NoBusbarSectionFound" }) }) }),
62
+ return /* @__PURE__ */ jsxs(Grid2, { container: true, direction: "column", spacing: 1, children: [
63
+ fields.length === 0 && /* @__PURE__ */ jsx(Grid2, { children: /* @__PURE__ */ jsx(FormattedMessage, { id: "NoBusbarSectionFound" }) }),
64
64
  fields.map((field, i) => {
65
65
  const bbsId = field.busbarSectionId;
66
66
  const networkBbs = busbarSections.find((b) => b.id === bbsId);
@@ -70,9 +70,9 @@ function BusbarSectionVoltageMeasurementsForm({
70
70
  if (validity != null) {
71
71
  previousValidity = intl.formatMessage({ id: validity ? "ValidMeasurement" : "InvalidMeasurement" });
72
72
  }
73
- return /* @__PURE__ */ jsx(Grid, { item: true, children: /* @__PURE__ */ jsxs(Grid, { container: true, spacing: 2, alignItems: "center", children: [
74
- /* @__PURE__ */ jsx(Grid, { item: true, xs: 3, children: /* @__PURE__ */ jsx(Typography, { variant: "body2", sx: { fontFamily: "monospace" }, children: bbsId }) }),
75
- /* @__PURE__ */ jsx(Grid, { item: true, xs: 4, children: /* @__PURE__ */ jsx(
73
+ return /* @__PURE__ */ jsx(Grid2, { children: /* @__PURE__ */ jsxs(Grid2, { container: true, spacing: 2, alignItems: "center", children: [
74
+ /* @__PURE__ */ jsx(Grid2, { children: bbsId }),
75
+ /* @__PURE__ */ jsx(Grid2, { size: 4, children: /* @__PURE__ */ jsx(
76
76
  FloatInput,
77
77
  {
78
78
  name: `${BUSBAR_SECTION_V_MEASUREMENTS}.${i}.${FieldConstants.VALUE}`,
@@ -82,7 +82,7 @@ function BusbarSectionVoltageMeasurementsForm({
82
82
  clearable: true
83
83
  }
84
84
  ) }),
85
- /* @__PURE__ */ jsx(Grid, { item: true, xs: 3, children: /* @__PURE__ */ jsx(
85
+ /* @__PURE__ */ jsx(Grid2, { size: 3, children: /* @__PURE__ */ jsx(
86
86
  CheckboxNullableInput,
87
87
  {
88
88
  name: `${BUSBAR_SECTION_V_MEASUREMENTS}.${i}.${FieldConstants.VALIDITY}`,
@@ -89,6 +89,12 @@ import { emptyModificationByAssignmentFormData, modificationByAssignmentDtoToFor
89
89
  import { DataType } from "./by-filter/assignment/assignment/assignment.type.js";
90
90
  import { batteryCreationDtoToForm, batteryCreationEmptyFormData, batteryCreationFormSchema, batteryCreationFormToDto } from "./battery/creation/batteryCreation.utils.js";
91
91
  import { BatteryCreationForm } from "./battery/creation/BatteryCreationForm.js";
92
+ import { batteryModificationDtoToForm, batteryModificationEmptyFormData, batteryModificationFormSchema, batteryModificationFormToDto } from "./battery/modification/batteryModification.utils.js";
93
+ import { BATTERY_TAB_FIELDS, BatteryDialogTab } from "./battery/modification/batteryTabs.utils.js";
94
+ import { BatteryDialogHeader } from "./battery/modification/BatteryDialogHeader.js";
95
+ import { BatteryDialogTabs } from "./battery/modification/BatteryDialogTabs.js";
96
+ import { BatteryDialogTabsContent } from "./battery/modification/BatteryDialogTabsContent.js";
97
+ import { BatteryModificationForm } from "./battery/modification/BatteryModificationForm.js";
92
98
  import { CHARACTERISTICS_CHOICES, SHUNT_COMPENSATOR_TYPES, computeSwitchedOnValue } from "./shunt-compensator/common/shuntCompensator.utils.js";
93
99
  import { CharacteristicsForm } from "./shunt-compensator/common/CharacteristicsForm.js";
94
100
  import { getCharacteristicsCreateFormDataFromSearchCopy, getCharacteristicsEmptyFormData, getCharacteristicsFormData, getCharacteristicsFormValidationSchema } from "./shunt-compensator/common/characteristicsForm.utils.js";
@@ -99,7 +105,13 @@ import { shuntCompensatorModificationDtoToForm, shuntCompensatorModificationEmpt
99
105
  export {
100
106
  ActivePowerControlForm,
101
107
  DataType as AssignmentDataType,
108
+ BATTERY_TAB_FIELDS,
102
109
  BatteryCreationForm,
110
+ BatteryDialogHeader,
111
+ BatteryDialogTab,
112
+ BatteryDialogTabs,
113
+ BatteryDialogTabsContent,
114
+ BatteryModificationForm,
103
115
  BranchActiveReactivePowerMeasurementsForm,
104
116
  BranchConnectivityForm,
105
117
  BusbarSectionVoltageMeasurementsForm,
@@ -149,6 +161,10 @@ export {
149
161
  batteryCreationEmptyFormData,
150
162
  batteryCreationFormSchema,
151
163
  batteryCreationFormToDto,
164
+ batteryModificationDtoToForm,
165
+ batteryModificationEmptyFormData,
166
+ batteryModificationFormSchema,
167
+ batteryModificationFormToDto,
152
168
  buildNewBusbarSections,
153
169
  byFilterDeletionDtoToForm,
154
170
  byFilterDeletionFormSchema,
@@ -1,6 +1,6 @@
1
- import { jsxs, Fragment, jsx } from "react/jsx-runtime";
1
+ import { jsxs, jsx } from "react/jsx-runtime";
2
2
  import { useState } from "react";
3
- import { Tabs, Tab, Box, Grid, TextField } from "@mui/material";
3
+ import { Grid2, TextField, Tabs, Tab, Box } from "@mui/material";
4
4
  import { FormattedMessage } from "react-intl";
5
5
  import { useWatch } from "react-hook-form";
6
6
  import { VoltageAdornment, KiloAmpereAdornment } from "../../../../utils/constants/adornments.js";
@@ -71,8 +71,49 @@ function VoltageLevelModificationForm({
71
71
  0
72
72
  /* CHARACTERISTICS_TAB */
73
73
  );
74
- return /* @__PURE__ */ jsxs(Fragment, { children: [
75
- /* @__PURE__ */ jsxs(
74
+ return /* @__PURE__ */ jsxs(Grid2, { container: true, direction: "column", spacing: 2, children: [
75
+ /* @__PURE__ */ jsx(Grid2, { children: /* @__PURE__ */ jsxs(Grid2, { container: true, spacing: 2, children: [
76
+ /* @__PURE__ */ jsx(Grid2, { size: 4, children: /* @__PURE__ */ jsx(
77
+ TextField,
78
+ {
79
+ size: "small",
80
+ fullWidth: true,
81
+ label: "ID",
82
+ value: equipmentId ?? "",
83
+ InputProps: {
84
+ readOnly: true
85
+ },
86
+ disabled: true,
87
+ ...filledTextField
88
+ }
89
+ ) }),
90
+ /* @__PURE__ */ jsx(Grid2, { size: 4, children: /* @__PURE__ */ jsx(
91
+ TextInput,
92
+ {
93
+ name: FieldConstants.EQUIPMENT_NAME,
94
+ label: "Name",
95
+ formProps: filledTextField,
96
+ clearable: true,
97
+ previousValue: voltageLevelToModify?.name ?? void 0
98
+ }
99
+ ) }),
100
+ !watchHideSubstationField && /* @__PURE__ */ jsx(Grid2, { size: 4, children: /* @__PURE__ */ jsx(
101
+ AutocompleteInput,
102
+ {
103
+ allowNewValue: true,
104
+ forcePopupIcon: true,
105
+ name: FieldConstants.SUBSTATION_ID,
106
+ label: "SUBSTATION",
107
+ options: [voltageLevelToModify?.substationId ?? ""],
108
+ inputTransform: (value) => value === null ? "" : value,
109
+ outputTransform: (value) => value,
110
+ size: "small",
111
+ formProps: filledTextField,
112
+ disabled: true
113
+ }
114
+ ) })
115
+ ] }) }),
116
+ /* @__PURE__ */ jsx(Grid2, { children: /* @__PURE__ */ jsxs(
76
117
  Tabs,
77
118
  {
78
119
  value: tabIndex,
@@ -106,53 +147,12 @@ function VoltageLevelModificationForm({
106
147
  )
107
148
  ]
108
149
  }
109
- ),
110
- /* @__PURE__ */ jsx(Box, { hidden: tabIndex !== 0, p: 1, children: /* @__PURE__ */ jsxs(Grid, { container: true, direction: "column", spacing: 2, children: [
111
- /* @__PURE__ */ jsx(Grid, { item: true, children: /* @__PURE__ */ jsxs(Grid, { container: true, spacing: 2, children: [
112
- /* @__PURE__ */ jsx(Grid, { item: true, xs: 4, children: /* @__PURE__ */ jsx(
113
- TextField,
114
- {
115
- size: "small",
116
- fullWidth: true,
117
- label: "ID",
118
- value: equipmentId ?? "",
119
- InputProps: {
120
- readOnly: true
121
- },
122
- disabled: true,
123
- ...filledTextField
124
- }
125
- ) }),
126
- /* @__PURE__ */ jsx(Grid, { item: true, xs: 4, children: /* @__PURE__ */ jsx(
127
- TextInput,
128
- {
129
- name: FieldConstants.EQUIPMENT_NAME,
130
- label: "Name",
131
- formProps: filledTextField,
132
- clearable: true,
133
- previousValue: voltageLevelToModify?.name ?? void 0
134
- }
135
- ) }),
136
- !watchHideSubstationField && /* @__PURE__ */ jsx(Grid, { item: true, xs: 4, children: /* @__PURE__ */ jsx(
137
- AutocompleteInput,
138
- {
139
- allowNewValue: true,
140
- forcePopupIcon: true,
141
- name: FieldConstants.SUBSTATION_ID,
142
- label: "SUBSTATION",
143
- options: [voltageLevelToModify?.substationId ?? ""],
144
- inputTransform: (value) => value === null ? "" : value,
145
- outputTransform: (value) => value,
146
- size: "small",
147
- formProps: filledTextField,
148
- disabled: true
149
- }
150
- ) })
151
- ] }) }),
152
- /* @__PURE__ */ jsxs(Grid, { item: true, children: [
150
+ ) }),
151
+ /* @__PURE__ */ jsxs(Grid2, { children: [
152
+ /* @__PURE__ */ jsx(Box, { hidden: tabIndex !== 0, children: /* @__PURE__ */ jsxs(Grid2, { children: [
153
153
  /* @__PURE__ */ jsx(GridSection, { title: "VoltageText" }),
154
- /* @__PURE__ */ jsxs(Grid, { container: true, spacing: 2, children: [
155
- /* @__PURE__ */ jsx(Grid, { item: true, xs: 4, children: /* @__PURE__ */ jsx(
154
+ /* @__PURE__ */ jsxs(Grid2, { container: true, spacing: 2, children: [
155
+ /* @__PURE__ */ jsx(Grid2, { size: 4, children: /* @__PURE__ */ jsx(
156
156
  FloatInput,
157
157
  {
158
158
  name: FieldConstants.NOMINAL_V,
@@ -162,7 +162,7 @@ function VoltageLevelModificationForm({
162
162
  previousValue: voltageLevelToModify?.nominalV
163
163
  }
164
164
  ) }),
165
- /* @__PURE__ */ jsx(Grid, { item: true, xs: 4, children: /* @__PURE__ */ jsx(
165
+ /* @__PURE__ */ jsx(Grid2, { size: 4, children: /* @__PURE__ */ jsx(
166
166
  FloatInput,
167
167
  {
168
168
  name: FieldConstants.LOW_VOLTAGE_LIMIT,
@@ -172,7 +172,7 @@ function VoltageLevelModificationForm({
172
172
  previousValue: voltageLevelToModify?.lowVoltageLimit ?? void 0
173
173
  }
174
174
  ) }),
175
- /* @__PURE__ */ jsx(Grid, { item: true, xs: 4, children: /* @__PURE__ */ jsx(
175
+ /* @__PURE__ */ jsx(Grid2, { size: 4, children: /* @__PURE__ */ jsx(
176
176
  FloatInput,
177
177
  {
178
178
  name: FieldConstants.HIGH_VOLTAGE_LIMIT,
@@ -184,8 +184,8 @@ function VoltageLevelModificationForm({
184
184
  ) })
185
185
  ] }),
186
186
  /* @__PURE__ */ jsx(GridSection, { title: "ShortCircuit" }),
187
- /* @__PURE__ */ jsxs(Grid, { container: true, spacing: 2, children: [
188
- /* @__PURE__ */ jsx(Grid, { item: true, xs: 4, children: /* @__PURE__ */ jsx(
187
+ /* @__PURE__ */ jsxs(Grid2, { container: true, spacing: 2, children: [
188
+ /* @__PURE__ */ jsx(Grid2, { size: 4, children: /* @__PURE__ */ jsx(
189
189
  FloatInput,
190
190
  {
191
191
  name: FieldConstants.LOW_SHORT_CIRCUIT_CURRENT_LIMIT,
@@ -195,7 +195,7 @@ function VoltageLevelModificationForm({
195
195
  previousValue: voltageLevelToModify?.identifiableShortCircuit?.ipMin ?? void 0
196
196
  }
197
197
  ) }),
198
- /* @__PURE__ */ jsx(Grid, { item: true, xs: 4, children: /* @__PURE__ */ jsx(
198
+ /* @__PURE__ */ jsx(Grid2, { size: 4, children: /* @__PURE__ */ jsx(
199
199
  FloatInput,
200
200
  {
201
201
  name: FieldConstants.HIGH_SHORT_CIRCUIT_CURRENT_LIMIT,
@@ -207,11 +207,11 @@ function VoltageLevelModificationForm({
207
207
  ) })
208
208
  ] }),
209
209
  /* @__PURE__ */ jsx(PropertiesForm, { networkElementType: "voltageLevel", isModification: true })
210
+ ] }) }),
211
+ /* @__PURE__ */ jsxs(Box, { hidden: tabIndex !== 1, children: [
212
+ /* @__PURE__ */ jsx(GridSection, { title: "MeasurementsSection" }),
213
+ /* @__PURE__ */ jsx(BusbarSectionVoltageMeasurementsForm, { busbarSections })
210
214
  ] })
211
- ] }) }),
212
- /* @__PURE__ */ jsxs(Box, { hidden: tabIndex !== 1, p: 1, children: [
213
- /* @__PURE__ */ jsx(GridSection, { title: "MeasurementsSection" }),
214
- /* @__PURE__ */ jsx(BusbarSectionVoltageMeasurementsForm, { busbarSections })
215
215
  ] })
216
216
  ] });
217
217
  }
package/dist/index.js CHANGED
@@ -314,6 +314,12 @@ import { emptyModificationByAssignmentFormData, modificationByAssignmentDtoToFor
314
314
  import { DataType as DataType2 } from "./features/network-modifications/by-filter/assignment/assignment/assignment.type.js";
315
315
  import { batteryCreationDtoToForm, batteryCreationEmptyFormData, batteryCreationFormSchema, batteryCreationFormToDto } from "./features/network-modifications/battery/creation/batteryCreation.utils.js";
316
316
  import { BatteryCreationForm } from "./features/network-modifications/battery/creation/BatteryCreationForm.js";
317
+ import { batteryModificationDtoToForm, batteryModificationEmptyFormData, batteryModificationFormSchema, batteryModificationFormToDto } from "./features/network-modifications/battery/modification/batteryModification.utils.js";
318
+ import { BATTERY_TAB_FIELDS, BatteryDialogTab } from "./features/network-modifications/battery/modification/batteryTabs.utils.js";
319
+ import { BatteryDialogHeader } from "./features/network-modifications/battery/modification/BatteryDialogHeader.js";
320
+ import { BatteryDialogTabs } from "./features/network-modifications/battery/modification/BatteryDialogTabs.js";
321
+ import { BatteryDialogTabsContent } from "./features/network-modifications/battery/modification/BatteryDialogTabsContent.js";
322
+ import { BatteryModificationForm } from "./features/network-modifications/battery/modification/BatteryModificationForm.js";
317
323
  import { CHARACTERISTICS_CHOICES, SHUNT_COMPENSATOR_TYPES, computeSwitchedOnValue } from "./features/network-modifications/shunt-compensator/common/shuntCompensator.utils.js";
318
324
  import { CharacteristicsForm } from "./features/network-modifications/shunt-compensator/common/CharacteristicsForm.js";
319
325
  import { getCharacteristicsCreateFormDataFromSearchCopy, getCharacteristicsEmptyFormData, getCharacteristicsFormData, getCharacteristicsFormValidationSchema } from "./features/network-modifications/shunt-compensator/common/characteristicsForm.utils.js";
@@ -446,8 +452,14 @@ export {
446
452
  BALANCE_TYPE,
447
453
  BASE_EQUIPMENTS,
448
454
  BASE_MODIFICATION_TABLE_COLUMNS,
455
+ BATTERY_TAB_FIELDS,
449
456
  Battery,
450
457
  BatteryCreationForm,
458
+ BatteryDialogHeader,
459
+ BatteryDialogTab,
460
+ BatteryDialogTabs,
461
+ BatteryDialogTabsContent,
462
+ BatteryModificationForm,
451
463
  BooleanCellRenderer,
452
464
  BooleanInput,
453
465
  BooleanNullableCellRenderer,
@@ -972,6 +984,10 @@ export {
972
984
  batteryCreationEmptyFormData,
973
985
  batteryCreationFormSchema,
974
986
  batteryCreationFormToDto,
987
+ batteryModificationDtoToForm,
988
+ batteryModificationEmptyFormData,
989
+ batteryModificationFormSchema,
990
+ batteryModificationFormToDto,
975
991
  buildNewBusbarSections,
976
992
  businessErrorsEn,
977
993
  businessErrorsFr,
@@ -220,6 +220,8 @@ export declare const networkModificationsEn: {
220
220
  Or: string;
221
221
  CreateBattery: string;
222
222
  BatteryCreationError: string;
223
+ ModifyBattery: string;
224
+ BatteryModificationError: string;
223
225
  Connectivity: string;
224
226
  ActiveLimits: string;
225
227
  ReactiveLimits: string;
@@ -228,6 +230,8 @@ export declare const networkModificationsEn: {
228
230
  Off: string;
229
231
  FrequencyRegulation: string;
230
232
  Droop: string;
233
+ Limits: string;
234
+ MinActivePowerMustBeLessOrEqualToMaxActivePower: string;
231
235
  activePowerControlTooltip: string;
232
236
  NoModification: string;
233
237
  ReactiveLimitsKindMinMax: string;
@@ -258,6 +262,8 @@ export declare const networkModificationsEn: {
258
262
  SubstationTab: string;
259
263
  ConnectivityTab: string;
260
264
  CharacteristicsTab: string;
265
+ SetpointsAndLimitsTab: string;
266
+ SpecificTab: string;
261
267
  StructureTab: string;
262
268
  AdditionalInformationTab: string;
263
269
  StateEstimationTab: string;
@@ -225,6 +225,8 @@ const networkModificationsEn = {
225
225
  Or: "or",
226
226
  CreateBattery: "Create battery",
227
227
  BatteryCreationError: "Error while creating battery",
228
+ ModifyBattery: "Modify battery",
229
+ BatteryModificationError: "Error while modifying battery",
228
230
  Connectivity: "Connectivity",
229
231
  ActiveLimits: "Active limits",
230
232
  ReactiveLimits: "Reactive limits",
@@ -233,6 +235,8 @@ const networkModificationsEn = {
233
235
  Off: "Off",
234
236
  FrequencyRegulation: "Active power regulation",
235
237
  Droop: "Droop",
238
+ Limits: "Limits",
239
+ MinActivePowerMustBeLessOrEqualToMaxActivePower: "Minimum active power value must be less than or equal to maximum active power value",
236
240
  activePowerControlTooltip: "Slack bus active power repartition key: maxP/droop, default droop = 4 (used if balanceType is PROPORTIONAL_TO_GENERATION_P_MAX)",
237
241
  NoModification: "No modification",
238
242
  ReactiveLimitsKindMinMax: "By range",
@@ -264,6 +268,8 @@ const networkModificationsEn = {
264
268
  SubstationTab: "Substation",
265
269
  ConnectivityTab: "Connectivity",
266
270
  CharacteristicsTab: "Characteristics",
271
+ SetpointsAndLimitsTab: "Setpoints & Limits",
272
+ SpecificTab: "Specific",
267
273
  StructureTab: "Structure",
268
274
  AdditionalInformationTab: "Additional information",
269
275
  StateEstimationTab: "State estimation"
@@ -220,6 +220,8 @@ export declare const networkModificationsFr: {
220
220
  Or: string;
221
221
  CreateBattery: string;
222
222
  BatteryCreationError: string;
223
+ ModifyBattery: string;
224
+ BatteryModificationError: string;
223
225
  Connectivity: string;
224
226
  ActiveLimits: string;
225
227
  ReactiveLimits: string;
@@ -228,6 +230,8 @@ export declare const networkModificationsFr: {
228
230
  Off: string;
229
231
  FrequencyRegulation: string;
230
232
  Droop: string;
233
+ Limits: string;
234
+ MinActivePowerMustBeLessOrEqualToMaxActivePower: string;
231
235
  activePowerControlTooltip: string;
232
236
  NoModification: string;
233
237
  ReactiveLimitsKindMinMax: string;
@@ -258,6 +262,8 @@ export declare const networkModificationsFr: {
258
262
  SubstationTab: string;
259
263
  ConnectivityTab: string;
260
264
  CharacteristicsTab: string;
265
+ SetpointsAndLimitsTab: string;
266
+ SpecificTab: string;
261
267
  StructureTab: string;
262
268
  AdditionalInformationTab: string;
263
269
  StateEstimationTab: string;
@@ -225,6 +225,8 @@ const networkModificationsFr = {
225
225
  Or: "ou",
226
226
  CreateBattery: "Créer une batterie",
227
227
  BatteryCreationError: "Erreur lors de la création d'une batterie",
228
+ ModifyBattery: "Modifier une batterie",
229
+ BatteryModificationError: "Erreur lors de la modification d'une batterie",
228
230
  Connectivity: "Connectivité",
229
231
  ActiveLimits: "Limites en actif",
230
232
  ReactiveLimits: "Limites en réactif",
@@ -233,6 +235,8 @@ const networkModificationsFr = {
233
235
  Off: "Désactivé",
234
236
  FrequencyRegulation: "Compensation",
235
237
  Droop: "Statisme",
238
+ Limits: "Limites",
239
+ MinActivePowerMustBeLessOrEqualToMaxActivePower: "La valeur de la puissance active min doit être inférieure ou égale à la valeur de la puissance active max",
236
240
  activePowerControlTooltip: "Clé de distribution de la puissance au nœud bilan : maxP/Statisme, statisme par défaut = 4 (valable pour le mode compensation proportionnel à la puissance maximale des groupes)",
237
241
  NoModification: "Pas de modification",
238
242
  ReactiveLimitsKindMinMax: "Par plage",
@@ -264,6 +268,8 @@ const networkModificationsFr = {
264
268
  SubstationTab: "Site",
265
269
  ConnectivityTab: "Connectivité",
266
270
  CharacteristicsTab: "Caractéristiques",
271
+ SetpointsAndLimitsTab: "Consignes & Limites",
272
+ SpecificTab: "Spécifique",
267
273
  StructureTab: "Structure",
268
274
  AdditionalInformationTab: "Compléments",
269
275
  StateEstimationTab: "Estimation d'état"