@gridsuite/commons-ui 0.240.0 → 0.241.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 (105) hide show
  1. package/dist/components/composite/customAGGrid/custom-aggrid-filters/custom-aggrid-comparator-filter.js +2 -2
  2. package/dist/components/composite/customAGGrid/custom-aggrid-filters/custom-aggrid-text-filter.js +4 -4
  3. package/dist/components/composite/customAGGrid/custom-aggrid-filters/custom-filter-icon.js +2 -2
  4. package/dist/components/composite/customAGGrid/custom-aggrid-header.js +26 -13
  5. package/dist/components/composite/customAGGrid/custom-aggrid-menu.js +2 -2
  6. package/dist/components/composite/grid/grid-section.js +1 -1
  7. package/dist/features/index.js +6 -1
  8. package/dist/features/network-modifications/common/measurements/BranchActiveReactivePowerMeasurementsForm.js +3 -2
  9. package/dist/features/parameters/common/hook/use-tabs.d.ts +3 -2
  10. package/dist/features/parameters/common/hook/use-tabs.js +2 -3
  11. package/dist/features/parameters/common/index.d.ts +2 -1
  12. package/dist/features/parameters/common/index.js +6 -1
  13. package/dist/features/parameters/common/parameter-field.js +2 -1
  14. package/dist/features/parameters/common/parameter-layout/index.d.ts +8 -0
  15. package/dist/features/parameters/common/parameter-layout/index.js +7 -0
  16. package/dist/features/parameters/common/parameter-layout/parameter-layout-provider.d.ts +10 -0
  17. package/dist/features/parameters/common/parameter-layout/parameter-layout-provider.js +15 -0
  18. package/dist/features/parameters/common/parameter-layout/parameter-layout.d.ts +23 -0
  19. package/dist/features/parameters/common/parameter-layout/parameter-layout.js +167 -0
  20. package/dist/features/parameters/common/provider-param.d.ts +10 -0
  21. package/dist/features/parameters/common/{ProviderParam.js → provider-param.js} +8 -10
  22. package/dist/features/parameters/common/widget/parameter-float.js +1 -1
  23. package/dist/features/parameters/common/widget/parameter-line-directory-items-input.js +1 -1
  24. package/dist/features/parameters/dynamic-margin-calculation/dynamic-margin-calculation-form.d.ts +4 -5
  25. package/dist/features/parameters/dynamic-margin-calculation/dynamic-margin-calculation-form.js +39 -60
  26. package/dist/features/parameters/dynamic-margin-calculation/dynamic-margin-calculation-inline.js +39 -101
  27. package/dist/features/parameters/dynamic-margin-calculation/use-dynamic-margin-calculation-parameters-form.js +8 -7
  28. package/dist/features/parameters/dynamic-security-analysis/contingency-parameters.js +10 -9
  29. package/dist/features/parameters/dynamic-security-analysis/dynamic-security-analysis-inline.js +38 -71
  30. package/dist/features/parameters/dynamic-security-analysis/dynamic-security-analysis-parameters-form.d.ts +4 -5
  31. package/dist/features/parameters/dynamic-security-analysis/dynamic-security-analysis-parameters-form.js +39 -60
  32. package/dist/features/parameters/dynamic-security-analysis/use-dynamic-security-analysis-parameters-form.js +8 -7
  33. package/dist/features/parameters/dynamic-simulation/dynamic-simulation-inline.js +42 -104
  34. package/dist/features/parameters/dynamic-simulation/dynamic-simulation-parameters-form.d.ts +4 -5
  35. package/dist/features/parameters/dynamic-simulation/dynamic-simulation-parameters-form.js +75 -96
  36. package/dist/features/parameters/dynamic-simulation/mapping/mapping-parameters.js +8 -7
  37. package/dist/features/parameters/dynamic-simulation/use-dynamic-simulation-parameters-form.js +7 -6
  38. package/dist/features/parameters/index.js +6 -1
  39. package/dist/features/parameters/loadflow/load-flow-general-parameters.js +1 -0
  40. package/dist/features/parameters/loadflow/load-flow-parameters-content.js +11 -10
  41. package/dist/features/parameters/loadflow/load-flow-parameters-dialog.js +12 -18
  42. package/dist/features/parameters/loadflow/load-flow-parameters-form.d.ts +1 -6
  43. package/dist/features/parameters/loadflow/load-flow-parameters-form.js +26 -91
  44. package/dist/features/parameters/loadflow/load-flow-parameters-header.js +29 -53
  45. package/dist/features/parameters/loadflow/load-flow-parameters-inline.js +35 -127
  46. package/dist/features/parameters/loadflow/load-flow-parameters-utils.js +11 -10
  47. package/dist/features/parameters/loadflow/use-load-flow-parameters-form.js +10 -9
  48. package/dist/features/parameters/network-visualizations/map-parameters.js +10 -9
  49. package/dist/features/parameters/network-visualizations/network-visualizations-form.d.ts +1 -4
  50. package/dist/features/parameters/network-visualizations/network-visualizations-form.js +19 -45
  51. package/dist/features/parameters/network-visualizations/network-visualizations-parameters-dialog.js +13 -19
  52. package/dist/features/parameters/network-visualizations/network-visualizations-parameters-inline.js +34 -65
  53. package/dist/features/parameters/network-visualizations/single-line-diagram-parameters.js +10 -9
  54. package/dist/features/parameters/parameters-style.d.ts +0 -1
  55. package/dist/features/parameters/parameters-style.js +0 -2
  56. package/dist/features/parameters/pcc-min/pcc-min-parameters-dialog.js +13 -18
  57. package/dist/features/parameters/pcc-min/pcc-min-parameters-form.d.ts +7 -29
  58. package/dist/features/parameters/pcc-min/pcc-min-parameters-form.js +16 -106
  59. package/dist/features/parameters/pcc-min/pcc-min-parameters-inline.js +27 -84
  60. package/dist/features/parameters/security-analysis/columns-definitions.js +11 -10
  61. package/dist/features/parameters/security-analysis/security-analysis-parameters-dialog.js +20 -20
  62. package/dist/features/parameters/security-analysis/security-analysis-parameters-form.d.ts +2 -4
  63. package/dist/features/parameters/security-analysis/security-analysis-parameters-form.js +44 -115
  64. package/dist/features/parameters/security-analysis/security-analysis-parameters-inline.js +40 -108
  65. package/dist/features/parameters/security-analysis/security-analysis-parameters-selector.js +9 -8
  66. package/dist/features/parameters/security-analysis/security-analysis-violations-hiding.js +1 -0
  67. package/dist/features/parameters/security-analysis/use-security-analysis-parameters-form.js +7 -6
  68. package/dist/features/parameters/sensi/columns-definitions.js +9 -8
  69. package/dist/features/parameters/sensi/sensitivity-analysis-parameters-dialog.js +21 -21
  70. package/dist/features/parameters/sensi/sensitivity-analysis-parameters-form.d.ts +3 -5
  71. package/dist/features/parameters/sensi/sensitivity-analysis-parameters-form.js +33 -90
  72. package/dist/features/parameters/sensi/sensitivity-analysis-parameters-inline.js +40 -99
  73. package/dist/features/parameters/sensi/sensitivity-parameters-fields.js +3 -11
  74. package/dist/features/parameters/sensi/sensitivity-parameters-selector.js +8 -7
  75. package/dist/features/parameters/sensi/utils.js +8 -7
  76. package/dist/features/parameters/short-circuit/short-circuit-general-tab-panel.js +2 -1
  77. package/dist/features/parameters/short-circuit/short-circuit-parameters-content.js +8 -7
  78. package/dist/features/parameters/short-circuit/short-circuit-parameters-dialog.js +13 -18
  79. package/dist/features/parameters/short-circuit/short-circuit-parameters-form.d.ts +1 -4
  80. package/dist/features/parameters/short-circuit/short-circuit-parameters-form.js +5 -60
  81. package/dist/features/parameters/short-circuit/short-circuit-parameters-inline.js +33 -101
  82. package/dist/features/parameters/short-circuit/short-circuit-parameters-utils.js +12 -11
  83. package/dist/features/parameters/short-circuit/short-circuit-power-electronics-tab-panel.js +10 -9
  84. package/dist/features/parameters/short-circuit/short-circuit-study-area-tab-panel.js +11 -10
  85. package/dist/features/parameters/short-circuit/use-short-circuit-parameters-form.js +1 -0
  86. package/dist/features/parameters/voltage-init/equipment-selection-parameters.js +1 -0
  87. package/dist/features/parameters/voltage-init/general-parameters.js +9 -8
  88. package/dist/features/parameters/voltage-init/voltage-init-parameters-dialog.js +13 -18
  89. package/dist/features/parameters/voltage-init/voltage-init-parameters-form.d.ts +2 -24
  90. package/dist/features/parameters/voltage-init/voltage-init-parameters-form.js +51 -105
  91. package/dist/features/parameters/voltage-init/voltage-init-parameters-inline.js +34 -90
  92. package/dist/features/process-configs/security-analysis/update-sa-process-config.js +7 -6
  93. package/dist/index.js +6 -1
  94. package/dist/translations/en/commonButtonEn.d.ts +2 -0
  95. package/dist/translations/en/commonButtonEn.js +2 -0
  96. package/dist/translations/en/parameters.d.ts +1 -0
  97. package/dist/translations/en/parameters.js +3 -1
  98. package/dist/translations/fr/commonButtonFr.d.ts +2 -0
  99. package/dist/translations/fr/commonButtonFr.js +2 -0
  100. package/dist/translations/fr/parameters.d.ts +1 -0
  101. package/dist/translations/fr/parameters.js +3 -1
  102. package/dist/utils/types/elementType.d.ts +1 -0
  103. package/dist/utils/types/elementType.js +1 -0
  104. package/package.json +1 -1
  105. package/dist/features/parameters/common/ProviderParam.d.ts +0 -7
