@gridsuite/commons-ui 0.256.0 → 0.258.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 (219) hide show
  1. package/dist/components/composite/filter/FilterCreationDialog.js +6 -2
  2. package/dist/components/composite/filter/FilterForm.js +10 -0
  3. package/dist/components/composite/filter/HeaderFilterForm.d.ts +0 -10
  4. package/dist/components/composite/filter/HeaderFilterForm.js +7 -16
  5. package/dist/components/composite/filter/expert/ExpertFilterForm.js +3 -3
  6. package/dist/components/index.js +8 -0
  7. package/dist/components/ui/dialogs/descriptionModificationDialog/DescriptionModificationDialog.js +2 -1
  8. package/dist/components/ui/dialogs/elementSaveDialog/ElementSaveDialog.js +2 -1
  9. package/dist/components/ui/dialogs/index.d.ts +1 -0
  10. package/dist/components/ui/dialogs/index.js +8 -0
  11. package/dist/{features/parameters/common → components/ui/dialogs}/name-element-editor/index.d.ts +2 -1
  12. package/dist/components/ui/dialogs/name-element-editor/index.js +10 -0
  13. package/dist/{features/parameters/common → components/ui/dialogs}/name-element-editor/name-element-editor-form.js +5 -5
  14. package/dist/{features/parameters/common → components/ui/dialogs}/name-element-editor/name-element-editor-utils.d.ts +13 -3
  15. package/dist/{features/parameters/common → components/ui/dialogs}/name-element-editor/name-element-editor-utils.js +27 -22
  16. package/dist/components/ui/dialogs/name-element-editor/named-element-edition-dialog.d.ts +17 -0
  17. package/dist/components/ui/dialogs/name-element-editor/named-element-edition-dialog.js +49 -0
  18. package/dist/components/ui/index.js +8 -0
  19. package/dist/features/global-filter/context/global-filter-context-provider.d.ts +2 -0
  20. package/dist/features/global-filter/context/global-filter-context-provider.js +41 -0
  21. package/dist/features/global-filter/context/global-filter-context.d.ts +3 -0
  22. package/dist/features/global-filter/context/global-filter-context.js +13 -0
  23. package/dist/features/global-filter/context/global-filter-context.type.d.ts +14 -0
  24. package/dist/features/global-filter/context/global-filter-context.type.js +1 -0
  25. package/dist/features/global-filter/context/index.d.ts +8 -0
  26. package/dist/features/global-filter/context/index.js +4 -0
  27. package/dist/features/global-filter/global-filter.style.d.ts +162 -0
  28. package/dist/features/global-filter/global-filter.style.js +190 -0
  29. package/dist/features/global-filter/index.d.ts +10 -0
  30. package/dist/features/global-filter/index.js +31 -0
  31. package/dist/features/global-filter/types/global-filter.type.d.ts +51 -0
  32. package/dist/features/global-filter/types/global-filter.type.js +19 -0
  33. package/dist/features/global-filter/types/index.d.ts +8 -0
  34. package/dist/features/global-filter/types/index.js +8 -0
  35. package/dist/features/global-filter/types/limit-violation.type.d.ts +11 -0
  36. package/dist/features/global-filter/types/limit-violation.type.js +9 -0
  37. package/dist/features/global-filter/ui/global-filter-dropdown-panel.d.ts +10 -0
  38. package/dist/features/global-filter/ui/global-filter-dropdown-panel.js +251 -0
  39. package/dist/features/global-filter/ui/global-filter-panel.d.ts +9 -0
  40. package/dist/features/global-filter/ui/global-filter-panel.js +391 -0
  41. package/dist/features/global-filter/ui/label-with-info-tooltip.d.ts +12 -0
  42. package/dist/features/global-filter/ui/label-with-info-tooltip.js +24 -0
  43. package/dist/features/global-filter/ui/selected-global-filters.d.ts +4 -0
  44. package/dist/features/global-filter/ui/selected-global-filters.js +114 -0
  45. package/dist/features/global-filter/utils/build-valid-global-filters.d.ts +8 -0
  46. package/dist/features/global-filter/utils/build-valid-global-filters.js +51 -0
  47. package/dist/features/global-filter/utils/editing-global-filter-sync.d.ts +9 -0
  48. package/dist/features/global-filter/utils/editing-global-filter-sync.js +15 -0
  49. package/dist/features/global-filter/utils/global-filter-state.utils.d.ts +14 -0
  50. package/dist/features/global-filter/utils/global-filter-state.utils.js +71 -0
  51. package/dist/features/global-filter/utils/global-filter-sync.utils.d.ts +9 -0
  52. package/dist/features/global-filter/utils/global-filter-sync.utils.js +26 -0
  53. package/dist/features/global-filter/utils/global-filter-utils.d.ts +7 -0
  54. package/dist/features/global-filter/utils/global-filter-utils.js +44 -0
  55. package/dist/features/global-filter/utils/index.d.ts +11 -0
  56. package/dist/features/global-filter/utils/index.js +21 -0
  57. package/dist/features/index.d.ts +1 -0
  58. package/dist/features/index.js +42 -8
  59. package/dist/features/network-modification-table/renderers/description-cell.js +4 -0
  60. package/dist/features/network-modifications/battery/creation/batteryCreation.utils.js +3 -2
  61. package/dist/features/network-modifications/battery/modification/batteryModification.utils.js +2 -1
  62. package/dist/features/network-modifications/by-filter/assignment/assignment/assignment-form.js +2 -1
  63. package/dist/features/network-modifications/by-filter/assignment/assignment/assignment-utils.js +2 -2
  64. package/dist/features/network-modifications/by-filter/formula/formula/formula-utils.js +5 -5
  65. package/dist/features/network-modifications/common/activePowerControl/activePowerControlForm.utils.js +2 -1
  66. package/dist/features/network-modifications/common/connectivity/connectivityForm.utils.js +2 -1
  67. package/dist/features/network-modifications/common/currentLimits/limitsPane.utils.js +2 -1
  68. package/dist/features/network-modifications/common/reactiveLimits/reactiveCapabilityCurve/reactiveCapability.utils.js +2 -1
  69. package/dist/features/network-modifications/common/reactiveLimits/reactiveLimits.utils.js +3 -2
  70. package/dist/features/network-modifications/common/voltageRegulation/voltageRegulation.utils.js +3 -2
  71. package/dist/features/network-modifications/generator/creation/generatorCreation.utils.js +4 -3
  72. package/dist/features/network-modifications/generator/modification/generatorModification.utils.js +5 -4
  73. package/dist/features/network-modifications/line/characteristics/lineCharacteristicsPane.utils.js +7 -6
  74. package/dist/features/network-modifications/shunt-compensator/common/characteristicsForm.utils.js +7 -6
  75. package/dist/features/network-modifications/voltageLevel/creation/voltageLevelCreation.utils.js +10 -9
  76. package/dist/features/network-modifications/voltageLevel/modification/voltageLevelModification.utils.js +6 -5
  77. package/dist/features/parameters/common/hook/use-parameters-form.js +1 -2
  78. package/dist/features/parameters/common/limitreductions/columns-definitions.js +3 -2
  79. package/dist/features/parameters/common/parameters-creation-dialog.js +9 -0
  80. package/dist/features/parameters/dynamic-margin-calculation/dynamic-margin-calculation-form.js +0 -1
  81. package/dist/features/parameters/dynamic-margin-calculation/dynamic-margin-calculation-inline.js +0 -1
  82. package/dist/features/parameters/dynamic-margin-calculation/loads-variations-parameters.js +2 -2
  83. package/dist/features/parameters/dynamic-security-analysis/contingency-parameters.js +0 -1
  84. package/dist/features/parameters/dynamic-security-analysis/dynamic-security-analysis-inline.js +0 -1
  85. package/dist/features/parameters/dynamic-security-analysis/dynamic-security-analysis-parameters-form.js +0 -1
  86. package/dist/features/parameters/dynamic-simulation/dynamic-simulation-inline.js +0 -1
  87. package/dist/features/parameters/dynamic-simulation/dynamic-simulation-parameters-form.js +0 -1
  88. package/dist/features/parameters/dynamic-simulation/mapping/mapping-parameters.js +0 -1
  89. package/dist/features/parameters/loadflow/load-flow-advanced-parameters.js +0 -1
  90. package/dist/features/parameters/loadflow/load-flow-general-parameters.js +0 -1
  91. package/dist/features/parameters/loadflow/load-flow-parameters-content.js +0 -1
  92. package/dist/features/parameters/loadflow/load-flow-parameters-dialog.js +4 -8
  93. package/dist/features/parameters/loadflow/load-flow-parameters-header.js +0 -1
  94. package/dist/features/parameters/loadflow/load-flow-parameters-inline.js +0 -1
  95. package/dist/features/parameters/loadflow/load-flow-parameters-utils.js +0 -1
  96. package/dist/features/parameters/loadflow/load-flow-provider-specific-parameters.js +0 -1
  97. package/dist/features/parameters/loadflow/use-load-flow-parameters-form.js +1 -2
  98. package/dist/features/parameters/network-visualizations/network-visualizations-form.js +0 -1
  99. package/dist/features/parameters/network-visualizations/network-visualizations-parameters-dialog.js +3 -7
  100. package/dist/features/parameters/network-visualizations/network-visualizations-parameters-inline.js +0 -1
  101. package/dist/features/parameters/network-visualizations/use-network-visualizations-parameters-form.js +1 -2
  102. package/dist/features/parameters/pcc-min/pcc-min-parameters-dialog.js +1 -5
  103. package/dist/features/parameters/pcc-min/pcc-min-parameters-inline.js +0 -1
  104. package/dist/features/parameters/pcc-min/use-pcc-min-parameters-form.js +1 -2
  105. package/dist/features/parameters/security-analysis/columns-definitions.js +5 -5
  106. package/dist/features/parameters/security-analysis/security-analysis-parameters-content.js +0 -1
  107. package/dist/features/parameters/security-analysis/security-analysis-parameters-dialog.js +2 -6
  108. package/dist/features/parameters/security-analysis/security-analysis-parameters-form.js +0 -1
  109. package/dist/features/parameters/security-analysis/security-analysis-parameters-inline.js +0 -1
  110. package/dist/features/parameters/security-analysis/security-analysis-parameters-utils.js +0 -1
  111. package/dist/features/parameters/security-analysis/use-security-analysis-parameters-form.js +1 -2
  112. package/dist/features/parameters/sensi/columns-definitions.js +0 -1
  113. package/dist/features/parameters/sensi/sensitivity-analysis-parameters-dialog.js +1 -5
  114. package/dist/features/parameters/sensi/sensitivity-analysis-parameters-form.js +0 -1
  115. package/dist/features/parameters/sensi/sensitivity-analysis-parameters-inline.js +0 -1
  116. package/dist/features/parameters/sensi/sensitivity-parameters-selector.js +0 -1
  117. package/dist/features/parameters/sensi/use-sensitivity-analysis-parameters.js +1 -2
  118. package/dist/features/parameters/sensi/utils.js +1 -2
  119. package/dist/features/parameters/short-circuit/short-circuit-general-tab-panel.js +0 -1
  120. package/dist/features/parameters/short-circuit/short-circuit-parameters-content.js +0 -1
  121. package/dist/features/parameters/short-circuit/short-circuit-parameters-dialog.js +1 -5
  122. package/dist/features/parameters/short-circuit/short-circuit-parameters-inline.js +0 -1
  123. package/dist/features/parameters/short-circuit/short-circuit-parameters-utils.js +0 -1
  124. package/dist/features/parameters/short-circuit/short-circuit-power-electronics-tab-panel.js +0 -1
  125. package/dist/features/parameters/short-circuit/short-circuit-study-area-tab-panel.js +0 -1
  126. package/dist/features/parameters/short-circuit/use-short-circuit-parameters-form.js +1 -2
  127. package/dist/features/parameters/voltage-init/equipment-selection-parameters.js +0 -1
  128. package/dist/features/parameters/voltage-init/general-parameters.js +0 -1
  129. package/dist/features/parameters/voltage-init/use-voltage-init-parameters-form.js +4 -5
  130. package/dist/features/parameters/voltage-init/voltage-init-parameters-dialog.js +1 -5
  131. package/dist/features/parameters/voltage-init/voltage-init-parameters-form.js +0 -1
  132. package/dist/features/parameters/voltage-init/voltage-init-parameters-inline.js +0 -1
  133. package/dist/features/process-configs/common/index.d.ts +9 -0
  134. package/dist/features/process-configs/common/index.js +11 -0
  135. package/dist/features/process-configs/common/process-config-modifications-edition.d.ts +3 -0
  136. package/dist/features/process-configs/common/process-config-modifications-edition.js +129 -0
  137. package/dist/features/process-configs/common/process-config-modifications-edition.utils.d.ts +53 -0
  138. package/dist/features/process-configs/common/process-config-modifications-edition.utils.js +50 -0
  139. package/dist/features/process-configs/common/process-config.type.d.ts +14 -0
  140. package/dist/features/process-configs/index.d.ts +6 -3
  141. package/dist/features/process-configs/index.js +13 -8
  142. package/dist/features/process-configs/lf-process-config-edition-dialog.d.ts +3 -0
  143. package/dist/features/process-configs/lf-process-config-edition-dialog.js +136 -0
  144. package/dist/features/process-configs/loadflow/index.d.ts +9 -0
  145. package/dist/features/process-configs/loadflow/index.js +9 -0
  146. package/dist/features/process-configs/loadflow/lf-process-config-edition.d.ts +1 -0
  147. package/dist/features/process-configs/loadflow/lf-process-config-edition.js +91 -0
  148. package/dist/features/process-configs/loadflow/lf-process-config-edition.utils.d.ts +39 -0
  149. package/dist/features/process-configs/{security-analysis/update-sa-process-config-dialog.js → loadflow/lf-process-config-edition.utils.js} +53 -81
  150. package/dist/features/process-configs/loadflow/lf-process-config.type.d.ts +6 -0
  151. package/dist/features/process-configs/loadflow/lf-process-config.type.js +1 -0
  152. package/dist/features/process-configs/process-config-edition.utils.d.ts +13 -0
  153. package/dist/features/process-configs/process-config-edition.utils.js +1 -0
  154. package/dist/features/process-configs/process-config.type.d.ts +14 -0
  155. package/dist/features/process-configs/process-config.type.js +1 -0
  156. package/dist/features/process-configs/process-config.utils.d.ts +2 -0
  157. package/dist/features/process-configs/{update-process-config-modifications.js → process-config.utils.js} +11 -74
  158. package/dist/features/process-configs/sa-process-config-edition-dialog.d.ts +3 -0
  159. package/dist/features/process-configs/sa-process-config-edition-dialog.js +136 -0
  160. package/dist/features/process-configs/security-analysis/index.d.ts +4 -3
  161. package/dist/features/process-configs/security-analysis/index.js +7 -8
  162. package/dist/features/process-configs/security-analysis/sa-process-config-edition.d.ts +1 -0
  163. package/dist/features/process-configs/security-analysis/{update-sa-process-config.js → sa-process-config-edition.js} +5 -13
  164. package/dist/features/process-configs/security-analysis/sa-process-config-edition.utils.d.ts +45 -0
  165. package/dist/features/process-configs/security-analysis/sa-process-config-edition.utils.js +119 -0
  166. package/dist/features/process-configs/security-analysis/sa-process-config.type.d.ts +7 -0
  167. package/dist/features/process-configs/security-analysis/sa-process-config.type.js +1 -0
  168. package/dist/hooks/use-unique-name-validation.js +3 -2
  169. package/dist/index.js +77 -9
  170. package/dist/translations/en/descriptionEn.d.ts +0 -6
  171. package/dist/translations/en/descriptionEn.js +6 -1
  172. package/dist/translations/en/filterEn.d.ts +0 -2
  173. package/dist/translations/en/filterEn.js +0 -2
  174. package/dist/translations/en/generic-validationEn.d.ts +23 -0
  175. package/dist/translations/en/generic-validationEn.js +25 -0
  176. package/dist/translations/en/index.d.ts +2 -0
  177. package/dist/translations/en/index.js +4 -0
  178. package/dist/translations/en/network-modification-validationEn.d.ts +23 -0
  179. package/dist/translations/en/network-modification-validationEn.js +31 -0
  180. package/dist/translations/en/networkModificationsEn.d.ts +6 -33
  181. package/dist/translations/en/networkModificationsEn.js +0 -38
  182. package/dist/translations/en/parameters.d.ts +0 -2
  183. package/dist/translations/en/parameters.js +0 -2
  184. package/dist/translations/en/processConfigEn.d.ts +3 -0
  185. package/dist/translations/en/processConfigEn.js +5 -2
  186. package/dist/translations/en/use-unique-name-validation-en.d.ts +0 -2
  187. package/dist/translations/en/use-unique-name-validation-en.js +1 -3
  188. package/dist/translations/fr/descriptionFr.d.ts +0 -6
  189. package/dist/translations/fr/descriptionFr.js +6 -1
  190. package/dist/translations/fr/filterFr.d.ts +0 -2
  191. package/dist/translations/fr/filterFr.js +0 -2
  192. package/dist/translations/fr/generic-validationFr.d.ts +17 -0
  193. package/dist/translations/fr/generic-validationFr.js +25 -0
  194. package/dist/translations/fr/index.d.ts +2 -0
  195. package/dist/translations/fr/index.js +4 -0
  196. package/dist/translations/fr/network-modification-validationFr.d.ts +23 -0
  197. package/dist/translations/fr/network-modification-validationFr.js +31 -0
  198. package/dist/translations/fr/networkModificationsFr.d.ts +6 -33
  199. package/dist/translations/fr/networkModificationsFr.js +0 -38
  200. package/dist/translations/fr/parameters.d.ts +0 -2
  201. package/dist/translations/fr/parameters.js +0 -2
  202. package/dist/translations/fr/processConfigFr.d.ts +3 -0
  203. package/dist/translations/fr/processConfigFr.js +5 -2
  204. package/dist/translations/fr/use-unique-name-validation-fr.d.ts +0 -2
  205. package/dist/translations/fr/use-unique-name-validation-fr.js +1 -3
  206. package/dist/utils/constants/index.js +19 -1
  207. package/dist/utils/constants/translationKeys.d.ts +18 -0
  208. package/dist/utils/constants/translationKeys.js +36 -0
  209. package/dist/utils/index.js +19 -1
  210. package/package.json +1 -1
  211. package/dist/features/parameters/common/name-element-editor/index.js +0 -7
  212. package/dist/features/process-configs/process-configs.type.d.ts +0 -33
  213. package/dist/features/process-configs/security-analysis/update-sa-process-config-dialog.d.ts +0 -14
  214. package/dist/features/process-configs/security-analysis/update-sa-process-config.d.ts +0 -7
  215. package/dist/features/process-configs/security-analysis/update-sa-process-configs-utils.d.ts +0 -68
  216. package/dist/features/process-configs/security-analysis/update-sa-process-configs-utils.js +0 -88
  217. package/dist/features/process-configs/update-process-config-modifications.d.ts +0 -3
  218. /package/dist/{features/parameters/common → components/ui/dialogs}/name-element-editor/name-element-editor-form.d.ts +0 -0
  219. /package/dist/features/process-configs/{process-configs.type.js → common/process-config.type.js} +0 -0
