@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.
Files changed (46) hide show
  1. package/dist/components/dialogs/modifyElementSelection/ModifyElementSelection.js +1 -1
  2. package/dist/components/directoryItemSelector/DirectoryItemSelector.js +1 -1
  3. package/dist/components/directoryItemSelector/utils.js +1 -1
  4. package/dist/components/inputs/reactHookForm/DirectoryItemsInput.js +1 -1
  5. package/dist/components/parameters/common/contingency-table/columns-definitions.d.ts +2 -2
  6. package/dist/components/parameters/common/contingency-table/columns-definitions.js +10 -8
  7. package/dist/components/parameters/common/contingency-table/contingency-table.js +4 -4
  8. package/dist/components/parameters/common/contingency-table/types.d.ts +6 -1
  9. package/dist/components/parameters/pcc-min/pcc-min-form-utils.d.ts +5 -4
  10. package/dist/components/parameters/pcc-min/pcc-min-form-utils.js +5 -1
  11. package/dist/components/parameters/pcc-min/pcc-min-parameters-inline.d.ts +2 -2
  12. package/dist/components/parameters/pcc-min/pcc-min-parameters-inline.js +3 -2
  13. package/dist/components/parameters/pcc-min/use-pcc-min-parameters-form.d.ts +2 -2
  14. package/dist/components/parameters/pcc-min/use-pcc-min-parameters-form.js +9 -7
  15. package/dist/components/parameters/security-analysis/columns-definitions.d.ts +2 -2
  16. package/dist/components/parameters/security-analysis/security-analysis-parameters-inline.js +3 -2
  17. package/dist/components/parameters/security-analysis/security-analysis-parameters-selector.d.ts +2 -2
  18. package/dist/components/parameters/security-analysis/types.d.ts +8 -3
  19. package/dist/components/parameters/security-analysis/types.js +42 -1
  20. package/dist/components/parameters/security-analysis/use-security-analysis-parameters-form.d.ts +4 -4
  21. package/dist/components/parameters/security-analysis/use-security-analysis-parameters-form.js +2 -1
  22. package/dist/components/parameters/sensi/sensitivity-analysis-parameters-dialog.js +1 -1
  23. package/dist/components/parameters/sensi/sensitivity-analysis-parameters-inline.js +6 -3
  24. package/dist/components/parameters/sensi/use-sensitivity-analysis-parameters.d.ts +4 -4
  25. package/dist/components/parameters/sensi/use-sensitivity-analysis-parameters.js +3 -2
  26. package/dist/hooks/use-unique-name-validation.js +1 -1
  27. package/dist/index.js +17 -2
  28. package/dist/services/directory.d.ts +2 -1
  29. package/dist/services/directory.js +11 -0
  30. package/dist/services/index.d.ts +1 -0
  31. package/dist/services/index.js +11 -1
  32. package/dist/services/pcc-min.d.ts +4 -7
  33. package/dist/services/pcc-min.js +8 -5
  34. package/dist/services/security-analysis.d.ts +5 -4
  35. package/dist/services/security-analysis.js +7 -4
  36. package/dist/services/sensitivity-analysis.d.ts +5 -6
  37. package/dist/services/sensitivity-analysis.js +13 -6
  38. package/dist/utils/index.js +6 -1
  39. package/dist/utils/types/index.d.ts +1 -0
  40. package/dist/utils/types/index.js +7 -2
  41. package/dist/utils/types/parameters.type.d.ts +3 -3
  42. package/dist/utils/types/pcc-min.type.d.ts +10 -0
  43. package/dist/utils/types/pcc-min.type.js +31 -0
  44. package/dist/utils/types/sensitivity-analysis.type.d.ts +28 -23
  45. package/dist/utils/types/sensitivity-analysis.type.js +136 -1
  46. 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 { ContingencyListsInfos } from './types';
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: 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((contingencyListInfos) => ({
94
- [CONTINGENCY_LISTS]: contingencyListInfos[CONTINGENCY_LISTS]?.map((c) => ({
95
- [NAME]: c[NAME],
96
- [ID]: c[ID]
97
- })),
98
- [DESCRIPTION]: contingencyListInfos[DESCRIPTION],
99
- [ACTIVATED]: contingencyListInfos[ACTIVATED]
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 ContingencyListsInfos {
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 '../../../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>;
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 fromPccMinParametersFormToParamValues = (newParams) => ({
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 { PccMinParameters } from '../../../services/pcc-min';
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: PccMinParameters | null;
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, fromPccMinParametersFormToParamValues } from "./pcc-min-form-utils.js";
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) => fromPccMinParametersFormToParamValues(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 { PccMinParameters } from '../../../services/pcc-min';
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: PccMinParameters | null;
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, fromPccMinParametersFormToParamValues(formData)).catch((error) => {
78
- snackError({
79
- messageTxt: error.message,
80
- headerId: "updatePccMinParametersError"
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 { SAParameters } from './types';
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: SAParameters) => {
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: () => securityAnalysisMethods.formatNewParams(getValues()),
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
  ),
@@ -1,7 +1,7 @@
1
1
  import { ILimitReductionsByVoltageLevel } from '../common';
2
- import { SAParameters } from './types';
2
+ import { SAParametersEnriched } from './types';
3
3
  export declare function SecurityAnalysisParametersSelector({ params, currentProvider, isDeveloperMode, defaultLimitReductions, }: Readonly<{
4
- params: SAParameters | null;
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 interface SAParameters {
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
+ };
@@ -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 { SAParameters } from './types';
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: SAParameters) => any;
16
- formatNewParams: (formData: Record<string, any>) => SAParameters;
17
- params: SAParameters | null;
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;
@@ -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: () => sensitivityAnalysisMethods.formatNewParams(getValues()),
159
- parameterFormatter: (newParams) => 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, SensitivityAnalysisParametersInfos, UseParametersBackendReturnProps } from '../../../utils';
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: SensitivityAnalysisParametersInfos) => any;
15
- formatNewParams: (formData: Record<string, any>) => SensitivityAnalysisParametersInfos;
16
- params: SensitivityAnalysisParametersInfos | null;
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 = "",