@gridsuite/commons-ui 0.207.0 → 0.208.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/dialogs/modifyElementSelection/ModifyElementSelection.js +1 -1
- package/dist/components/directoryItemSelector/DirectoryItemSelector.js +1 -1
- package/dist/components/directoryItemSelector/utils.js +1 -1
- package/dist/components/inputs/reactHookForm/DirectoryItemsInput.js +1 -1
- package/dist/components/parameters/common/contingency-table/columns-definitions.d.ts +2 -2
- package/dist/components/parameters/common/contingency-table/columns-definitions.js +10 -8
- package/dist/components/parameters/common/contingency-table/contingency-table.js +4 -4
- package/dist/components/parameters/common/contingency-table/types.d.ts +6 -1
- package/dist/components/parameters/pcc-min/pcc-min-form-utils.d.ts +5 -4
- package/dist/components/parameters/pcc-min/pcc-min-form-utils.js +5 -1
- package/dist/components/parameters/pcc-min/pcc-min-parameters-inline.d.ts +2 -2
- package/dist/components/parameters/pcc-min/pcc-min-parameters-inline.js +3 -2
- package/dist/components/parameters/pcc-min/use-pcc-min-parameters-form.d.ts +2 -2
- package/dist/components/parameters/pcc-min/use-pcc-min-parameters-form.js +9 -7
- package/dist/components/parameters/security-analysis/columns-definitions.d.ts +2 -2
- package/dist/components/parameters/security-analysis/security-analysis-parameters-inline.js +3 -2
- package/dist/components/parameters/security-analysis/security-analysis-parameters-selector.d.ts +2 -2
- package/dist/components/parameters/security-analysis/types.d.ts +8 -3
- package/dist/components/parameters/security-analysis/types.js +42 -1
- package/dist/components/parameters/security-analysis/use-security-analysis-parameters-form.d.ts +4 -4
- package/dist/components/parameters/security-analysis/use-security-analysis-parameters-form.js +2 -1
- package/dist/components/parameters/sensi/sensitivity-analysis-parameters-dialog.js +1 -1
- package/dist/components/parameters/sensi/sensitivity-analysis-parameters-inline.js +6 -3
- package/dist/components/parameters/sensi/use-sensitivity-analysis-parameters.d.ts +4 -4
- package/dist/components/parameters/sensi/use-sensitivity-analysis-parameters.js +3 -2
- package/dist/hooks/use-unique-name-validation.js +1 -1
- package/dist/index.js +17 -2
- package/dist/services/directory.d.ts +2 -1
- package/dist/services/directory.js +11 -0
- package/dist/services/index.d.ts +1 -0
- package/dist/services/index.js +11 -1
- package/dist/services/pcc-min.d.ts +4 -7
- package/dist/services/pcc-min.js +8 -5
- package/dist/services/security-analysis.d.ts +5 -4
- package/dist/services/security-analysis.js +7 -4
- package/dist/services/sensitivity-analysis.d.ts +5 -6
- package/dist/services/sensitivity-analysis.js +13 -6
- package/dist/utils/index.js +6 -1
- package/dist/utils/types/index.d.ts +1 -0
- package/dist/utils/types/index.js +7 -2
- package/dist/utils/types/parameters.type.d.ts +3 -3
- package/dist/utils/types/pcc-min.type.d.ts +10 -0
- package/dist/utils/types/pcc-min.type.js +31 -0
- package/dist/utils/types/sensitivity-analysis.type.d.ts +28 -23
- package/dist/utils/types/sensitivity-analysis.type.js +136 -1
- package/package.json +1 -1
|
@@ -9,8 +9,8 @@ import { DirectoryItemSelector } from "../../directoryItemSelector/DirectoryItem
|
|
|
9
9
|
import { ElementType } from "../../../utils/types/elementType.js";
|
|
10
10
|
import "../../../utils/conversionUtils.js";
|
|
11
11
|
import "../../../utils/types/equipmentType.js";
|
|
12
|
-
import "../../../utils/yupConfig.js";
|
|
13
12
|
import { fetchDirectoryElementPath } from "../../../services/directory.js";
|
|
13
|
+
import "../../../utils/yupConfig.js";
|
|
14
14
|
function ModifyElementSelection(props) {
|
|
15
15
|
const intl = useIntl();
|
|
16
16
|
const {
|
|
@@ -5,11 +5,11 @@ import { snackWithFallback } from "../../utils/error.js";
|
|
|
5
5
|
import { arraysContainIdenticalStrings } from "../../utils/functions.js";
|
|
6
6
|
import { ElementType } from "../../utils/types/elementType.js";
|
|
7
7
|
import "../../utils/types/equipmentType.js";
|
|
8
|
+
import { fetchRootFolders, fetchDirectoryContent } from "../../services/directory.js";
|
|
8
9
|
import { getFileIcon } from "../../utils/mapper/getFileIcon.js";
|
|
9
10
|
import "../../utils/yupConfig.js";
|
|
10
11
|
import { TreeViewFinder } from "../treeViewFinder/TreeViewFinder.js";
|
|
11
12
|
import "react-intl";
|
|
12
|
-
import { fetchRootFolders, fetchDirectoryContent } from "../../services/directory.js";
|
|
13
13
|
import { fetchElementsInfos } from "../../services/explore.js";
|
|
14
14
|
import "@mui/material";
|
|
15
15
|
import "localized-countries";
|
|
@@ -2,11 +2,11 @@ import { LAST_SELECTED_DIRECTORY, COMMON_APP_NAME } from "../../utils/constants/
|
|
|
2
2
|
import "../../utils/conversionUtils.js";
|
|
3
3
|
import { ElementType } from "../../utils/types/elementType.js";
|
|
4
4
|
import "../../utils/types/equipmentType.js";
|
|
5
|
+
import { fetchDirectoryElementPath } from "../../services/directory.js";
|
|
5
6
|
import "react/jsx-runtime";
|
|
6
7
|
import "@mui/icons-material";
|
|
7
8
|
import "../../utils/yupConfig.js";
|
|
8
9
|
import { updateConfigParameter } from "../../services/config.js";
|
|
9
|
-
import { fetchDirectoryElementPath } from "../../services/directory.js";
|
|
10
10
|
function getLastSelectedDirectoryId() {
|
|
11
11
|
const lastSelectedDirId = localStorage.getItem(LAST_SELECTED_DIRECTORY);
|
|
12
12
|
if (!lastSelectedDirId || lastSelectedDirId === "null") {
|
|
@@ -12,10 +12,10 @@ import { MidFormError } from "./errorManagement/MidFormError.js";
|
|
|
12
12
|
import "../../../utils/conversionUtils.js";
|
|
13
13
|
import "../../../utils/types/equipmentType.js";
|
|
14
14
|
import { ArrayAction } from "../../../utils/types/types.js";
|
|
15
|
+
import { fetchDirectoryElementPath } from "../../../services/directory.js";
|
|
15
16
|
import { getEquipmentTypeShortLabel } from "../../../utils/labelUtils.js";
|
|
16
17
|
import { mergeSx } from "../../../utils/styles.js";
|
|
17
18
|
import "../../../utils/yupConfig.js";
|
|
18
|
-
import { fetchDirectoryElementPath } from "../../../services/directory.js";
|
|
19
19
|
import "localized-countries";
|
|
20
20
|
import "localized-countries/data/fr";
|
|
21
21
|
import "localized-countries/data/en";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { FieldValues } from 'react-hook-form';
|
|
2
2
|
import { default as yup } from '../../../../utils/yupConfig';
|
|
3
|
-
import {
|
|
3
|
+
import { ContingencyListsInfosEnriched } from './types';
|
|
4
4
|
import { DndColumn } from '../../../dnd-table';
|
|
5
5
|
export declare const COLUMNS_DEFINITIONS_CONTINGENCY_LISTS_INFOS: DndColumn[];
|
|
6
6
|
export declare const getContingencyListsInfosFormSchema: () => yup.ObjectSchema<{
|
|
@@ -15,7 +15,7 @@ export declare const getContingencyListsInfosFormSchema: () => yup.ObjectSchema<
|
|
|
15
15
|
}, yup.AnyObject, {
|
|
16
16
|
contingencyListsInfos: "";
|
|
17
17
|
}, "">;
|
|
18
|
-
export declare const toFormValuesContingencyListsInfos: (contingencyListsInfos:
|
|
18
|
+
export declare const toFormValuesContingencyListsInfos: (contingencyListsInfos: ContingencyListsInfosEnriched[]) => {
|
|
19
19
|
contingencyListsInfos: {
|
|
20
20
|
contingencyLists: {
|
|
21
21
|
name: string;
|
|
@@ -90,14 +90,16 @@ const getContingencyListsInfosFormSchema = () => {
|
|
|
90
90
|
};
|
|
91
91
|
const toFormValuesContingencyListsInfos = (contingencyListsInfos) => {
|
|
92
92
|
return {
|
|
93
|
-
[CONTINGENCY_LISTS_INFOS]: contingencyListsInfos?.map(
|
|
94
|
-
|
|
95
|
-
[
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
93
|
+
[CONTINGENCY_LISTS_INFOS]: contingencyListsInfos?.map(
|
|
94
|
+
(contingencyListInfos) => ({
|
|
95
|
+
[CONTINGENCY_LISTS]: contingencyListInfos[CONTINGENCY_LISTS]?.map((c) => ({
|
|
96
|
+
[NAME]: c[NAME],
|
|
97
|
+
[ID]: c[ID]
|
|
98
|
+
})),
|
|
99
|
+
[DESCRIPTION]: contingencyListInfos[DESCRIPTION],
|
|
100
|
+
[ACTIVATED]: contingencyListInfos[ACTIVATED]
|
|
101
|
+
})
|
|
102
|
+
)
|
|
101
103
|
};
|
|
102
104
|
};
|
|
103
105
|
const isValidContingencyRow = (row) => {
|
|
@@ -3,20 +3,20 @@ import { Grid, Alert, CircularProgress } from "@mui/material";
|
|
|
3
3
|
import { useState, useCallback, useMemo, useEffect } from "react";
|
|
4
4
|
import { useIntl, FormattedMessage } from "react-intl";
|
|
5
5
|
import { useFormContext } from "react-hook-form";
|
|
6
|
+
import { ACTIVATED, ID } from "../parameter-table-field/constants.js";
|
|
7
|
+
import { ParameterTableField } from "../parameter-table-field/parameter-table-field.js";
|
|
8
|
+
import { COLUMNS_DEFINITIONS_CONTINGENCY_LISTS_INFOS, isValidContingencyRow } from "./columns-definitions.js";
|
|
6
9
|
import "../../../../utils/conversionUtils.js";
|
|
7
10
|
import { snackWithFallback } from "../../../../utils/error.js";
|
|
8
11
|
import "../../../../utils/types/equipmentType.js";
|
|
12
|
+
import { DEFAULT_TIMEOUT_MS, IGNORE_SIGNAL } from "../../../../services/utils.js";
|
|
9
13
|
import "@mui/icons-material";
|
|
10
14
|
import "../../../../utils/yupConfig.js";
|
|
11
|
-
import { DEFAULT_TIMEOUT_MS, IGNORE_SIGNAL } from "../../../../services/utils.js";
|
|
12
15
|
import "localized-countries";
|
|
13
16
|
import "localized-countries/data/fr";
|
|
14
17
|
import "localized-countries/data/en";
|
|
15
18
|
import { useSnackMessage } from "../../../../hooks/useSnackMessage.js";
|
|
16
|
-
import { ACTIVATED, ID } from "../parameter-table-field/constants.js";
|
|
17
|
-
import { ParameterTableField } from "../parameter-table-field/parameter-table-field.js";
|
|
18
19
|
import { CONTINGENCY_LISTS } from "../constants.js";
|
|
19
|
-
import { COLUMNS_DEFINITIONS_CONTINGENCY_LISTS_INFOS, isValidContingencyRow } from "./columns-definitions.js";
|
|
20
20
|
const styles = {
|
|
21
21
|
alert: { color: "text.primary", paddingTop: 0, paddingBottom: 0 }
|
|
22
22
|
};
|
|
@@ -5,11 +5,16 @@ export interface IdName {
|
|
|
5
5
|
[ID]: UUID;
|
|
6
6
|
[NAME]: string;
|
|
7
7
|
}
|
|
8
|
-
export interface
|
|
8
|
+
export interface ContingencyListsInfosEnriched {
|
|
9
9
|
[CONTINGENCY_LISTS]: IdName[];
|
|
10
10
|
[DESCRIPTION]: string;
|
|
11
11
|
[ACTIVATED]: boolean;
|
|
12
12
|
}
|
|
13
|
+
export interface ContingencyListsInfos {
|
|
14
|
+
[CONTINGENCY_LISTS]: UUID[];
|
|
15
|
+
[DESCRIPTION]: string;
|
|
16
|
+
[ACTIVATED]: boolean;
|
|
17
|
+
}
|
|
13
18
|
export interface ContingencyCount {
|
|
14
19
|
contingencies: number;
|
|
15
20
|
notFoundElements: number;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { PccMinParameters } from '../../../
|
|
2
|
-
export declare const
|
|
3
|
-
export declare const
|
|
4
|
-
export declare const
|
|
1
|
+
import { PccMinParameters, PccMinParametersEnriched } from '../../../utils';
|
|
2
|
+
export declare const fromPccMinParametersFormToParamValuesEnriched: (newParams: Record<string, any>) => PccMinParametersEnriched;
|
|
3
|
+
export declare const fromPccMinParametersFormToParamValues: (newParams: Record<string, any>) => PccMinParameters;
|
|
4
|
+
export declare const fromPccMinParamsDataToFormValues: (parameters: PccMinParametersEnriched | null) => Record<string, any>;
|
|
5
|
+
export declare const fromStudyPccMinParamsDataToFormValues: (parameters: PccMinParametersEnriched | null) => Record<string, any>;
|
|
@@ -36,12 +36,15 @@ import "../../inputs/reactQueryBuilder/CustomReactQueryBuilder.js";
|
|
|
36
36
|
import "uuid";
|
|
37
37
|
import "../../inputs/reactQueryBuilder/PropertyValueEditor.js";
|
|
38
38
|
import "react-querybuilder";
|
|
39
|
-
const
|
|
39
|
+
const fromPccMinParametersFormToParamValuesEnriched = (newParams) => ({
|
|
40
40
|
filters: newParams[FILTERS]?.map((filter) => ({
|
|
41
41
|
filterId: filter[ID],
|
|
42
42
|
filterName: filter[NAME]
|
|
43
43
|
})) ?? []
|
|
44
44
|
});
|
|
45
|
+
const fromPccMinParametersFormToParamValues = (newParams) => ({
|
|
46
|
+
filters: newParams[FILTERS]?.map((filter) => filter[ID]) ?? []
|
|
47
|
+
});
|
|
45
48
|
const fromPccMinParamsDataToFormValues = (parameters) => ({
|
|
46
49
|
[FILTERS]: parameters?.[FILTERS]?.map((filter) => ({
|
|
47
50
|
[ID]: filter[FILTER_ID],
|
|
@@ -56,6 +59,7 @@ const fromStudyPccMinParamsDataToFormValues = (parameters) => ({
|
|
|
56
59
|
});
|
|
57
60
|
export {
|
|
58
61
|
fromPccMinParametersFormToParamValues,
|
|
62
|
+
fromPccMinParametersFormToParamValuesEnriched,
|
|
59
63
|
fromPccMinParamsDataToFormValues,
|
|
60
64
|
fromStudyPccMinParamsDataToFormValues
|
|
61
65
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { UUID } from 'node:crypto';
|
|
2
|
-
import {
|
|
2
|
+
import { PccMinParametersEnriched } from '../../../utils';
|
|
3
3
|
export declare function PccMinParametersInLine({ studyUuid, setHaveDirtyFields, pccMinParameters, }: Readonly<{
|
|
4
4
|
studyUuid: UUID | null;
|
|
5
5
|
setHaveDirtyFields: (isDirty: boolean) => void;
|
|
6
|
-
pccMinParameters:
|
|
6
|
+
pccMinParameters: PccMinParametersEnriched | null;
|
|
7
7
|
}>): import("react/jsx-runtime").JSX.Element;
|
|
@@ -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 { mapPccMinParameters } from "../../../utils/types/pcc-min.type.js";
|
|
9
10
|
import "@mui/icons-material";
|
|
10
11
|
import "../../../utils/yupConfig.js";
|
|
11
12
|
import { updatePccMinParameters, fetchPccMinParameters } from "../../../services/pcc-min.js";
|
|
@@ -51,7 +52,7 @@ import "../../filter/HeaderFilterForm.js";
|
|
|
51
52
|
import "../../dialogs/elementSaveDialog/ElementSaveDialog.js";
|
|
52
53
|
import { UsePccMinParametersForm } from "./use-pcc-min-parameters-form.js";
|
|
53
54
|
import { PccMinParametersForm } from "./pcc-min-parameters-form.js";
|
|
54
|
-
import { fromPccMinParamsDataToFormValues,
|
|
55
|
+
import { fromPccMinParamsDataToFormValues, fromPccMinParametersFormToParamValuesEnriched } from "./pcc-min-form-utils.js";
|
|
55
56
|
function PccMinParametersInLine({
|
|
56
57
|
studyUuid,
|
|
57
58
|
setHaveDirtyFields,
|
|
@@ -130,7 +131,7 @@ function PccMinParametersInLine({
|
|
|
130
131
|
open: openCreateParameterDialog,
|
|
131
132
|
onClose: () => setOpenCreateParameterDialog(false),
|
|
132
133
|
parameterValues: getValues,
|
|
133
|
-
parameterFormatter: (params) =>
|
|
134
|
+
parameterFormatter: (params) => mapPccMinParameters(fromPccMinParametersFormToParamValuesEnriched(params)),
|
|
134
135
|
parameterType: ElementType.PCC_MIN_PARAMETERS
|
|
135
136
|
}
|
|
136
137
|
),
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { UseFormReturn } from 'react-hook-form';
|
|
2
2
|
import { ObjectSchema } from 'yup';
|
|
3
3
|
import { UUID } from 'node:crypto';
|
|
4
|
-
import {
|
|
4
|
+
import { PccMinParametersEnriched } from '../../../utils';
|
|
5
5
|
export interface UsePccMinParametersFormReturn {
|
|
6
6
|
formMethods: UseFormReturn;
|
|
7
7
|
formSchema: ObjectSchema<any>;
|
|
@@ -20,7 +20,7 @@ type UsePccMinParametersFormProps = {
|
|
|
20
20
|
name: null;
|
|
21
21
|
description: null;
|
|
22
22
|
studyUuid: UUID | null;
|
|
23
|
-
parameters:
|
|
23
|
+
parameters: PccMinParametersEnriched | null;
|
|
24
24
|
};
|
|
25
25
|
export declare const UsePccMinParametersForm: ({ name, description, parametersUuid, studyUuid, parameters, }: UsePccMinParametersFormProps) => UsePccMinParametersFormReturn;
|
|
26
26
|
export {};
|
|
@@ -2,7 +2,7 @@ import { useForm } from "react-hook-form";
|
|
|
2
2
|
import { yupResolver } from "@hookform/resolvers/yup";
|
|
3
3
|
import { useState, useMemo, useCallback, useEffect } from "react";
|
|
4
4
|
import "../../../utils/yupConfig.js";
|
|
5
|
-
import { fromPccMinParametersFormToParamValues, fromPccMinParamsDataToFormValues, fromStudyPccMinParamsDataToFormValues } from "./pcc-min-form-utils.js";
|
|
5
|
+
import { fromPccMinParametersFormToParamValuesEnriched, fromPccMinParametersFormToParamValues, fromPccMinParamsDataToFormValues, fromStudyPccMinParamsDataToFormValues } from "./pcc-min-form-utils.js";
|
|
6
6
|
import "react/jsx-runtime";
|
|
7
7
|
import "react-intl";
|
|
8
8
|
import { FILTERS, ID } from "../../../utils/constants/filterConstant.js";
|
|
@@ -74,12 +74,14 @@ const UsePccMinParametersForm = ({
|
|
|
74
74
|
const onSaveInline = useCallback(
|
|
75
75
|
(formData) => {
|
|
76
76
|
if (studyUuid) {
|
|
77
|
-
updatePccMinParameters(studyUuid,
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
77
|
+
updatePccMinParameters(studyUuid, fromPccMinParametersFormToParamValuesEnriched(formData)).catch(
|
|
78
|
+
(error) => {
|
|
79
|
+
snackError({
|
|
80
|
+
messageTxt: error.message,
|
|
81
|
+
headerId: "updatePccMinParametersError"
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
);
|
|
83
85
|
}
|
|
84
86
|
},
|
|
85
87
|
[snackError, studyUuid]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ILimitReductionsByVoltageLevel } from '../common';
|
|
2
2
|
import { default as yup } from '../../../utils/yupConfig';
|
|
3
|
-
import {
|
|
3
|
+
import { SAParametersEnriched } from './types';
|
|
4
4
|
export declare const getSAParametersFormSchema: (name: string | null, limitReductions?: ILimitReductionsByVoltageLevel[]) => yup.ObjectSchema<{
|
|
5
5
|
flowProportionalThreshold: unknown;
|
|
6
6
|
lowVoltageProportionalThreshold: unknown;
|
|
@@ -25,7 +25,7 @@ export declare const getSAParametersFormSchema: (name: string | null, limitReduc
|
|
|
25
25
|
name: undefined;
|
|
26
26
|
description: undefined;
|
|
27
27
|
}, "">;
|
|
28
|
-
export declare const toFormValueSaParameters: (params:
|
|
28
|
+
export declare const toFormValueSaParameters: (params: SAParametersEnriched) => {
|
|
29
29
|
flowProportionalThreshold: number;
|
|
30
30
|
lowVoltageProportionalThreshold: number;
|
|
31
31
|
lowVoltageAbsoluteThreshold: number;
|
|
@@ -54,6 +54,7 @@ import "../../filter/HeaderFilterForm.js";
|
|
|
54
54
|
import { useSecurityAnalysisParametersForm } from "./use-security-analysis-parameters-form.js";
|
|
55
55
|
import { SecurityAnalysisParametersForm } from "./security-analysis-parameters-form.js";
|
|
56
56
|
import "../../dialogs/elementSaveDialog/ElementSaveDialog.js";
|
|
57
|
+
import { mapSecurityAnalysisParameters } from "./types.js";
|
|
57
58
|
import { toFormValueSaParameters } from "./columns-definitions.js";
|
|
58
59
|
function SecurityAnalysisParametersInline({
|
|
59
60
|
studyUuid,
|
|
@@ -149,8 +150,8 @@ function SecurityAnalysisParametersInline({
|
|
|
149
150
|
studyUuid,
|
|
150
151
|
open: openCreateParameterDialog,
|
|
151
152
|
onClose: () => setOpenCreateParameterDialog(false),
|
|
152
|
-
parameterValues:
|
|
153
|
-
parameterFormatter: (newParams) => newParams,
|
|
153
|
+
parameterValues: getValues,
|
|
154
|
+
parameterFormatter: (newParams) => mapSecurityAnalysisParameters(securityAnalysisMethods.formatNewParams(newParams)),
|
|
154
155
|
parameterType: ElementType.SECURITY_ANALYSIS_PARAMETERS
|
|
155
156
|
}
|
|
156
157
|
),
|
package/dist/components/parameters/security-analysis/security-analysis-parameters-selector.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ILimitReductionsByVoltageLevel } from '../common';
|
|
2
|
-
import {
|
|
2
|
+
import { SAParametersEnriched } from './types';
|
|
3
3
|
export declare function SecurityAnalysisParametersSelector({ params, currentProvider, isDeveloperMode, defaultLimitReductions, }: Readonly<{
|
|
4
|
-
params:
|
|
4
|
+
params: SAParametersEnriched | null;
|
|
5
5
|
currentProvider?: string;
|
|
6
6
|
isDeveloperMode: boolean;
|
|
7
7
|
defaultLimitReductions: ILimitReductionsByVoltageLevel[];
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { UUID } from 'node:crypto';
|
|
2
2
|
import { CONTINGENCY_LISTS_INFOS, PARAM_SA_FLOW_PROPORTIONAL_THRESHOLD, 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_PROVIDER } from '../common/constants';
|
|
3
|
-
import { ContingencyListsInfos } from '../common/contingency-table/types';
|
|
3
|
+
import { ContingencyListsInfos, ContingencyListsInfosEnriched } from '../common/contingency-table/types';
|
|
4
4
|
import { ILimitReductionsByVoltageLevel } from '../common/limitreductions/columns-definitions';
|
|
5
|
-
export
|
|
5
|
+
export type SAParameters = {
|
|
6
6
|
uuid?: UUID;
|
|
7
7
|
[PARAM_SA_PROVIDER]: string;
|
|
8
8
|
[CONTINGENCY_LISTS_INFOS]: ContingencyListsInfos[];
|
|
@@ -12,4 +12,9 @@ export interface SAParameters {
|
|
|
12
12
|
[PARAM_SA_LOW_VOLTAGE_ABSOLUTE_THRESHOLD]: number;
|
|
13
13
|
[PARAM_SA_HIGH_VOLTAGE_PROPORTIONAL_THRESHOLD]: number;
|
|
14
14
|
[PARAM_SA_HIGH_VOLTAGE_ABSOLUTE_THRESHOLD]: number;
|
|
15
|
-
}
|
|
15
|
+
};
|
|
16
|
+
export type SAParametersEnriched = Omit<SAParameters, typeof CONTINGENCY_LISTS_INFOS> & {
|
|
17
|
+
[CONTINGENCY_LISTS_INFOS]: ContingencyListsInfosEnriched[];
|
|
18
|
+
};
|
|
19
|
+
export declare function mapSecurityAnalysisParameters(parameters: SAParametersEnriched): SAParameters;
|
|
20
|
+
export declare function enrichSecurityAnalysisParameters(parameters: SAParameters): Promise<SAParametersEnriched>;
|
|
@@ -1 +1,42 @@
|
|
|
1
|
-
|
|
1
|
+
import { fetchElementNames } from "../../../services/directory.js";
|
|
2
|
+
import { NAME, ID } from "../common/parameter-table/constants.js";
|
|
3
|
+
function mapSecurityAnalysisParameters(parameters) {
|
|
4
|
+
return {
|
|
5
|
+
...parameters,
|
|
6
|
+
contingencyListsInfos: parameters.contingencyListsInfos?.map((clInfos) => {
|
|
7
|
+
return {
|
|
8
|
+
...clInfos,
|
|
9
|
+
contingencyLists: clInfos.contingencyLists.map((c) => c.id)
|
|
10
|
+
};
|
|
11
|
+
})
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
function getEquipmentsContainerIds(params) {
|
|
15
|
+
const allContainerIds = params.contingencyListsInfos ? params.contingencyListsInfos.flatMap((cli) => cli.contingencyLists ?? []) : [];
|
|
16
|
+
return new Set(allContainerIds);
|
|
17
|
+
}
|
|
18
|
+
function enrichSecurityAnalysisParameters(parameters) {
|
|
19
|
+
const allElementIds = getEquipmentsContainerIds(parameters);
|
|
20
|
+
const elementNamesPromise = allElementIds.size === 0 ? Promise.resolve(null) : fetchElementNames(allElementIds);
|
|
21
|
+
return elementNamesPromise.then((elementNames) => {
|
|
22
|
+
const mapIdsToIdNames = (ids) => {
|
|
23
|
+
return ids ? ids.map((id) => ({
|
|
24
|
+
[ID]: id,
|
|
25
|
+
[NAME]: elementNames?.[id] ?? null
|
|
26
|
+
})) : [];
|
|
27
|
+
};
|
|
28
|
+
return {
|
|
29
|
+
...parameters,
|
|
30
|
+
contingencyListsInfos: parameters.contingencyListsInfos ? parameters.contingencyListsInfos.map((cli) => {
|
|
31
|
+
return {
|
|
32
|
+
...cli,
|
|
33
|
+
contingencyLists: mapIdsToIdNames(cli.contingencyLists)
|
|
34
|
+
};
|
|
35
|
+
}) : []
|
|
36
|
+
};
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
export {
|
|
40
|
+
enrichSecurityAnalysisParameters,
|
|
41
|
+
mapSecurityAnalysisParameters
|
|
42
|
+
};
|
package/dist/components/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 {
|
|
6
|
+
import { SAParametersEnriched } from './types';
|
|
7
7
|
export interface UseSecurityAnalysisParametersFormReturn {
|
|
8
8
|
formMethods: UseFormReturn;
|
|
9
9
|
formSchema: ObjectSchema<any>;
|
|
@@ -12,9 +12,9 @@ export interface UseSecurityAnalysisParametersFormReturn {
|
|
|
12
12
|
label: string;
|
|
13
13
|
}[];
|
|
14
14
|
defaultLimitReductions: ILimitReductionsByVoltageLevel[];
|
|
15
|
-
toFormValueSaParameters: (_params:
|
|
16
|
-
formatNewParams: (formData: Record<string, any>) =>
|
|
17
|
-
params:
|
|
15
|
+
toFormValueSaParameters: (_params: SAParametersEnriched) => any;
|
|
16
|
+
formatNewParams: (formData: Record<string, any>) => SAParametersEnriched;
|
|
17
|
+
params: SAParametersEnriched | null;
|
|
18
18
|
watchProvider: string | undefined;
|
|
19
19
|
paramsFormInitialized: boolean;
|
|
20
20
|
onSaveInline: (formData: Record<string, any>) => void;
|
package/dist/components/parameters/security-analysis/use-security-analysis-parameters-form.js
CHANGED
|
@@ -12,6 +12,7 @@ import { PARAM_SA_HIGH_VOLTAGE_ABSOLUTE_THRESHOLD, PARAM_SA_HIGH_VOLTAGE_PROPORT
|
|
|
12
12
|
import "@mui/material";
|
|
13
13
|
import "react-intl";
|
|
14
14
|
import { updateParameter } from "../../../services/explore.js";
|
|
15
|
+
import { mapSecurityAnalysisParameters } from "./types.js";
|
|
15
16
|
import "localized-countries";
|
|
16
17
|
import "localized-countries/data/fr";
|
|
17
18
|
import "localized-countries/data/en";
|
|
@@ -143,7 +144,7 @@ const useSecurityAnalysisParametersForm = (parametersBackend, parametersUuid, na
|
|
|
143
144
|
if (parametersUuid) {
|
|
144
145
|
updateParameter(
|
|
145
146
|
parametersUuid,
|
|
146
|
-
formatNewParams(formData),
|
|
147
|
+
mapSecurityAnalysisParameters(formatNewParams(formData)),
|
|
147
148
|
formData[NAME],
|
|
148
149
|
ElementType.SECURITY_ANALYSIS_PARAMETERS,
|
|
149
150
|
formData[DESCRIPTION] ?? ""
|
|
@@ -8,6 +8,7 @@ import { ElementType } from "../../../utils/types/elementType.js";
|
|
|
8
8
|
import "../../../utils/types/equipmentType.js";
|
|
9
9
|
import "@mui/icons-material";
|
|
10
10
|
import "../../../utils/yupConfig.js";
|
|
11
|
+
import { fetchSensitivityAnalysisProviders, fetchSensitivityAnalysisParameters, updateSensitivityAnalysisParameters } from "../../../services/sensitivity-analysis.js";
|
|
11
12
|
import "localized-countries";
|
|
12
13
|
import "localized-countries/data/fr";
|
|
13
14
|
import "localized-countries/data/en";
|
|
@@ -46,7 +47,6 @@ import "@hello-pangea/dnd";
|
|
|
46
47
|
import "../common/contingency-table/columns-definitions.js";
|
|
47
48
|
import "@hookform/resolvers/yup";
|
|
48
49
|
import { NameElementEditorForm } from "../common/name-element-editor/name-element-editor-form.js";
|
|
49
|
-
import { fetchSensitivityAnalysisProviders, fetchSensitivityAnalysisParameters, updateSensitivityAnalysisParameters } from "../../../services/sensitivity-analysis.js";
|
|
50
50
|
import { useSensitivityAnalysisParametersForm } from "./use-sensitivity-analysis-parameters.js";
|
|
51
51
|
import { SensitivityAnalysisParametersForm } from "./sensitivity-analysis-parameters-form.js";
|
|
52
52
|
function SensitivityAnalysisParametersDialog({
|
|
@@ -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 { mapSensitivityAnalysisParameters } from "../../../utils/types/sensitivity-analysis.type.js";
|
|
9
10
|
import "@mui/icons-material";
|
|
10
11
|
import { mergeSx } from "../../../utils/styles.js";
|
|
11
12
|
import "../../../utils/yupConfig.js";
|
|
@@ -13,6 +14,7 @@ import { parametersStyles } from "../parameters-style.js";
|
|
|
13
14
|
import { CreateParameterDialog } from "../common/parameters-creation-dialog.js";
|
|
14
15
|
import "../../overflowableText/OverflowableText.js";
|
|
15
16
|
import "react-hook-form";
|
|
17
|
+
import { fetchSensitivityAnalysisParameters, setSensitivityAnalysisParameters } from "../../../services/sensitivity-analysis.js";
|
|
16
18
|
import "localized-countries";
|
|
17
19
|
import "localized-countries/data/fr";
|
|
18
20
|
import "localized-countries/data/en";
|
|
@@ -48,7 +50,6 @@ import "@hello-pangea/dnd";
|
|
|
48
50
|
import "../common/contingency-table/columns-definitions.js";
|
|
49
51
|
import "@hookform/resolvers/yup";
|
|
50
52
|
import "../../filter/HeaderFilterForm.js";
|
|
51
|
-
import { fetchSensitivityAnalysisParameters, setSensitivityAnalysisParameters } from "../../../services/sensitivity-analysis.js";
|
|
52
53
|
import { useSensitivityAnalysisParametersForm } from "./use-sensitivity-analysis-parameters.js";
|
|
53
54
|
import { SensitivityAnalysisParametersForm } from "./sensitivity-analysis-parameters-form.js";
|
|
54
55
|
import "../../dialogs/elementSaveDialog/ElementSaveDialog.js";
|
|
@@ -155,8 +156,10 @@ function SensitivityAnalysisParametersInline({
|
|
|
155
156
|
studyUuid,
|
|
156
157
|
open: openCreateParameterDialog,
|
|
157
158
|
onClose: () => setOpenCreateParameterDialog(false),
|
|
158
|
-
parameterValues:
|
|
159
|
-
parameterFormatter: (newParams) =>
|
|
159
|
+
parameterValues: getValues,
|
|
160
|
+
parameterFormatter: (newParams) => mapSensitivityAnalysisParameters(
|
|
161
|
+
sensitivityAnalysisMethods.formatNewParams(newParams)
|
|
162
|
+
),
|
|
160
163
|
parameterType: ElementType.SENSITIVITY_PARAMETERS
|
|
161
164
|
}
|
|
162
165
|
),
|
|
@@ -2,7 +2,7 @@ import { UseFormReturn } from 'react-hook-form';
|
|
|
2
2
|
import { ObjectSchema } from 'yup';
|
|
3
3
|
import { UUID } from 'node:crypto';
|
|
4
4
|
import { ComputingType } from '../common/computing-type';
|
|
5
|
-
import { FactorsCount,
|
|
5
|
+
import { FactorsCount, SensitivityAnalysisParametersInfosEnriched, UseParametersBackendReturnProps } from '../../../utils';
|
|
6
6
|
import { BuildStatus } from '../../node';
|
|
7
7
|
export interface UseSensitivityAnalysisParametersReturn {
|
|
8
8
|
formMethods: UseFormReturn<any>;
|
|
@@ -11,9 +11,9 @@ export interface UseSensitivityAnalysisParametersReturn {
|
|
|
11
11
|
id: string;
|
|
12
12
|
label: string;
|
|
13
13
|
}[];
|
|
14
|
-
fromSensitivityAnalysisParamsDataToFormValues: (parameters:
|
|
15
|
-
formatNewParams: (formData: Record<string, any>) =>
|
|
16
|
-
params:
|
|
14
|
+
fromSensitivityAnalysisParamsDataToFormValues: (parameters: SensitivityAnalysisParametersInfosEnriched) => any;
|
|
15
|
+
formatNewParams: (formData: Record<string, any>) => SensitivityAnalysisParametersInfosEnriched;
|
|
16
|
+
params: SensitivityAnalysisParametersInfosEnriched | null;
|
|
17
17
|
paramsFormInitialized: boolean;
|
|
18
18
|
isStudyLinked: boolean;
|
|
19
19
|
onSaveInline: (formData: Record<string, any>) => void;
|
|
@@ -6,13 +6,14 @@ 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 { mapSensitivityAnalysisParameters } from "../../../utils/types/sensitivity-analysis.type.js";
|
|
10
|
+
import { DEFAULT_TIMEOUT_MS, IGNORE_SIGNAL } from "../../../services/utils.js";
|
|
9
11
|
import "react/jsx-runtime";
|
|
10
12
|
import "@mui/icons-material";
|
|
11
13
|
import "../../../utils/yupConfig.js";
|
|
12
14
|
import { getFormSchema, getSensiNodesformatNewParams, getSensiPstformatNewParams, getSensiHvdcformatNewParams, getSensiInjectionsformatNewParams, getSensiInjectionsSetformatNewParams, filterSensiParameterRows } from "./utils.js";
|
|
13
15
|
import { DEFAULT_FACTOR_COUNT, PARAMETER_SENSI_NODES, PARAMETER_SENSI_PST, PARAMETER_SENSI_HVDC, PARAMETER_SENSI_INJECTION, PARAMETER_SENSI_INJECTIONS_SET, FLOW_VOLTAGE_SENSITIVITY_VALUE_THRESHOLD, ANGLE_FLOW_SENSITIVITY_VALUE_THRESHOLD, FLOW_FLOW_SENSITIVITY_VALUE_THRESHOLD, CONTAINER_NAME, CONTAINER_ID, EQUIPMENTS_IN_VOLTAGE_REGULATION, SUPERVISED_VOLTAGE_LEVELS, SENSITIVITY_TYPE, PSTS, MONITORED_BRANCHES, HVDC_LINES, INJECTIONS, DISTRIBUTION_TYPE, MAX_RESULTS_COUNT, MAX_VARIABLES_COUNT } from "./constants.js";
|
|
14
16
|
import { getSensitivityAnalysisFactorsCount, setSensitivityAnalysisParameters } from "../../../services/sensitivity-analysis.js";
|
|
15
|
-
import { DEFAULT_TIMEOUT_MS, IGNORE_SIGNAL } from "../../../services/utils.js";
|
|
16
17
|
import { updateParameter } from "../../../services/explore.js";
|
|
17
18
|
import "react-intl";
|
|
18
19
|
import "@mui/material";
|
|
@@ -336,7 +337,7 @@ const useSensitivityAnalysisParametersForm = ({
|
|
|
336
337
|
if (parametersUuid) {
|
|
337
338
|
updateParameter(
|
|
338
339
|
parametersUuid,
|
|
339
|
-
formatNewParams(formData),
|
|
340
|
+
mapSensitivityAnalysisParameters(formatNewParams(formData)),
|
|
340
341
|
formData[FieldConstants.NAME],
|
|
341
342
|
ElementType.SENSITIVITY_PARAMETERS,
|
|
342
343
|
formData[FieldConstants.DESCRIPTION] ?? ""
|
|
@@ -3,11 +3,11 @@ import { useFormContext, useController } from "react-hook-form";
|
|
|
3
3
|
import { FieldConstants } from "../utils/constants/fieldConstants.js";
|
|
4
4
|
import "../utils/conversionUtils.js";
|
|
5
5
|
import "../utils/types/equipmentType.js";
|
|
6
|
+
import { elementAlreadyExists } from "../services/directory.js";
|
|
6
7
|
import "react/jsx-runtime";
|
|
7
8
|
import "@mui/icons-material";
|
|
8
9
|
import "../utils/yupConfig.js";
|
|
9
10
|
import { useDebounce } from "./useDebounce.js";
|
|
10
|
-
import { elementAlreadyExists } from "../services/directory.js";
|
|
11
11
|
function useUniqueNameValidation({
|
|
12
12
|
name,
|
|
13
13
|
currentName = "",
|