@@ -1,35 +1,36 @@
1
1
  import * as yup from "yup";
2
- import "../../../utils/conversionUtils.js";
3
- import "../../../utils/types/equipmentType.js";
4
2
  import "react/jsx-runtime";
5
- import "@mui/icons-material";
6
- import { PARAM_SA_PROVIDER, PARAM_SA_HIGH_VOLTAGE_ABSOLUTE_THRESHOLD, PARAM_SA_HIGH_VOLTAGE_PROPORTIONAL_THRESHOLD, PARAM_SA_LOW_VOLTAGE_ABSOLUTE_THRESHOLD, PARAM_SA_LOW_VOLTAGE_PROPORTIONAL_THRESHOLD, PARAM_SA_FLOW_PROPORTIONAL_THRESHOLD } from "../common/constants.js";
7
3
  import "@mui/material";
8
- import "react-intl";
4
+ import "@mui/icons-material";
9
5
  import "react";
6
+ import "react-intl";
7
+ import "../../../components/ui/overflowableText/OverflowableText.js";
8
+ import "../../../utils/conversionUtils.js";
9
+ import "../../../utils/types/equipmentType.js";
10
+ import "react-hook-form";
10
11
  import "localized-countries";
11
12
  import "localized-countries/data/fr";
12
13
  import "localized-countries/data/en";
13
14
  import "notistack";
14
- import "react-hook-form";
15
15
  import "../../../components/ui/reactHookForm/provider/CustomFormProvider.js";
16
- import "../../../components/ui/dialogs/descriptionModificationDialog/DescriptionModificationDialog.js";
17
- import "../../../components/ui/dialogs/elementSaveDialog/ElementSaveDialog.js";
18
16
  import "../../../components/ui/treeViewFinder/TreeViewFinder.js";