@@ -0,0 +1,39 @@
1
+ import { LoadflowProcessConfigBackend } from './lf-process-config.type';
2
+ /**
3
+ * Copyright (c) 2026, RTE (http://www.rte-france.com)
4
+ * This Source Code Form is subject to the terms of the Mozilla Public
5
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
6
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
7
+ */
8
+ import * as yup from 'yup';
9
+ export declare function getNamedLFProcessConfigFormSchema(initialName: string | null): yup.ObjectSchema<{
10
+ loadflowParameters: {
11
+ name?: string | undefined;
12
+ id: string;
13
+ }[];
14
+ modifications: {
15
+ description?: string | null | undefined;
16
+ active: NonNullable<boolean | undefined>;
17
+ modification: {
18
+ name?: string | undefined;
19
+ id: string;
20
+ }[];
21
+ }[];
22
+ } & {
23
+ name: string | null | undefined;
24
+ description: string | null | undefined;
25
+ }, yup.AnyObject, {
26
+ loadflowParameters: "";
27
+ modifications: "";
28
+ name: undefined;
29
+ description: undefined;
30
+ }, "">;
31
+ export type NamedLFProcessConfigFormSchema = yup.InferType<ReturnType<typeof getNamedLFProcessConfigFormSchema>>;
32
+ export declare function getEmptyLFProcessConfigFormData(initialName: string | null, initialDescription: string | null): {
33
+ loadflowParameters: never[];
34
+ modifications: never[];
35
+ name: string | null;
36
+ description: string | null;
37
+ };
38
+ export declare function getNamedLFProcessConfigFormData(processConfig: LoadflowProcessConfigBackend, name: string, description: string | null): Promise<NamedLFProcessConfigFormSchema>;
39
+ export declare function getLFProcessConfigBackendFromFormData(formData: NamedLFProcessConfigFormSchema): LoadflowProcessConfigBackend;
@@ -1,22 +1,23 @@
1
- import { jsxs, jsx } from "react/jsx-runtime";
2
- import { useState, useCallback, useEffect } from "react";
3
- import { useForm } from "react-hook-form";
4
- import { yupResolver } from "@hookform/resolvers/yup";
5
- import { LinearProgress } from "@mui/material";
6
- import { UpdateSaProcessConfig } from "./update-sa-process-config.js";
7
- import { updateSAProcessConfigFormSchema, toSAProcessConfig, getSAProcessConfigFormDataFromFetchedElement, getSAProcessConfigBackendFromFormData } from "./update-sa-process-configs-utils.js";
8
- import "@mui/icons-material";
9
- import "react-intl";
10
- import "../../../components/ui/overflowableText/OverflowableText.js";
1
+ import * as yup from "yup";
11
2
  import { FieldConstants } from "../../../utils/constants/fieldConstants.js";
