@gridsuite/commons-ui 0.201.0 → 0.203.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/addButton/AddButton.d.ts +10 -0
- package/dist/components/addButton/AddButton.js +16 -0
- package/dist/components/addButton/index.d.ts +1 -0
- package/dist/components/addButton/index.js +5 -0
- package/dist/components/cardErrorBoundary/CardErrorBoundary.d.ts +1 -1
- package/dist/components/dialogs/popupConfirmationDialog/PopupConfirmationDialog.d.ts +2 -1
- package/dist/components/dialogs/popupConfirmationDialog/PopupConfirmationDialog.js +2 -1
- package/dist/components/index.d.ts +1 -0
- package/dist/components/index.js +36 -1
- package/dist/components/inputs/index.js +0 -2
- package/dist/components/inputs/reactHookForm/expandableInput/ExpandableInput.js +3 -28
- package/dist/components/inputs/reactHookForm/text/DescriptionField.js +4 -4
- package/dist/components/inputs/reactQueryBuilder/index.d.ts +0 -1
- package/dist/components/inputs/reactQueryBuilder/index.js +0 -2
- package/dist/components/network-modifications/common/activePowerControl/ActivePowerControlForm.d.ts +6 -0
- package/dist/components/network-modifications/common/activePowerControl/ActivePowerControlForm.js +97 -0
- package/dist/components/network-modifications/common/activePowerControl/activePowerControlForm.type.d.ts +10 -0
- package/dist/components/network-modifications/common/activePowerControl/activePowerControlForm.type.js +1 -0
- package/dist/components/network-modifications/common/activePowerControl/activePowerControlForm.utils.d.ts +8 -0
- package/dist/components/network-modifications/common/activePowerControl/activePowerControlForm.utils.js +26 -0
- package/dist/components/network-modifications/common/activePowerControl/index.d.ts +9 -0
- package/dist/components/network-modifications/common/activePowerControl/index.js +7 -0
- package/dist/components/network-modifications/common/connectivity/BranchConnectivityForm.js +0 -2
- package/dist/components/network-modifications/common/connectivity/ConnectivityForm.d.ts +9 -17
- package/dist/components/network-modifications/common/connectivity/ConnectivityForm.js +56 -219
- package/dist/components/network-modifications/common/connectivity/PositionForm.d.ts +11 -0
- package/dist/components/network-modifications/common/connectivity/PositionForm.js +111 -0
- package/dist/components/network-modifications/common/connectivity/VoltageLevelConnectivityForm.d.ts +13 -0
- package/dist/components/network-modifications/common/connectivity/VoltageLevelConnectivityForm.js +164 -0
- package/dist/components/network-modifications/common/connectivity/connectivityForm.utils.js +3 -3
- package/dist/components/network-modifications/common/connectivity/index.d.ts +1 -0
- package/dist/components/network-modifications/common/connectivity/index.js +2 -0
- package/dist/components/network-modifications/common/index.d.ts +3 -0
- package/dist/components/network-modifications/common/index.js +35 -1
- package/dist/components/network-modifications/common/reactiveLimits/ReactiveLimitsForm.d.ts +8 -0
- package/dist/components/network-modifications/common/reactiveLimits/ReactiveLimitsForm.js +102 -0
- package/dist/components/network-modifications/common/reactiveLimits/index.d.ts +10 -0
- package/dist/components/network-modifications/common/reactiveLimits/index.js +23 -0
- package/dist/components/network-modifications/common/reactiveLimits/reactiveCapabilityCurve/ReactiveCapabilityCurveRowForm.d.ts +12 -0
- package/dist/components/network-modifications/common/reactiveLimits/reactiveCapabilityCurve/ReactiveCapabilityCurveRowForm.js +101 -0
- package/dist/components/network-modifications/common/reactiveLimits/reactiveCapabilityCurve/ReactiveCapabilityCurveTableForm.d.ts +10 -0
- package/dist/components/network-modifications/common/reactiveLimits/reactiveCapabilityCurve/ReactiveCapabilityCurveTableForm.js +118 -0
- package/dist/components/network-modifications/common/reactiveLimits/reactiveCapabilityCurve/index.d.ts +9 -0
- package/dist/components/network-modifications/common/reactiveLimits/reactiveCapabilityCurve/index.js +15 -0
- package/dist/components/network-modifications/common/reactiveLimits/reactiveCapabilityCurve/reactiveCapability.utils.d.ts +20 -0
- package/dist/components/network-modifications/common/reactiveLimits/reactiveCapabilityCurve/reactiveCapability.utils.js +152 -0
- package/dist/components/network-modifications/common/reactiveLimits/reactiveLimits.type.d.ts +21 -0
- package/dist/components/network-modifications/common/reactiveLimits/reactiveLimits.type.js +1 -0
- package/dist/components/network-modifications/common/reactiveLimits/reactiveLimits.utils.d.ts +55 -0
- package/dist/components/network-modifications/common/reactiveLimits/reactiveLimits.utils.js +66 -0
- package/dist/components/network-modifications/common/setpoints/setPoints.utils.js +3 -3
- package/dist/components/network-modifications/common/shortCircuit/ShortCircuitForm.d.ts +5 -0
- package/dist/components/network-modifications/common/shortCircuit/ShortCircuitForm.js +68 -0
- package/dist/components/network-modifications/common/shortCircuit/index.d.ts +9 -0
- package/dist/components/network-modifications/common/shortCircuit/index.js +8 -0
- package/dist/components/network-modifications/common/shortCircuit/shortCircuitForm.type.d.ts +10 -0
- package/dist/components/network-modifications/common/shortCircuit/shortCircuitForm.type.js +1 -0
- package/dist/components/network-modifications/common/shortCircuit/shortCircuitForm.utils.d.ts +15 -0
- package/dist/components/network-modifications/common/shortCircuit/shortCircuitForm.utils.js +37 -0
- package/dist/components/network-modifications/generator/creation/generatorCreation.types.d.ts +40 -0
- package/dist/components/network-modifications/generator/creation/generatorCreation.types.js +1 -0
- package/dist/components/network-modifications/generator/creation/index.d.ts +7 -0
- package/dist/components/network-modifications/generator/creation/index.js +1 -0
- package/dist/components/network-modifications/generator/generatorDialog.type.d.ts +102 -0
- package/dist/components/network-modifications/generator/generatorDialog.type.js +1 -0
- package/dist/components/network-modifications/generator/index.d.ts +9 -0
- package/dist/components/network-modifications/generator/index.js +1 -0
- package/dist/components/network-modifications/generator/modification/generatorModification.types.d.ts +41 -0
- package/dist/components/network-modifications/generator/modification/generatorModification.types.js +1 -0
- package/dist/components/network-modifications/generator/modification/index.d.ts +7 -0
- package/dist/components/network-modifications/generator/modification/index.js +1 -0
- package/dist/components/network-modifications/index.d.ts +1 -0
- package/dist/components/network-modifications/index.js +34 -0
- package/dist/components/network-modifications/load/common/LoadDialogTabsContent.js +0 -1
- package/dist/components/network-modifications/load/creation/loadCreation.utils.js +1 -1
- package/dist/components/network-modifications/voltageLevel/creation/tabs/substationTab/SubstationTab.js +4 -3
- package/dist/components/parameters/common/hook/use-parameters-form.js +1 -1
- package/dist/index.js +36 -1
- package/dist/translations/en/networkModificationsEn.d.ts +26 -0
- package/dist/translations/en/networkModificationsEn.js +26 -0
- package/dist/translations/fr/networkModificationsFr.d.ts +26 -0
- package/dist/translations/fr/networkModificationsFr.js +26 -0
- package/dist/utils/constants/fieldConstants.d.ts +22 -1
- package/dist/utils/constants/fieldConstants.js +22 -1
- package/package.json +1 -1
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { createConnectivityData, getCon1andCon2WithPositionValidationSchema, getConnectivityBusBarSectionData, getConnectivityData, getConnectivityFormData, getConnectivityFormDataProps, getConnectivityPropertiesData, getConnectivityPropertiesEmptyFormData, getConnectivityPropertiesValidationSchema, getConnectivityVoltageLevelData, getConnectivityWithPositionEmptyFormData, getConnectivityWithPositionEmptyFormDataProps, getConnectivityWithPositionSchema, getConnectivityWithPositionValidationSchema, getConnectivityWithoutPositionEmptyFormData, getConnectivityWithoutPositionValidationSchema, getCont1Cont2WithPositionEmptyFormData, getNewVoltageLevelData } from "./connectivityForm.utils.js";
|
|
2
2
|
import { ConnectivityForm } from "./ConnectivityForm.js";
|
|
3
3
|
import { BranchConnectivityForm } from "./BranchConnectivityForm.js";
|
|
4
|
+
import { VoltageLevelConnectivityForm } from "./VoltageLevelConnectivityForm.js";
|
|
4
5
|
export {
|
|
5
6
|
BranchConnectivityForm,
|
|
6
7
|
ConnectivityForm,
|
|
8
|
+
VoltageLevelConnectivityForm,
|
|
7
9
|
createConnectivityData,
|
|
8
10
|
getCon1andCon2WithPositionValidationSchema,
|
|
9
11
|
getConnectivityBusBarSectionData,
|
|
@@ -13,15 +13,34 @@ import { SetPointsForm } from "./setpoints/SetPointsForm.js";
|
|
|
13
13
|
import { createConnectivityData, getCon1andCon2WithPositionValidationSchema, getConnectivityBusBarSectionData, getConnectivityData, getConnectivityFormData, getConnectivityFormDataProps, getConnectivityPropertiesData, getConnectivityPropertiesEmptyFormData, getConnectivityPropertiesValidationSchema, getConnectivityVoltageLevelData, getConnectivityWithPositionEmptyFormData, getConnectivityWithPositionEmptyFormDataProps, getConnectivityWithPositionSchema, getConnectivityWithPositionValidationSchema, getConnectivityWithoutPositionEmptyFormData, getConnectivityWithoutPositionValidationSchema, getCont1Cont2WithPositionEmptyFormData, getNewVoltageLevelData } from "./connectivity/connectivityForm.utils.js";
|
|
14
14
|
import { ConnectivityForm } from "./connectivity/ConnectivityForm.js";
|
|
15
15
|
import { BranchConnectivityForm } from "./connectivity/BranchConnectivityForm.js";
|
|
16
|
+
import { VoltageLevelConnectivityForm } from "./connectivity/VoltageLevelConnectivityForm.js";
|
|
17
|
+
import { getActivePowerControlEmptyFormData, getActivePowerControlSchema } from "./activePowerControl/activePowerControlForm.utils.js";
|
|
18
|
+
import { ActivePowerControlForm } from "./activePowerControl/ActivePowerControlForm.js";
|
|
19
|
+
import { getShortCircuitEmptyFormData, getShortCircuitFormData, getShortCircuitFormSchema } from "./shortCircuit/shortCircuitForm.utils.js";
|
|
20
|
+
import { ShortCircuitForm } from "./shortCircuit/ShortCircuitForm.js";
|
|
21
|
+
import { INSERT, REMOVE, getReactiveCapabilityCurveValidationSchema, getRowEmptyFormData, setCurrentReactiveCapabilityCurveTable, setSelectedReactiveLimits, toReactiveCapabilityCurveChoiceForGeneratorCreation, toReactiveCapabilityCurveChoiceForGeneratorModification } from "./reactiveLimits/reactiveCapabilityCurve/reactiveCapability.utils.js";
|
|
22
|
+
import { ReactiveCapabilityCurveRowForm } from "./reactiveLimits/reactiveCapabilityCurve/ReactiveCapabilityCurveRowForm.js";
|
|
23
|
+
import { ReactiveCapabilityCurveTableForm } from "./reactiveLimits/reactiveCapabilityCurve/ReactiveCapabilityCurveTableForm.js";
|
|
24
|
+
import { REACTIVE_LIMIT_TYPES, getReactiveLimitsEmptyFormData, getReactiveLimitsFormData, getReactiveLimitsSchema, getReactiveLimitsValidationSchema } from "./reactiveLimits/reactiveLimits.utils.js";
|
|
25
|
+
import { ReactiveLimitsForm } from "./reactiveLimits/ReactiveLimitsForm.js";
|
|
16
26
|
export {
|
|
27
|
+
ActivePowerControlForm,
|
|
17
28
|
BranchActiveReactivePowerMeasurementsForm,
|
|
18
29
|
BranchConnectivityForm,
|
|
19
30
|
ConnectivityForm,
|
|
31
|
+
INSERT,
|
|
20
32
|
PowerMeasurementsForm,
|
|
21
33
|
PowerWithValidityForm,
|
|
22
34
|
PropertiesForm,
|
|
23
35
|
PropertyForm,
|
|
36
|
+
REACTIVE_LIMIT_TYPES,
|
|
37
|
+
REMOVE,
|
|
38
|
+
ReactiveCapabilityCurveRowForm,
|
|
39
|
+
ReactiveCapabilityCurveTableForm,
|
|
40
|
+
ReactiveLimitsForm,
|
|
24
41
|
SetPointsForm,
|
|
42
|
+
ShortCircuitForm,
|
|
43
|
+
VoltageLevelConnectivityForm,
|
|
25
44
|
copyEquipmentPropertiesForCreation,
|
|
26
45
|
createConnectivityData,
|
|
27
46
|
createPropertyModification,
|
|
@@ -29,6 +48,8 @@ export {
|
|
|
29
48
|
emptyProperties,
|
|
30
49
|
fetchPredefinedProperties,
|
|
31
50
|
filledTextField,
|
|
51
|
+
getActivePowerControlEmptyFormData,
|
|
52
|
+
getActivePowerControlSchema,
|
|
32
53
|
getActivePowerSetPointSchema,
|
|
33
54
|
getBranchActiveReactivePowerEditData,
|
|
34
55
|
getBranchActiveReactivePowerEditDataProperties,
|
|
@@ -66,14 +87,27 @@ export {
|
|
|
66
87
|
getPowerWithValidityValidationSchema,
|
|
67
88
|
getPropertiesFromModification,
|
|
68
89
|
getPropertyValue,
|
|
90
|
+
getReactiveCapabilityCurveValidationSchema,
|
|
91
|
+
getReactiveLimitsEmptyFormData,
|
|
92
|
+
getReactiveLimitsFormData,
|
|
93
|
+
getReactiveLimitsSchema,
|
|
94
|
+
getReactiveLimitsValidationSchema,
|
|
69
95
|
getReactivePowerSetPointSchema,
|
|
96
|
+
getRowEmptyFormData,
|
|
70
97
|
getSetPointsEmptyFormData,
|
|
71
98
|
getSetPointsSchema,
|
|
99
|
+
getShortCircuitEmptyFormData,
|
|
100
|
+
getShortCircuitFormData,
|
|
101
|
+
getShortCircuitFormSchema,
|
|
72
102
|
initializedProperty,
|
|
73
103
|
italicFontTextField,
|
|
74
104
|
mergeModificationAndEquipmentProperties,
|
|
75
105
|
modificationPropertiesSchema,
|
|
106
|
+
setCurrentReactiveCapabilityCurveTable,
|
|
107
|
+
setSelectedReactiveLimits,
|
|
76
108
|
standardTextField,
|
|
77
109
|
testValueWithinPowerInterval,
|
|
78
|
-
toModificationProperties
|
|
110
|
+
toModificationProperties,
|
|
111
|
+
toReactiveCapabilityCurveChoiceForGeneratorCreation,
|
|
112
|
+
toReactiveCapabilityCurveChoiceForGeneratorModification
|
|
79
113
|
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { MinMaxReactiveLimitsFormInfos, ReactiveCapabilityCurvePoints } from './reactiveLimits.type';
|
|
2
|
+
export interface ReactiveLimitsFormProps {
|
|
3
|
+
id?: string;
|
|
4
|
+
previousReactiveCapabilityCurvePoints?: ReactiveCapabilityCurvePoints[] | null;
|
|
5
|
+
previousMinMaxReactiveLimits?: MinMaxReactiveLimitsFormInfos | null;
|
|
6
|
+
updatePreviousReactiveCapabilityCurveTable?: (action: string, index: number) => void;
|
|
7
|
+
}
|
|
8
|
+
export declare function ReactiveLimitsForm({ id, previousReactiveCapabilityCurvePoints, previousMinMaxReactiveLimits, updatePreviousReactiveCapabilityCurveTable, }: Readonly<ReactiveLimitsFormProps>): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useWatch } from "react-hook-form";
|
|
3
|
+
import { Grid } from "@mui/material";
|
|
4
|
+
import { ReactiveCapabilityCurveTableForm } from "./reactiveCapabilityCurve/ReactiveCapabilityCurveTableForm.js";
|
|
5
|
+
import { ReactivePowerAdornment } from "../../../../utils/constants/adornments.js";
|
|
6
|
+
import { FieldConstants } from "../../../../utils/constants/fieldConstants.js";
|
|
7
|
+
import "../../../../utils/conversionUtils.js";
|
|
8
|
+
import "../../../../utils/types/equipmentType.js";
|
|
9
|
+
import "@mui/icons-material";
|
|
10
|
+
import "../../../../utils/yupConfig.js";
|
|
11
|
+
import "react-intl";
|
|
12
|
+
import "../../../overflowableText/OverflowableText.js";
|
|
13
|
+
import "react";
|
|
14
|
+
import "localized-countries";
|
|
15
|
+
import "localized-countries/data/fr";
|
|
16
|
+
import "localized-countries/data/en";
|
|
17
|
+
import "notistack";
|
|
18
|
+
import "../../../inputs/reactHookForm/provider/CustomFormProvider.js";
|
|
19
|
+
import "yup";
|
|
20
|
+
import "../../../treeViewFinder/TreeViewFinder.js";
|
|
21
|
+
import "../../../inputs/reactHookForm/agGridTable/BottomRightButtons.js";
|
|
22
|
+
import "../../../customAGGrid/customAggrid.js";
|
|
23
|
+
import "ag-grid-community";
|
|
24
|
+
import "react-papaparse";
|
|
25
|
+
import "react-csv-downloader";
|
|
26
|
+
import { RadioInput } from "../../../inputs/reactHookForm/booleans/RadioInput.js";
|
|
27
|
+
import { FloatInput } from "../../../inputs/reactHookForm/numbers/FloatInput.js";
|
|
28
|
+
import "../../../inputs/reactHookForm/numbers/RangeInput.js";
|
|
29
|
+
import "@material-symbols/svg-400/outlined/left_panel_open.svg?react";
|
|
30
|
+
import "@material-symbols/svg-400/outlined/arrows_output.svg?react";
|
|
31
|
+
import "@material-symbols/svg-400/outlined/left_panel_close.svg?react";
|
|
32
|
+
import "@material-symbols/svg-400/outlined/add_notes.svg?react";
|
|
33
|
+
import "../../../dialogs/descriptionModificationDialog/DescriptionModificationDialog.js";
|
|
34
|
+
import "../../../inputs/reactHookForm/expandableInput/ExpandableInput.js";
|
|
35
|
+
import "@react-querybuilder/material";
|
|
36
|
+
import "../../../filter/expert/expertFilterConstants.js";
|
|
37
|
+
import "../../../inputs/reactQueryBuilder/CustomReactQueryBuilder.js";
|
|
38
|
+
import "uuid";
|
|
39
|
+
import "../../../inputs/reactQueryBuilder/PropertyValueEditor.js";
|
|
40
|
+
import "react-querybuilder";
|
|
41
|
+
import GridItem from "../../../grid/grid-item.js";
|
|
42
|
+
import { REACTIVE_LIMIT_TYPES } from "./reactiveLimits.utils.js";
|
|
43
|
+
const headerIds = ["ActivePowerText", "MinimumReactivePower", "MaximumReactivePower"];
|
|
44
|
+
function ReactiveLimitsForm({
|
|
45
|
+
id = FieldConstants.REACTIVE_LIMITS,
|
|
46
|
+
previousReactiveCapabilityCurvePoints = void 0,
|
|
47
|
+
previousMinMaxReactiveLimits = void 0,
|
|
48
|
+
updatePreviousReactiveCapabilityCurveTable = void 0
|
|
49
|
+
}) {
|
|
50
|
+
const reactiveCapabilityCurveChoice = useWatch({
|
|
51
|
+
name: `${id}.${FieldConstants.REACTIVE_CAPABILITY_CURVE_CHOICE}`
|
|
52
|
+
});
|
|
53
|
+
const isReactiveCapabilityCurveOn = reactiveCapabilityCurveChoice !== "MINMAX";
|
|
54
|
+
const reactiveCapabilityCurveChoiceRadioField = /* @__PURE__ */ jsx(
|
|
55
|
+
RadioInput,
|
|
56
|
+
{
|
|
57
|
+
name: `${id}.${FieldConstants.REACTIVE_CAPABILITY_CURVE_CHOICE}`,
|
|
58
|
+
options: [...REACTIVE_LIMIT_TYPES],
|
|
59
|
+
formProps: { style: { marginTop: "-12px" } }
|
|
60
|
+
}
|
|
61
|
+
);
|
|
62
|
+
const minimumReactivePowerField = /* @__PURE__ */ jsx(
|
|
63
|
+
FloatInput,
|
|
64
|
+
{
|
|
65
|
+
name: `${id}.${FieldConstants.MINIMUM_REACTIVE_POWER}`,
|
|
66
|
+
label: "MinimumReactivePower",
|
|
67
|
+
adornment: ReactivePowerAdornment,
|
|
68
|
+
previousValue: previousMinMaxReactiveLimits?.minQ ?? void 0,
|
|
69
|
+
clearable: true
|
|
70
|
+
}
|
|
71
|
+
);
|
|
72
|
+
const maximumReactivePowerField = /* @__PURE__ */ jsx(
|
|
73
|
+
FloatInput,
|
|
74
|
+
{
|
|
75
|
+
name: `${id}.${FieldConstants.MAXIMUM_REACTIVE_POWER}`,
|
|
76
|
+
label: "MaximumReactivePower",
|
|
77
|
+
adornment: ReactivePowerAdornment,
|
|
78
|
+
previousValue: previousMinMaxReactiveLimits?.maxQ ?? void 0,
|
|
79
|
+
clearable: true
|
|
80
|
+
}
|
|
81
|
+
);
|
|
82
|
+
const reactiveCapabilityCurveTableField = /* @__PURE__ */ jsx(
|
|
83
|
+
ReactiveCapabilityCurveTableForm,
|
|
84
|
+
{
|
|
85
|
+
id: `${id}.${FieldConstants.REACTIVE_CAPABILITY_CURVE_TABLE}`,
|
|
86
|
+
tableHeadersIds: headerIds,
|
|
87
|
+
previousValues: previousReactiveCapabilityCurvePoints ?? void 0,
|
|
88
|
+
updatePreviousReactiveCapabilityCurveTable,
|
|
89
|
+
disabled: !isReactiveCapabilityCurveOn
|
|
90
|
+
}
|
|
91
|
+
);
|
|
92
|
+
return /* @__PURE__ */ jsxs(Grid, { container: true, spacing: 2, children: [
|
|
93
|
+
/* @__PURE__ */ jsx(GridItem, { size: 12, children: reactiveCapabilityCurveChoiceRadioField }),
|
|
94
|
+
!isReactiveCapabilityCurveOn && /* @__PURE__ */ jsx(GridItem, { size: 4, children: minimumReactivePowerField }),
|
|
95
|
+
!isReactiveCapabilityCurveOn && /* @__PURE__ */ jsx(GridItem, { size: 4, children: maximumReactivePowerField }),
|
|
96
|
+
!isReactiveCapabilityCurveOn && /* @__PURE__ */ jsx(GridItem, { size: "auto" }),
|
|
97
|
+
isReactiveCapabilityCurveOn && /* @__PURE__ */ jsx(GridItem, { size: 12, children: reactiveCapabilityCurveTableField })
|
|
98
|
+
] });
|
|
99
|
+
}
|
|
100
|
+
export {
|
|
101
|
+
ReactiveLimitsForm
|
|
102
|
+
};
|
|
@@ -0,0 +1,10 @@
|
|
|
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 './reactiveCapabilityCurve';
|
|
8
|
+
export * from './reactiveLimits.type';
|
|
9
|
+
export * from './reactiveLimits.utils';
|
|
10
|
+
export * from './ReactiveLimitsForm';
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { INSERT, REMOVE, getReactiveCapabilityCurveValidationSchema, getRowEmptyFormData, setCurrentReactiveCapabilityCurveTable, setSelectedReactiveLimits, toReactiveCapabilityCurveChoiceForGeneratorCreation, toReactiveCapabilityCurveChoiceForGeneratorModification } from "./reactiveCapabilityCurve/reactiveCapability.utils.js";
|
|
2
|
+
import { ReactiveCapabilityCurveRowForm } from "./reactiveCapabilityCurve/ReactiveCapabilityCurveRowForm.js";
|
|
3
|
+
import { ReactiveCapabilityCurveTableForm } from "./reactiveCapabilityCurve/ReactiveCapabilityCurveTableForm.js";
|
|
4
|
+
import { REACTIVE_LIMIT_TYPES, getReactiveLimitsEmptyFormData, getReactiveLimitsFormData, getReactiveLimitsSchema, getReactiveLimitsValidationSchema } from "./reactiveLimits.utils.js";
|
|
5
|
+
import { ReactiveLimitsForm } from "./ReactiveLimitsForm.js";
|
|
6
|
+
export {
|
|
7
|
+
INSERT,
|
|
8
|
+
REACTIVE_LIMIT_TYPES,
|
|
9
|
+
REMOVE,
|
|
10
|
+
ReactiveCapabilityCurveRowForm,
|
|
11
|
+
ReactiveCapabilityCurveTableForm,
|
|
12
|
+
ReactiveLimitsForm,
|
|
13
|
+
getReactiveCapabilityCurveValidationSchema,
|
|
14
|
+
getReactiveLimitsEmptyFormData,
|
|
15
|
+
getReactiveLimitsFormData,
|
|
16
|
+
getReactiveLimitsSchema,
|
|
17
|
+
getReactiveLimitsValidationSchema,
|
|
18
|
+
getRowEmptyFormData,
|
|
19
|
+
setCurrentReactiveCapabilityCurveTable,
|
|
20
|
+
setSelectedReactiveLimits,
|
|
21
|
+
toReactiveCapabilityCurveChoiceForGeneratorCreation,
|
|
22
|
+
toReactiveCapabilityCurveChoiceForGeneratorModification
|
|
23
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2023, 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 interface ReactiveCapabilityCurveRowFormProps {
|
|
8
|
+
id: string;
|
|
9
|
+
index: number;
|
|
10
|
+
labelSuffix: string | number;
|
|
11
|
+
}
|
|
12
|
+
export declare function ReactiveCapabilityCurveRowForm({ id, index, labelSuffix, }: Readonly<ReactiveCapabilityCurveRowFormProps>): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { jsx, jsxs, Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { useCallback } from "react";
|
|
3
|
+
import { useFormContext } from "react-hook-form";
|
|
4
|
+
import { ActivePowerAdornment, ReactivePowerAdornment } from "../../../../../utils/constants/adornments.js";
|
|
5
|
+
import { FieldConstants } from "../../../../../utils/constants/fieldConstants.js";
|
|
6
|
+
import "../../../../../utils/conversionUtils.js";
|
|
7
|
+
import "../../../../../utils/types/equipmentType.js";
|
|
8
|
+
import "@mui/icons-material";
|
|
9
|
+
import "../../../../../utils/yupConfig.js";
|
|
10
|
+
import "react-intl";
|
|
11
|
+
import "@mui/material";
|
|
12
|
+
import "../../../../overflowableText/OverflowableText.js";
|
|
13
|
+
import "localized-countries";
|
|
14
|
+
import "localized-countries/data/fr";
|
|
15
|
+
import "localized-countries/data/en";
|
|
16
|
+
import "notistack";
|
|
17
|
+
import "../../../../inputs/reactHookForm/provider/CustomFormProvider.js";
|
|
18
|
+
import "yup";
|
|
19
|
+
import "../../../../treeViewFinder/TreeViewFinder.js";
|
|
20
|
+
import "../../../../inputs/reactHookForm/agGridTable/BottomRightButtons.js";
|
|
21
|
+
import "../../../../customAGGrid/customAggrid.js";
|
|
22
|
+
import "ag-grid-community";
|
|
23
|
+
import "react-papaparse";
|
|
24
|
+
import "react-csv-downloader";
|
|
25
|
+
import { FloatInput } from "../../../../inputs/reactHookForm/numbers/FloatInput.js";
|
|
26
|
+
import "../../../../inputs/reactHookForm/numbers/RangeInput.js";
|
|
27
|
+
import "@material-symbols/svg-400/outlined/left_panel_open.svg?react";
|
|
28
|
+
import "@material-symbols/svg-400/outlined/arrows_output.svg?react";
|
|
29
|
+
import "@material-symbols/svg-400/outlined/left_panel_close.svg?react";
|
|
30
|
+
import "@material-symbols/svg-400/outlined/add_notes.svg?react";
|
|
31
|
+
import "../../../../dialogs/descriptionModificationDialog/DescriptionModificationDialog.js";
|
|
32
|
+
import "../../../../inputs/reactHookForm/expandableInput/ExpandableInput.js";
|
|
33
|
+
import "@react-querybuilder/material";
|
|
34
|
+
import "../../../../filter/expert/expertFilterConstants.js";
|
|
35
|
+
import "../../../../inputs/reactQueryBuilder/CustomReactQueryBuilder.js";
|
|
36
|
+
import "uuid";
|
|
37
|
+
import "../../../../inputs/reactQueryBuilder/PropertyValueEditor.js";
|
|
38
|
+
import "react-querybuilder";
|
|
39
|
+
import GridItem from "../../../../grid/grid-item.js";
|
|
40
|
+
function ReactiveCapabilityCurveRowForm({
|
|
41
|
+
id,
|
|
42
|
+
index,
|
|
43
|
+
labelSuffix
|
|
44
|
+
}) {
|
|
45
|
+
const {
|
|
46
|
+
trigger,
|
|
47
|
+
formState: { isSubmitted }
|
|
48
|
+
} = useFormContext();
|
|
49
|
+
const triggerTableValidation = useCallback(() => {
|
|
50
|
+
if (isSubmitted) {
|
|
51
|
+
trigger(`${FieldConstants.REACTIVE_LIMITS}.${FieldConstants.REACTIVE_CAPABILITY_CURVE_TABLE}`);
|
|
52
|
+
}
|
|
53
|
+
}, [isSubmitted, trigger]);
|
|
54
|
+
const triggerTableAndSiblingsValidation = useCallback(() => {
|
|
55
|
+
if (isSubmitted) {
|
|
56
|
+
trigger([
|
|
57
|
+
`${id}[${index}].${FieldConstants.MIN_Q}`,
|
|
58
|
+
`${id}[${index}].${FieldConstants.MAX_Q}`,
|
|
59
|
+
`${FieldConstants.REACTIVE_LIMITS}.${FieldConstants.REACTIVE_CAPABILITY_CURVE_TABLE}`
|
|
60
|
+
]);
|
|
61
|
+
}
|
|
62
|
+
}, [isSubmitted, id, index, trigger]);
|
|
63
|
+
const pField = /* @__PURE__ */ jsx(
|
|
64
|
+
FloatInput,
|
|
65
|
+
{
|
|
66
|
+
name: `${id}.${index}.${FieldConstants.P}`,
|
|
67
|
+
label: "P",
|
|
68
|
+
labelValues: { labelSuffix },
|
|
69
|
+
adornment: ActivePowerAdornment,
|
|
70
|
+
onChange: triggerTableValidation
|
|
71
|
+
}
|
|
72
|
+
);
|
|
73
|
+
const qminPField = /* @__PURE__ */ jsx(
|
|
74
|
+
FloatInput,
|
|
75
|
+
{
|
|
76
|
+
name: `${id}.${index}.${FieldConstants.MIN_Q}`,
|
|
77
|
+
label: "QminP",
|
|
78
|
+
labelValues: { labelSuffix },
|
|
79
|
+
adornment: ReactivePowerAdornment,
|
|
80
|
+
onChange: triggerTableAndSiblingsValidation
|
|
81
|
+
}
|
|
82
|
+
);
|
|
83
|
+
const qmaxPField = /* @__PURE__ */ jsx(
|
|
84
|
+
FloatInput,
|
|
85
|
+
{
|
|
86
|
+
name: `${id}.${index}.${FieldConstants.MAX_Q}`,
|
|
87
|
+
label: "QmaxP",
|
|
88
|
+
labelValues: { labelSuffix },
|
|
89
|
+
adornment: ReactivePowerAdornment,
|
|
90
|
+
onChange: triggerTableAndSiblingsValidation
|
|
91
|
+
}
|
|
92
|
+
);
|
|
93
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
94
|
+
/* @__PURE__ */ jsx(GridItem, { size: 3, children: pField }),
|
|
95
|
+
/* @__PURE__ */ jsx(GridItem, { size: 3, children: qminPField }),
|
|
96
|
+
/* @__PURE__ */ jsx(GridItem, { size: 3, children: qmaxPField })
|
|
97
|
+
] });
|
|
98
|
+
}
|
|
99
|
+
export {
|
|
100
|
+
ReactiveCapabilityCurveRowForm
|
|
101
|
+
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ReactiveCapabilityCurvePoints } from '../reactiveLimits.type';
|
|
2
|
+
interface ReactiveCapabilityCurveTableFormProps {
|
|
3
|
+
id: string;
|
|
4
|
+
tableHeadersIds: string[];
|
|
5
|
+
previousValues?: ReactiveCapabilityCurvePoints[] | null;
|
|
6
|
+
updatePreviousReactiveCapabilityCurveTable?: (action: string, index: number) => void;
|
|
7
|
+
disabled?: boolean;
|
|
8
|
+
}
|
|
9
|
+
export declare function ReactiveCapabilityCurveTableForm({ id, tableHeadersIds, previousValues, updatePreviousReactiveCapabilityCurveTable, disabled, }: Readonly<ReactiveCapabilityCurveTableFormProps>): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { jsxs, jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useFieldArray } from "react-hook-form";
|
|
3
|
+
import { useCallback, useEffect } from "react";
|
|
4
|
+
import { Grid, IconButton } from "@mui/material";
|
|
5
|
+
import { Delete, ControlPoint } from "@mui/icons-material";
|
|
6
|
+
import { FormattedMessage } from "react-intl";
|
|
7
|
+
import { INSERT, REMOVE } from "./reactiveCapability.utils.js";
|
|
8
|
+
import { ReactiveCapabilityCurveRowForm } from "./ReactiveCapabilityCurveRowForm.js";
|
|
9
|
+
import { FieldConstants } from "../../../../../utils/constants/fieldConstants.js";
|
|
10
|
+
import "../../../../../utils/conversionUtils.js";
|
|
11
|
+
import "../../../../../utils/types/equipmentType.js";
|
|
12
|
+
import "../../../../../utils/yupConfig.js";
|
|
13
|
+
import "../../../../overflowableText/OverflowableText.js";
|
|
14
|
+
import "localized-countries";
|
|
15
|
+
import "localized-countries/data/fr";
|
|
16
|
+
import "localized-countries/data/en";
|
|
17
|
+
import "notistack";
|
|
18
|
+
import "../../../../inputs/reactHookForm/provider/CustomFormProvider.js";
|
|
19
|
+
import "yup";
|
|
20
|
+
import { ErrorInput } from "../../../../inputs/reactHookForm/errorManagement/ErrorInput.js";
|
|
21
|
+
import { MidFormError } from "../../../../inputs/reactHookForm/errorManagement/MidFormError.js";
|
|
22
|
+
import "../../../../treeViewFinder/TreeViewFinder.js";
|
|
23
|
+
import "../../../../inputs/reactHookForm/agGridTable/BottomRightButtons.js";
|
|
24
|
+
import "../../../../customAGGrid/customAggrid.js";
|
|
25
|
+
import "ag-grid-community";
|
|
26
|
+
import "react-papaparse";
|
|
27
|
+
import "react-csv-downloader";
|
|
28
|
+
import "../../../../inputs/reactHookForm/numbers/RangeInput.js";
|
|
29
|
+
import "@material-symbols/svg-400/outlined/left_panel_open.svg?react";
|
|
30
|
+
import "@material-symbols/svg-400/outlined/arrows_output.svg?react";
|
|
31
|
+
import "@material-symbols/svg-400/outlined/left_panel_close.svg?react";
|
|
32
|
+
import "@material-symbols/svg-400/outlined/add_notes.svg?react";
|
|
33
|
+
import "../../../../dialogs/descriptionModificationDialog/DescriptionModificationDialog.js";
|
|
34
|
+
import "../../../../inputs/reactHookForm/expandableInput/ExpandableInput.js";
|
|
35
|
+
import "@react-querybuilder/material";
|
|
36
|
+
import "../../../../filter/expert/expertFilterConstants.js";
|
|
37
|
+
import "../../../../inputs/reactQueryBuilder/CustomReactQueryBuilder.js";
|
|
38
|
+
import "uuid";
|
|
39
|
+
import "../../../../inputs/reactQueryBuilder/PropertyValueEditor.js";
|
|
40
|
+
import "react-querybuilder";
|
|
41
|
+
const MIN_LENGTH = 2;
|
|
42
|
+
function ReactiveCapabilityCurveTableForm({
|
|
43
|
+
id,
|
|
44
|
+
tableHeadersIds,
|
|
45
|
+
previousValues,
|
|
46
|
+
updatePreviousReactiveCapabilityCurveTable,
|
|
47
|
+
disabled = false
|
|
48
|
+
}) {
|
|
49
|
+
const { fields: rows, insert, remove } = useFieldArray({ name: `${id}` });
|
|
50
|
+
const insertRow = useCallback(
|
|
51
|
+
(index) => {
|
|
52
|
+
if (previousValues && updatePreviousReactiveCapabilityCurveTable) {
|
|
53
|
+
updatePreviousReactiveCapabilityCurveTable(INSERT, index);
|
|
54
|
+
}
|
|
55
|
+
insert(index, {
|
|
56
|
+
[FieldConstants.P]: null,
|
|
57
|
+
[FieldConstants.MIN_Q]: null,
|
|
58
|
+
[FieldConstants.MAX_Q]: null
|
|
59
|
+
});
|
|
60
|
+
},
|
|
61
|
+
[insert, updatePreviousReactiveCapabilityCurveTable, previousValues]
|
|
62
|
+
);
|
|
63
|
+
const handleInsertRow = () => {
|
|
64
|
+
insertRow(rows.length - 1);
|
|
65
|
+
};
|
|
66
|
+
const handleRemoveRow = (index) => {
|
|
67
|
+
if (previousValues && updatePreviousReactiveCapabilityCurveTable) {
|
|
68
|
+
updatePreviousReactiveCapabilityCurveTable(REMOVE, index);
|
|
69
|
+
}
|
|
70
|
+
remove(index);
|
|
71
|
+
};
|
|
72
|
+
useEffect(() => {
|
|
73
|
+
if (rows?.length < MIN_LENGTH) {
|
|
74
|
+
for (let i = 0; i < MIN_LENGTH - rows.length; i++) {
|
|
75
|
+
insertRow(rows.length);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}, [insertRow, rows]);
|
|
79
|
+
return /* @__PURE__ */ jsxs(Grid, { item: true, container: true, spacing: 2, children: [
|
|
80
|
+
/* @__PURE__ */ jsx(Grid, { container: true, children: /* @__PURE__ */ jsx(ErrorInput, { name: id, InputField: MidFormError }) }),
|
|
81
|
+
tableHeadersIds.map((header) => /* @__PURE__ */ jsx(Grid, { item: true, xs: 3, children: /* @__PURE__ */ jsx(FormattedMessage, { id: header }) }, header)),
|
|
82
|
+
rows.map((value, index, displayedValues) => {
|
|
83
|
+
let labelSuffix;
|
|
84
|
+
if (index === 0) {
|
|
85
|
+
labelSuffix = "min";
|
|
86
|
+
} else if (index === displayedValues.length - 1) {
|
|
87
|
+
labelSuffix = "max";
|
|
88
|
+
} else {
|
|
89
|
+
labelSuffix = index - 1;
|
|
90
|
+
}
|
|
91
|
+
return /* @__PURE__ */ jsxs(Grid, { container: true, spacing: 3, item: true, children: [
|
|
92
|
+
/* @__PURE__ */ jsx(ReactiveCapabilityCurveRowForm, { id, index, labelSuffix }),
|
|
93
|
+
/* @__PURE__ */ jsx(Grid, { item: true, xs: 1, children: /* @__PURE__ */ jsx(
|
|
94
|
+
IconButton,
|
|
95
|
+
{
|
|
96
|
+
onClick: () => handleRemoveRow(index),
|
|
97
|
+
disabled: disabled || index === 0 || index === displayedValues.length - 1,
|
|
98
|
+
children: /* @__PURE__ */ jsx(Delete, {})
|
|
99
|
+
},
|
|
100
|
+
value.id
|
|
101
|
+
) }),
|
|
102
|
+
index === displayedValues.length - 1 && /* @__PURE__ */ jsx(Grid, { item: true, xs: 1, children: /* @__PURE__ */ jsx(
|
|
103
|
+
IconButton,
|
|
104
|
+
{
|
|
105
|
+
onClick: () => handleInsertRow(),
|
|
106
|
+
disabled,
|
|
107
|
+
style: { top: "-1em" },
|
|
108
|
+
children: /* @__PURE__ */ jsx(ControlPoint, {})
|
|
109
|
+
},
|
|
110
|
+
value.id
|
|
111
|
+
) })
|
|
112
|
+
] }, value.id);
|
|
113
|
+
})
|
|
114
|
+
] });
|
|
115
|
+
}
|
|
116
|
+
export {
|
|
117
|
+
ReactiveCapabilityCurveTableForm
|
|
118
|
+
};
|
|
@@ -0,0 +1,9 @@
|
|
|
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 './reactiveCapability.utils';
|
|
8
|
+
export * from './ReactiveCapabilityCurveRowForm';
|
|
9
|
+
export * from './ReactiveCapabilityCurveTableForm';
|
package/dist/components/network-modifications/common/reactiveLimits/reactiveCapabilityCurve/index.js
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { INSERT, REMOVE, getReactiveCapabilityCurveValidationSchema, getRowEmptyFormData, setCurrentReactiveCapabilityCurveTable, setSelectedReactiveLimits, toReactiveCapabilityCurveChoiceForGeneratorCreation, toReactiveCapabilityCurveChoiceForGeneratorModification } from "./reactiveCapability.utils.js";
|
|
2
|
+
import { ReactiveCapabilityCurveRowForm } from "./ReactiveCapabilityCurveRowForm.js";
|
|
3
|
+
import { ReactiveCapabilityCurveTableForm } from "./ReactiveCapabilityCurveTableForm.js";
|
|
4
|
+
export {
|
|
5
|
+
INSERT,
|
|
6
|
+
REMOVE,
|
|
7
|
+
ReactiveCapabilityCurveRowForm,
|
|
8
|
+
ReactiveCapabilityCurveTableForm,
|
|
9
|
+
getReactiveCapabilityCurveValidationSchema,
|
|
10
|
+
getRowEmptyFormData,
|
|
11
|
+
setCurrentReactiveCapabilityCurveTable,
|
|
12
|
+
setSelectedReactiveLimits,
|
|
13
|
+
toReactiveCapabilityCurveChoiceForGeneratorCreation,
|
|
14
|
+
toReactiveCapabilityCurveChoiceForGeneratorModification
|
|
15
|
+
};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { FieldValues, UseFormSetValue } from 'react-hook-form';
|
|
2
|
+
import { ReactiveCapabilityCurve, ReactiveCapabilityCurvePoints } from '../reactiveLimits.type';
|
|
3
|
+
import { FieldConstants } from '../../../../../utils';
|
|
4
|
+
import { GeneratorCreationDialogSchemaForm, GeneratorModificationDialogSchemaForm } from '../../../generator/generatorDialog.type';
|
|
5
|
+
import { GeneratorCreationDto } from '../../../generator/creation/generatorCreation.types';
|
|
6
|
+
import { GeneratorModificationDto } from '../../../generator/modification/generatorModification.types';
|
|
7
|
+
export declare const INSERT = "INSERT";
|
|
8
|
+
export declare const REMOVE = "REMOVE";
|
|
9
|
+
export declare const getRowEmptyFormData: () => {
|
|
10
|
+
p: null;
|
|
11
|
+
maxQ: null;
|
|
12
|
+
minQ: null;
|
|
13
|
+
};
|
|
14
|
+
export declare const getReactiveCapabilityCurveValidationSchema: (id?: FieldConstants, positiveAndNegativePExist?: boolean) => {
|
|
15
|
+
[x: string]: import('yup').ArraySchema<any[] | null | undefined, import('yup').AnyObject, undefined, "">;
|
|
16
|
+
};
|
|
17
|
+
export declare function setSelectedReactiveLimits(id: string, minMaxReactiveLimits: number, setValue: UseFormSetValue<FieldValues>): void;
|
|
18
|
+
export declare function setCurrentReactiveCapabilityCurveTable(previousReactiveCapabilityCurveTable: ReactiveCapabilityCurve, fieldKey: string, setValue: UseFormSetValue<FieldValues>): void;
|
|
19
|
+
export declare function toReactiveCapabilityCurveChoiceForGeneratorCreation(currentReactiveLimits: GeneratorCreationDialogSchemaForm[typeof FieldConstants.REACTIVE_LIMITS], editData: GeneratorCreationDto | null | undefined): "CURVE" | "MINMAX";
|
|
20
|
+
export declare function toReactiveCapabilityCurveChoiceForGeneratorModification(currentReactiveLimits: GeneratorModificationDialogSchemaForm[typeof FieldConstants.REACTIVE_LIMITS], editData: GeneratorModificationDto | null | undefined, networkPoints: ReactiveCapabilityCurvePoints[] | null | undefined): "CURVE" | "MINMAX";
|