@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.
- package/dist/features/index.js +16 -0
- package/dist/features/network-modifications/battery/batteryDialog.type.d.ts +27 -0
- package/dist/features/network-modifications/battery/batteryDialog.type.js +1 -0
- package/dist/features/network-modifications/battery/index.d.ts +2 -0
- package/dist/features/network-modifications/battery/index.js +17 -1
- package/dist/features/network-modifications/battery/modification/BatteryDialogHeader.d.ts +6 -0
- package/dist/features/network-modifications/battery/modification/BatteryDialogHeader.js +87 -0
- package/dist/features/network-modifications/battery/modification/BatteryDialogTabs.d.ts +13 -0
- package/dist/features/network-modifications/battery/modification/BatteryDialogTabs.js +51 -0
- package/dist/features/network-modifications/battery/modification/BatteryDialogTabsContent.d.ts +8 -0
- package/dist/features/network-modifications/battery/modification/BatteryDialogTabsContent.js +177 -0
- package/dist/features/network-modifications/battery/modification/BatteryModificationForm.d.ts +6 -0
- package/dist/features/network-modifications/battery/modification/BatteryModificationForm.js +50 -0
- package/dist/features/network-modifications/battery/modification/batteryModification.types.d.ts +31 -0
- package/dist/features/network-modifications/battery/modification/batteryModification.types.js +1 -0
- package/dist/features/network-modifications/battery/modification/batteryModification.utils.d.ts +95 -0
- package/dist/features/network-modifications/battery/modification/batteryModification.utils.js +163 -0
- package/dist/features/network-modifications/battery/modification/batteryTabs.utils.d.ts +8 -0
- package/dist/features/network-modifications/battery/modification/batteryTabs.utils.js +38 -0
- package/dist/features/network-modifications/battery/modification/index.d.ts +13 -0
- package/dist/features/network-modifications/battery/modification/index.js +18 -0
- package/dist/features/network-modifications/common/measurements/BusbarSectionVoltageMeasurementsForm.js +7 -7
- package/dist/features/network-modifications/index.js +16 -0
- package/dist/features/network-modifications/voltageLevel/modification/VoltageLevelModificationForm.js +59 -59
- package/dist/index.js +16 -0
- package/dist/translations/en/networkModificationsEn.d.ts +6 -0
- package/dist/translations/en/networkModificationsEn.js +6 -0
- package/dist/translations/fr/networkModificationsFr.d.ts +6 -0
- package/dist/translations/fr/networkModificationsFr.js +6 -0
- 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 {
|
|
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(
|
|
63
|
-
fields.length === 0 && /* @__PURE__ */ jsx(
|
|
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(
|
|
74
|
-
/* @__PURE__ */ jsx(
|
|
75
|
-
/* @__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(
|
|
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,
|
|
1
|
+
import { jsxs, jsx } from "react/jsx-runtime";
|
|
2
2
|
import { useState } from "react";
|
|
3
|
-
import {
|
|
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(
|
|
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__ */
|
|
111
|
-
/* @__PURE__ */ jsx(
|
|
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(
|
|
155
|
-
/* @__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(
|
|
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(
|
|
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(
|
|
188
|
-
/* @__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(
|
|
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"
|