3
+ import { YUP_REQUIRED } from "../../../utils/constants/translationKeys.js";
12
4
  import "../../../utils/conversionUtils.js";
13
5
  import "../../../utils/types/equipmentType.js";
6
+ import "react/jsx-runtime";
7
+ import "@mui/icons-material";
8
+ import { fetchElementNames } from "../../../services/directory.js";
9
+ import { ProcessType } from "../common/process-config.type.js";
10
+ import { emptyProcessConfigModificationsFormData, getProcessConfigModificationsBackendFromFormData, getProcessConfigModificationsFormData, processConfigModificationsShape } from "../common/process-config-modifications-edition.utils.js";
11
+ import "react-hook-form";
12
+ import "react";
13
+ import "react-intl";
14
+ import "@mui/material";
15
+ import "../../../components/ui/overflowableText/OverflowableText.js";
14
16
  import "localized-countries";
15
17
  import "localized-countries/data/fr";
16
18
  import "localized-countries/data/en";
17
19
  import "notistack";
18
20
  import "../../../components/ui/reactHookForm/provider/CustomFormProvider.js";
19
- import "yup";
20
21
  import "../../../components/ui/treeViewFinder/TreeViewFinder.js";
21
22
  import "../../../components/ui/reactHookForm/numbers/RangeInput.js";