19
- import "@hello-pangea/dnd";
20
- import "../../../components/ui/overflowableText/OverflowableText.js";
21
17
  import "../../../components/ui/reactHookForm/numbers/RangeInput.js";
22
18
  import "@material-symbols/svg-400/outlined/left_panel_open.svg?react";
23
19
  import "@material-symbols/svg-400/outlined/arrows_output.svg?react";
24
20
  import "@material-symbols/svg-400/outlined/arrows_input.svg?react";
25
21
  import "@material-symbols/svg-400/outlined/left_panel_close.svg?react";
26
22
  import "@material-symbols/svg-400/outlined/add_notes.svg?react";
23
+ import "../../../components/ui/dialogs/descriptionModificationDialog/DescriptionModificationDialog.js";
27
24
  import "../../../components/ui/reactHookForm/expandableInput/ExpandableInput.js";
28
25
  import "../../../components/ui/reactHookForm/directory-item-input/directory-item-utils.js";
26
+ import "@hello-pangea/dnd";
27
+ import "../../../components/ui/dialogs/elementSaveDialog/ElementSaveDialog.js";
29
28
  import "../../../components/ui/snackbarProvider/SnackbarProvider.js";
30
29
  import "mui-nested-menu";
31
30
  import "react-resizable-panels";
32
31
  import "react-papaparse";
32
+ import "../common/parameter-layout/parameter-layout-provider.js";
33
+ import { PARAM_SA_PROVIDER, PARAM_SA_HIGH_VOLTAGE_ABSOLUTE_THRESHOLD, PARAM_SA_HIGH_VOLTAGE_PROPORTIONAL_THRESHOLD, PARAM_SA_LOW_VOLTAGE_ABSOLUTE_THRESHOLD, PARAM_SA_LOW_VOLTAGE_PROPORTIONAL_THRESHOLD, PARAM_SA_FLOW_PROPORTIONAL_THRESHOLD } from "../common/constants.js";
33
34
  import "../common/widget/parameter-line-slider.js";
34
35
  import { getLimitReductionsFormSchema, toFormValuesLimitReductions } from "../common/limitreductions/columns-definitions.js";
35
36
  import "../common/contingency-table/contingency-table.js";
@@ -1,4 +1,5 @@
1
- import { jsx } from "react/jsx-runtime";
1
+ import { jsxs, jsx } from "react/jsx-runtime";
2
+ import { Grid2 } from "@mui/material";
2
3
  import "react";
3
4
  import "react-intl";
4
5
  import "../../../utils/conversionUtils.js";
@@ -7,7 +8,6 @@ import "../../../utils/types/equipmentType.js";
7
8
  import { ComputingType } from "../../../utils/types/computing-type.js";
8
9
  import "@mui/icons-material";
9
10
  import { getSecurityAnalysisDefaultLimitReductions, fetchSecurityAnalysisProviders, fetchSecurityAnalysisParameters, updateSecurityAnalysisParameters } from "../../../services/security-analysis.js";
10
- import "@mui/material";
11
11
  import "localized-countries";
12
12
  import "localized-countries/data/fr";
13
13
  import "localized-countries/data/en";
