@gridsuite/commons-ui 0.223.0 → 0.225.0
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/components/composite/dnd-table/dnd-table.d.ts +8 -4
- package/dist/components/composite/dnd-table/dnd-table.js +100 -160
- package/dist/components/composite/dnd-table/dnd-table.type.d.ts +17 -3
- package/dist/components/composite/dnd-table/dnd-table.type.js +2 -0
- package/dist/components/composite/dnd-table/index.d.ts +6 -1
- package/dist/components/composite/dnd-table/index.js +6 -6
- package/dist/components/composite/index.js +6 -6
- package/dist/components/index.js +6 -6
- package/dist/components/ui/directoryItemSelector/DirectoryItemSelector.js +1 -1
- package/dist/components/ui/directoryItemSelector/utils.js +1 -1
- package/dist/components/ui/reactHookForm/DirectoryItemsInput.js +1 -1
- package/dist/features/index.js +16 -0
- package/dist/features/network-modifications/common/reactiveLimits/reactiveCapabilityCurve/reactiveCapability.utils.d.ts +4 -3
- package/dist/features/network-modifications/common/reactiveLimits/reactiveCapabilityCurve/reactiveCapability.utils.js +7 -30
- package/dist/features/network-modifications/common/reactiveLimits/reactiveLimits.utils.d.ts +2 -0
- package/dist/features/network-modifications/generator/generatorDialog.type.d.ts +0 -60
- package/dist/features/network-modifications/generator/index.js +17 -1
- package/dist/features/network-modifications/generator/modification/GeneratorDialogHeader.d.ts +6 -0
- package/dist/features/network-modifications/generator/modification/GeneratorDialogHeader.js +109 -0
- package/dist/features/network-modifications/generator/modification/GeneratorDialogTabs.d.ts +13 -0
- package/dist/features/network-modifications/generator/modification/GeneratorDialogTabs.js +55 -0
- package/dist/features/network-modifications/generator/modification/GeneratorDialogTabsContent.d.ts +12 -0
- package/dist/features/network-modifications/generator/modification/GeneratorDialogTabsContent.js +277 -0
- package/dist/features/network-modifications/generator/modification/GeneratorModificationForm.d.ts +10 -0
- package/dist/features/network-modifications/generator/modification/GeneratorModificationForm.js +52 -0
- package/dist/features/network-modifications/generator/modification/generatorModification.types.d.ts +3 -5
- package/dist/features/network-modifications/generator/modification/generatorModification.utils.d.ts +140 -0
- package/dist/features/network-modifications/generator/modification/generatorModification.utils.js +211 -0
- package/dist/features/network-modifications/generator/modification/generatorTabs.utils.d.ts +8 -0
- package/dist/features/network-modifications/generator/modification/generatorTabs.utils.js +56 -0
- package/dist/features/network-modifications/generator/modification/index.d.ts +6 -0
- package/dist/features/network-modifications/generator/modification/index.js +18 -1
- package/dist/features/network-modifications/index.js +16 -0
- package/dist/features/parameters/common/contingency-table/columns-definitions.d.ts +2 -2
- package/dist/features/parameters/common/contingency-table/columns-definitions.js +6 -6
- package/dist/features/parameters/common/contingency-table/contingency-table.js +1 -1
- package/dist/features/parameters/common/contingency-table/types.d.ts +6 -17
- package/dist/features/parameters/common/parameter-table-field/parameter-table-field.js +2 -2
- package/dist/features/parameters/dynamic-margin-calculation/dynamic-margin-calculation-inline.js +1 -1
- package/dist/features/parameters/dynamic-margin-calculation/loads-variations-parameters.js +1 -1
- package/dist/features/parameters/dynamic-security-analysis/dynamic-security-analysis-inline.js +1 -1
- package/dist/features/parameters/dynamic-simulation/dynamic-simulation-inline.js +1 -1
- package/dist/features/parameters/loadflow/load-flow-parameters-inline.js +1 -1
- package/dist/features/parameters/network-visualizations/network-visualizations-parameters-inline.js +1 -1
- package/dist/features/parameters/pcc-min/pcc-min-parameters-inline.js +1 -1
- package/dist/features/parameters/security-analysis/columns-definitions.d.ts +3 -3
- package/dist/features/parameters/security-analysis/columns-definitions.js +8 -8
- package/dist/features/parameters/security-analysis/security-analysis-parameters-inline.js +2 -2
- package/dist/features/parameters/security-analysis/security-analysis-parameters-selector.d.ts +1 -1
- package/dist/features/parameters/security-analysis/use-security-analysis-parameters-form.d.ts +1 -1
- package/dist/features/parameters/security-analysis/use-security-analysis-parameters-form.js +1 -1
- package/dist/features/parameters/sensi/columns-definitions.js +1 -1
- package/dist/features/parameters/sensi/constants.d.ts +0 -2
- package/dist/features/parameters/sensi/constants.js +0 -4
- package/dist/features/parameters/sensi/sensitivity-analysis-parameters-inline.js +1 -1
- package/dist/features/parameters/sensi/use-sensitivity-analysis-parameters.js +33 -32
- package/dist/features/parameters/sensi/utils.d.ts +31 -63
- package/dist/features/parameters/sensi/utils.js +49 -61
- package/dist/features/parameters/short-circuit/short-circuit-parameters-inline.js +1 -1
- package/dist/features/parameters/voltage-init/use-voltage-init-parameters-form.js +1 -1
- package/dist/features/parameters/voltage-init/voltage-init-form-utils.js +1 -1
- package/dist/features/parameters/voltage-init/voltage-init-parameters-inline.js +1 -1
- package/dist/features/parameters/voltage-init/voltage-limits-parameters.js +1 -1
- package/dist/hooks/use-unique-name-validation.js +1 -1
- package/dist/index.js +30 -11
- package/dist/services/directory.d.ts +1 -1
- package/dist/services/index.js +6 -3
- package/dist/services/pcc-min.d.ts +2 -1
- package/dist/services/pcc-min.js +27 -1
- package/dist/services/security-analysis.d.ts +2 -1
- package/dist/services/security-analysis.js +32 -1
- package/dist/services/sensitivity-analysis.d.ts +2 -1
- package/dist/services/sensitivity-analysis.js +87 -1
- package/dist/translations/en/networkModificationsEn.d.ts +2 -0
- package/dist/translations/en/networkModificationsEn.js +2 -0
- package/dist/translations/fr/networkModificationsFr.d.ts +2 -0
- package/dist/translations/fr/networkModificationsFr.js +2 -0
- package/dist/utils/constants/filterConstant.d.ts +1 -1
- package/dist/utils/index.js +4 -4
- package/dist/utils/types/dynamic-security-analysis.type.d.ts +3 -5
- package/dist/utils/types/index.d.ts +1 -0
- package/dist/utils/types/index.js +4 -4
- package/dist/utils/types/parameters.type.d.ts +1 -1
- package/dist/utils/types/pcc-min.type.d.ts +0 -1
- package/dist/utils/types/pcc-min.type.js +0 -21
- package/dist/utils/types/security-analysis.type.d.ts +26 -0
- package/dist/utils/types/security-analysis.type.js +14 -0
- package/dist/utils/types/sensitivity-analysis.type.d.ts +3 -7
- package/dist/utils/types/sensitivity-analysis.type.js +17 -103
- package/dist/utils/types/types.d.ts +7 -0
- package/package.json +1 -1
- package/dist/components/composite/dnd-table-v2/dnd-table-add-rows-dialog.d.ts +0 -13
- package/dist/components/composite/dnd-table-v2/dnd-table-add-rows-dialog.js +0 -69
- package/dist/components/composite/dnd-table-v2/dnd-table-bottom-left-buttons.d.ts +0 -17
- package/dist/components/composite/dnd-table-v2/dnd-table-bottom-left-buttons.js +0 -47
- package/dist/components/composite/dnd-table-v2/dnd-table-bottom-right-buttons.d.ts +0 -17
- package/dist/components/composite/dnd-table-v2/dnd-table-bottom-right-buttons.js +0 -100
- package/dist/components/composite/dnd-table-v2/dnd-table.d.ts +0 -32
- package/dist/components/composite/dnd-table-v2/dnd-table.js +0 -375
- package/dist/components/composite/dnd-table-v2/dnd-table.type.d.ts +0 -70
- package/dist/components/composite/dnd-table-v2/dnd-table.type.js +0 -19
- package/dist/components/composite/dnd-table-v2/index.d.ts +0 -12
- package/dist/components/composite/dnd-table-v2/index.js +0 -16
- package/dist/features/parameters/common/parameter-table/constants.d.ts +0 -11
- package/dist/features/parameters/common/parameter-table/constants.js +0 -12
- package/dist/features/parameters/common/parameter-table/parameter-table.d.ts +0 -15
- package/dist/features/parameters/common/parameter-table/parameter-table.js +0 -98
- package/dist/features/parameters/common/parameter-table/table-cell.d.ts +0 -8
- package/dist/features/parameters/common/parameter-table/table-cell.js +0 -83
- package/dist/features/parameters/common/parameter-table/table-row.d.ts +0 -11
- package/dist/features/parameters/common/parameter-table/table-row.js +0 -41
- package/dist/features/parameters/common/parameter-table/types.d.ts +0 -26
- package/dist/features/parameters/common/parameter-table/types.js +0 -1
- package/dist/features/parameters/security-analysis/types.d.ts +0 -20
- package/dist/features/parameters/security-analysis/types.js +0 -42
- /package/dist/components/composite/{dnd-table-v2 → dnd-table}/deletable-table-row.d.ts +0 -0
- /package/dist/components/composite/{dnd-table-v2 → dnd-table}/deletable-table-row.js +0 -0
- /package/dist/components/composite/{dnd-table-v2 → dnd-table}/dnd-table-row.d.ts +0 -0
- /package/dist/components/composite/{dnd-table-v2 → dnd-table}/dnd-table-row.js +0 -0
- /package/dist/components/composite/{dnd-table-v2 → dnd-table}/dnd-table-utils.d.ts +0 -0
- /package/dist/components/composite/{dnd-table-v2 → dnd-table}/dnd-table-utils.js +0 -0
package/dist/features/network-modifications/generator/modification/generatorModification.utils.js
ADDED
|
@@ -0,0 +1,211 @@
|
|
|
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/agGridTable/CustomAgGridTable.js";
|
|
54
|
+
import "ag-grid-community";
|
|
55
|
+
import "react-papaparse";
|
|
56
|
+
import "react-csv-downloader";
|
|
57
|
+
import "../../../../components/composite/customAGGrid/customAggrid.js";
|
|
58
|
+
import { getSetPointsSchema, getSetPointsEmptyFormData } from "../../common/setpoints/setPoints.utils.js";
|
|
59
|
+
import { getConnectivityWithPositionSchema, getConnectivityWithPositionEmptyFormDataProps, getConnectivityFormDataProps } from "../../common/connectivity/connectivityForm.utils.js";
|
|
60
|
+
import { getActivePowerControlSchema, getActivePowerControlEmptyFormData } from "../../common/activePowerControl/activePowerControlForm.utils.js";
|
|
61
|
+
import { getShortCircuitFormSchema, getShortCircuitEmptyFormData, getShortCircuitFormData } from "../../common/shortCircuit/shortCircuitForm.utils.js";
|
|
62
|
+
import { toReactiveCapabilityCurveChoiceForGeneratorModification } from "../../common/reactiveLimits/reactiveCapabilityCurve/reactiveCapability.utils.js";
|
|
63
|
+
import { getReactiveLimitsValidationSchema, getReactiveLimitsEmptyFormDataProps, getReactiveLimitsFormDataProps } from "../../common/reactiveLimits/reactiveLimits.utils.js";
|
|
64
|
+
import "../../common/regulatingTerminal/RegulatingTerminalForm.js";
|
|
65
|
+
import { getRegulatingTerminalEquipmentData, getRegulatingTerminalVoltageLevelData } from "../../common/regulatingTerminal/regulatingTerminal.utils.js";
|
|
66
|
+
import { getVoltageRegulationSchema, getVoltageRegulationEmptyFormData } from "../../common/voltageRegulation/voltageRegulation.utils.js";
|
|
67
|
+
const generatorModificationFormSchema = object().shape({
|
|
68
|
+
[FieldConstants.EQUIPMENT_ID]: string().required(),
|
|
69
|
+
[FieldConstants.EQUIPMENT_NAME]: string().nullable(),
|
|
70
|
+
[FieldConstants.ENERGY_SOURCE]: string().nullable(),
|
|
71
|
+
[FieldConstants.MAXIMUM_ACTIVE_POWER]: number().nullable(),
|
|
72
|
+
[FieldConstants.MINIMUM_ACTIVE_POWER]: number().nullable().when([FieldConstants.MAXIMUM_ACTIVE_POWER], {
|
|
73
|
+
is: (maximumActivePower) => maximumActivePower != null,
|
|
74
|
+
then: (schema) => schema.max(
|
|
75
|
+
ref(FieldConstants.MAXIMUM_ACTIVE_POWER),
|
|
76
|
+
"MinActivePowerMustBeLessOrEqualToMaxActivePower"
|
|
77
|
+
)
|
|
78
|
+
}),
|
|
79
|
+
[FieldConstants.RATED_NOMINAL_POWER]: number().nullable().min(0, "mustBeGreaterOrEqualToZero"),
|
|
80
|
+
...getShortCircuitFormSchema(),
|
|
81
|
+
[FieldConstants.PLANNED_ACTIVE_POWER_SET_POINT]: number().nullable(),
|
|
82
|
+
[FieldConstants.MARGINAL_COST]: number().nullable(),
|
|
83
|
+
[FieldConstants.PLANNED_OUTAGE_RATE]: number().nullable().min(0, "RealPercentage").max(1, "RealPercentage"),
|
|
84
|
+
[FieldConstants.FORCED_OUTAGE_RATE]: number().nullable().min(0, "RealPercentage").max(1, "RealPercentage"),
|
|
85
|
+
[FieldConstants.CONNECTIVITY]: getConnectivityWithPositionSchema(true),
|
|
86
|
+
[FieldConstants.REACTIVE_LIMITS]: getReactiveLimitsValidationSchema(true),
|
|
87
|
+
...getSetPointsSchema(true),
|
|
88
|
+
...getVoltageRegulationSchema(true),
|
|
89
|
+
...getActivePowerControlSchema(true),
|
|
90
|
+
[FieldConstants.STATE_ESTIMATION]: getInjectionActiveReactivePowerValidationSchemaProperties()
|
|
91
|
+
}).concat(modificationPropertiesSchema).required();
|
|
92
|
+
const generatorModificationEmptyFormData = {
|
|
93
|
+
equipmentID: "",
|
|
94
|
+
equipmentName: "",
|
|
95
|
+
energySource: null,
|
|
96
|
+
maximumActivePower: null,
|
|
97
|
+
minimumActivePower: null,
|
|
98
|
+
ratedNominalPower: null,
|
|
99
|
+
plannedActivePowerSetPoint: null,
|
|
100
|
+
marginalCost: null,
|
|
101
|
+
plannedOutageRate: null,
|
|
102
|
+
forcedOutageRate: null,
|
|
103
|
+
connectivity: getConnectivityWithPositionEmptyFormDataProps(true),
|
|
104
|
+
...getShortCircuitEmptyFormData(),
|
|
105
|
+
...getSetPointsEmptyFormData(true),
|
|
106
|
+
...getActivePowerControlEmptyFormData(true),
|
|
107
|
+
...getVoltageRegulationEmptyFormData(true),
|
|
108
|
+
reactiveLimits: getReactiveLimitsEmptyFormDataProps(),
|
|
109
|
+
stateEstimation: getInjectionActiveReactivePowerEmptyFormDataProperties(),
|
|
110
|
+
AdditionalProperties: []
|
|
111
|
+
};
|
|
112
|
+
const generatorModificationDtoToForm = (dto, includePreviousValues = true) => {
|
|
113
|
+
return {
|
|
114
|
+
equipmentID: dto?.equipmentId,
|
|
115
|
+
equipmentName: dto?.equipmentName?.value ?? "",
|
|
116
|
+
energySource: dto?.energySource?.value ?? null,
|
|
117
|
+
maximumActivePower: dto?.maxP?.value ?? null,
|
|
118
|
+
minimumActivePower: dto?.minP?.value ?? null,
|
|
119
|
+
ratedNominalPower: dto?.ratedS?.value ?? null,
|
|
120
|
+
activePowerSetpoint: dto?.targetP?.value ?? void 0,
|
|
121
|
+
voltageRegulation: dto?.voltageRegulationOn?.value ?? null,
|
|
122
|
+
voltageSetpoint: dto?.targetV?.value ?? null,
|
|
123
|
+
reactivePowerSetpoint: dto?.targetQ?.value ?? null,
|
|
124
|
+
plannedActivePowerSetPoint: dto?.plannedActivePowerSetPoint?.value ?? null,
|
|
125
|
+
marginalCost: dto?.marginalCost?.value ?? null,
|
|
126
|
+
plannedOutageRate: dto?.plannedOutageRate?.value ?? null,
|
|
127
|
+
forcedOutageRate: dto?.forcedOutageRate?.value ?? null,
|
|
128
|
+
frequencyRegulation: dto?.participate?.value ?? null,
|
|
129
|
+
droop: dto?.droop?.value ?? null,
|
|
130
|
+
...getShortCircuitFormData({
|
|
131
|
+
directTransX: dto?.directTransX?.value ?? null,
|
|
132
|
+
stepUpTransformerX: dto?.stepUpTransformerX?.value ?? null
|
|
133
|
+
}),
|
|
134
|
+
voltageRegulationType: dto?.voltageRegulationType?.value ?? null,
|
|
135
|
+
qPercent: dto?.qPercent?.value ?? null,
|
|
136
|
+
connectivity: getConnectivityFormDataProps({
|
|
137
|
+
voltageLevelId: dto?.voltageLevelId?.value ?? null,
|
|
138
|
+
busbarSectionId: dto?.busOrBusbarSectionId?.value ?? null,
|
|
139
|
+
connectionName: dto?.connectionName?.value ?? "",
|
|
140
|
+
connectionDirection: dto?.connectionDirection?.value ?? null,
|
|
141
|
+
connectionPosition: dto?.connectionPosition?.value ?? null,
|
|
142
|
+
terminalConnected: dto?.terminalConnected?.value ?? null,
|
|
143
|
+
isEquipmentModification: true
|
|
144
|
+
}),
|
|
145
|
+
reactiveLimits: getReactiveLimitsFormDataProps({
|
|
146
|
+
reactiveCapabilityCurveChoice: dto?.reactiveCapabilityCurve?.value ? "CURVE" : "MINMAX",
|
|
147
|
+
minimumReactivePower: dto?.minQ?.value ?? null,
|
|
148
|
+
maximumReactivePower: dto?.maxQ?.value ?? null,
|
|
149
|
+
reactiveCapabilityCurvePoints: dto?.reactiveCapabilityCurvePoints ?? null
|
|
150
|
+
}),
|
|
151
|
+
voltageLevel: getRegulatingTerminalVoltageLevelData({
|
|
152
|
+
voltageLevelId: dto.regulatingTerminalVlId?.value
|
|
153
|
+
}),
|
|
154
|
+
equipment: getRegulatingTerminalEquipmentData({
|
|
155
|
+
equipmentId: dto.regulatingTerminalId?.value,
|
|
156
|
+
equipmentType: dto.regulatingTerminalType?.value
|
|
157
|
+
}),
|
|
158
|
+
stateEstimation: getInjectionActiveReactivePowerEditDataProperties(dto),
|
|
159
|
+
...getPropertiesFromModification(dto?.properties, includePreviousValues)
|
|
160
|
+
};
|
|
161
|
+
};
|
|
162
|
+
const generatorModificationFormToDto = (form, dto, equipment) => {
|
|
163
|
+
const isReactiveCapabilityCurveOn = toReactiveCapabilityCurveChoiceForGeneratorModification(form, equipment, dto) === "CURVE";
|
|
164
|
+
return {
|
|
165
|
+
type: ModificationType.GENERATOR_MODIFICATION,
|
|
166
|
+
equipmentId: form.equipmentID,
|
|
167
|
+
equipmentName: toModificationOperation(sanitizeString(form.equipmentName)),
|
|
168
|
+
energySource: toModificationOperation(form.energySource),
|
|
169
|
+
minP: toModificationOperation(form.minimumActivePower),
|
|
170
|
+
maxP: toModificationOperation(form.maximumActivePower),
|
|
171
|
+
ratedS: toModificationOperation(form.ratedNominalPower),
|
|
172
|
+
targetP: toModificationOperation(form.activePowerSetpoint),
|
|
173
|
+
targetQ: toModificationOperation(form.reactivePowerSetpoint),
|
|
174
|
+
voltageRegulationOn: toModificationOperation(form.voltageRegulation),
|
|
175
|
+
targetV: toModificationOperation(form.voltageSetpoint),
|
|
176
|
+
voltageLevelId: toModificationOperation(form.connectivity?.voltageLevel?.id),
|
|
177
|
+
busOrBusbarSectionId: toModificationOperation(form.connectivity?.busOrBusbarSection?.id),
|
|
178
|
+
connectionDirection: toModificationOperation(form.connectivity?.connectionDirection),
|
|
179
|
+
connectionName: toModificationOperation(sanitizeString(form.connectivity?.connectionName)),
|
|
180
|
+
connectionPosition: toModificationOperation(form.connectivity?.connectionPosition),
|
|
181
|
+
terminalConnected: toModificationOperation(form.connectivity?.terminalConnected),
|
|
182
|
+
qPercent: toModificationOperation(form.qPercent),
|
|
183
|
+
plannedActivePowerSetPoint: toModificationOperation(form.plannedActivePowerSetPoint),
|
|
184
|
+
marginalCost: toModificationOperation(form.marginalCost),
|
|
185
|
+
plannedOutageRate: toModificationOperation(form.plannedOutageRate),
|
|
186
|
+
forcedOutageRate: toModificationOperation(form.forcedOutageRate),
|
|
187
|
+
directTransX: toModificationOperation(form.directTransX),
|
|
188
|
+
stepUpTransformerX: toModificationOperation(form.transformerReactance),
|
|
189
|
+
voltageRegulationType: toModificationOperation(form.voltageRegulationType),
|
|
190
|
+
regulatingTerminalId: toModificationOperation(form.equipment?.id),
|
|
191
|
+
regulatingTerminalType: toModificationOperation(form.equipment?.type),
|
|
192
|
+
regulatingTerminalVlId: toModificationOperation(form.voltageLevel?.id),
|
|
193
|
+
reactiveCapabilityCurve: toModificationOperation(isReactiveCapabilityCurveOn),
|
|
194
|
+
participate: toModificationOperation(form.frequencyRegulation),
|
|
195
|
+
droop: toModificationOperation(form.droop) ?? null,
|
|
196
|
+
minQ: toModificationOperation(isReactiveCapabilityCurveOn ? null : form.reactiveLimits?.minimumReactivePower),
|
|
197
|
+
maxQ: toModificationOperation(isReactiveCapabilityCurveOn ? null : form.reactiveLimits?.maximumReactivePower),
|
|
198
|
+
reactiveCapabilityCurvePoints: isReactiveCapabilityCurveOn ? form.reactiveLimits.reactiveCapabilityCurveTable ?? null : null,
|
|
199
|
+
pMeasurementValue: toModificationOperation(form.stateEstimation?.measurementP?.value),
|
|
200
|
+
pMeasurementValidity: toModificationOperation(form.stateEstimation?.measurementP?.validity),
|
|
201
|
+
qMeasurementValue: toModificationOperation(form.stateEstimation?.measurementQ?.value),
|
|
202
|
+
qMeasurementValidity: toModificationOperation(form.stateEstimation?.measurementQ?.validity),
|
|
203
|
+
properties: toModificationProperties(form) ?? null
|
|
204
|
+
};
|
|
205
|
+
};
|
|
206
|
+
export {
|
|
207
|
+
generatorModificationDtoToForm,
|
|
208
|
+
generatorModificationEmptyFormData,
|
|
209
|
+
generatorModificationFormSchema,
|
|
210
|
+
generatorModificationFormToDto
|
|
211
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { FieldConstants } from '../../../../utils';
|
|
2
|
+
export declare enum GeneratorDialogTab {
|
|
3
|
+
CONNECTIVITY_TAB = 0,
|
|
4
|
+
SETPOINTS_AND_LIMITS_TAB = 1,
|
|
5
|
+
SPECIFIC_TAB = 2,
|
|
6
|
+
ADDITIONAL_INFORMATION_TAB = 3
|
|
7
|
+
}
|
|
8
|
+
export declare const GENERATOR_TAB_FIELDS: Readonly<Partial<Record<GeneratorDialogTab, FieldConstants[]>>>;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { FieldConstants } from "../../../../utils/constants/fieldConstants.js";
|
|
2
|
+
import "../../../../utils/conversionUtils.js";
|
|
3
|
+
import "../../../../utils/types/equipmentType.js";
|
|
4
|
+
import "react/jsx-runtime";
|
|
5
|
+
import "@mui/icons-material";
|
|
6
|
+
var GeneratorDialogTab = /* @__PURE__ */ ((GeneratorDialogTab2) => {
|
|
7
|
+
GeneratorDialogTab2[GeneratorDialogTab2["CONNECTIVITY_TAB"] = 0] = "CONNECTIVITY_TAB";
|
|
8
|
+
GeneratorDialogTab2[GeneratorDialogTab2["SETPOINTS_AND_LIMITS_TAB"] = 1] = "SETPOINTS_AND_LIMITS_TAB";
|
|
9
|
+
GeneratorDialogTab2[GeneratorDialogTab2["SPECIFIC_TAB"] = 2] = "SPECIFIC_TAB";
|
|
10
|
+
GeneratorDialogTab2[GeneratorDialogTab2["ADDITIONAL_INFORMATION_TAB"] = 3] = "ADDITIONAL_INFORMATION_TAB";
|
|
11
|
+
return GeneratorDialogTab2;
|
|
12
|
+
})(GeneratorDialogTab || {});
|
|
13
|
+
const GENERATOR_TAB_FIELDS = {
|
|
14
|
+
[
|
|
15
|
+
0
|
|
16
|
+
/* CONNECTIVITY_TAB */
|
|
17
|
+
]: [FieldConstants.CONNECTIVITY],
|
|
18
|
+
[
|
|
19
|
+
1
|
|
20
|
+
/* SETPOINTS_AND_LIMITS_TAB */
|
|
21
|
+
]: [
|
|
22
|
+
// setpoints
|
|
23
|
+
FieldConstants.ACTIVE_POWER_SET_POINT,
|
|
24
|
+
FieldConstants.REACTIVE_POWER_SET_POINT,
|
|
25
|
+
FieldConstants.VOLTAGE_REGULATION,
|
|
26
|
+
FieldConstants.VOLTAGE_SET_POINT,
|
|
27
|
+
FieldConstants.VOLTAGE_REGULATION_TYPE,
|
|
28
|
+
FieldConstants.Q_PERCENT,
|
|
29
|
+
FieldConstants.FREQUENCY_REGULATION,
|
|
30
|
+
FieldConstants.DROOP,
|
|
31
|
+
// limits
|
|
32
|
+
FieldConstants.MINIMUM_ACTIVE_POWER,
|
|
33
|
+
FieldConstants.MAXIMUM_ACTIVE_POWER,
|
|
34
|
+
FieldConstants.RATED_NOMINAL_POWER,
|
|
35
|
+
FieldConstants.REACTIVE_LIMITS
|
|
36
|
+
],
|
|
37
|
+
[
|
|
38
|
+
2
|
|
39
|
+
/* SPECIFIC_TAB */
|
|
40
|
+
]: [
|
|
41
|
+
FieldConstants.TRANSIENT_REACTANCE,
|
|
42
|
+
FieldConstants.TRANSFORMER_REACTANCE,
|
|
43
|
+
FieldConstants.PLANNED_ACTIVE_POWER_SET_POINT,
|
|
44
|
+
FieldConstants.MARGINAL_COST,
|
|
45
|
+
FieldConstants.PLANNED_OUTAGE_RATE,
|
|
46
|
+
FieldConstants.FORCED_OUTAGE_RATE
|
|
47
|
+
],
|
|
48
|
+
[
|
|
49
|
+
3
|
|
50
|
+
/* ADDITIONAL_INFORMATION_TAB */
|
|
51
|
+
]: [FieldConstants.ADDITIONAL_PROPERTIES]
|
|
52
|
+
};
|
|
53
|
+
export {
|
|
54
|
+
GENERATOR_TAB_FIELDS,
|
|
55
|
+
GeneratorDialogTab
|
|
56
|
+
};
|
|
@@ -5,3 +5,9 @@
|
|
|
5
5
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
6
6
|
*/
|
|
7
7
|
export * from './generatorModification.types';
|
|
8
|
+
export * from './generatorModification.utils';
|
|
9
|
+
export * from './generatorTabs.utils';
|
|
10
|
+
export * from './GeneratorDialogHeader';
|
|
11
|
+
export * from './GeneratorDialogTabs';
|
|
12
|
+
export * from './GeneratorDialogTabsContent';
|
|
13
|
+
export * from './GeneratorModificationForm';
|
|
@@ -1 +1,18 @@
|
|
|
1
|
-
|
|
1
|
+
import { generatorModificationDtoToForm, generatorModificationEmptyFormData, generatorModificationFormSchema, generatorModificationFormToDto } from "./generatorModification.utils.js";
|
|
2
|
+
import { GENERATOR_TAB_FIELDS, GeneratorDialogTab } from "./generatorTabs.utils.js";
|
|
3
|
+
import { GeneratorDialogHeader } from "./GeneratorDialogHeader.js";
|
|
4
|
+
import { GeneratorDialogTabs } from "./GeneratorDialogTabs.js";
|
|
5
|
+
import { GeneratorDialogTabsContent } from "./GeneratorDialogTabsContent.js";
|
|
6
|
+
import { GeneratorModificationForm } from "./GeneratorModificationForm.js";
|
|
7
|
+
export {
|
|
8
|
+
GENERATOR_TAB_FIELDS,
|
|
9
|
+
GeneratorDialogHeader,
|
|
10
|
+
GeneratorDialogTab,
|
|
11
|
+
GeneratorDialogTabs,
|
|
12
|
+
GeneratorDialogTabsContent,
|
|
13
|
+
GeneratorModificationForm,
|
|
14
|
+
generatorModificationDtoToForm,
|
|
15
|
+
generatorModificationEmptyFormData,
|
|
16
|
+
generatorModificationFormSchema,
|
|
17
|
+
generatorModificationFormToDto
|
|
18
|
+
};
|
|
@@ -89,6 +89,12 @@ import { emptyModificationByAssignmentFormData, modificationByAssignmentDtoToFor
|
|
|
89
89
|
import { DataType } from "./by-filter/assignment/assignment/assignment.type.js";
|
|
90
90
|
import { generatorCreationDtoToForm, generatorCreationEmptyFormData, generatorCreationFormSchema, generatorCreationFormToDto } from "./generator/creation/generatorCreation.utils.js";
|
|
91
91
|
import { GeneratorCreationForm } from "./generator/creation/GeneratorCreationForm.js";
|
|
92
|
+
import { generatorModificationDtoToForm, generatorModificationEmptyFormData, generatorModificationFormSchema, generatorModificationFormToDto } from "./generator/modification/generatorModification.utils.js";
|
|
93
|
+
import { GENERATOR_TAB_FIELDS, GeneratorDialogTab } from "./generator/modification/generatorTabs.utils.js";
|
|
94
|
+
import { GeneratorDialogHeader } from "./generator/modification/GeneratorDialogHeader.js";
|
|
95
|
+
import { GeneratorDialogTabs } from "./generator/modification/GeneratorDialogTabs.js";
|
|
96
|
+
import { GeneratorDialogTabsContent } from "./generator/modification/GeneratorDialogTabsContent.js";
|
|
97
|
+
import { GeneratorModificationForm } from "./generator/modification/GeneratorModificationForm.js";
|
|
92
98
|
import { batteryCreationDtoToForm, batteryCreationEmptyFormData, batteryCreationFormSchema, batteryCreationFormToDto } from "./battery/creation/batteryCreation.utils.js";
|
|
93
99
|
import { BatteryCreationForm } from "./battery/creation/BatteryCreationForm.js";
|
|
94
100
|
import { batteryModificationDtoToForm, batteryModificationEmptyFormData, batteryModificationFormSchema, batteryModificationFormToDto } from "./battery/modification/batteryModification.utils.js";
|
|
@@ -123,7 +129,13 @@ export {
|
|
|
123
129
|
ConnectivityForm,
|
|
124
130
|
EQUIPMENT_TYPE_ORDER,
|
|
125
131
|
EquipmentDeletionForm,
|
|
132
|
+
GENERATOR_TAB_FIELDS,
|
|
126
133
|
GeneratorCreationForm,
|
|
134
|
+
GeneratorDialogHeader,
|
|
135
|
+
GeneratorDialogTab,
|
|
136
|
+
GeneratorDialogTabs,
|
|
137
|
+
GeneratorDialogTabsContent,
|
|
138
|
+
GeneratorModificationForm,
|
|
127
139
|
HvdcLccDeletionSpecificForm,
|
|
128
140
|
INSERT,
|
|
129
141
|
LOAD_TAB_FIELDS,
|
|
@@ -190,6 +202,10 @@ export {
|
|
|
190
202
|
generatorCreationEmptyFormData,
|
|
191
203
|
generatorCreationFormSchema,
|
|
192
204
|
generatorCreationFormToDto,
|
|
205
|
+
generatorModificationDtoToForm,
|
|
206
|
+
generatorModificationEmptyFormData,
|
|
207
|
+
generatorModificationFormSchema,
|
|
208
|
+
generatorModificationFormToDto,
|
|
193
209
|
getActivePowerControlEmptyFormData,
|
|
194
210
|
getActivePowerControlSchema,
|
|
195
211
|
getActivePowerSetPointSchema,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { FieldValues } from 'react-hook-form';
|
|
2
|
-
import { ContingencyListsInfosEnriched } from '
|
|
2
|
+
import { ContingencyListsInfosEnriched } from '../../../../utils';
|
|
3
3
|
import { DndColumn } from '../../../../components/composite/dnd-table';
|
|
4
4
|
import * as yup from 'yup';
|
|
5
5
|
export declare const COLUMNS_DEFINITIONS_CONTINGENCY_LISTS_INFOS: DndColumn[];
|
|
@@ -18,8 +18,8 @@ export declare const getContingencyListsInfosFormSchema: () => yup.ObjectSchema<
|
|
|
18
18
|
export declare const toFormValuesContingencyListsInfos: (contingencyListsInfos: ContingencyListsInfosEnriched[]) => {
|
|
19
19
|
contingencyListsInfos: {
|
|
20
20
|
contingencyLists: {
|
|
21
|
-
name: string;
|
|
22
21
|
id: `${string}-${string}-${string}-${string}-${string}`;
|
|
22
|
+
name: string | undefined;
|
|
23
23
|
}[];
|
|
24
24
|
description: string;
|
|
25
25
|
activated: boolean;
|
|
@@ -9,7 +9,7 @@ import "@mui/icons-material";
|
|
|
9
9
|
import "react";
|
|
10
10
|
import "react-dom";
|
|
11
11
|
import "@hello-pangea/dnd";
|
|
12
|
-
import { DndColumnType } from "../../../../components/composite/dnd-table
|
|
12
|
+
import { DndColumnType } from "../../../../components/composite/dnd-table/dnd-table.type.js";
|
|
13
13
|
import "../../../../components/ui/overflowableText/OverflowableText.js";
|
|
14
14
|
import { YUP_REQUIRED } from "../../../../utils/constants/translationKeys.js";
|
|
15
15
|
import "../../../../utils/conversionUtils.js";
|
|
@@ -85,12 +85,12 @@ const toFormValuesContingencyListsInfos = (contingencyListsInfos) => {
|
|
|
85
85
|
return {
|
|
86
86
|
[CONTINGENCY_LISTS_INFOS]: contingencyListsInfos?.map(
|
|
87
87
|
(contingencyListInfos) => ({
|
|
88
|
-
[CONTINGENCY_LISTS]: contingencyListInfos
|
|
89
|
-
[
|
|
90
|
-
[
|
|
88
|
+
[CONTINGENCY_LISTS]: contingencyListInfos.contingencyLists?.map((c) => ({
|
|
89
|
+
[ID]: c[ID],
|
|
90
|
+
[NAME]: c[NAME]
|
|
91
91
|
})),
|
|
92
|
-
[DESCRIPTION]: contingencyListInfos
|
|
93
|
-
[ACTIVATED]: contingencyListInfos
|
|
92
|
+
[DESCRIPTION]: contingencyListInfos.description,
|
|
93
|
+
[ACTIVATED]: contingencyListInfos.activated
|
|
94
94
|
})
|
|
95
95
|
)
|
|
96
96
|
};
|
|
@@ -9,8 +9,8 @@ import { COLUMNS_DEFINITIONS_CONTINGENCY_LISTS_INFOS, isValidContingencyRow } fr
|
|
|
9
9
|
import "../../../../utils/conversionUtils.js";
|
|
10
10
|
import { snackWithFallback } from "../../../../utils/error.js";
|
|
11
11
|
import "../../../../utils/types/equipmentType.js";
|
|
12
|
-
import { DEFAULT_TIMEOUT_MS, IGNORE_SIGNAL } from "../../../../services/utils.js";
|
|
13
12
|
import "@mui/icons-material";
|
|
13
|
+
import { DEFAULT_TIMEOUT_MS, IGNORE_SIGNAL } from "../../../../services/utils.js";
|
|
14
14
|
import "localized-countries";
|
|
15
15
|
import "localized-countries/data/fr";
|
|
16
16
|
import "localized-countries/data/en";
|
|
@@ -1,20 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
}
|
|
8
|
-
export interface ContingencyListsInfosEnriched {
|
|
9
|
-
[CONTINGENCY_LISTS]: IdName[];
|
|
10
|
-
[DESCRIPTION]: string;
|
|
11
|
-
[ACTIVATED]: boolean;
|
|
12
|
-
}
|
|
13
|
-
export interface ContingencyListsInfos {
|
|
14
|
-
[CONTINGENCY_LISTS]: UUID[];
|
|
15
|
-
[DESCRIPTION]: string;
|
|
16
|
-
[ACTIVATED]: boolean;
|
|
17
|
-
}
|
|
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
|
+
*/
|
|
18
7
|
export interface ContingencyCount {
|
|
19
8
|
contingencies: number;
|
|
20
9
|
notFoundElements: number;
|
|
@@ -5,8 +5,8 @@ import { useFieldArray, useFormContext } from "react-hook-form";
|
|
|
5
5
|
import { Info } from "@mui/icons-material";
|
|
6
6
|
import { useRef, useMemo, useCallback } from "react";
|
|
7
7
|
import { CustomTooltip } from "../../../../components/ui/tooltip/CustomTooltip.js";
|
|
8
|
-
import { DndTable } from "../../../../components/composite/dnd-table
|
|
9
|
-
import { getDefaultRowData } from "../../../../components/composite/dnd-table
|
|
8
|
+
import { DndTable } from "../../../../components/composite/dnd-table/dnd-table.js";
|
|
9
|
+
import { getDefaultRowData } from "../../../../components/composite/dnd-table/dnd-table-utils.js";
|
|
10
10
|
import "../../../../components/ui/overflowableText/OverflowableText.js";
|
|
11
11
|
import "../../../../utils/conversionUtils.js";
|
|
12
12
|
import "../../../../utils/types/equipmentType.js";
|
package/dist/features/parameters/dynamic-margin-calculation/dynamic-margin-calculation-inline.js
CHANGED
|
@@ -98,7 +98,7 @@ function DynamicMarginCalculationInline({
|
|
|
98
98
|
[reset, snackError]
|
|
99
99
|
);
|
|
100
100
|
useEffect(() => {
|
|
101
|
-
setHaveDirtyFields(
|
|
101
|
+
setHaveDirtyFields(formState.isDirty);
|
|
102
102
|
}, [formState, setHaveDirtyFields]);
|
|
103
103
|
const renderActions = (onSubmitError) => {
|
|
104
104
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
@@ -37,7 +37,7 @@ import "mui-nested-menu";
|
|
|
37
37
|
import "react-resizable-panels";
|
|
38
38
|
import { ParameterTableField } from "../common/parameter-table-field/parameter-table-field.js";
|
|
39
39
|
import "react-dom";
|
|
40
|
-
import { DndColumnType } from "../../../components/composite/dnd-table
|
|
40
|
+
import { DndColumnType } from "../../../components/composite/dnd-table/dnd-table.type.js";
|
|
41
41
|
const formSchema = yup.object().shape({
|
|
42
42
|
[CALCULATION_TYPE]: yup.string().required(),
|
|
43
43
|
[ACCURACY]: yup.number().required(),
|
package/dist/features/parameters/dynamic-security-analysis/dynamic-security-analysis-inline.js
CHANGED
|
@@ -75,7 +75,7 @@ function DynamicSecurityAnalysisInline({
|
|
|
75
75
|
[updateParameters]
|
|
76
76
|
);
|
|
77
77
|
useEffect(() => {
|
|
78
|
-
setHaveDirtyFields(
|
|
78
|
+
setHaveDirtyFields(formState.isDirty);
|
|
79
79
|
}, [formState, setHaveDirtyFields]);
|
|
80
80
|
const renderActions = (onSubmitError) => {
|
|
81
81
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
@@ -104,7 +104,7 @@ function DynamicSimulationInline({
|
|
|
104
104
|
[reset, setDefaultParams, snackError]
|
|
105
105
|
);
|
|
106
106
|
useEffect(() => {
|
|
107
|
-
setHaveDirtyFields(
|
|
107
|
+
setHaveDirtyFields(formState.isDirty);
|
|
108
108
|
}, [formState, setHaveDirtyFields]);
|
|
109
109
|
const renderActions = (onSubmitError) => {
|
|
110
110
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
@@ -90,7 +90,7 @@ function LoadFlowParametersInline({
|
|
|
90
90
|
[loadflowMethods, reset, snackError]
|
|
91
91
|
);
|
|
92
92
|
useEffect(() => {
|
|
93
|
-
setHaveDirtyFields(
|
|
93
|
+
setHaveDirtyFields(formState.isDirty);
|
|
94
94
|
}, [formState, setHaveDirtyFields]);
|
|
95
95
|
return /* @__PURE__ */ jsx(LoadFlowProvider, { children: /* @__PURE__ */ jsx(
|
|
96
96
|
LoadFlowParametersForm,
|
package/dist/features/parameters/network-visualizations/network-visualizations-parameters-inline.js
CHANGED
|
@@ -77,7 +77,7 @@ function NetworkVisualizationParametersInline({
|
|
|
77
77
|
[reset, snackError]
|
|
78
78
|
);
|
|
79
79
|
useEffect(() => {
|
|
80
|
-
setHaveDirtyFields(
|
|
80
|
+
setHaveDirtyFields(formState.isDirty);
|
|
81
81
|
}, [formState, setHaveDirtyFields]);
|
|
82
82
|
return /* @__PURE__ */ jsx(
|
|
83
83
|
NetworkVisualizationParametersForm,
|
|
@@ -79,7 +79,7 @@ function PccMinParametersInLine({
|
|
|
79
79
|
setOpenResetConfirmation(false);
|
|
80
80
|
}, []);
|
|
81
81
|
useEffect(() => {
|
|
82
|
-
setHaveDirtyFields(
|
|
82
|
+
setHaveDirtyFields(formState.isDirty);
|
|
83
83
|
}, [formState, setHaveDirtyFields]);
|
|
84
84
|
const handleLoadParameters = useCallback(
|
|
85
85
|
(newParams) => {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ILimitReductionsByVoltageLevel } from '../common';
|
|
2
|
-
import { SAParametersEnriched } from '
|
|
2
|
+
import { SAParametersEnriched } from '../../../utils';
|
|
3
3
|
/**
|
|
4
4
|
* Copyright (c) 2026, RTE (http://www.rte-france.com)
|
|
5
5
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
|
@@ -40,8 +40,8 @@ export declare const toFormValueSaParameters: (params: SAParametersEnriched) =>
|
|
|
40
40
|
limitReductionsForm?: undefined;
|
|
41
41
|
contingencyListsInfos: {
|
|
42
42
|
contingencyLists: {
|
|
43
|
-
name: string;
|
|
44
43
|
id: `${string}-${string}-${string}-${string}-${string}`;
|
|
44
|
+
name: string | undefined;
|
|
45
45
|
}[];
|
|
46
46
|
description: string;
|
|
47
47
|
activated: boolean;
|
|
@@ -59,8 +59,8 @@ export declare const toFormValueSaParameters: (params: SAParametersEnriched) =>
|
|
|
59
59
|
}[];
|
|
60
60
|
contingencyListsInfos: {
|
|
61
61
|
contingencyLists: {
|
|
62
|
-
name: string;
|
|
63
62
|
id: `${string}-${string}-${string}-${string}-${string}`;
|
|
63
|
+
name: string | undefined;
|
|
64
64
|
}[];
|
|
65
65
|
description: string;
|
|
66
66
|
activated: boolean;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as yup from "yup";
|
|
2
|
-
import { PARAM_SA_PROVIDER, PARAM_SA_HIGH_VOLTAGE_ABSOLUTE_THRESHOLD, PARAM_SA_HIGH_VOLTAGE_PROPORTIONAL_THRESHOLD, PARAM_SA_LOW_VOLTAGE_ABSOLUTE_THRESHOLD, PARAM_SA_LOW_VOLTAGE_PROPORTIONAL_THRESHOLD, PARAM_SA_FLOW_PROPORTIONAL_THRESHOLD
|
|
2
|
+
import { PARAM_SA_PROVIDER, PARAM_SA_HIGH_VOLTAGE_ABSOLUTE_THRESHOLD, PARAM_SA_HIGH_VOLTAGE_PROPORTIONAL_THRESHOLD, PARAM_SA_LOW_VOLTAGE_ABSOLUTE_THRESHOLD, PARAM_SA_LOW_VOLTAGE_PROPORTIONAL_THRESHOLD, PARAM_SA_FLOW_PROPORTIONAL_THRESHOLD } from "../common/constants.js";
|
|
3
3
|
import "react/jsx-runtime";
|
|
4
4
|
import "@mui/material";
|
|
5
5
|
import "react-intl";
|
|
@@ -58,15 +58,15 @@ const getSAParametersFormSchema = (name, limitReductions) => {
|
|
|
58
58
|
}).concat(getNameElementEditorSchema(name));
|
|
59
59
|
};
|
|
60
60
|
const toFormValueSaParameters = (params) => ({
|
|
61
|
-
[PARAM_SA_PROVIDER]: params
|
|
62
|
-
...toFormValuesContingencyListsInfos(params?.
|
|
61
|
+
[PARAM_SA_PROVIDER]: params.provider,
|
|
62
|
+
...toFormValuesContingencyListsInfos(params?.contingencyListsInfos ?? []),
|
|
63
63
|
...toFormValuesLimitReductions(params?.limitReductions),
|
|
64
64
|
// SA specific form values
|
|
65
|
-
[PARAM_SA_FLOW_PROPORTIONAL_THRESHOLD]: params
|
|
66
|
-
[PARAM_SA_LOW_VOLTAGE_PROPORTIONAL_THRESHOLD]: params
|
|
67
|
-
[PARAM_SA_LOW_VOLTAGE_ABSOLUTE_THRESHOLD]: params
|
|
68
|
-
[PARAM_SA_HIGH_VOLTAGE_PROPORTIONAL_THRESHOLD]: params
|
|
69
|
-
[PARAM_SA_HIGH_VOLTAGE_ABSOLUTE_THRESHOLD]: params
|
|
65
|
+
[PARAM_SA_FLOW_PROPORTIONAL_THRESHOLD]: params.flowProportionalThreshold * 100,
|
|
66
|
+
[PARAM_SA_LOW_VOLTAGE_PROPORTIONAL_THRESHOLD]: params.lowVoltageProportionalThreshold * 100,
|
|
67
|
+
[PARAM_SA_LOW_VOLTAGE_ABSOLUTE_THRESHOLD]: params.lowVoltageAbsoluteThreshold,
|
|
68
|
+
[PARAM_SA_HIGH_VOLTAGE_PROPORTIONAL_THRESHOLD]: params.highVoltageProportionalThreshold * 100,
|
|
69
|
+
[PARAM_SA_HIGH_VOLTAGE_ABSOLUTE_THRESHOLD]: params.highVoltageAbsoluteThreshold
|
|
70
70
|
});
|
|
71
71
|
export {
|
|
72
72
|
getSAParametersFormSchema,
|
|
@@ -6,6 +6,7 @@ import "../../../utils/conversionUtils.js";
|
|
|
6
6
|
import { snackWithFallback } from "../../../utils/error.js";
|
|
7
7
|
import { ElementType } from "../../../utils/types/elementType.js";
|
|
8
8
|
import "../../../utils/types/equipmentType.js";
|
|
9
|
+
import { mapSecurityAnalysisParameters } from "../../../utils/types/security-analysis.type.js";
|
|
9
10
|
import "@mui/icons-material";
|
|
10
11
|
import { mergeSx } from "../../../utils/styles.js";
|
|
11
12
|
import { LineSeparator } from "../common/line-separator.js";
|
|
@@ -46,7 +47,6 @@ import "@hookform/resolvers/yup";
|
|
|
46
47
|
import "../../../components/composite/filter/HeaderFilterForm.js";
|
|
47
48
|
import { useSecurityAnalysisParametersForm } from "./use-security-analysis-parameters-form.js";
|
|
48
49
|
import { SecurityAnalysisParametersForm } from "./security-analysis-parameters-form.js";
|
|
49
|
-
import { mapSecurityAnalysisParameters } from "./types.js";
|
|
50
50
|
import { toFormValueSaParameters } from "./columns-definitions.js";
|
|
51
51
|
function SecurityAnalysisParametersInline({
|
|
52
52
|
studyUuid,
|
|
@@ -95,7 +95,7 @@ function SecurityAnalysisParametersInline({
|
|
|
95
95
|
[reset, snackError]
|
|
96
96
|
);
|
|
97
97
|
useEffect(() => {
|
|
98
|
-
setHaveDirtyFields(
|
|
98
|
+
setHaveDirtyFields(formState.isDirty);
|
|
99
99
|
}, [formState, setHaveDirtyFields]);
|
|
100
100
|
return /* @__PURE__ */ jsx(
|
|
101
101
|
SecurityAnalysisParametersForm,
|
package/dist/features/parameters/security-analysis/security-analysis-parameters-selector.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ILimitReductionsByVoltageLevel } from '../common';
|
|
2
|
-
import { SAParametersEnriched } from '
|
|
2
|
+
import { SAParametersEnriched } from '../../../utils/types';
|
|
3
3
|
export declare function SecurityAnalysisParametersSelector({ params, currentProvider, isDeveloperMode, defaultLimitReductions, }: Readonly<{
|
|
4
4
|
params: SAParametersEnriched | null;
|
|
5
5
|
currentProvider?: string;
|
package/dist/features/parameters/security-analysis/use-security-analysis-parameters-form.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import { ObjectSchema } from 'yup';
|
|
|
3
3
|
import { UUID } from 'node:crypto';
|
|
4
4
|
import { UseParametersBackendReturnProps } from '../../../utils';
|
|
5
5
|
import { ComputingType, ILimitReductionsByVoltageLevel } from '../common';
|
|
6
|
-
import { SAParametersEnriched } from '
|
|
6
|
+
import { SAParametersEnriched } from '../../../utils/types';
|
|
7
7
|
export interface UseSecurityAnalysisParametersFormReturn {
|
|
8
8
|
formMethods: UseFormReturn;
|
|
9
9
|
formSchema: ObjectSchema<any>;
|
|
@@ -5,13 +5,13 @@ import "../../../utils/conversionUtils.js";
|
|
|
5
5
|
import { snackWithFallback } from "../../../utils/error.js";
|
|
6
6
|
import { ElementType } from "../../../utils/types/elementType.js";
|
|
7
7
|
import "../../../utils/types/equipmentType.js";
|
|
8
|
+
import { mapSecurityAnalysisParameters } from "../../../utils/types/security-analysis.type.js";
|
|
8
9
|
import "react/jsx-runtime";
|
|
9
10
|
import "@mui/icons-material";
|
|
10
11
|
import { PARAM_SA_HIGH_VOLTAGE_ABSOLUTE_THRESHOLD, PARAM_SA_HIGH_VOLTAGE_PROPORTIONAL_THRESHOLD, PARAM_SA_LOW_VOLTAGE_ABSOLUTE_THRESHOLD, PARAM_SA_LOW_VOLTAGE_PROPORTIONAL_THRESHOLD, PARAM_SA_FLOW_PROPORTIONAL_THRESHOLD, CONTINGENCY_LISTS_INFOS, PARAM_SA_PROVIDER, CONTINGENCY_LISTS } from "../common/constants.js";
|
|
11
12
|
import "@mui/material";
|
|
12
13
|
import "react-intl";
|
|
13
14
|
import { updateParameter } from "../../../services/explore.js";
|
|
14
|
-
import { mapSecurityAnalysisParameters } from "./types.js";
|
|
15
15
|
import "localized-countries";
|
|
16
16
|
import "localized-countries/data/fr";
|
|
17
17
|
import "localized-countries/data/en";
|