22
23
  import "@material-symbols/svg-400/outlined/left_panel_open.svg?react";
@@ -28,8 +29,8 @@ import "../../../components/ui/dialogs/descriptionModificationDialog/Description
28
29
  import "../../../components/ui/reactHookForm/expandableInput/ExpandableInput.js";
29
30
  import "../../../components/ui/reactHookForm/directory-item-input/directory-item-utils.js";
30
31
  import "@hello-pangea/dnd";
31
- import { CustomMuiDialog } from "../../../components/ui/dialogs/customMuiDialog/CustomMuiDialog.js";
32
32
  import "../../../components/ui/dialogs/elementSaveDialog/ElementSaveDialog.js";
33
+ import { getNameElementEditorEmptyFormData, getNameElementEditorSchema } from "../../../components/ui/dialogs/name-element-editor/name-element-editor-utils.js";
33
34
  import "../../../components/ui/snackbarProvider/SnackbarProvider.js";
34
35
  import "mui-nested-menu";
35
36
  import "react-resizable-panels";
@@ -61,77 +62,48 @@ import "../../../components/composite/report/report-viewer/log-table/log-table.j
61
62
  import "react-window";
62
63
  import "../../../components/composite/report/report-treeview/treeview-item.js";
63
64
  import "../../../components/composite/report/report-viewer/context/report-viewer-context.js";
