@gridsuite/commons-ui 0.137.0 → 0.139.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/README.md +1 -1
- package/dist/components/cardErrorBoundary/CardErrorBoundary.d.ts +1 -1
- package/dist/components/dialogs/descriptionModificationDialog/DescriptionModificationDialog.js +2 -6
- package/dist/components/directoryItemSelector/DirectoryItemSelector.js +2 -4
- package/dist/components/elementSearch/hooks/useElementSearch.js +2 -4
- package/dist/components/filter/FilterCreationDialog.js +3 -16
- package/dist/components/filter/expert/ExpertFilterEditionDialog.js +4 -23
- package/dist/components/filter/expert/expertFilterUtils.d.ts +0 -1
- package/dist/components/filter/expert/expertFilterUtils.js +0 -11
- package/dist/components/filter/expert/index.js +1 -2
- package/dist/components/filter/explicitNaming/ExplicitNamingFilterEditionDialog.js +3 -7
- package/dist/components/filter/explicitNaming/ExplicitNamingFilterForm.js +2 -4
- package/dist/components/filter/index.js +1 -2
- package/dist/components/filter/utils/filterApi.js +1 -1
- package/dist/components/index.js +4 -7
- package/dist/components/inputs/reactHookForm/DirectoryItemsInput.js +7 -4
- package/dist/components/inputs/reactHookForm/OverflowableChipWithHelperText.js +1 -1
- package/dist/components/parameters/common/parameters-creation-dialog.js +4 -9
- package/dist/components/parameters/common/widget/parameter-line-directory-items-input.d.ts +2 -1
- package/dist/components/parameters/common/widget/parameter-line-directory-items-input.js +4 -2
- package/dist/components/parameters/index.d.ts +1 -0
- package/dist/components/parameters/index.js +3 -5
- package/dist/components/parameters/loadflow/load-flow-parameters-inline.js +3 -6
- package/dist/components/parameters/loadflow/use-load-flow-parameters-form.js +3 -5
- package/dist/components/parameters/network-visualizations/network-visualizations-parameters-inline.js +2 -5
- package/dist/components/parameters/network-visualizations/use-network-visualizations-parameters-form.js +4 -12
- package/dist/components/parameters/pcc-min/index.d.ts +7 -0
- package/dist/components/parameters/pcc-min/index.js +4 -0
- package/dist/components/parameters/pcc-min/pcc-min-form-utils.d.ts +4 -0
- package/dist/components/parameters/pcc-min/pcc-min-form-utils.js +54 -0
- package/dist/components/parameters/pcc-min/pcc-min-parameters-form.d.ts +29 -0
- package/dist/components/parameters/pcc-min/pcc-min-parameters-form.js +114 -0
- package/dist/components/parameters/pcc-min/pcc-min-parameters-inline.d.ts +7 -0
- package/dist/components/parameters/pcc-min/pcc-min-parameters-inline.js +98 -0
- package/dist/components/parameters/pcc-min/use-pcc-min-parameters-form.d.ts +19 -0
- package/dist/components/parameters/pcc-min/use-pcc-min-parameters-form.js +104 -0
- package/dist/components/parameters/security-analysis/security-analysis-parameters-inline.js +2 -5
- package/dist/components/parameters/security-analysis/use-security-analysis-parameters-form.js +3 -5
- package/dist/components/parameters/sensi/sensitivity-analysis-parameters-inline.js +3 -9
- package/dist/components/parameters/sensi/use-sensitivity-analysis-parameters.js +4 -12
- package/dist/components/parameters/sensi/utils.d.ts +1 -1
- package/dist/components/parameters/sensi/utils.js +1 -3
- package/dist/components/parameters/short-circuit/short-circuit-parameters-inline.js +2 -5
- package/dist/components/parameters/short-circuit/use-short-circuit-parameters-form.js +5 -16
- package/dist/components/parameters/voltage-init/constants.d.ts +0 -4
- package/dist/components/parameters/voltage-init/constants.js +0 -8
- package/dist/components/parameters/voltage-init/index.js +1 -5
- package/dist/components/parameters/voltage-init/use-voltage-init-parameters-form.js +6 -13
- package/dist/components/parameters/voltage-init/voltage-init-form-utils.js +2 -1
- package/dist/components/parameters/voltage-init/voltage-init-parameters-inline.js +3 -8
- package/dist/components/parameters/voltage-init/voltage-init.type.d.ts +2 -6
- package/dist/components/parameters/voltage-init/voltage-limits-parameters.js +2 -1
- package/dist/hooks/use-parameters-backend.js +10 -20
- package/dist/hooks/usePredefinedProperties.js +2 -3
- package/dist/hooks/useSnackMessage.d.ts +1 -2
- package/dist/index.js +16 -5
- package/dist/services/index.d.ts +1 -1
- package/dist/services/index.js +4 -4
- package/dist/services/pcc-min.d.ts +7 -0
- package/dist/services/pcc-min.js +25 -0
- package/dist/services/utils.d.ts +0 -1
- package/dist/services/utils.js +7 -10
- package/dist/translations/en/businessErrorsEn.d.ts +18 -0
- package/dist/translations/en/businessErrorsEn.js +19 -1
- package/dist/translations/en/equipmentShortEn.js +3 -3
- package/dist/translations/en/parameters.d.ts +3 -0
- package/dist/translations/en/parameters.js +4 -1
- package/dist/translations/fr/businessErrorsFr.d.ts +18 -0
- package/dist/translations/fr/businessErrorsFr.js +19 -1
- package/dist/translations/fr/equipmentShortFr.js +3 -3
- package/dist/translations/fr/parameters.d.ts +3 -0
- package/dist/translations/fr/parameters.js +4 -1
- package/dist/utils/constants/filterConstant.d.ts +9 -0
- package/dist/utils/constants/filterConstant.js +10 -0
- package/dist/utils/constants/index.d.ts +1 -0
- package/dist/utils/constants/index.js +5 -0
- package/dist/utils/error.d.ts +4 -0
- package/dist/utils/error.js +28 -0
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.js +14 -0
- package/dist/utils/labelUtils.d.ts +8 -0
- package/dist/utils/labelUtils.js +17 -0
- package/dist/{services/businessErrorCode.d.ts → utils/types/CustomError.d.ts} +3 -1
- package/dist/utils/types/CustomError.js +20 -0
- package/dist/utils/types/index.d.ts +1 -0
- package/dist/utils/types/index.js +3 -0
- package/package.json +1 -1
- package/dist/services/businessErrorCode.js +0 -10
|
@@ -9,6 +9,7 @@ import "../../overflowableText/OverflowableText.js";
|
|
|
9
9
|
import "../../../utils/types/equipmentType.js";
|
|
10
10
|
import { updateParameter } from "../../../services/explore.js";
|
|
11
11
|
import "../../../utils/conversionUtils.js";
|
|
12
|
+
import { snackWithFallback } from "../../../utils/error.js";
|
|
12
13
|
import "@mui/icons-material";
|
|
13
14
|
import { ElementType } from "../../../utils/types/elementType.js";
|
|
14
15
|
import { setStudyNetworkVisualizationParameters } from "../../../services/study.js";
|
|
@@ -96,10 +97,7 @@ const useNetworkVisualizationParametersForm = ({
|
|
|
96
97
|
(formData) => {
|
|
97
98
|
if (studyUuid) {
|
|
98
99
|
setStudyNetworkVisualizationParameters(studyUuid, formData).catch((error) => {
|
|
99
|
-
snackError
|
|
100
|
-
messageTxt: error.message,
|
|
101
|
-
headerId: "updateNetworkVisualizationsParametersError"
|
|
102
|
-
});
|
|
100
|
+
snackWithFallback(snackError, error, { headerId: "updateNetworkVisualizationsParametersError" });
|
|
103
101
|
});
|
|
104
102
|
}
|
|
105
103
|
},
|
|
@@ -115,10 +113,7 @@ const useNetworkVisualizationParametersForm = ({
|
|
|
115
113
|
ElementType.NETWORK_VISUALIZATIONS_PARAMETERS,
|
|
116
114
|
formData[DESCRIPTION] ?? ""
|
|
117
115
|
).catch((error) => {
|
|
118
|
-
snackError
|
|
119
|
-
messageTxt: error.message,
|
|
120
|
-
headerId: "updateNetworkVisualizationsParametersError"
|
|
121
|
-
});
|
|
116
|
+
snackWithFallback(snackError, error, { headerId: "updateNetworkVisualizationsParametersError" });
|
|
122
117
|
});
|
|
123
118
|
}
|
|
124
119
|
},
|
|
@@ -132,10 +127,7 @@ const useNetworkVisualizationParametersForm = ({
|
|
|
132
127
|
getNetworkVisualizationsParameters(parametersUuid).then((params) => {
|
|
133
128
|
reset(params);
|
|
134
129
|
}).catch((error) => {
|
|
135
|
-
snackError
|
|
136
|
-
messageTxt: error.message,
|
|
137
|
-
headerId: "getNetworkVisualizationsParametersError"
|
|
138
|
-
});
|
|
130
|
+
snackWithFallback(snackError, error, { headerId: "getNetworkVisualizationsParametersError" });
|
|
139
131
|
}).finally(() => {
|
|
140
132
|
clearTimeout(timer);
|
|
141
133
|
setParamsLoading(false);
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2025, 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 https://mozilla.org/MPL/2.0/.
|
|
6
|
+
*/
|
|
7
|
+
export * from './pcc-min-parameters-inline';
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { PccMinParameters } from '../../../services';
|
|
2
|
+
export declare const fromPccMinParametersFormToParamValues: (newParams: Record<string, any>) => PccMinParameters | null;
|
|
3
|
+
export declare const fromPccMinParamsDataToFormValues: (parameters: PccMinParameters | null) => Record<string, any>;
|
|
4
|
+
export declare const fromStudyPccMinParamsDataToFormValues: (parameters: PccMinParameters | null) => Record<string, any>;
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { FILTERS, ID, FILTER_NAME, FILTER_ID } from "../../../utils/constants/filterConstant.js";
|
|
2
|
+
import "react/jsx-runtime";
|
|
3
|
+
import "react-intl";
|
|
4
|
+
import "@mui/material";
|
|
5
|
+
import "../../overflowableText/OverflowableText.js";
|
|
6
|
+
import "react";
|
|
7
|
+
import "react-hook-form";
|
|
8
|
+
import "../../../utils/types/equipmentType.js";
|
|
9
|
+
import "../../../utils/conversionUtils.js";
|
|
10
|
+
import "@mui/icons-material";
|
|
11
|
+
import "../../../utils/yupConfig.js";
|
|
12
|
+
import "localized-countries";
|
|
13
|
+
import "localized-countries/data/fr";
|
|
14
|
+
import "localized-countries/data/en";
|
|
15
|
+
import "notistack";
|
|
16
|
+
import "../../inputs/reactHookForm/provider/CustomFormProvider.js";
|
|
17
|
+
import "yup";
|
|
18
|
+
import "../../treeViewFinder/TreeViewFinder.js";
|
|
19
|
+
import { NAME } from "../../inputs/reactHookForm/constants.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 "../../inputs/reactHookForm/numbers/RangeInput.js";
|
|
26
|
+
import "@react-querybuilder/material";
|
|
27
|
+
import "../../filter/expert/expertFilterConstants.js";
|
|
28
|
+
import "../../inputs/reactQueryBuilder/CustomReactQueryBuilder.js";
|
|
29
|
+
import "uuid";
|
|
30
|
+
import "../../inputs/reactQueryBuilder/PropertyValueEditor.js";
|
|
31
|
+
import "react-querybuilder";
|
|
32
|
+
const fromPccMinParametersFormToParamValues = (newParams) => ({
|
|
33
|
+
filters: newParams[FILTERS]?.map((filter) => ({
|
|
34
|
+
filterId: filter[ID],
|
|
35
|
+
filterName: filter[NAME]
|
|
36
|
+
})) ?? []
|
|
37
|
+
});
|
|
38
|
+
const fromPccMinParamsDataToFormValues = (parameters) => ({
|
|
39
|
+
[FILTERS]: parameters?.[FILTERS]?.map((filter) => ({
|
|
40
|
+
[ID]: filter[FILTER_ID],
|
|
41
|
+
[NAME]: filter[FILTER_NAME]
|
|
42
|
+
})) ?? []
|
|
43
|
+
});
|
|
44
|
+
const fromStudyPccMinParamsDataToFormValues = (parameters) => ({
|
|
45
|
+
[FILTERS]: parameters?.[FILTERS]?.map((filter) => ({
|
|
46
|
+
[ID]: filter[FILTER_ID],
|
|
47
|
+
[NAME]: filter[FILTER_NAME]
|
|
48
|
+
})) ?? []
|
|
49
|
+
});
|
|
50
|
+
export {
|
|
51
|
+
fromPccMinParametersFormToParamValues,
|
|
52
|
+
fromPccMinParamsDataToFormValues,
|
|
53
|
+
fromStudyPccMinParamsDataToFormValues
|
|
54
|
+
};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { UsePccMinParametersFormReturn } from './use-pcc-min-parameters-form';
|
|
3
|
+
export declare const styles: {
|
|
4
|
+
readonly gridWithActions: (theme: import('@mui/material').Theme) => {
|
|
5
|
+
overflowY: "auto";
|
|
6
|
+
overflowX: "hidden";
|
|
7
|
+
paddingRight: string;
|
|
8
|
+
paddingTop: string;
|
|
9
|
+
paddingBottom: string;
|
|
10
|
+
flexGrow: number;
|
|
11
|
+
maxHeight: string;
|
|
12
|
+
};
|
|
13
|
+
readonly gridWithoutActions: (theme: import('@mui/material').Theme) => {
|
|
14
|
+
overflowY: "auto";
|
|
15
|
+
overflowX: "hidden";
|
|
16
|
+
paddingRight: string;
|
|
17
|
+
paddingTop: string;
|
|
18
|
+
paddingBottom: string;
|
|
19
|
+
flexGrow: number;
|
|
20
|
+
maxHeight: string;
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
interface PccMinParametersFormProps {
|
|
24
|
+
pccMinMethods: UsePccMinParametersFormReturn;
|
|
25
|
+
renderTitleFields?: () => ReactNode;
|
|
26
|
+
renderActions?: () => ReactNode;
|
|
27
|
+
}
|
|
28
|
+
export declare function PccMinParametersForm({ pccMinMethods, renderTitleFields, renderActions, }: Readonly<PccMinParametersFormProps>): import("react/jsx-runtime").JSX.Element;
|
|
29
|
+
export {};
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Box, Grid, LinearProgress } from "@mui/material";
|
|
3
|
+
import "react-intl";
|
|
4
|
+
import "../../overflowableText/OverflowableText.js";
|
|
5
|
+
import "react";
|
|
6
|
+
import "react-hook-form";
|
|
7
|
+
import { EquipmentType } from "../../../utils/types/equipmentType.js";
|
|
8
|
+
import { FILTERS } from "../../../utils/constants/filterConstant.js";
|
|
9
|
+
import "../../../utils/conversionUtils.js";
|
|
10
|
+
import "@mui/icons-material";
|
|
11
|
+
import { ElementType } from "../../../utils/types/elementType.js";
|
|
12
|
+
import "../../../utils/yupConfig.js";
|
|
13
|
+
import "localized-countries";
|
|
14
|
+
import "localized-countries/data/fr";
|
|
15
|
+
import "localized-countries/data/en";
|
|
16
|
+
import "notistack";
|
|
17
|
+
import { CustomFormProvider } from "../../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 "../../inputs/reactHookForm/numbers/RangeInput.js";
|
|
26
|
+
import "@react-querybuilder/material";
|
|
27
|
+
import "../../filter/expert/expertFilterConstants.js";
|
|
28
|
+
import "../../inputs/reactQueryBuilder/CustomReactQueryBuilder.js";
|
|
29
|
+
import "uuid";
|
|
30
|
+
import "../../inputs/reactQueryBuilder/PropertyValueEditor.js";
|
|
31
|
+
import "react-querybuilder";
|
|
32
|
+
import "../../dialogs/descriptionModificationDialog/DescriptionModificationDialog.js";
|
|
33
|
+
import "../../dialogs/elementSaveDialog/ElementSaveDialog.js";
|
|
34
|
+
import { ParameterLineDirectoryItemsInput } from "../common/widget/parameter-line-directory-items-input.js";
|
|
35
|
+
import "../common/widget/parameter-line-slider.js";
|
|
36
|
+
import "../common/limitreductions/columns-definitions.js";
|
|
37
|
+
const styles = {
|
|
38
|
+
gridWithActions: (theme) => ({
|
|
39
|
+
overflowY: "auto",
|
|
40
|
+
overflowX: "hidden",
|
|
41
|
+
paddingRight: theme.spacing(2),
|
|
42
|
+
paddingTop: theme.spacing(2),
|
|
43
|
+
paddingBottom: theme.spacing(1),
|
|
44
|
+
flexGrow: 1,
|
|
45
|
+
maxHeight: "85%"
|
|
46
|
+
}),
|
|
47
|
+
gridWithoutActions: (theme) => ({
|
|
48
|
+
overflowY: "auto",
|
|
49
|
+
overflowX: "hidden",
|
|
50
|
+
paddingRight: theme.spacing(2),
|
|
51
|
+
paddingTop: theme.spacing(2),
|
|
52
|
+
paddingBottom: theme.spacing(1),
|
|
53
|
+
flexGrow: 1,
|
|
54
|
+
maxHeight: "100%"
|
|
55
|
+
})
|
|
56
|
+
};
|
|
57
|
+
function PccMinParametersForm({
|
|
58
|
+
pccMinMethods,
|
|
59
|
+
renderTitleFields,
|
|
60
|
+
renderActions
|
|
61
|
+
}) {
|
|
62
|
+
const { formMethods, formSchema, paramsLoading } = pccMinMethods;
|
|
63
|
+
return /* @__PURE__ */ jsx(CustomFormProvider, { validationSchema: formSchema, ...formMethods, removeOptional: true, children: /* @__PURE__ */ jsxs(
|
|
64
|
+
Box,
|
|
65
|
+
{
|
|
66
|
+
sx: {
|
|
67
|
+
height: "100%",
|
|
68
|
+
position: "relative"
|
|
69
|
+
},
|
|
70
|
+
children: [
|
|
71
|
+
/* @__PURE__ */ jsxs(Grid, { item: true, container: true, sx: renderActions ? styles.gridWithActions : styles.gridWithoutActions, children: [
|
|
72
|
+
/* @__PURE__ */ jsx(Grid, { item: true, container: true, direction: "column", children: renderTitleFields?.() }),
|
|
73
|
+
paramsLoading ? /* @__PURE__ */ jsx(LinearProgress, {}) : /* @__PURE__ */ jsx(
|
|
74
|
+
Box,
|
|
75
|
+
{
|
|
76
|
+
sx: {
|
|
77
|
+
height: "100%",
|
|
78
|
+
width: "100%"
|
|
79
|
+
},
|
|
80
|
+
children: /* @__PURE__ */ jsx(Grid, { item: true, container: true, direction: "column", children: /* @__PURE__ */ jsx(
|
|
81
|
+
ParameterLineDirectoryItemsInput,
|
|
82
|
+
{
|
|
83
|
+
name: FILTERS,
|
|
84
|
+
equipmentTypes: [EquipmentType.VOLTAGE_LEVEL],
|
|
85
|
+
elementType: ElementType.FILTER,
|
|
86
|
+
label: "pccMinParamFilter",
|
|
87
|
+
hideErrorMessage: true,
|
|
88
|
+
allowMultiSelect: false
|
|
89
|
+
}
|
|
90
|
+
) })
|
|
91
|
+
}
|
|
92
|
+
)
|
|
93
|
+
] }),
|
|
94
|
+
renderActions && /* @__PURE__ */ jsx(
|
|
95
|
+
Grid,
|
|
96
|
+
{
|
|
97
|
+
item: true,
|
|
98
|
+
container: true,
|
|
99
|
+
direction: "column",
|
|
100
|
+
sx: {
|
|
101
|
+
position: "fixed",
|
|
102
|
+
bottom: "15px"
|
|
103
|
+
},
|
|
104
|
+
children: renderActions()
|
|
105
|
+
}
|
|
106
|
+
)
|
|
107
|
+
]
|
|
108
|
+
}
|
|
109
|
+
) });
|
|
110
|
+
}
|
|
111
|
+
export {
|
|
112
|
+
PccMinParametersForm,
|
|
113
|
+
styles
|
|
114
|
+
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { UUID } from 'node:crypto';
|
|
2
|
+
import { PccMinParameters } from '../../../services/pcc-min';
|
|
3
|
+
export declare function PccMinParametersInLine({ studyUuid, setHaveDirtyFields, pccMinParameters, }: Readonly<{
|
|
4
|
+
studyUuid: UUID | null;
|
|
5
|
+
setHaveDirtyFields: (isDirty: boolean) => void;
|
|
6
|
+
pccMinParameters: PccMinParameters | null;
|
|
7
|
+
}>): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useState, useCallback, useEffect } from "react";
|
|
3
|
+
import { Box, Grid } from "@mui/material";
|
|
4
|
+
import { FormattedMessage } from "react-intl";
|
|
5
|
+
import "../../../utils/types/equipmentType.js";
|
|
6
|
+
import "../../../utils/conversionUtils.js";
|
|
7
|
+
import "@mui/icons-material";
|
|
8
|
+
import "../../../utils/yupConfig.js";
|
|
9
|
+
import { updatePccMinParameters } from "../../../services/pcc-min.js";
|
|
10
|
+
import "localized-countries";
|
|
11
|
+
import "localized-countries/data/fr";
|
|
12
|
+
import "localized-countries/data/en";
|
|
13
|
+
import { useSnackMessage } from "../../../hooks/useSnackMessage.js";
|
|
14
|
+
import "react-hook-form";
|
|
15
|
+
import "../../overflowableText/OverflowableText.js";
|
|
16
|
+
import "../../inputs/reactHookForm/provider/CustomFormProvider.js";
|
|
17
|
+
import { SubmitButton } from "../../inputs/reactHookForm/utils/SubmitButton.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 "../../inputs/reactHookForm/numbers/RangeInput.js";
|
|
26
|
+
import { PopupConfirmationDialog } from "../../dialogs/popupConfirmationDialog/PopupConfirmationDialog.js";
|
|
27
|
+
import "@react-querybuilder/material";
|
|
28
|
+
import "../../filter/expert/expertFilterConstants.js";
|
|
29
|
+
import "../../inputs/reactQueryBuilder/CustomReactQueryBuilder.js";
|
|
30
|
+
import "uuid";
|
|
31
|
+
import "../../inputs/reactQueryBuilder/PropertyValueEditor.js";
|
|
32
|
+
import "react-querybuilder";
|
|
33
|
+
import { LabelledButton } from "../common/parameters.js";
|
|
34
|
+
import "../../dialogs/descriptionModificationDialog/DescriptionModificationDialog.js";
|
|
35
|
+
import "../../dialogs/elementSaveDialog/ElementSaveDialog.js";
|
|
36
|
+
import "../common/widget/parameter-line-slider.js";
|
|
37
|
+
import "../common/limitreductions/columns-definitions.js";
|
|
38
|
+
import { UsePccMinParametersForm } from "./use-pcc-min-parameters-form.js";
|
|
39
|
+
import { PccMinParametersForm } from "./pcc-min-parameters-form.js";
|
|
40
|
+
function PccMinParametersInLine({
|
|
41
|
+
studyUuid,
|
|
42
|
+
setHaveDirtyFields,
|
|
43
|
+
pccMinParameters
|
|
44
|
+
}) {
|
|
45
|
+
const pccMinMethods = UsePccMinParametersForm({
|
|
46
|
+
parametersUuid: null,
|
|
47
|
+
studyUuid,
|
|
48
|
+
parameters: pccMinParameters
|
|
49
|
+
});
|
|
50
|
+
const [openResetConfirmation, setOpenResetConfirmation] = useState(false);
|
|
51
|
+
const { snackError } = useSnackMessage();
|
|
52
|
+
const { formState, handleSubmit } = pccMinMethods.formMethods;
|
|
53
|
+
const resetPccMinParameters = useCallback(() => {
|
|
54
|
+
updatePccMinParameters(studyUuid, null).catch((error) => {
|
|
55
|
+
snackError({
|
|
56
|
+
messageTxt: error.message,
|
|
57
|
+
headerId: "updatePccMinParametersError"
|
|
58
|
+
});
|
|
59
|
+
});
|
|
60
|
+
setOpenResetConfirmation(false);
|
|
61
|
+
}, [studyUuid, snackError]);
|
|
62
|
+
const handleResetClick = useCallback(() => {
|
|
63
|
+
setOpenResetConfirmation(true);
|
|
64
|
+
}, []);
|
|
65
|
+
const handleCancelReset = useCallback(() => {
|
|
66
|
+
setOpenResetConfirmation(false);
|
|
67
|
+
}, []);
|
|
68
|
+
useEffect(() => {
|
|
69
|
+
setHaveDirtyFields(!!Object.keys(formState.dirtyFields).length);
|
|
70
|
+
}, [formState, setHaveDirtyFields]);
|
|
71
|
+
return /* @__PURE__ */ jsx(
|
|
72
|
+
PccMinParametersForm,
|
|
73
|
+
{
|
|
74
|
+
pccMinMethods,
|
|
75
|
+
renderActions: () => {
|
|
76
|
+
return /* @__PURE__ */ jsxs(Box, { children: [
|
|
77
|
+
/* @__PURE__ */ jsxs(Grid, { container: true, item: true, children: [
|
|
78
|
+
/* @__PURE__ */ jsx(LabelledButton, { callback: handleResetClick, label: "resetToDefault" }),
|
|
79
|
+
/* @__PURE__ */ jsx(SubmitButton, { onClick: handleSubmit(pccMinMethods.onSaveInline), variant: "outlined", children: /* @__PURE__ */ jsx(FormattedMessage, { id: "validate" }) })
|
|
80
|
+
] }),
|
|
81
|
+
openResetConfirmation && /* @__PURE__ */ jsx(
|
|
82
|
+
PopupConfirmationDialog,
|
|
83
|
+
{
|
|
84
|
+
message: "resetParamsConfirmation",
|
|
85
|
+
validateButtonLabel: "validate",
|
|
86
|
+
openConfirmationPopup: openResetConfirmation,
|
|
87
|
+
setOpenConfirmationPopup: handleCancelReset,
|
|
88
|
+
handlePopupConfirmation: resetPccMinParameters
|
|
89
|
+
}
|
|
90
|
+
)
|
|
91
|
+
] });
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
);
|
|
95
|
+
}
|
|
96
|
+
export {
|
|
97
|
+
PccMinParametersInLine
|
|
98
|
+
};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { UseFormReturn } from 'react-hook-form';
|
|
2
|
+
import { ObjectSchema } from 'yup';
|
|
3
|
+
import { UUID } from 'node:crypto';
|
|
4
|
+
import { PccMinParameters } from '../../../services/pcc-min';
|
|
5
|
+
export interface UsePccMinParametersFormReturn {
|
|
6
|
+
formMethods: UseFormReturn;
|
|
7
|
+
formSchema: ObjectSchema<any>;
|
|
8
|
+
paramsLoading: boolean;
|
|
9
|
+
onSaveInline: (formData: Record<string, any>) => void;
|
|
10
|
+
}
|
|
11
|
+
type UsePccMinParametersFormProps = {
|
|
12
|
+
parametersUuid: UUID | null;
|
|
13
|
+
name: string | null;
|
|
14
|
+
description: string | null;
|
|
15
|
+
studyUuid: UUID | null;
|
|
16
|
+
parameters: PccMinParameters | null;
|
|
17
|
+
};
|
|
18
|
+
export declare const UsePccMinParametersForm: ({ parametersUuid, studyUuid, parameters, }: UsePccMinParametersFormProps) => UsePccMinParametersFormReturn;
|
|
19
|
+
export {};
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { useForm } from "react-hook-form";
|
|
2
|
+
import { yupResolver } from "@hookform/resolvers/yup";
|
|
3
|
+
import { useState, useMemo, useCallback, useEffect } from "react";
|
|
4
|
+
import "../../../utils/yupConfig.js";
|
|
5
|
+
import { fromPccMinParametersFormToParamValues, fromPccMinParamsDataToFormValues, fromStudyPccMinParamsDataToFormValues } from "./pcc-min-form-utils.js";
|
|
6
|
+
import "react/jsx-runtime";
|
|
7
|
+
import "react-intl";
|
|
8
|
+
import "../../../utils/types/equipmentType.js";
|
|
9
|
+
import { FILTERS, ID } from "../../../utils/constants/filterConstant.js";
|
|
10
|
+
import "../../../utils/conversionUtils.js";
|
|
11
|
+
import "@mui/icons-material";
|
|
12
|
+
import { updatePccMinParameters, getPccMinStudyParameters } from "../../../services/pcc-min.js";
|
|
13
|
+
import "@mui/material";
|
|
14
|
+
import "localized-countries";
|
|
15
|
+
import "localized-countries/data/fr";
|
|
16
|
+
import "localized-countries/data/en";
|
|
17
|
+
import { useSnackMessage } from "../../../hooks/useSnackMessage.js";
|
|
18
|
+
import "../../overflowableText/OverflowableText.js";
|
|
19
|
+
import "../../inputs/reactHookForm/provider/CustomFormProvider.js";
|
|
20
|
+
import * as yup from "yup";
|
|
21
|
+
import "../../treeViewFinder/TreeViewFinder.js";
|
|
22
|
+
import { NAME } from "../../inputs/reactHookForm/constants.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 "@react-querybuilder/material";
|
|
30
|
+
import "../../filter/expert/expertFilterConstants.js";
|
|
31
|
+
import "../../inputs/reactQueryBuilder/CustomReactQueryBuilder.js";
|
|
32
|
+
import "uuid";
|
|
33
|
+
import "../../inputs/reactQueryBuilder/PropertyValueEditor.js";
|
|
34
|
+
import "react-querybuilder";
|
|
35
|
+
const UsePccMinParametersForm = ({
|
|
36
|
+
parametersUuid,
|
|
37
|
+
studyUuid,
|
|
38
|
+
parameters
|
|
39
|
+
}) => {
|
|
40
|
+
const [paramsLoading, setParamsLoading] = useState(false);
|
|
41
|
+
const { snackError } = useSnackMessage();
|
|
42
|
+
const formSchema = useMemo(() => {
|
|
43
|
+
return yup.object({
|
|
44
|
+
[FILTERS]: yup.array().of(
|
|
45
|
+
yup.object().shape({
|
|
46
|
+
[ID]: yup.string().required(),
|
|
47
|
+
[NAME]: yup.string().required()
|
|
48
|
+
})
|
|
49
|
+
)
|
|
50
|
+
});
|
|
51
|
+
}, []);
|
|
52
|
+
const formMethods = useForm({
|
|
53
|
+
defaultValues: {
|
|
54
|
+
[FILTERS]: []
|
|
55
|
+
},
|
|
56
|
+
resolver: yupResolver(formSchema)
|
|
57
|
+
});
|
|
58
|
+
const { reset } = formMethods;
|
|
59
|
+
const onSaveInline = useCallback(
|
|
60
|
+
(formData) => {
|
|
61
|
+
if (studyUuid) {
|
|
62
|
+
updatePccMinParameters(studyUuid, fromPccMinParametersFormToParamValues(formData)).catch((error) => {
|
|
63
|
+
snackError({
|
|
64
|
+
messageTxt: error.message,
|
|
65
|
+
headerId: "updatePccMinParametersError"
|
|
66
|
+
});
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
[snackError, studyUuid]
|
|
71
|
+
);
|
|
72
|
+
useEffect(() => {
|
|
73
|
+
if (parametersUuid) {
|
|
74
|
+
const timer = setTimeout(() => {
|
|
75
|
+
setParamsLoading(true);
|
|
76
|
+
}, 700);
|
|
77
|
+
getPccMinStudyParameters(parametersUuid).then((params) => {
|
|
78
|
+
reset(fromPccMinParamsDataToFormValues(params));
|
|
79
|
+
}).catch((error) => {
|
|
80
|
+
snackError({
|
|
81
|
+
messageTxt: error.message,
|
|
82
|
+
headerId: "paramsRetrievingError"
|
|
83
|
+
});
|
|
84
|
+
}).finally(() => {
|
|
85
|
+
clearTimeout(timer);
|
|
86
|
+
setParamsLoading(false);
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
}, [parametersUuid, reset, snackError]);
|
|
90
|
+
useEffect(() => {
|
|
91
|
+
if (parameters) {
|
|
92
|
+
reset(fromStudyPccMinParamsDataToFormValues(parameters));
|
|
93
|
+
}
|
|
94
|
+
}, [parameters, reset]);
|
|
95
|
+
return {
|
|
96
|
+
formMethods,
|
|
97
|
+
formSchema,
|
|
98
|
+
paramsLoading,
|
|
99
|
+
onSaveInline
|
|
100
|
+
};
|
|
101
|
+
};
|
|
102
|
+
export {
|
|
103
|
+
UsePccMinParametersForm
|
|
104
|
+
};
|
|
@@ -3,6 +3,7 @@ import { useState, useCallback, useEffect } from "react";
|
|
|
3
3
|
import { Box, Grid } from "@mui/material";
|
|
4
4
|
import { useIntl, FormattedMessage } from "react-intl";
|
|
5
5
|
import "../../../utils/conversionUtils.js";
|
|
6
|
+
import { snackWithFallback } from "../../../utils/error.js";
|
|
6
7
|
import "@mui/icons-material";
|
|
7
8
|
import { ElementType } from "../../../utils/types/elementType.js";
|
|
8
9
|
import { mergeSx } from "../../../utils/styles.js";
|
|
@@ -90,11 +91,7 @@ function SecurityAnalysisParametersInline({
|
|
|
90
91
|
keepDefaultValues: true
|
|
91
92
|
});
|
|
92
93
|
}).catch((error) => {
|
|
93
|
-
|
|
94
|
-
snackError({
|
|
95
|
-
messageTxt: error.message,
|
|
96
|
-
headerId: "paramsRetrievingError"
|
|
97
|
-
});
|
|
94
|
+
snackWithFallback(snackError, error, { headerId: "paramsRetrievingError" });
|
|
98
95
|
});
|
|
99
96
|
}
|
|
100
97
|
setOpenSelectParameterDialog(false);
|
package/dist/components/parameters/security-analysis/use-security-analysis-parameters-form.js
CHANGED
|
@@ -2,6 +2,7 @@ import { useForm } from "react-hook-form";
|
|
|
2
2
|
import { useState, useMemo, useCallback, useEffect } from "react";
|
|
3
3
|
import { yupResolver } from "@hookform/resolvers/yup";
|
|
4
4
|
import "../../../utils/conversionUtils.js";
|
|
5
|
+
import { snackWithFallback } from "../../../utils/error.js";
|
|
5
6
|
import "react/jsx-runtime";
|
|
6
7
|
import "@mui/icons-material";
|
|
7
8
|
import { ElementType } from "../../../utils/types/elementType.js";
|
|
@@ -118,11 +119,8 @@ const useSecurityAnalysisParametersForm = (parametersBackend, parametersUuid, na
|
|
|
118
119
|
formData[NAME],
|
|
119
120
|
ElementType.SECURITY_ANALYSIS_PARAMETERS,
|
|
120
121
|
formData[DESCRIPTION] ?? ""
|
|
121
|
-
).catch((
|
|
122
|
-
snackError
|
|
123
|
-
messageTxt: errmsg,
|
|
124
|
-
headerId: "updateSecurityAnalysisParametersError"
|
|
125
|
-
});
|
|
122
|
+
).catch((error) => {
|
|
123
|
+
snackWithFallback(snackError, error, { headerId: "updateSecurityAnalysisParametersError" });
|
|
126
124
|
});
|
|
127
125
|
}
|
|
128
126
|
},
|
|
@@ -3,6 +3,7 @@ import { Grid, DialogActions, Button } from "@mui/material";
|
|
|
3
3
|
import { useState, useCallback, useEffect } from "react";
|
|
4
4
|
import { useIntl, FormattedMessage } from "react-intl";
|
|
5
5
|
import "../../../utils/conversionUtils.js";
|
|
6
|
+
import { snackWithFallback } from "../../../utils/error.js";
|
|
6
7
|
import "@mui/icons-material";
|
|
7
8
|
import { ElementType } from "../../../utils/types/elementType.js";
|
|
8
9
|
import { mergeSx } from "../../../utils/styles.js";
|
|
@@ -74,11 +75,7 @@ function SensitivityAnalysisParametersInline({
|
|
|
74
75
|
});
|
|
75
76
|
sensitivityAnalysisMethods.initRowsCount();
|
|
76
77
|
}).catch((error) => {
|
|
77
|
-
|
|
78
|
-
snackError({
|
|
79
|
-
messageTxt: error.message,
|
|
80
|
-
headerId: "paramsRetrievingError"
|
|
81
|
-
});
|
|
78
|
+
snackWithFallback(snackError, error, { headerId: "paramsRetrievingError" });
|
|
82
79
|
});
|
|
83
80
|
}
|
|
84
81
|
setOpenSelectParameterDialog(false);
|
|
@@ -87,10 +84,7 @@ function SensitivityAnalysisParametersInline({
|
|
|
87
84
|
);
|
|
88
85
|
const resetSensitivityAnalysisParameters = useCallback(() => {
|
|
89
86
|
setSensitivityAnalysisParameters(studyUuid, null).catch((error) => {
|
|
90
|
-
snackError
|
|
91
|
-
messageTxt: error.message,
|
|
92
|
-
headerId: "paramsChangingError"
|
|
93
|
-
});
|
|
87
|
+
snackWithFallback(snackError, error, { headerId: "paramsChangingError" });
|
|
94
88
|
});
|
|
95
89
|
}, [studyUuid, snackError]);
|
|
96
90
|
const clear = useCallback(() => {
|
|
@@ -9,6 +9,7 @@ import "../../../utils/types/equipmentType.js";
|
|
|
9
9
|
import { updateParameter } from "../../../services/explore.js";
|
|
10
10
|
import { FieldConstants } from "../../../utils/constants/fieldConstants.js";
|
|
11
11
|
import "../../../utils/conversionUtils.js";
|
|
12
|
+
import { snackWithFallback } from "../../../utils/error.js";
|
|
12
13
|
import "@mui/icons-material";
|
|
13
14
|
import { ElementType } from "../../../utils/types/elementType.js";
|
|
14
15
|
import "../../../utils/yupConfig.js";
|
|
@@ -157,10 +158,7 @@ const useSensitivityAnalysisParametersForm = ({
|
|
|
157
158
|
});
|
|
158
159
|
}).catch((error) => {
|
|
159
160
|
setLaunchLoader(false);
|
|
160
|
-
snackError
|
|
161
|
-
messageTxt: error.message,
|
|
162
|
-
headerId: "getSensitivityAnalysisFactorsCountError"
|
|
163
|
-
});
|
|
161
|
+
snackWithFallback(snackError, error, { headerId: "getSensitivityAnalysisFactorsCountError" });
|
|
164
162
|
});
|
|
165
163
|
},
|
|
166
164
|
[snackError, studyUuid, currentRootNetworkUuid, formatFilteredParams, setValue, getResultCount, currentNodeUuid]
|
|
@@ -332,10 +330,7 @@ const useSensitivityAnalysisParametersForm = ({
|
|
|
332
330
|
updateParameters(formattedParams);
|
|
333
331
|
initRowsCount();
|
|
334
332
|
}).catch((error) => {
|
|
335
|
-
snackError
|
|
336
|
-
messageTxt: error.message,
|
|
337
|
-
headerId: "updateSensitivityAnalysisParametersError"
|
|
338
|
-
});
|
|
333
|
+
snackWithFallback(snackError, error, { headerId: "updateSensitivityAnalysisParametersError" });
|
|
339
334
|
});
|
|
340
335
|
},
|
|
341
336
|
[setSensitivityAnalysisParams, snackError, studyUuid, formatNewParams, initRowsCount, updateParameters]
|
|
@@ -350,10 +345,7 @@ const useSensitivityAnalysisParametersForm = ({
|
|
|
350
345
|
ElementType.SENSITIVITY_PARAMETERS,
|
|
351
346
|
formData[FieldConstants.DESCRIPTION] ?? ""
|
|
352
347
|
).catch((error) => {
|
|
353
|
-
snackError
|
|
354
|
-
messageTxt: error.message,
|
|
355
|
-
headerId: "updateSensitivityAnalysisParametersError"
|
|
356
|
-
});
|
|
348
|
+
snackWithFallback(snackError, error, { headerId: "updateSensitivityAnalysisParametersError" });
|
|
357
349
|
});
|
|
358
350
|
}
|
|
359
351
|
},
|
|
@@ -2,7 +2,7 @@ import { default as yup } from '../../../utils/yupConfig';
|
|
|
2
2
|
import { CONTINGENCIES, HVDC_LINES, INJECTIONS, MONITORED_BRANCHES, PSTS } from './constants';
|
|
3
3
|
import { DistributionType, SensitivityType } from '../../../utils';
|
|
4
4
|
import { NAME } from '../../inputs';
|
|
5
|
-
import { ID } from '
|
|
5
|
+
import { ID } from '../../../utils/constants/filterConstant';
|
|
6
6
|
export declare const getSensiHVDCsFormSchema: () => {
|
|
7
7
|
sensitivityHVDC: yup.ArraySchema<{
|
|
8
8
|
contingencies?: {
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import "../../../utils/yupConfig.js";
|
|
2
2
|
import { FLOW_VOLTAGE_SENSITIVITY_VALUE_THRESHOLD, ANGLE_FLOW_SENSITIVITY_VALUE_THRESHOLD, FLOW_FLOW_SENSITIVITY_VALUE_THRESHOLD, PARAMETER_SENSI_NODES, EQUIPMENTS_IN_VOLTAGE_REGULATION, SUPERVISED_VOLTAGE_LEVELS, PARAMETER_SENSI_PST, PSTS, ACTIVATED, PARAMETER_SENSI_HVDC, HVDC_LINES, PARAMETER_SENSI_INJECTION, INJECTIONS, PARAMETER_SENSI_INJECTIONS_SET, DISTRIBUTION_TYPE, COUNT, CONTINGENCIES, SENSITIVITY_TYPE, MONITORED_BRANCHES, CONTAINER_NAME, CONTAINER_ID } from "./constants.js";
|
|
3
|
+
import { ID } from "../../../utils/constants/filterConstant.js";
|
|
3
4
|
import "../../../utils/conversionUtils.js";
|
|
4
5
|
import "react/jsx-runtime";
|
|
5
6
|
import "@mui/icons-material";
|
|
@@ -37,9 +38,6 @@ import "../common/widget/parameter-line-slider.js";
|
|
|
37
38
|
import "../common/limitreductions/columns-definitions.js";
|
|
38
39
|
import "../../filter/HeaderFilterForm.js";
|
|
39
40
|
import { getNameElementEditorSchema } from "../common/name-element-editor/name-element-editor-utils.js";
|
|
40
|
-
import { ID } from "../voltage-init/constants.js";
|
|
41
|
-
import "@hookform/resolvers/yup";
|
|
42
|
-
import "@hello-pangea/dnd";
|
|
43
41
|
const getMonitoredBranchesSchema = () => {
|
|
44
42
|
return {
|
|
45
43
|
[MONITORED_BRANCHES]: yup.array().of(
|