@@ -66,7 +66,7 @@ function SecurityAnalysisParametersDialog({
66
66
  formState: { errors, dirtyFields }
67
67
  } = securityAnalysisMethods.formMethods;
68
68
  const disableSave = Object.keys(errors).length > 0 || Object.keys(dirtyFields).length === 0;
69
- return /* @__PURE__ */ jsx(
69
+ return /* @__PURE__ */ jsxs(
70
70
  CustomMuiDialog,
71
71
  {
72
72
  open,
@@ -86,24 +86,24 @@ function SecurityAnalysisParametersDialog({
86
86
  // we want the dialog height to be fixed even when switching tabs
87
87
  }
88
88
  },
89
- children: /* @__PURE__ */ jsx(
90
- SecurityAnalysisParametersForm,
91
- {
92
- securityAnalysisMethods,
93
- showContingencyCount: false,
94
- isDeveloperMode,
95
- renderTitleFields: () => {
96
- return /* @__PURE__ */ jsx(
97
- NameElementEditorForm,
98
- {
99
- initialElementName: name,
100
- activeDirectory,
101
- elementType: ElementType.LOADFLOW_PARAMETERS
102
- }
103
- );
89
+ children: [
90
+ /* @__PURE__ */ jsx(Grid2, { container: true, sx: { width: "100%" }, children: /* @__PURE__ */ jsx(
91
+ NameElementEditorForm,
92
+ {
93
+ initialElementName: name,
94
+ activeDirectory,
95
+ elementType: ElementType.LOADFLOW_PARAMETERS
104
96
  }
105
- }
106
- )
97
+ ) }),
98
+ /* @__PURE__ */ jsx(
99
+ SecurityAnalysisParametersForm,
100
+ {
101
+ securityAnalysisMethods,
102
+ showContingencyCount: false,
103
+ isDeveloperMode
104
+ }
105
+ )
106
+ ]
107
107
  }
108
108
  );
109
109
  }
@@ -1,4 +1,4 @@
1
- import { ForwardedRef, ReactNode } from 'react';
1
+ import { ForwardedRef } from 'react';
2
2
  import { UUID } from 'node:crypto';
3
3
  import { ContingencyTableApi } from '../common';
4
4
  import { UseSecurityAnalysisParametersFormReturn } from './use-security-analysis-parameters-form';
@@ -9,8 +9,6 @@ export type SecurityAnalysisParametersFormProps = {
9
9
  fetchContingencyCount?: (contingencyListIds: UUID[] | null, abortSignal: AbortSignal) => Promise<ContingencyCount>;
10
10
  contingencyTableApiRef?: ForwardedRef<ContingencyTableApi>;
11
11
  isBuiltCurrentNode?: boolean;
12
- renderTitleFields?: () => ReactNode;
13
- renderActions?: () => ReactNode;
14
12
  isDeveloperMode: boolean;
15
13
  };
16
- export declare function SecurityAnalysisParametersForm({ securityAnalysisMethods, showContingencyCount, fetchContingencyCount, contingencyTableApiRef, isBuiltCurrentNode, renderTitleFields, renderActions, isDeveloperMode, }: Readonly<SecurityAnalysisParametersFormProps>): import("react").JSX.Element;
14
+ export declare function SecurityAnalysisParametersForm({ securityAnalysisMethods, showContingencyCount, fetchContingencyCount, contingencyTableApiRef, isBuiltCurrentNode, isDeveloperMode, }: Readonly<SecurityAnalysisParametersFormProps>): import("react").JSX.Element;
@@ -1,22 +1,21 @@
1
- import { jsx, jsxs, Fragment } from "react/jsx-runtime";
2
- import { FormattedMessage } from "react-intl";
3
- import { Grid2, Box, LinearProgress } from "@mui/material";
1
+ import { jsxs, jsx } from "react/jsx-runtime";
2
+ import { Stack, Grid2 } from "@mui/material";
3
+ import { parametersStyles } from "../parameters-style.js";
4
4
  import "@mui/icons-material";
5
+ import "react";
6
+ import "react-intl";
5
7
  import "../../../components/ui/overflowableText/OverflowableText.js";
6
8
  import "../../../utils/conversionUtils.js";
7
9
  import "../../../utils/types/equipmentType.js";
8
- import { mergeSx } from "../../../utils/styles.js";
9
- import "react";
10
10
  import "react-hook-form";
11
11
  import "localized-countries";
12
12
  import "localized-countries/data/fr";
13
13
  import "localized-countries/data/en";
14
14
  import "notistack";
15
- import { CustomFormProvider } from "../../../components/ui/reactHookForm/provider/CustomFormProvider.js";
15
+ import "../../../components/ui/reactHookForm/provider/CustomFormProvider.js";
16
16
  import "yup";
17
17
  import "../../../components/ui/treeViewFinder/TreeViewFinder.js";
18
18
  import "../../../components/ui/reactHookForm/numbers/RangeInput.js";
19
- import { MuiSelectInput } from "../../../components/ui/reactHookForm/selectInputs/MuiSelectInput.js";
20
19
  import "@material-symbols/svg-400/outlined/left_panel_open.svg?react";
21
20
  import "@material-symbols/svg-400/outlined/arrows_output.svg?react";
22
21
  import "@material-symbols/svg-400/outlined/arrows_input.svg?react";
@@ -31,9 +30,10 @@ import "../../../components/ui/snackbarProvider/SnackbarProvider.js";
31
30
  import "mui-nested-menu";
32
31
  import "react-resizable-panels";
33
32
  import "react-papaparse";
34
- import { parametersStyles } from "../parameters-style.js";
35
- import { PARAM_SA_PROVIDER, CONTINGENCY_LISTS_INFOS } from "../common/constants.js";
36
33
  import { LineSeparator } from "../common/line-separator.js";
34
+ import "../common/parameter-layout/parameter-layout-provider.js";
35
+ import { CONTINGENCY_LISTS_INFOS } from "../common/constants.js";
36
+ import { ProviderParam } from "../common/provider-param.js";
37
37
  import "../common/widget/parameter-line-slider.js";
38
38
  import "../common/limitreductions/columns-definitions.js";
39
39
  import { ContingencyTable } from "../common/contingency-table/contingency-table.js";
@@ -41,120 +41,49 @@ import "../common/contingency-table/columns-definitions.js";
41
41
  import "@hookform/resolvers/yup";
42
42
  import "../../../components/composite/filter/HeaderFilterForm.js";
43
43
  import { SecurityAnalysisParametersSelector } from "./security-analysis-parameters-selector.js";
44
- const styles = {
45
- securityAnalysisParameters: {
46
- flexGrow: 1,
47
- paddingLeft: 1,
48
- overflow: "auto",
49
- display: "flex",
50
- flexDirection: "column"
51
- },
52
- actions: {
53
- flexGrow: 0
54
- }
55
- };
56
44
  function SecurityAnalysisParametersForm({
57
45
  securityAnalysisMethods,
58
46
  showContingencyCount,
59
47
  fetchContingencyCount,
60
48
  contingencyTableApiRef,
61
49
  isBuiltCurrentNode,
62
- renderTitleFields,
63
- renderActions,
64
50
  isDeveloperMode
65
51
  }) {
66
- return /* @__PURE__ */ jsx(
67
- CustomFormProvider,
68
- {
69
- validationSchema: securityAnalysisMethods.formSchema,
70
- ...securityAnalysisMethods.formMethods,
71
- children: /* @__PURE__ */ jsx(Grid2, { sx: { height: "100%" }, children: /* @__PURE__ */ jsx(
72
- Box,
73
- {
74
- sx: {
75
- height: "100%",
76
- display: "flex",
77
- position: "relative",
78
- flexDirection: "column",
79
- width: "100%"
80
- },
81
- children: /* @__PURE__ */ jsxs(Box, { sx: styles.securityAnalysisParameters, children: [
82
- renderTitleFields?.(),
83
- securityAnalysisMethods.paramsFormInitialized ? /* @__PURE__ */ jsxs(Fragment, { children: [
84
- /* @__PURE__ */ jsxs(
85
- Grid2,
86
- {
87
- container: true,
88
- spacing: 1,
89
- sx: {
90
- padding: 0,
91
- paddingBottom: 2,
92
- height: "fit-content"
93
- },
94
- justifyContent: "space-between",
95
- children: [
96
- /* @__PURE__ */ jsx(Grid2, { size: "auto", sx: parametersStyles.parameterName, children: /* @__PURE__ */ jsx(FormattedMessage, { id: "Provider" }) }),
97
- /* @__PURE__ */ jsx(Grid2, { container: true, size: "auto", sx: parametersStyles.controlItem, children: /* @__PURE__ */ jsx(
98
- MuiSelectInput,
99
- {
100
- name: PARAM_SA_PROVIDER,
101
- size: "small",
102
- options: Object.values(securityAnalysisMethods.formattedProviders)
103
- }
104
- ) }),
105
- /* @__PURE__ */ jsx(LineSeparator, {})
106
- ]
107
- }
108
- ),
109
- /* @__PURE__ */ jsx(
110
- Box,
111
- {
112
- sx: {
113
- flexGrow: 1,
114
- overflow: "auto",
115
- paddingLeft: 1
116
- },
117
- children: /* @__PURE__ */ jsxs(
118
- Grid2,
119
- {
120
- container: true,
121
- sx: mergeSx(parametersStyles.scrollableGrid, {
122
- maxHeight: "100%"
123
- }),
124
- children: [
125
- /* @__PURE__ */ jsx(
126
- ContingencyTable,
127
- {
128
- name: CONTINGENCY_LISTS_INFOS,
129
- showContingencyCount,
130
- fetchContingencyCount,
131
- isBuiltCurrentNode,
132
- ref: contingencyTableApiRef
133
- }
134
- ),
135
- /* @__PURE__ */ jsx(Grid2, { container: true, paddingTop: 4, paddingBottom: 2, children: /* @__PURE__ */ jsx(LineSeparator, {}) }),
136
- /* @__PURE__ */ jsx(
137
- SecurityAnalysisParametersSelector,
138
- {
139
- params: securityAnalysisMethods.params,
140
- currentProvider: securityAnalysisMethods.watchProvider?.trim(),
141
- isDeveloperMode,
142
- defaultLimitReductions: securityAnalysisMethods.defaultLimitReductions
143
- }
144
- )
145
- ]
146
- },
147
- "securityAnalysisParameters"
148
- )
149
- }
150
- )
151
- ] }) : /* @__PURE__ */ jsx(LinearProgress, {}),
152
- renderActions && /* @__PURE__ */ jsx(Box, { sx: styles.actions, children: renderActions() })
153
- ] })
154
- }
155
- ) })
156
- }
157
- );
52
+ return /* @__PURE__ */ jsxs(Stack, { sx: parametersStyles.scrollableGrid, children: [
53
+ /* @__PURE__ */ jsx(ProviderParam, { options: securityAnalysisMethods.formattedProviders, id: "Sa", sx: { paddingBottom: 1 } }),
54
+ /* @__PURE__ */ jsxs(
55
+ Grid2,
56
+ {
57
+ container: true,
58
+ sx: {
59
+ maxHeight: "100%"
60
+ },
61
+ children: [
62
+ /* @__PURE__ */ jsx(
63
+ ContingencyTable,
64
+ {
65
+ name: CONTINGENCY_LISTS_INFOS,
66
+ showContingencyCount,
67
+ fetchContingencyCount,
68
+ isBuiltCurrentNode,
69
+ ref: contingencyTableApiRef
70
+ }
71
+ ),
72
+ /* @__PURE__ */ jsx(Grid2, { container: true, paddingTop: 4, paddingBottom: 2, children: /* @__PURE__ */ jsx(LineSeparator, {}) }),
73
+ /* @__PURE__ */ jsx(
74
+ SecurityAnalysisParametersSelector,
75
+ {
76
+ params: securityAnalysisMethods.params,
77
+ currentProvider: securityAnalysisMethods.watchProvider?.trim(),
78
+ isDeveloperMode,
79
+ defaultLimitReductions: securityAnalysisMethods.defaultLimitReductions
80
+ }
81
+ )
82
+ ]
83
+ },
84
+ "securityAnalysisParameters"
85
+ )
86
+ ] });
158
87
  }
159
88
  export {
160
89
  SecurityAnalysisParametersForm
@@ -1,46 +1,40 @@
1
- import { jsx, jsxs, Fragment } from "react/jsx-runtime";
2
- import { useState, useRef, useCallback, useEffect } from "react";
3
- import { Box, Grid2 } from "@mui/material";
4
- import { useIntl, FormattedMessage } from "react-intl";
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { useRef, useCallback, useEffect } from "react";
5
3
  import "../../../utils/conversionUtils.js";
6
4
  import { snackWithFallback } from "../../../utils/error.js";
7
5
  import { ElementType } from "../../../utils/types/elementType.js";
8
6
  import "../../../utils/types/equipmentType.js";
9
7
  import { mapSecurityAnalysisParameters } from "../../../utils/types/security-analysis.type.js";
10
8
  import "@mui/icons-material";
11
- import { mergeSx } from "../../../utils/styles.js";
12
- import { LineSeparator } from "../common/line-separator.js";
13
- import { LabelledButton } from "../common/parameters.js";
14
- import { CreateParameterDialog } from "../common/parameters-creation-dialog.js";
15
- import { parametersStyles } from "../parameters-style.js";
16
- import "../../../components/ui/overflowableText/OverflowableText.js";
17
- import "react-hook-form";
9
+ import { ParameterLayout } from "../common/parameter-layout/parameter-layout.js";
10
+ import "../common/parameter-layout/parameter-layout-provider.js";
11
+ import "@mui/material";
12
+ import "react-intl";
18
13
  import { fetchSecurityAnalysisParameters } from "../../../services/security-analysis.js";
19
14
  import "localized-countries";
20
15
  import "localized-countries/data/fr";
21
16
  import "localized-countries/data/en";
22
17
  import { useSnackMessage } from "../../../hooks/useSnackMessage.js";
23
- import "../../../components/ui/reactHookForm/provider/CustomFormProvider.js";
24
- import { SubmitButton } from "../../../components/ui/reactHookForm/utils/SubmitButton.js";
18
+ import "react-hook-form";
19
+ import { CustomFormProvider } from "../../../components/ui/reactHookForm/provider/CustomFormProvider.js";
20
+ import "../../../components/ui/dialogs/descriptionModificationDialog/DescriptionModificationDialog.js";
21
+ import "../../../components/ui/dialogs/elementSaveDialog/ElementSaveDialog.js";
22
+ import "../../../components/ui/treeViewFinder/TreeViewFinder.js";
23
+ import "@hello-pangea/dnd";
24
+ import "../../../components/ui/overflowableText/OverflowableText.js";
25
25
  import "yup";
26
- import { DirectoryItemSelector } from "../../../components/ui/directoryItemSelector/DirectoryItemSelector.js";
27
26
  import "../../../components/ui/reactHookForm/numbers/RangeInput.js";
28
- import { PopupConfirmationDialog } from "../../../components/ui/dialogs/popupConfirmationDialog/PopupConfirmationDialog.js";
29
27
  import "@material-symbols/svg-400/outlined/left_panel_open.svg?react";
30
28
  import "@material-symbols/svg-400/outlined/arrows_output.svg?react";
31
29
  import "@material-symbols/svg-400/outlined/arrows_input.svg?react";
32
30
  import "@material-symbols/svg-400/outlined/left_panel_close.svg?react";
33
31
  import "@material-symbols/svg-400/outlined/add_notes.svg?react";
34
- import "../../../components/ui/dialogs/descriptionModificationDialog/DescriptionModificationDialog.js";
35
32
  import "../../../components/ui/reactHookForm/expandableInput/ExpandableInput.js";
36
33
  import "../../../components/ui/reactHookForm/directory-item-input/directory-item-utils.js";
37
- import "@hello-pangea/dnd";
38
- import "../../../components/ui/dialogs/elementSaveDialog/ElementSaveDialog.js";
39
34
  import "../../../components/ui/snackbarProvider/SnackbarProvider.js";
40
35
  import "mui-nested-menu";
41
36
  import "react-resizable-panels";
42
37
  import "react-papaparse";
43
- import "../../../components/ui/treeViewFinder/TreeViewFinder.js";
44
38
  import "../common/widget/parameter-line-slider.js";
45
39
  import "../common/limitreductions/columns-definitions.js";
46
40
  import "../common/contingency-table/contingency-table.js";
@@ -60,28 +54,16 @@ function SecurityAnalysisParametersInline({
60
54
  }) {
61
55
  const securityAnalysisMethods = useSecurityAnalysisParametersForm(parametersBackend, null, null, null);
62
56
  const { resetParameters } = parametersBackend;
63
- const intl = useIntl();
64
- const [openCreateParameterDialog, setOpenCreateParameterDialog] = useState(false);
65
- const [openSelectParameterDialog, setOpenSelectParameterDialog] = useState(false);
66
- const [openResetConfirmation, setOpenResetConfirmation] = useState(false);
67
57
  const contingencyTableApiRef = useRef(null);
68
58
  const { snackError } = useSnackMessage();
69
59
  const { handleSubmit, formState, reset, getValues } = securityAnalysisMethods.formMethods;
70
60
  const executeResetAction = useCallback(() => {
71
61
  resetParameters();
72
62
  contingencyTableApiRef.current?.resetSimulatedContingencyCount();
73
- setOpenResetConfirmation(false);
74
63
  }, [resetParameters]);
75
- const handleResetAllClick = useCallback(() => {
76
- setOpenResetConfirmation(true);
77
- }, []);
78
- const handleCancelReset = useCallback(() => {
79
- setOpenResetConfirmation(false);
80
- }, []);
81
64
  const handleLoadParameter = useCallback(
82
65
  (newParams) => {
83
66
  if (newParams && newParams.length > 0) {
84
- setOpenSelectParameterDialog(false);
85
67
  fetchSecurityAnalysisParameters(newParams[0].id).then((parameters) => {
86
68
  console.info(`loading the following security analysis parameters : ${parameters.uuid}`);
87
69
  reset(toFormValueSaParameters(parameters), {
@@ -92,7 +74,6 @@ function SecurityAnalysisParametersInline({
92
74
  snackWithFallback(snackError, error, { headerId: "paramsRetrievingError" });
93
75
  });
94
76
  }
95
- setOpenSelectParameterDialog(false);
96
77
  },
97
78
  [reset, snackError]
98
79
  );
@@ -100,86 +81,37 @@ function SecurityAnalysisParametersInline({
100
81
  setHaveDirtyFields(formState.isDirty);
101
82
  }, [formState, setHaveDirtyFields]);
102
83
  return /* @__PURE__ */ jsx(
103
- SecurityAnalysisParametersForm,
84
+ CustomFormProvider,
104
85
  {
105
- securityAnalysisMethods,
106
- showContingencyCount: true,
107
- fetchContingencyCount,
108
- contingencyTableApiRef,
109
- isBuiltCurrentNode,
110
- isDeveloperMode,
111
- renderActions: () => {
112
- return /* @__PURE__ */ jsxs(Fragment, { children: [
113
- /* @__PURE__ */ jsxs(Box, { sx: { flexGrow: 0 }, children: [
114
- /* @__PURE__ */ jsx(LineSeparator, {}),
115
- /* @__PURE__ */ jsxs(
116
- Grid2,
117
- {
118
- container: true,
119
- sx: mergeSx(parametersStyles.controlParametersItem, parametersStyles.marginTopButton, {
120
- paddingBottom: 0
121
- }),
122
- children: [
123
- /* @__PURE__ */ jsx(
124
- LabelledButton,
125
- {
126
- callback: () => setOpenSelectParameterDialog(true),
127
- label: "settings.button.chooseSettings"
128
- }
129
- ),
130
- /* @__PURE__ */ jsx(LabelledButton, { callback: () => setOpenCreateParameterDialog(true), label: "save" }),
131
- /* @__PURE__ */ jsx(LabelledButton, { callback: handleResetAllClick, label: "resetToDefault" }),
132
- /* @__PURE__ */ jsx(
133
- SubmitButton,
134
- {
135
- onClick: handleSubmit(securityAnalysisMethods.onSaveInline),
136
- variant: "outlined",
137
- children: /* @__PURE__ */ jsx(FormattedMessage, { id: "validate" })
138
- }
139
- )
140
- ]
141
- }
142
- )
143
- ] }),
144
- openCreateParameterDialog && /* @__PURE__ */ jsx(
145
- CreateParameterDialog,
146
- {
147
- studyUuid,
148
- open: openCreateParameterDialog,
149
- onClose: () => setOpenCreateParameterDialog(false),
150
- parameterValues: getValues,
151
- parameterFormatter: (newParams) => mapSecurityAnalysisParameters(securityAnalysisMethods.formatNewParams(newParams)),
152
- parameterType: ElementType.SECURITY_ANALYSIS_PARAMETERS
153
- }
154
- ),
155
- openSelectParameterDialog && /* @__PURE__ */ jsx(
156
- DirectoryItemSelector,
157
- {
158
- open: openSelectParameterDialog,
159
- onClose: handleLoadParameter,
160
- types: [ElementType.SECURITY_ANALYSIS_PARAMETERS],
161
- title: intl.formatMessage({
162
- id: "showSelectParameterDialog"
163
- }),
164
- onlyLeaves: true,
165
- multiSelect: false,
166
- validationButtonText: intl.formatMessage({
167
- id: "validate"
168
- })
169
- }
170
- ),
171
- openResetConfirmation && /* @__PURE__ */ jsx(
172
- PopupConfirmationDialog,
86
+ validationSchema: securityAnalysisMethods.formSchema,
87
+ ...securityAnalysisMethods.formMethods,
88
+ children: /* @__PURE__ */ jsx(
89
+ ParameterLayout,
90
+ {
91
+ title: "SecurityAnalysis",
92
+ isLoading: !securityAnalysisMethods.paramsFormInitialized,
93
+ parameterType: ElementType.SECURITY_ANALYSIS_PARAMETERS,
94
+ createParameter: {
95
+ studyUuid,
96
+ getParameterValues: getValues,
97
+ parameterFormatter: (newParams) => mapSecurityAnalysisParameters(securityAnalysisMethods.formatNewParams(newParams))
98
+ },
99
+ selectParameterHandler: handleLoadParameter,
100
+ resetHandler: executeResetAction,
101
+ validateHandler: handleSubmit(securityAnalysisMethods.onSaveInline),
102
+ children: /* @__PURE__ */ jsx(
103
+ SecurityAnalysisParametersForm,
173
104
  {
174
- message: "resetParamsConfirmation",
175
- validateButtonLabel: "validate",
176
- openConfirmationPopup: openResetConfirmation,
177
- setOpenConfirmationPopup: handleCancelReset,
178
- handlePopupConfirmation: executeResetAction
105
+ securityAnalysisMethods,
106
+ showContingencyCount: true,
107
+ fetchContingencyCount,
108
+ contingencyTableApiRef,
109
+ isBuiltCurrentNode,
110
+ isDeveloperMode
179
111
  }
180
112
  )
181
- ] });
182
- }
113
+ }
114
+ )
183
115
  }
184
116
  );
185
117
  }
@@ -2,34 +2,35 @@ import { jsxs, jsx } from "react/jsx-runtime";
2
2
  import { useState, useCallback, useMemo, useEffect } from "react";
3
3
  import { FormattedMessage } from "react-intl";
4
4
  import { Grid2, Tabs, Tab } from "@mui/material";
5
- import "../../../utils/conversionUtils.js";
6
- import "../../../utils/types/equipmentType.js";
7
5
  import "@mui/icons-material";
8
6
  import { TabPanel } from "../common/parameters.js";
7
+ import "../../../components/ui/overflowableText/OverflowableText.js";
8
+ import "../../../utils/conversionUtils.js";
9
+ import "../../../utils/types/equipmentType.js";
10
+ import "react-hook-form";
9
11
  import "localized-countries";
10
12
  import "localized-countries/data/fr";
11
13
  import "localized-countries/data/en";
12
14
  import "notistack";
13
- import "react-hook-form";
14
15
  import "../../../components/ui/reactHookForm/provider/CustomFormProvider.js";
15
- import "../../../components/ui/dialogs/descriptionModificationDialog/DescriptionModificationDialog.js";
16
- import "../../../components/ui/dialogs/elementSaveDialog/ElementSaveDialog.js";
17
- import "../../../components/ui/treeViewFinder/TreeViewFinder.js";
18
- import "@hello-pangea/dnd";
19
- import "../../../components/ui/overflowableText/OverflowableText.js";
20
16
  import "yup";
17
+ import "../../../components/ui/treeViewFinder/TreeViewFinder.js";
21
18
  import "../../../components/ui/reactHookForm/numbers/RangeInput.js";
22
19
  import "@material-symbols/svg-400/outlined/left_panel_open.svg?react";
23
20
  import "@material-symbols/svg-400/outlined/arrows_output.svg?react";
24
21
  import "@material-symbols/svg-400/outlined/arrows_input.svg?react";
25
22
  import "@material-symbols/svg-400/outlined/left_panel_close.svg?react";
26
23
  import "@material-symbols/svg-400/outlined/add_notes.svg?react";
24
+ import "../../../components/ui/dialogs/descriptionModificationDialog/DescriptionModificationDialog.js";
27
25
  import "../../../components/ui/reactHookForm/expandableInput/ExpandableInput.js";
28
26
  import "../../../components/ui/reactHookForm/directory-item-input/directory-item-utils.js";
27
+ import "@hello-pangea/dnd";
28
+ import "../../../components/ui/dialogs/elementSaveDialog/ElementSaveDialog.js";
29
29
  import "../../../components/ui/snackbarProvider/SnackbarProvider.js";
30
30
  import "mui-nested-menu";
31
31
  import "react-resizable-panels";
32
32
  import "react-papaparse";
33
+ import "../common/parameter-layout/parameter-layout-provider.js";
33
34
  import "../common/widget/parameter-line-slider.js";
34
35
  import { TabValues, TAB_INFO } from "../common/limitreductions/columns-definitions.js";
35
36
  import { LimitReductionsTableForm } from "../common/limitreductions/limit-reductions-table-form.js";
@@ -32,6 +32,7 @@ import "../../../components/ui/snackbarProvider/SnackbarProvider.js";
32
32
  import "mui-nested-menu";
33
33
  import "react-resizable-panels";
34
34
  import "react-papaparse";
35
+ import "../common/parameter-layout/parameter-layout-provider.js";
35
36
  import { PARAM_SA_FLOW_PROPORTIONAL_THRESHOLD, PARAM_SA_LOW_VOLTAGE_ABSOLUTE_THRESHOLD, PARAM_SA_LOW_VOLTAGE_PROPORTIONAL_THRESHOLD, PARAM_SA_HIGH_VOLTAGE_ABSOLUTE_THRESHOLD, PARAM_SA_HIGH_VOLTAGE_PROPORTIONAL_THRESHOLD } from "../common/constants.js";
36
37
  import "../common/widget/parameter-line-slider.js";
37
38
  import "../common/limitreductions/columns-definitions.js";
@@ -8,33 +8,34 @@ import "../../../utils/types/equipmentType.js";
8
8
  import { mapSecurityAnalysisParameters } from "../../../utils/types/security-analysis.type.js";
9
9
  import "react/jsx-runtime";
10
10
  import "@mui/icons-material";
11
- import { PARAM_SA_HIGH_VOLTAGE_ABSOLUTE_THRESHOLD, PARAM_SA_HIGH_VOLTAGE_PROPORTIONAL_THRESHOLD, PARAM_SA_LOW_VOLTAGE_ABSOLUTE_THRESHOLD, PARAM_SA_LOW_VOLTAGE_PROPORTIONAL_THRESHOLD, PARAM_SA_FLOW_PROPORTIONAL_THRESHOLD, CONTINGENCY_LISTS_INFOS, PARAM_SA_PROVIDER, CONTINGENCY_LISTS } from "../common/constants.js";
12
11
  import "@mui/material";
13
12
  import "react-intl";
13
+ import "../../../components/ui/overflowableText/OverflowableText.js";
14
14
  import { updateParameter } from "../../../services/explore.js";
15
15
  import "localized-countries";
16
16
  import "localized-countries/data/fr";
17
17
  import "localized-countries/data/en";
18
18
  import { useSnackMessage } from "../../../hooks/useSnackMessage.js";
19
19
  import "../../../components/ui/reactHookForm/provider/CustomFormProvider.js";
20
- import "../../../components/ui/dialogs/descriptionModificationDialog/DescriptionModificationDialog.js";
21
- import "../../../components/ui/dialogs/elementSaveDialog/ElementSaveDialog.js";
22
- import "../../../components/ui/treeViewFinder/TreeViewFinder.js";
23
- import "@hello-pangea/dnd";
24
- import "../../../components/ui/overflowableText/OverflowableText.js";
25
20
  import "yup";
21
+ import "../../../components/ui/treeViewFinder/TreeViewFinder.js";
26
22
  import "../../../components/ui/reactHookForm/numbers/RangeInput.js";
27
23
  import "@material-symbols/svg-400/outlined/left_panel_open.svg?react";
28
24
  import "@material-symbols/svg-400/outlined/arrows_output.svg?react";
29
25
  import "@material-symbols/svg-400/outlined/arrows_input.svg?react";
30
26
  import "@material-symbols/svg-400/outlined/left_panel_close.svg?react";
31
27
  import "@material-symbols/svg-400/outlined/add_notes.svg?react";
28
+ import "../../../components/ui/dialogs/descriptionModificationDialog/DescriptionModificationDialog.js";
32
29
  import "../../../components/ui/reactHookForm/expandableInput/ExpandableInput.js";
33
30
  import "../../../components/ui/reactHookForm/directory-item-input/directory-item-utils.js";
31
+ import "@hello-pangea/dnd";
32
+ import "../../../components/ui/dialogs/elementSaveDialog/ElementSaveDialog.js";
34
33
  import "../../../components/ui/snackbarProvider/SnackbarProvider.js";
35
34
  import "mui-nested-menu";
36
35
  import "react-resizable-panels";
37
36
  import "react-papaparse";
37
+ import "../common/parameter-layout/parameter-layout-provider.js";
38
+ import { PARAM_SA_HIGH_VOLTAGE_ABSOLUTE_THRESHOLD, PARAM_SA_HIGH_VOLTAGE_PROPORTIONAL_THRESHOLD, PARAM_SA_LOW_VOLTAGE_ABSOLUTE_THRESHOLD, PARAM_SA_LOW_VOLTAGE_PROPORTIONAL_THRESHOLD, PARAM_SA_FLOW_PROPORTIONAL_THRESHOLD, CONTINGENCY_LISTS_INFOS, PARAM_SA_PROVIDER, CONTINGENCY_LISTS } from "../common/constants.js";
38
39
  import "../common/widget/parameter-line-slider.js";
39
40
  import { LIMIT_REDUCTIONS_FORM, IST_FORM, LIMIT_DURATION_FORM, toFormValuesLimitReductions } from "../common/limitreductions/columns-definitions.js";
40
41
  import "../common/contingency-table/contingency-table.js";