64
- function UpdateSAProcessConfigDialog({
65
- onClose,
66
- open,
67
- processConfigId,
68
- description,
69
- name,
70
- directory,
71
- fetchSAProcessConfig,
72
- updateSAProcessConfig
73
- }) {
74
- const [isLoading, setIsLoading] = useState(false);
75
- const emptyFormData = {
65
+ function getNamedLFProcessConfigFormSchema(initialName) {
66
+ const formSchema = yup.object().shape({
67
+ ...processConfigModificationsShape,
68
+ [FieldConstants.LOADFLOW_PARAMETERS]: yup.array().required().of(yup.object().shape({ id: yup.string().required(), name: yup.string() })).length(1, YUP_REQUIRED)
69
+ });
70
+ return formSchema.concat(getNameElementEditorSchema(initialName));
71
+ }
72
+ function getEmptyLFProcessConfigFormData(initialName, initialDescription) {
73
+ return {
74
+ ...getNameElementEditorEmptyFormData(initialName, initialDescription),
75
+ ...emptyProcessConfigModificationsFormData,
76
+ [FieldConstants.LOADFLOW_PARAMETERS]: []
77
+ };
78
+ }
79
+ async function getNamedLFProcessConfigFormData(processConfig, name, description) {
80
+ const allUuids = /* @__PURE__ */ new Set([
81
+ ...processConfig.modifications.map((modification) => modification.modificationUuid),
82
+ processConfig.loadflowParametersUuid
83
+ ]);
84
+ const elementNamesByUuid = await fetchElementNames(allUuids);
85
+ return {
76
86
  name,
77
- description: description ?? "",
78
- modifications: [],
79
- loadflowParameters: [],
80
- securityAnalysisParameters: []
87
+ description: description ?? void 0,
88
+ ...getProcessConfigModificationsFormData(processConfig.modifications, elementNamesByUuid),
89
+ [FieldConstants.LOADFLOW_PARAMETERS]: [
90
+ {
91
+ id: processConfig.loadflowParametersUuid,
92
+ name: elementNamesByUuid[processConfig.loadflowParametersUuid]
93
+ }
94
+ ]
95
+ };
96
+ }
97
+ function getLFProcessConfigBackendFromFormData(formData) {
98
+ return {
99
+ processType: ProcessType.LOADFLOW,
100
+ ...getProcessConfigModificationsBackendFromFormData(formData[FieldConstants.MODIFICATIONS]),
101
+ loadflowParametersUuid: formData[FieldConstants.LOADFLOW_PARAMETERS][0].id
81
102
  };
82
- const methods = useForm({
83
- defaultValues: emptyFormData,
84
- resolver: yupResolver(updateSAProcessConfigFormSchema)
85
- });
86
- const {
87
- reset,
88
- formState: { errors }
89
- } = methods;
90
- const fetchSAProcessConfigData = useCallback(async () => {
91
- const persistedProcessConfig = await fetchSAProcessConfig(processConfigId);
92
- if (persistedProcessConfig) {
93
- const processConfigData = await toSAProcessConfig(persistedProcessConfig);
94
- const formData = getSAProcessConfigFormDataFromFetchedElement(processConfigData, name, description);
95
- reset({ ...formData });
96
- }
97
- }, [description, fetchSAProcessConfig, name, processConfigId, reset]);
98
- useEffect(() => {
99
- setIsLoading(true);
100
- fetchSAProcessConfigData().finally(() => setIsLoading(false));
101
- }, [fetchSAProcessConfigData]);
102
- const handleUpdateProcessConfig = useCallback(
103
- (processConfigFormData) => {
104
- updateSAProcessConfig(
105
- processConfigId,
106
- processConfigFormData.name,
107
- processConfigFormData.description ?? "",
108
- getSAProcessConfigBackendFromFormData(processConfigFormData)
109
- ).then(() => onClose());
110
- },
111
- [processConfigId, onClose, updateSAProcessConfig]
112
- );
113
- const nameError = errors[FieldConstants.NAME];
114
- const isValidating = errors.root?.isValidating;
115
- return /* @__PURE__ */ jsxs(
116
- CustomMuiDialog,
117
- {
118
- titleId: "process_config/editSAProcessConfigTitle",
119
- formContext: {
120
- ...methods,
121
- validationSchema: updateSAProcessConfigFormSchema,
122
- removeOptional: true
123
- },
124
- open,
125
- onClose,
126
- onSave: handleUpdateProcessConfig,
127
- disabledSave: Boolean(nameError || isValidating),
128
- children: [
129
- !isLoading && /* @__PURE__ */ jsx(UpdateSaProcessConfig, { directory, processConfigName: name }),
130
- isLoading && /* @__PURE__ */ jsx(LinearProgress, {})
131
- ]
132
- }
133
- );
134
103
  }
135
104
  export {
136
- UpdateSAProcessConfigDialog
105
+ getEmptyLFProcessConfigFormData,
106
+ getLFProcessConfigBackendFromFormData,
107
+ getNamedLFProcessConfigFormData,
108
+ getNamedLFProcessConfigFormSchema
137
109
  };
@@ -0,0 +1,6 @@
1
+ import { UUID } from 'node:crypto';
2
+ import { ProcessConfigBaseBackend, ProcessType } from '../common';
3
+ export interface LoadflowProcessConfigBackend extends ProcessConfigBaseBackend {
4
+ processType: ProcessType.LOADFLOW;
5
+ loadflowParametersUuid: UUID;
6
+ }
@@ -0,0 +1,13 @@
1
+ import { UUID } from 'node:crypto';
2
+ import { PersistedProcessConfigBackend, ProcessConfigBackend } from './process-config.type';
3
+ import { ProcessType } from './common';
4
+ export interface ProcessConfigEditionDialogProps<TProcessType extends ProcessType> {
5
+ processConfigUuid: UUID;
6
+ processConfigName: string;
7
+ description: string | null;
8
+ directory: UUID;
9
+ open: boolean;
10
+ onClose: () => void;
11
+ fetchProcessConfig: (processConfigUuid: UUID) => Promise<PersistedProcessConfigBackend<TProcessType>>;
12
+ updateProcessConfig: (processConfigUuid: UUID, name: string, description: string, processConfig: ProcessConfigBackend<TProcessType>) => Promise<Response>;
13
+ }
@@ -0,0 +1,14 @@
1
+ import { UUID } from 'node:crypto';
2
+ import { SecurityAnalysisProcessConfigBackend } from './security-analysis';
3
+ import { LoadflowProcessConfigBackend } from './loadflow';
4
+ import { ProcessType } from './common';
5
+ type ProcessConfigBackendByProcessType = {
6
+ [ProcessType.SECURITY_ANALYSIS]: SecurityAnalysisProcessConfigBackend;
7
+ [ProcessType.LOADFLOW]: LoadflowProcessConfigBackend;
8
+ };
9
+ export type ProcessConfigBackend<TProcessType extends ProcessType> = ProcessConfigBackendByProcessType[TProcessType];
10
+ export type PersistedProcessConfigBackend<TProcessType extends ProcessType> = {
11
+ id: UUID;
12
+ processConfig: ProcessConfigBackend<TProcessType>;
13
+ };
14
+ export {};
@@ -0,0 +1,2 @@
1
+ import { ProcessType } from './common';
2
+ export declare function isProcessType(type: string): type is ProcessType;
@@ -1,12 +1,13 @@
1
- import { jsx } from "react/jsx-runtime";
2
- import { useFieldArray } from "react-hook-form";
3
- import { useCallback, useMemo } from "react";
4
- import { useIntl } from "react-intl";
1
+ import { ProcessType } from "./common/process-config.type.js";
2
+ import "./common/process-config-modifications-edition.utils.js";
3
+ import "react/jsx-runtime";
4
+ import "react-hook-form";
5
+ import "react";
6
+ import "react-intl";
5
7
  import "@mui/material";
6
8
  import "@mui/icons-material";
7
9
  import "../../components/ui/overflowableText/OverflowableText.js";
8
10
  import "../../utils/conversionUtils.js";
9
- import { ElementType } from "../../utils/types/elementType.js";
10
11
  import "../../utils/types/equipmentType.js";
11
12
  import "localized-countries";
12
13
  import "localized-countries/data/fr";
@@ -14,7 +15,7 @@ import "localized-countries/data/en";
14
15
  import "notistack";
15
16
  import "../../components/ui/reactHookForm/provider/CustomFormProvider.js";
16
17
  import "yup";
17
- import { DirectoryItemsInput } from "../../components/ui/reactHookForm/DirectoryItemsInput.js";
18
+ import "../../components/ui/treeViewFinder/TreeViewFinder.js";
18
19
  import "../../components/ui/reactHookForm/numbers/RangeInput.js";
19
20
  import "@material-symbols/svg-400/outlined/left_panel_open.svg?react";
20
21
  import "@material-symbols/svg-400/outlined/arrows_output.svg?react";
@@ -22,19 +23,15 @@ import "@material-symbols/svg-400/outlined/arrows_input.svg?react";
22
23
  import "@material-symbols/svg-400/outlined/left_panel_close.svg?react";
23
24
  import "@material-symbols/svg-400/outlined/add_notes.svg?react";
24
25
  import "../../components/ui/dialogs/descriptionModificationDialog/DescriptionModificationDialog.js";
25
- import { DESCRIPTION, ACTIVE } from "../../components/ui/reactHookForm/constants.js";
26
26
  import "../../components/ui/reactHookForm/expandableInput/ExpandableInput.js";
27
27
  import "../../components/ui/reactHookForm/directory-item-input/directory-item-utils.js";
28
- import "../../components/ui/treeViewFinder/TreeViewFinder.js";
29
28
  import "@hello-pangea/dnd";
30
29
  import "../../components/ui/dialogs/elementSaveDialog/ElementSaveDialog.js";
31
30
  import "../../components/ui/snackbarProvider/SnackbarProvider.js";
32
31
  import "mui-nested-menu";
33
32
  import "react-resizable-panels";
34
33
  import "react-papaparse";
35
- import { DndTable } from "../../components/composite/dnd-table/dnd-table.js";
36
- import { DndColumnType } from "../../components/composite/dnd-table/dnd-table.type.js";
37
- import { getDefaultRowData } from "../../components/composite/dnd-table/dnd-table-utils.js";
34
+ import "react-dom";
38
35
  import "autosuggest-highlight/match";
39
36
  import "autosuggest-highlight/parse";
40
37
  import "clsx";
@@ -61,69 +58,9 @@ import "../../components/composite/report/report-viewer/log-table/log-table.js";
61
58
  import "react-window";
62
59
  import "../../components/composite/report/report-treeview/treeview-item.js";
63
60
  import "../../components/composite/report/report-viewer/context/report-viewer-context.js";
64
- function UpdateProcessConfigModifications({ name }) {
65
- const intl = useIntl();
66
- const useFieldArrayModifications = useFieldArray({
67
- name
68
- });
69
- const modificationSelector = useCallback(
70
- (rowIndex) => /* @__PURE__ */ jsx(
71
- DirectoryItemsInput,
72
- {
73
- name: `${name}[${rowIndex}].modification`,
74
- allowMultiSelect: false,
75
- elementType: ElementType.MODIFICATION,
76
- titleId: "process_config/modifications",
77
- label: void 0
78
- }
79
- ),
80
- [name]
81
- );
82
- const columnsDefinition = useMemo(() => {
83
- return [
84
- {
85
- dataKey: name,
86
- type: DndColumnType.CUSTOM,
87
- // ColumnDirectoryItem does not allow allowMultiSelect to false
88
- editable: true,
89
- label: intl.formatMessage({ id: "process_config/modifications" }),
90
- component: modificationSelector
91
- },
92
- {
93
- label: intl.formatMessage({ id: "description" }),
94
- sxHeader: { textAlign: "center" },
95
- dataKey: DESCRIPTION,
96
- initialValue: "",
97
- editable: true,
98
- width: "8rem",
99
- type: DndColumnType.DESCRIPTIONS
100
- },
101
- {
102
- label: intl.formatMessage({ id: "Active" }),
103
- sxHeader: { textAlign: "center" },
104
- dataKey: ACTIVE,
105
- initialValue: true,
106
- editable: true,
107
- width: "4rem",
108
- type: DndColumnType.SWITCH
109
- }
110
- ];
111
- }, [modificationSelector, name, intl]);
112
- const createModification = useCallback(
113
- () => [{ ...getDefaultRowData(columnsDefinition), modification: [] }],
114
- [columnsDefinition]
115
- );
116
- return /* @__PURE__ */ jsx(
117
- DndTable,
118
- {
119
- name,
120
- useFieldArrayOutput: useFieldArrayModifications,
121
- createRows: createModification,
122
- columnsDefinition,
123
- withAddRowsDialog: false
124
- }
125
- );
61
+ function isProcessType(type) {
62
+ return Object.values(ProcessType).includes(type);
126
63
  }
127
64
  export {
128
- UpdateProcessConfigModifications
65
+ isProcessType
129
66
  };
@@ -0,0 +1,3 @@
1
+ import { ProcessType } from './common';
2
+ import { ProcessConfigEditionDialogProps } from './process-config-edition.utils';
3
+ export declare function SAProcessConfigEditionDialog({ processConfigUuid, processConfigName, description, directory, open, onClose, fetchProcessConfig, updateProcessConfig, }: Readonly<ProcessConfigEditionDialogProps<ProcessType.SECURITY_ANALYSIS>>): import("react").JSX.Element;
@@ -0,0 +1,136 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { yupResolver } from "@hookform/resolvers/yup";
3
+ import { useForm } from "react-hook-form";
4
+ import { useState, useCallback, useEffect } from "react";
5
+ import { FieldConstants } from "../../utils/constants/fieldConstants.js";
6
+ import "../../utils/conversionUtils.js";
7
+ import { snackWithFallback } from "../../utils/error.js";
8
+ import { ElementType } from "../../utils/types/elementType.js";
9
+ import "../../utils/types/equipmentType.js";
10
+ import "@mui/icons-material";
11
+ import "@mui/material";
12
+ import "react-intl";
13
+ import "../../components/ui/overflowableText/OverflowableText.js";
14
+ import "localized-countries";
15
+ import "localized-countries/data/fr";
16
+ import "localized-countries/data/en";
17
+ import { useSnackMessage } from "../../hooks/useSnackMessage.js";
18
+ import "../../components/ui/reactHookForm/provider/CustomFormProvider.js";
19
+ import "yup";
20
+ import "../../components/ui/treeViewFinder/TreeViewFinder.js";
21
+ import "../../components/ui/reactHookForm/numbers/RangeInput.js";
22
+ import "@material-symbols/svg-400/outlined/left_panel_open.svg?react";
23
+ import "@material-symbols/svg-400/outlined/arrows_output.svg?react";
24
+ import "@material-symbols/svg-400/outlined/arrows_input.svg?react";
25
+ import "@material-symbols/svg-400/outlined/left_panel_close.svg?react";
26
+ import "@material-symbols/svg-400/outlined/add_notes.svg?react";
27
+ import "../../components/ui/dialogs/descriptionModificationDialog/DescriptionModificationDialog.js";
28
+ import "../../components/ui/reactHookForm/expandableInput/ExpandableInput.js";
29
+ import "../../components/ui/reactHookForm/directory-item-input/directory-item-utils.js";
30
+ import "@hello-pangea/dnd";
31
+ import "../../components/ui/dialogs/elementSaveDialog/ElementSaveDialog.js";
32
+ import { NamedElementEditionDialog } from "../../components/ui/dialogs/name-element-editor/named-element-edition-dialog.js";
33
+ import "../../components/ui/snackbarProvider/SnackbarProvider.js";
34
+ import "mui-nested-menu";
35
+ import "react-resizable-panels";
36
+ import "react-papaparse";
37
+ import "react-dom";
38
+ import "autosuggest-highlight/match";
39
+ import "autosuggest-highlight/parse";
40
+ import "clsx";
41
+ import "../../components/composite/filter/FilterCreationDialog.js";
42
+ import "../../components/composite/filter/HeaderFilterForm.js";
43
+ import "../../components/composite/filter/explicitNaming/ExplicitNamingFilterForm.js";
44
+ import "../../components/composite/filter/expert/ExpertFilterForm.js";
45
+ import "../../components/composite/filter/expert/ExpertFilterEditionDialog.js";
46
+ import "../../components/composite/filter/expert/expertFilterConstants.js";
47
+ import "react-querybuilder";
48
+ import "uuid";
49
+ import "../../components/composite/filter/explicitNaming/ExplicitNamingFilterEditionDialog.js";
50
+ import "../../components/composite/filter/utils/filterFormUtils.js";
51
+ import "@react-querybuilder/material";
52
+ import "../../components/composite/reactQueryBuilder/CustomReactQueryBuilder.js";
53
+ import "../../components/composite/reactQueryBuilder/PropertyValueEditor.js";
54
+ import "../../components/composite/agGridTable/BottomTableButtons.js";
55
+ import "../../components/composite/agGridTable/CustomAgGridTable.js";
56
+ import "ag-grid-community";
57
+ import "../../components/composite/customAGGrid/customAggrid.js";
58
+ import "../../components/composite/customAGGrid/context/custom-aggrid-context.js";
59
+ import "mathjs";
60
+ import "../../components/composite/report/report-viewer/log-table/log-table.js";
61
+ import "react-window";
62
+ import "../../components/composite/report/report-treeview/treeview-item.js";
63
+ import "../../components/composite/report/report-viewer/context/report-viewer-context.js";
64
+ import { SAProcessConfigEdition } from "./security-analysis/sa-process-config-edition.js";
65
+ import { getNamedSAProcessConfigFormSchema, getEmptySAProcessConfigFormData, getNamedSAProcessConfigFormData, getSAProcessConfigBackendFromFormData } from "./security-analysis/sa-process-config-edition.utils.js";
66
+ function SAProcessConfigEditionDialog({
67
+ processConfigUuid,
68
+ processConfigName,
69
+ description,
70
+ directory,
71
+ open,
72
+ onClose,
73
+ fetchProcessConfig,
74
+ updateProcessConfig
75
+ }) {
76
+ const [isLoading, setIsLoading] = useState(false);
77
+ const { snackError } = useSnackMessage();
78
+ const formSchema = getNamedSAProcessConfigFormSchema(processConfigName);
79
+ const formMethods = useForm({
80
+ defaultValues: getEmptySAProcessConfigFormData(processConfigName, description),
81
+ resolver: yupResolver(formSchema)
82
+ });
83
+ const { reset } = formMethods;
84
+ const fetchFormData = useCallback(async () => {
85
+ const persitedProcessConfig = await fetchProcessConfig(processConfigUuid);
86
+ if (persitedProcessConfig) {
87
+ const formData = await getNamedSAProcessConfigFormData(
88
+ persitedProcessConfig.processConfig,
89
+ processConfigName,
90
+ description
91
+ );
92
+ reset({ ...formData });
93
+ }
94
+ }, [fetchProcessConfig, processConfigUuid, processConfigName, description, reset]);
95
+ useEffect(() => {
96
+ setIsLoading(true);
97
+ fetchFormData().finally(() => setIsLoading(false)).catch((error) => {
98
+ snackWithFallback(snackError, error, {
99
+ headerId: `processConfig/fetchProcessConfigError`
100
+ });
101
+ });
102
+ }, [fetchFormData, snackError]);
103
+ const handleUpdateProcessConfig = useCallback(
104
+ (formData) => {
105
+ updateProcessConfig(
106
+ processConfigUuid,
107
+ formData[FieldConstants.NAME] ?? "",
108
+ formData[FieldConstants.DESCRIPTION] ?? "",
109
+ getSAProcessConfigBackendFromFormData(formData)
110
+ ).catch((error) => {
111
+ console.error(error);
112
+ snackWithFallback(snackError, error, { headerId: "processConfig/updateProcessConfigError" });
113
+ });
114
+ },
115
+ [updateProcessConfig, processConfigUuid, snackError]
116
+ );
117
+ return /* @__PURE__ */ jsx(
118
+ NamedElementEditionDialog,
119
+ {
120
+ titleId: "process_config/editSAProcessConfigTitle",
121
+ formMethods,
122
+ formSchema,
123
+ open,
124
+ onClose,
125
+ onSave: handleUpdateProcessConfig,
126
+ directory,
127
+ elementName: processConfigName,
128
+ elementType: ElementType.PROCESS_CONFIG,
129
+ isLoading,
130
+ children: /* @__PURE__ */ jsx(SAProcessConfigEdition, {})
131
+ }
132
+ );
133
+ }
134
+ export {
135
+ SAProcessConfigEditionDialog
136
+ };
@@ -2,7 +2,8 @@
2
2
  * Copyright (c) 2026, RTE (http://www.rte-france.com)
3
3
  * This Source Code Form is subject to the terms of the Mozilla Public
4
4
  * License, v. 2.0. If a copy of the MPL was not distributed with this
5
- * file, You can obtain one at https://mozilla.org/MPL/2.0/.
5
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
6
6
  */
7
- export * from './update-sa-process-config-dialog';
8
- export * from './update-sa-process-configs-utils';
7
+ export * from './sa-process-config.type';
8
+ export * from './sa-process-config-edition';
9
+ export * from './sa-process-config-edition.utils';
@@ -1,10 +1,9 @@
1
- import { UpdateSAProcessConfigDialog } from "./update-sa-process-config-dialog.js";
2
- import { getSAProcessConfigBackendFromFormData, getSAProcessConfigFormDataFromFetchedElement, isProcessType, toSAProcessConfig, updateSAProcessConfigFormSchema } from "./update-sa-process-configs-utils.js";
1
+ import { SAProcessConfigEdition } from "./sa-process-config-edition.js";
2
+ import { getEmptySAProcessConfigFormData, getNamedSAProcessConfigFormData, getNamedSAProcessConfigFormSchema, getSAProcessConfigBackendFromFormData } from "./sa-process-config-edition.utils.js";
3
3
  export {
4
- UpdateSAProcessConfigDialog,
5
- getSAProcessConfigBackendFromFormData,
6
- getSAProcessConfigFormDataFromFetchedElement,
7
- isProcessType,
8
- toSAProcessConfig,
9
- updateSAProcessConfigFormSchema
4
+ SAProcessConfigEdition,
5
+ getEmptySAProcessConfigFormData,
6
+ getNamedSAProcessConfigFormData,
7
+ getNamedSAProcessConfigFormSchema,
8
+ getSAProcessConfigBackendFromFormData
10
9
  };
@@ -0,0 +1 @@
1
+ export declare function SAProcessConfigEdition(): import("react").JSX.Element;
@@ -1,7 +1,8 @@
1
1
  import { jsxs, Fragment, jsx } from "react/jsx-runtime";
2
2
  import { Box } from "@mui/material";
3
3
  import { FormattedMessage } from "react-intl";
4
- import { UpdateProcessConfigModifications } from "../update-process-config-modifications.js";
4
+ import "../common/process-config-modifications-edition.utils.js";
5
+ import { ProcessConfigModificationsEdition } from "../common/process-config-modifications-edition.js";
5
6
  import { FieldConstants } from "../../../utils/constants/fieldConstants.js";
6
7
  import "../../../utils/conversionUtils.js";
7
8
  import { ElementType } from "../../../utils/types/elementType.js";
@@ -38,7 +39,6 @@ import "../../parameters/common/widget/parameter-line-slider.js";
38
39
  import "../../parameters/common/contingency-table/contingency-table.js";
39
40
  import "../../parameters/common/contingency-table/columns-definitions.js";
40
41
  import "@hookform/resolvers/yup";
41
- import { NameElementEditorForm } from "../../parameters/common/name-element-editor/name-element-editor-form.js";
42
42
  import "../../parameters/network-visualizations/constants.js";
43
43
  import "../../parameters/loadflow/load-flow-parameters-context.js";
44
44
  import "../../parameters/loadflow/load-flow-advanced-parameters.js";
@@ -69,18 +69,10 @@ import "../../parameters/dynamic-security-analysis/contingency-parameters.js";
69
69
  import "../../parameters/dynamic-margin-calculation/time-delay-parameters.js";
70
70
  import "../../parameters/dynamic-margin-calculation/loads-variations-parameters.js";
71
71
  import "../../parameters/dynamic-margin-calculation/use-dynamic-margin-calculation-parameters-form.js";
72
- function UpdateSaProcessConfig({ directory, processConfigName }) {
72
+ function SAProcessConfigEdition() {
73
73
  return /* @__PURE__ */ jsxs(Fragment, { children: [
74
- /* @__PURE__ */ jsx(
75
- NameElementEditorForm,
76
- {
77
- activeDirectory: directory,
78
- elementType: ElementType.PROCESS_CONFIG,
79
- initialElementName: processConfigName
80
- }
81
- ),
82
74
  /* @__PURE__ */ jsx(Box, { component: "h3", children: /* @__PURE__ */ jsx(FormattedMessage, { id: "process_config/modifications" }) }),
83
- /* @__PURE__ */ jsx(UpdateProcessConfigModifications, { name: FieldConstants.MODIFICATIONS }),
75
+ /* @__PURE__ */ jsx(ProcessConfigModificationsEdition, { name: FieldConstants.MODIFICATIONS }),
84
76
  /* @__PURE__ */ jsx(Box, { component: "h3", children: /* @__PURE__ */ jsx(FormattedMessage, { id: "process_config/providersParameters" }) }),
85
77
  /* @__PURE__ */ jsx(
86
78
  ParameterLineDirectoryItemsInput,
@@ -105,5 +97,5 @@ function UpdateSaProcessConfig({ directory, processConfigName }) {
105
97
  ] });
106
98
  }
107
99
  export {
108
- UpdateSaProcessConfig
100
+ SAProcessConfigEdition
109
101
  };
@@ -0,0 +1,45 @@
1
+ import { SecurityAnalysisProcessConfigBackend } from './sa-process-config.type';
2
+ /**
3
+ * Copyright (c) 2026, RTE (http://www.rte-france.com)
4
+ * This Source Code Form is subject to the terms of the Mozilla Public
5
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
6
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
7
+ */
8
+ import * as yup from 'yup';
9
+ export declare function getNamedSAProcessConfigFormSchema(initialName: string | null): yup.ObjectSchema<{
10
+ loadflowParameters: {
11
+ id: string;
12
+ name: string;
13
+ }[];
14
+ securityAnalysisParameters: {
15
+ id: string;
16
+ name: string;
17
+ }[];
18
+ modifications: {
19
+ description?: string | null | undefined;
20
+ active: NonNullable<boolean | undefined>;
21
+ modification: {
22
+ name?: string | undefined;
23
+ id: string;
24
+ }[];
25
+ }[];
26
+ } & {
27
+ name: string | null | undefined;
28
+ description: string | null | undefined;
29
+ }, yup.AnyObject, {
30
+ loadflowParameters: "";
31
+ securityAnalysisParameters: "";
32
+ modifications: "";
33
+ name: undefined;
34
+ description: undefined;
35
+ }, "">;
36
+ export type NamedSAProcessConfigFormSchema = yup.InferType<ReturnType<typeof getNamedSAProcessConfigFormSchema>>;
37
+ export declare function getEmptySAProcessConfigFormData(initialName: string | null, initialDescription: string | null): {
38
+ loadflowParameters: never[];
39
+ securityAnalysisParameters: never[];
40
+ modifications: never[];
41
+ name: string | null;
42
+ description: string | null;
43
+ };
44
+ export declare function getNamedSAProcessConfigFormData(processConfig: SecurityAnalysisProcessConfigBackend, name: string, description: string | null): Promise<NamedSAProcessConfigFormSchema>;
45
+ export declare function getSAProcessConfigBackendFromFormData(formData: NamedSAProcessConfigFormSchema): SecurityAnalysisProcessConfigBackend;