@gridsuite/commons-ui 0.272.0 → 0.273.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 (28) hide show
  1. package/dist/features/index.js +2 -0
  2. package/dist/features/network-modifications/twoWindingsTransformer/creation/twoWindingsTransformerCreation.utils.js +2 -2
  3. package/dist/features/parameters/common/limitreductions/limit-reductions-table-form.js +1 -0
  4. package/dist/features/parameters/common/parameter-layout/parameter-layout.js +26 -27
  5. package/dist/features/process-configs/common/process-config.type.d.ts +2 -1
  6. package/dist/features/process-configs/common/process-config.type.js +1 -0
  7. package/dist/features/process-configs/index.d.ts +1 -0
  8. package/dist/features/process-configs/index.js +2 -0
  9. package/dist/features/process-configs/process-config.type.d.ts +2 -0
  10. package/dist/features/process-configs/sc-process-config-edition-dialog.d.ts +3 -0
  11. package/dist/features/process-configs/sc-process-config-edition-dialog.js +149 -0
  12. package/dist/features/process-configs/shortcircuit/index.d.ts +9 -0
  13. package/dist/features/process-configs/shortcircuit/index.js +9 -0
  14. package/dist/features/process-configs/shortcircuit/sc-process-config-edition.d.ts +1 -0
  15. package/dist/features/process-configs/shortcircuit/sc-process-config-edition.js +91 -0
  16. package/dist/features/process-configs/shortcircuit/sc-process-config-edition.utils.d.ts +39 -0
  17. package/dist/features/process-configs/shortcircuit/sc-process-config-edition.utils.js +109 -0
  18. package/dist/features/process-configs/shortcircuit/sc-process-config.type.d.ts +6 -0
  19. package/dist/features/process-configs/shortcircuit/sc-process-config.type.js +1 -0
  20. package/dist/index.js +2 -0
  21. package/dist/translations/en/processConfigEn.d.ts +2 -0
  22. package/dist/translations/en/processConfigEn.js +2 -0
  23. package/dist/translations/fr/processConfigFr.d.ts +2 -0
  24. package/dist/translations/fr/processConfigFr.js +2 -0
  25. package/dist/translations/fr/specificParameters.js +2 -2
  26. package/dist/utils/constants/fieldConstants.d.ts +1 -0
  27. package/dist/utils/constants/fieldConstants.js +1 -0
  28. package/package.json +1 -1
@@ -293,6 +293,7 @@ import { ProcessConfigModificationsEdition } from "./process-configs/common/proc
293
293
  import { isProcessType } from "./process-configs/process-config.utils.js";
294
294
  import { LFProcessConfigEditionDialog } from "./process-configs/lf-process-config-edition-dialog.js";
295
295
  import { SAProcessConfigEditionDialog } from "./process-configs/sa-process-config-edition-dialog.js";
296
+ import { SCProcessConfigEditionDialog } from "./process-configs/sc-process-config-edition-dialog.js";
296
297
  import { GlobalFilterPanel } from "./global-filter/ui/global-filter-panel.js";
297
298
  import { GlobalFilterType, isCriteriaFilter, isCriteriaFilterType } from "./global-filter/types/global-filter.type.js";
298
299
  import { LimitTypes } from "./global-filter/types/limit-violation.type.js";
@@ -581,6 +582,7 @@ export {
581
582
  RootNetworkHeaderRenderer,
582
583
  SAProcessConfigEditionDialog,
583
584
  SCENARIO_DURATION,
585
+ SCProcessConfigEditionDialog,
584
586
  SELECTION_TYPE,
585
587
  SENSITIVITY_TYPES,
586
588
  SHORTCIRCUIT_ANALYSIS_RESULT_SORT_STORE,
@@ -150,8 +150,8 @@ const transformOperationalLimitsGroupsForForm = (operationalLimitsGroups) => {
150
150
  permanentLimit: currentLimits?.permanentLimit ?? "",
151
151
  temporaryLimits: currentLimits?.temporaryLimits?.map((tl) => ({
152
152
  name: tl.name ?? "",
153
- value: tl.value ?? "",
154
- acceptableDuration: tl.acceptableDuration ?? ""
153
+ value: tl.value,
154
+ acceptableDuration: tl.acceptableDuration
155
155
  })) ?? []
156
156
  }
157
157
  }));
@@ -56,6 +56,7 @@ function LimitReductionsTableForm({ limits }) {
56
56
  {
57
57
  formName: LIMIT_REDUCTIONS_FORM,
58
58
  columnsDefinition,
59
+ tableHeight: 450,
59
60
  tableMinWidth: 600,
60
61
  limits
61
62
  }
@@ -41,7 +41,8 @@ const styles = {
41
41
  height: "100%"
42
42
  },
43
43
  title: {
44
- paddingBottom: 0
44
+ padding: 2,
45
+ paddingLeft: 0
45
46
  },
46
47
  content: {
47
48
  flexGrow: 1,
@@ -78,32 +79,30 @@ function ParameterLayout({
78
79
  }, []);
79
80
  const intl = useIntl();
80
81
  return /* @__PURE__ */ jsxs(Stack, { sx: styles.stack, children: [
81
- (title || selectParameterHandler || resetHandler) && /* @__PURE__ */ jsxs(Stack, { sx: styles.title, children: [
82
- /* @__PURE__ */ jsxs(Grid, { container: true, sx: { alignItems: "center", justifyContent: "space-between" }, paddingBottom: 1, children: [
83
- /* @__PURE__ */ jsx(Grid, { size: "auto", children: title && !isXsScreen && /* @__PURE__ */ jsx(Typography, { variant: "h6", children: /* @__PURE__ */ jsx(FormattedMessage, { id: title }) }) }),
84
- /* @__PURE__ */ jsx(Grid, { size: "auto", children: /* @__PURE__ */ jsxs(ButtonGroup, { children: [
85
- selectParameterHandler && /* @__PURE__ */ jsx(
86
- LabelledButton,
87
- {
88
- callback: handlePrefillClick,
89
- label: "button.prefill",
90
- "data-testid": "PrefillButton",
91
- startIcon: /* @__PURE__ */ jsx(Upload, {})
92
- }
93
- ),
94
- resetHandler && /* @__PURE__ */ jsx(Tooltip, { title: /* @__PURE__ */ jsx(FormattedMessage, { id: "tooltip.reset" }), children: /* @__PURE__ */ jsx(
95
- LabelledButton,
96
- {
97
- callback: handleResetClick,
98
- label: "button.reset",
99
- "data-testid": "ResetButton",
100
- startIcon: /* @__PURE__ */ jsx(RestartAlt, {})
101
- }
102
- ) })
103
- ] }) })
104
- ] }),
105
- /* @__PURE__ */ jsx(LineSeparator, {})
106
- ] }),
82
+ (title || selectParameterHandler || resetHandler) && /* @__PURE__ */ jsx(Stack, { sx: styles.title, children: /* @__PURE__ */ jsxs(Grid, { container: true, sx: { alignItems: "center", justifyContent: "space-between" }, children: [
83
+ /* @__PURE__ */ jsx(Grid, { size: "auto", children: title && !isXsScreen && /* @__PURE__ */ jsx(Typography, { variant: "h6", children: /* @__PURE__ */ jsx(FormattedMessage, { id: title }) }) }),
84
+ /* @__PURE__ */ jsx(Grid, { size: "auto", children: /* @__PURE__ */ jsxs(ButtonGroup, { children: [
85
+ selectParameterHandler && /* @__PURE__ */ jsx(
86
+ LabelledButton,
87
+ {
88
+ callback: handlePrefillClick,
89
+ label: "button.prefill",
90
+ "data-testid": "PrefillButton",
91
+ startIcon: /* @__PURE__ */ jsx(Upload, {})
92
+ }
93
+ ),
94
+ resetHandler && /* @__PURE__ */ jsx(Tooltip, { title: /* @__PURE__ */ jsx(FormattedMessage, { id: "tooltip.reset" }), children: /* @__PURE__ */ jsx(
95
+ LabelledButton,
96
+ {
97
+ callback: handleResetClick,
98
+ label: "button.reset",
99
+ "data-testid": "ResetButton",
100
+ startIcon: /* @__PURE__ */ jsx(RestartAlt, {})
101
+ }
102
+ ) })
103
+ ] }) })
104
+ ] }) }),
105
+ /* @__PURE__ */ jsx(LineSeparator, {}),
107
106
  /* @__PURE__ */ jsx(Box, { sx: styles.content, children: isLoading ? /* @__PURE__ */ jsx(LinearProgress, {}) : children }),
108
107
  /* @__PURE__ */ jsxs(Stack, { spacing: 1, children: [
109
108
  /* @__PURE__ */ jsx(LineSeparator, {}),
@@ -1,7 +1,8 @@
1
1
  import { UUID } from 'node:crypto';
2
2
  export declare enum ProcessType {
3
3
  SECURITY_ANALYSIS = "SECURITY_ANALYSIS",
4
- LOADFLOW = "LOADFLOW"
4
+ LOADFLOW = "LOADFLOW",
5
+ SHORT_CIRCUIT = "SHORT_CIRCUIT"
5
6
  }
6
7
  export interface ModificationInfo {
7
8
  modificationUuid: UUID;
@@ -1,6 +1,7 @@
1
1
  var ProcessType = /* @__PURE__ */ ((ProcessType2) => {
2
2
  ProcessType2["SECURITY_ANALYSIS"] = "SECURITY_ANALYSIS";
3
3
  ProcessType2["LOADFLOW"] = "LOADFLOW";
4
+ ProcessType2["SHORT_CIRCUIT"] = "SHORT_CIRCUIT";
4
5
  return ProcessType2;
5
6
  })(ProcessType || {});
6
7
  export {
@@ -9,3 +9,4 @@ export * from './process-config.type';
9
9
  export * from './process-config.utils';
10
10
  export * from './lf-process-config-edition-dialog';
11
11
  export * from './sa-process-config-edition-dialog';
12
+ export * from './sc-process-config-edition-dialog';
@@ -4,11 +4,13 @@ import { ProcessConfigModificationsEdition } from "./common/process-config-modif
4
4
  import { isProcessType } from "./process-config.utils.js";
5
5
  import { LFProcessConfigEditionDialog } from "./lf-process-config-edition-dialog.js";
6
6
  import { SAProcessConfigEditionDialog } from "./sa-process-config-edition-dialog.js";
7
+ import { SCProcessConfigEditionDialog } from "./sc-process-config-edition-dialog.js";
7
8
  export {
8
9
  LFProcessConfigEditionDialog,
9
10
  ProcessConfigModificationsEdition,
10
11
  ProcessType,
11
12
  SAProcessConfigEditionDialog,
13
+ SCProcessConfigEditionDialog,
12
14
  emptyProcessConfigModificationsFormData,
13
15
  getProcessConfigModificationsBackendFromFormData,
14
16
  getProcessConfigModificationsFormData,
@@ -2,9 +2,11 @@ import { UUID } from 'node:crypto';
2
2
  import { SecurityAnalysisProcessConfigBackend } from './security-analysis';
3
3
  import { LoadflowProcessConfigBackend } from './loadflow';
4
4
  import { ProcessType } from './common';
5
+ import { ShortcircuitProcessConfigBackend } from './shortcircuit';
5
6
  type ProcessConfigBackendByProcessType = {
6
7
  [ProcessType.SECURITY_ANALYSIS]: SecurityAnalysisProcessConfigBackend;
7
8
  [ProcessType.LOADFLOW]: LoadflowProcessConfigBackend;
9
+ [ProcessType.SHORT_CIRCUIT]: ShortcircuitProcessConfigBackend;
8
10
  };
9
11
  export type ProcessConfigBackend<TProcessType extends ProcessType> = ProcessConfigBackendByProcessType[TProcessType];
10
12
  export type PersistedProcessConfigBackend<TProcessType extends ProcessType> = {
@@ -0,0 +1,3 @@
1
+ import { ProcessType } from './common';
2
+ import { ProcessConfigEditionDialogProps } from './process-config-edition.utils';
3
+ export declare function SCProcessConfigEditionDialog({ processConfigUuid, processConfigName, description, directory, open, onClose, fetchProcessConfig, updateProcessConfig, }: Readonly<ProcessConfigEditionDialogProps<ProcessType.SHORT_CIRCUIT>>): import("react").JSX.Element;
@@ -0,0 +1,149 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { yupResolver } from "@hookform/resolvers/yup";
3
+ import { useForm } from "react-hook-form";
4
+ import { useState, useEffect, useCallback } 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-fill.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 { SCProcessConfigEdition } from "./shortcircuit/sc-process-config-edition.js";
65
+ import { getNamedSCProcessConfigFormSchema, getEmptySCProcessConfigFormData, getNamedSCProcessConfigFormData, getSCProcessConfigBackendFromFormData } from "./shortcircuit/sc-process-config-edition.utils.js";
66
+ function SCProcessConfigEditionDialog({
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 = getNamedSCProcessConfigFormSchema(processConfigName);
79
+ const formMethods = useForm({
80
+ defaultValues: getEmptySCProcessConfigFormData(processConfigName, description),
81
+ resolver: yupResolver(formSchema)
82
+ });
83
+ const { reset } = formMethods;
84
+ useEffect(() => {
85
+ let cancelled = false;
86
+ setIsLoading(true);
87
+ (async () => {
88
+ try {
89
+ const persistedProcessConfig = await fetchProcessConfig(processConfigUuid);
90
+ if (!cancelled && persistedProcessConfig) {
91
+ const formData = await getNamedSCProcessConfigFormData(
92
+ persistedProcessConfig.processConfig,
93
+ processConfigName,
94
+ description
95
+ );
96
+ if (!cancelled) {
97
+ reset({ ...formData });
98
+ }
99
+ }
100
+ } catch (error) {
101
+ if (!cancelled) {
102
+ snackWithFallback(snackError, error, {
103
+ headerId: "processConfig/fetchProcessConfigError"
104
+ });
105
+ }
106
+ } finally {
107
+ if (!cancelled) {
108
+ setIsLoading(false);
109
+ }
110
+ }
111
+ })();
112
+ return () => {
113
+ cancelled = true;
114
+ };
115
+ }, [fetchProcessConfig, processConfigUuid, processConfigName, description, reset, snackError]);
116
+ const handleUpdateProcessConfig = useCallback(
117
+ (formData) => {
118
+ updateProcessConfig(
119
+ processConfigUuid,
120
+ formData[FieldConstants.NAME] ?? "",
121
+ formData[FieldConstants.DESCRIPTION] ?? "",
122
+ getSCProcessConfigBackendFromFormData(formData)
123
+ ).catch((error) => {
124
+ console.error(error);
125
+ snackWithFallback(snackError, error, { headerId: "processConfig/updateProcessConfigError" });
126
+ });
127
+ },
128
+ [updateProcessConfig, processConfigUuid, snackError]
129
+ );
130
+ return /* @__PURE__ */ jsx(
131
+ NamedElementEditionDialog,
132
+ {
133
+ titleId: "process_config/editSCProcessConfigTitle",
134
+ formMethods,
135
+ formSchema,
136
+ open,
137
+ onClose,
138
+ onSave: handleUpdateProcessConfig,
139
+ directory,
140
+ elementName: processConfigName,
141
+ elementType: ElementType.PROCESS_CONFIG,
142
+ isLoading,
143
+ children: /* @__PURE__ */ jsx(SCProcessConfigEdition, {})
144
+ }
145
+ );
146
+ }
147
+ export {
148
+ SCProcessConfigEditionDialog
149
+ };
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Copyright (c) 2026, RTE (http://www.rte-france.com)
3
+ * This Source Code Form is subject to the terms of the Mozilla Public
4
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
5
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
6
+ */
7
+ export * from './sc-process-config.type';
8
+ export * from './sc-process-config-edition';
9
+ export * from './sc-process-config-edition.utils';
@@ -0,0 +1,9 @@
1
+ import { SCProcessConfigEdition } from "./sc-process-config-edition.js";
2
+ import { getEmptySCProcessConfigFormData, getNamedSCProcessConfigFormData, getNamedSCProcessConfigFormSchema, getSCProcessConfigBackendFromFormData } from "./sc-process-config-edition.utils.js";
3
+ export {
4
+ SCProcessConfigEdition,
5
+ getEmptySCProcessConfigFormData,
6
+ getNamedSCProcessConfigFormData,
7
+ getNamedSCProcessConfigFormSchema,
8
+ getSCProcessConfigBackendFromFormData
9
+ };
@@ -0,0 +1 @@
1
+ export declare function SCProcessConfigEdition(): import("react").JSX.Element;
@@ -0,0 +1,91 @@
1
+ import { jsxs, Fragment, jsx } from "react/jsx-runtime";
2
+ import { Box } from "@mui/material";
3
+ import { FormattedMessage } from "react-intl";
4
+ import "../common/process-config-modifications-edition.utils.js";
5
+ import { ProcessConfigModificationsEdition } from "../common/process-config-modifications-edition.js";
6
+ import { FieldConstants } from "../../../utils/constants/fieldConstants.js";
7
+ import "../../../utils/conversionUtils.js";
8
+ import { ElementType } from "../../../utils/types/elementType.js";
9
+ import "../../../utils/types/equipmentType.js";
10
+ import "@mui/icons-material";
11
+ import "react";
12
+ import "../../../components/ui/overflowableText/OverflowableText.js";
13
+ import "react-hook-form";
14
+ import "localized-countries";
15
+ import "localized-countries/data/fr";
16
+ import "localized-countries/data/en";
17
+ import "notistack";
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-fill.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 "../../../components/ui/snackbarProvider/SnackbarProvider.js";
33
+ import "mui-nested-menu";
34
+ import "react-resizable-panels";
35
+ import "react-papaparse";
36
+ import "../../parameters/common/parameter-layout/parameter-layout-provider.js";
37
+ import { ParameterLineDirectoryItemsInput } from "../../parameters/common/widget/parameter-line-directory-items-input.js";
38
+ import "../../parameters/common/widget/parameter-line-slider.js";
39
+ import "../../parameters/common/contingency-table/contingency-table.js";
40
+ import "../../parameters/common/contingency-table/columns-definitions.js";
41
+ import "@hookform/resolvers/yup";
42
+ import "../../parameters/network-visualizations/constants.js";
43
+ import "../../parameters/loadflow/load-flow-parameters-context.js";
44
+ import "../../parameters/loadflow/load-flow-advanced-parameters.js";
45
+ import "../../parameters/loadflow/load-flow-parameters-content.js";
46
+ import "../../parameters/short-circuit/short-circuit-parameters-content.js";
47
+ import "../../parameters/voltage-init/voltage-init-form-utils.js";
48
+ import "react-dom";
49
+ import "../../parameters/security-analysis/security-analysis-parameters-utils.js";
50
+ import "../../parameters/sensi/utils.js";
51
+ import "../../parameters/sensi/columns-definitions.js";
52
+ import "../../parameters/dynamic-simulation/use-dynamic-simulation-parameters-form.js";
53
+ import "../../parameters/dynamic-simulation/time-delay/time-delay-parameters-utils.js";
54
+ import "../../parameters/dynamic-simulation/time-delay/time-delay-parameters.js";
55
+ import "../../parameters/dynamic-simulation/solver/solver-parameters-utils.js";
56
+ import "../../parameters/dynamic-simulation/solver/solver-parameters.js";
57
+ import "../../parameters/dynamic-simulation/mapping/mapping-parameters-utils.js";
58
+ import "../../parameters/dynamic-simulation/network/network-parameters-utils.js";
59
+ import "../../parameters/dynamic-simulation/network/network-parameters.js";
60
+ import "../../parameters/dynamic-simulation/curve/dialog/curve-preview.js";
61
+ import "../../parameters/dynamic-simulation/curve/dialog/curve-selector.js";
62
+ import "../../parameters/dynamic-simulation/curve/common/grid-search.js";
63
+ import "../../../components/composite/customAGGrid/customAggrid.js";
64
+ import "../../../components/composite/customAGGrid/context/custom-aggrid-context.js";
65
+ import "mathjs";
66
+ import "../../parameters/dynamic-security-analysis/use-dynamic-security-analysis-parameters-form.js";
67
+ import "../../parameters/dynamic-security-analysis/scenario-parameters.js";
68
+ import "../../parameters/dynamic-security-analysis/contingency-parameters.js";
69
+ import "../../parameters/dynamic-margin-calculation/time-delay-parameters.js";
70
+ import "../../parameters/dynamic-margin-calculation/loads-variations-parameters.js";
71
+ import "../../parameters/dynamic-margin-calculation/use-dynamic-margin-calculation-parameters-form.js";
72
+ function SCProcessConfigEdition() {
73
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
74
+ /* @__PURE__ */ jsx(Box, { component: "h3", children: /* @__PURE__ */ jsx(FormattedMessage, { id: "process_config/modifications" }) }),
75
+ /* @__PURE__ */ jsx(ProcessConfigModificationsEdition, { name: FieldConstants.MODIFICATIONS }),
76
+ /* @__PURE__ */ jsx(Box, { component: "h3", children: /* @__PURE__ */ jsx(FormattedMessage, { id: "process_config/providersParameters" }) }),
77
+ /* @__PURE__ */ jsx(
78
+ ParameterLineDirectoryItemsInput,
79
+ {
80
+ label: "process_config/shortcircuit",
81
+ elementType: ElementType.SHORT_CIRCUIT_PARAMETERS,
82
+ name: FieldConstants.SHORTCIRCUIT_PARAMETERS,
83
+ allowMultiSelect: false,
84
+ hideErrorMessage: false
85
+ }
86
+ )
87
+ ] });
88
+ }
89
+ export {
90
+ SCProcessConfigEdition
91
+ };
@@ -0,0 +1,39 @@
1
+ import { ShortcircuitProcessConfigBackend } from './sc-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 getNamedSCProcessConfigFormSchema(initialName: string | null): yup.ObjectSchema<{
10
+ shortcircuitParameters: {
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
+ shortcircuitParameters: "";
27
+ modifications: "";
28
+ name: undefined;
29
+ description: undefined;
30
+ }, "">;
31
+ export type NamedSCProcessConfigFormSchema = yup.InferType<ReturnType<typeof getNamedSCProcessConfigFormSchema>>;
32
+ export declare function getEmptySCProcessConfigFormData(initialName: string | null, initialDescription: string | null): {
33
+ shortcircuitParameters: never[];
34
+ modifications: never[];
35
+ name: string | null;
36
+ description: string | null;
37
+ };
38
+ export declare function getNamedSCProcessConfigFormData(processConfig: ShortcircuitProcessConfigBackend, name: string, description: string | null): Promise<NamedSCProcessConfigFormSchema>;
39
+ export declare function getSCProcessConfigBackendFromFormData(formData: NamedSCProcessConfigFormSchema): ShortcircuitProcessConfigBackend;
@@ -0,0 +1,109 @@
1
+ import * as yup from "yup";
2
+ import { FieldConstants } from "../../../utils/constants/fieldConstants.js";
3
+ import { YUP_REQUIRED } from "../../../utils/constants/translationKeys.js";
4
+ import "../../../utils/conversionUtils.js";
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, getProcessConfigModificationsFormData, processConfigModificationsShape, getProcessConfigModificationsBackendFromFormData } 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";
16
+ import "localized-countries";
17
+ import "localized-countries/data/fr";
18
+ import "localized-countries/data/en";
19
+ import "notistack";
20
+ import "../../../components/ui/reactHookForm/provider/CustomFormProvider.js";
21
+ import "../../../components/ui/treeViewFinder/TreeViewFinder.js";
22
+ import "../../../components/ui/reactHookForm/numbers/RangeInput.js";
23
+ import "@material-symbols/svg-400/outlined/left_panel_open.svg?react";
24
+ import "@material-symbols/svg-400/outlined/arrows_output.svg?react";
25
+ import "@material-symbols/svg-400/outlined/arrows_input.svg?react";
26
+ import "@material-symbols/svg-400/outlined/left_panel_close.svg?react";
27
+ import "@material-symbols/svg-400/outlined/add_notes-fill.svg?react";
28
+ import "../../../components/ui/dialogs/descriptionModificationDialog/DescriptionModificationDialog.js";
29
+ import "../../../components/ui/reactHookForm/expandableInput/ExpandableInput.js";
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";
33
+ import { getNameElementEditorEmptyFormData, getNameElementEditorSchema } from "../../../components/ui/dialogs/name-element-editor/name-element-editor-utils.js";
34
+ import "../../../components/ui/snackbarProvider/SnackbarProvider.js";
35
+ import "mui-nested-menu";
36
+ import "react-resizable-panels";
37
+ import "react-papaparse";
38
+ import "react-dom";
39
+ import "autosuggest-highlight/match";
40
+ import "autosuggest-highlight/parse";
41
+ import "clsx";
42
+ import "../../../components/composite/filter/FilterCreationDialog.js";
43
+ import "../../../components/composite/filter/HeaderFilterForm.js";
44
+ import "../../../components/composite/filter/explicitNaming/ExplicitNamingFilterForm.js";
45
+ import "../../../components/composite/filter/expert/ExpertFilterForm.js";
46
+ import "../../../components/composite/filter/expert/ExpertFilterEditionDialog.js";
47
+ import "../../../components/composite/filter/expert/expertFilterConstants.js";
48
+ import "react-querybuilder";
49
+ import "uuid";
50
+ import "../../../components/composite/filter/explicitNaming/ExplicitNamingFilterEditionDialog.js";
51
+ import "../../../components/composite/filter/utils/filterFormUtils.js";
52
+ import "@react-querybuilder/material";
53
+ import "../../../components/composite/reactQueryBuilder/CustomReactQueryBuilder.js";
54
+ import "../../../components/composite/reactQueryBuilder/PropertyValueEditor.js";
55
+ import "../../../components/composite/agGridTable/BottomTableButtons.js";
56
+ import "../../../components/composite/agGridTable/CustomAgGridTable.js";
57
+ import "ag-grid-community";
58
+ import "../../../components/composite/customAGGrid/customAggrid.js";
59
+ import "../../../components/composite/customAGGrid/context/custom-aggrid-context.js";
60
+ import "mathjs";
61
+ import "../../../components/composite/report/report-viewer/log-table/log-table.js";
62
+ import "react-window";
63
+ import "../../../components/composite/report/report-treeview/treeview-item.js";
64
+ import "../../../components/composite/report/report-viewer/context/report-viewer-context.js";
65
+ function getNamedSCProcessConfigFormSchema(initialName) {
66
+ const formSchema = yup.object().shape({
67
+ ...processConfigModificationsShape,
68
+ [FieldConstants.SHORTCIRCUIT_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 getEmptySCProcessConfigFormData(initialName, initialDescription) {
73
+ return {
74
+ ...getNameElementEditorEmptyFormData(initialName, initialDescription),
75
+ ...emptyProcessConfigModificationsFormData,
76
+ [FieldConstants.SHORTCIRCUIT_PARAMETERS]: []
77
+ };
78
+ }
79
+ async function getNamedSCProcessConfigFormData(processConfig, name, description) {
80
+ const allUuids = /* @__PURE__ */ new Set([
81
+ ...processConfig.modifications.map((modification) => modification.modificationUuid),
82
+ processConfig.shortCircuitParametersUuid
83
+ ]);
84
+ const elementNamesByUuid = await fetchElementNames(allUuids);
85
+ return {
86
+ name,
87
+ description: description ?? void 0,
88
+ ...getProcessConfigModificationsFormData(processConfig.modifications, elementNamesByUuid),
89
+ [FieldConstants.SHORTCIRCUIT_PARAMETERS]: [
90
+ {
91
+ id: processConfig.shortCircuitParametersUuid,
92
+ name: elementNamesByUuid[processConfig.shortCircuitParametersUuid]
93
+ }
94
+ ]
95
+ };
96
+ }
97
+ function getSCProcessConfigBackendFromFormData(formData) {
98
+ return {
99
+ processType: ProcessType.SHORT_CIRCUIT,
100
+ ...getProcessConfigModificationsBackendFromFormData(formData[FieldConstants.MODIFICATIONS]),
101
+ shortCircuitParametersUuid: formData[FieldConstants.SHORTCIRCUIT_PARAMETERS][0].id
102
+ };
103
+ }
104
+ export {
105
+ getEmptySCProcessConfigFormData,
106
+ getNamedSCProcessConfigFormData,
107
+ getNamedSCProcessConfigFormSchema,
108
+ getSCProcessConfigBackendFromFormData
109
+ };
@@ -0,0 +1,6 @@
1
+ import { UUID } from 'node:crypto';
2
+ import { ProcessConfigBaseBackend, ProcessType } from '../common';
3
+ export interface ShortcircuitProcessConfigBackend extends ProcessConfigBaseBackend {
4
+ processType: ProcessType.SHORT_CIRCUIT;
5
+ shortCircuitParametersUuid: UUID;
6
+ }
package/dist/index.js CHANGED
@@ -489,6 +489,7 @@ import { ProcessConfigModificationsEdition } from "./features/process-configs/co
489
489
  import { isProcessType } from "./features/process-configs/process-config.utils.js";
490
490
  import { LFProcessConfigEditionDialog } from "./features/process-configs/lf-process-config-edition-dialog.js";
491
491
  import { SAProcessConfigEditionDialog } from "./features/process-configs/sa-process-config-edition-dialog.js";
492
+ import { SCProcessConfigEditionDialog } from "./features/process-configs/sc-process-config-edition-dialog.js";
492
493
  import { GlobalFilterPanel } from "./features/global-filter/ui/global-filter-panel.js";
493
494
  import { GlobalFilterType, isCriteriaFilter, isCriteriaFilterType } from "./features/global-filter/types/global-filter.type.js";
494
495
  import { LimitTypes } from "./features/global-filter/types/limit-violation.type.js";
@@ -1129,6 +1130,7 @@ export {
1129
1130
  RunningStatus,
1130
1131
  SAProcessConfigEditionDialog,
1131
1132
  SCENARIO_DURATION,
1133
+ SCProcessConfigEditionDialog,
1132
1134
  SEARCH_EQUIPMENTS,
1133
1135
  SECTION_COUNT_MUST_BE_BETWEEN_ZERO_AND_MAXIMUM_SECTION_COUNT,
1134
1136
  SELECTED,
@@ -7,10 +7,12 @@
7
7
  export declare const processConfigEn: {
8
8
  'process_config/editLFProcessConfigTitle': string;
9
9
  'process_config/editSAProcessConfigTitle': string;
10
+ 'process_config/editSCProcessConfigTitle': string;
10
11
  'process_config/modifications': string;
11
12
  'process_config/providersParameters': string;
12
13
  'process_config/loadflow': string;
13
14
  'process_config/securityAnalysis': string;
15
+ 'process_config/shortcircuit': string;
14
16
  'processConfig/fetchProcessConfigError': string;
15
17
  'processConfig/updateProcessConfigError': string;
16
18
  };
@@ -1,10 +1,12 @@
1
1
  const processConfigEn = {
2
2
  "process_config/editLFProcessConfigTitle": "Edit a loadflow process configuration",
3
3
  "process_config/editSAProcessConfigTitle": "Edit a security analysis with contingency process configuration",
4
+ "process_config/editSCProcessConfigTitle": "Edit a shortcircuit process configuration",
4
5
  "process_config/modifications": "Modifications",
5
6
  "process_config/providersParameters": "Providers parameters",
6
7
  "process_config/loadflow": "Loadflow",
7
8
  "process_config/securityAnalysis": "Security analysis",
9
+ "process_config/shortcircuit": "Short circuit",
8
10
  "processConfig/fetchProcessConfigError": "An error occured when fetching the process configuration",
9
11
  "processConfig/updateProcessConfigError": "An error occurred while updating the process configuration"
10
12
  };
@@ -7,10 +7,12 @@
7
7
  export declare const processConfigFr: {
8
8
  'process_config/editLFProcessConfigTitle': string;
9
9
  'process_config/editSAProcessConfigTitle': string;
10
+ 'process_config/editSCProcessConfigTitle': string;
10
11
  'process_config/modifications': string;
11
12
  'process_config/providersParameters': string;
12
13
  'process_config/loadflow': string;
13
14
  'process_config/securityAnalysis': string;
15
+ 'process_config/shortcircuit': string;
14
16
  'processConfig/fetchProcessConfigError': string;
15
17
  'processConfig/updateProcessConfigError': string;
16
18
  };
@@ -1,10 +1,12 @@
1
1
  const processConfigFr = {
2
2
  "process_config/editLFProcessConfigTitle": "Éditer une configuration de chaîne de calcul de répartition",
3
3
  "process_config/editSAProcessConfigTitle": "Éditer une configuration d'analyse de sécurité sous aléas",
4
+ "process_config/editSCProcessConfigTitle": "Éditer une configuration de chaîne de court-circuit",
4
5
  "process_config/modifications": "Modifications",
5
6
  "process_config/providersParameters": "Paramètres des simulateurs",
6
7
  "process_config/loadflow": "Calcul de répartition",
7
8
  "process_config/securityAnalysis": "Analyse de sécurité",
9
+ "process_config/shortcircuit": "Calcul de court-circuit",
8
10
  "processConfig/fetchProcessConfigError": "Une erreur est survenue lors de la récupération de la configuration de chaîne",
9
11
  "processConfig/updateProcessConfigError": "Une erreur est survenue lors de la mise à jour de la configuration de chaîne"
10
12
  };
@@ -43,8 +43,8 @@ const specificParametersFr = {
43
43
  mostMeshedSlackBusSelectorMaxNominalVoltagePercentile: "Percentile maximal de tension nominale",
44
44
  reportedFeatures: "Fonctionnalités supplémentaires du rapport",
45
45
  slackBusCountryFilter: "Filtre pays pour les nœuds bilan",
46
- actionableSwitchesIds: "Identifiants des interrupteurs pilotables",
47
- actionableTransformersIds: "Identifiants des transformateurs pilotables",
46
+ actionableSwitchesIds: "Organe de coupure en cache",
47
+ actionableTransformersIds: "Transformateur avec régleur en cache",
48
48
  asymmetrical: "Calcul asymétrique",
49
49
  minNominalVoltageTargetVoltageCheck: "Tension nominale minimale pour le contrôle des consignes",
50
50
  reactivePowerDispatchMode: "Mode de répartition de puissance réactive",
@@ -70,6 +70,7 @@ export declare enum FieldConstants {
70
70
  ID = "id",
71
71
  REGULATING = "isRegulating",
72
72
  LOADFLOW_PARAMETERS = "loadflowParameters",
73
+ SHORTCIRCUIT_PARAMETERS = "shortcircuitParameters",
73
74
  LOAD_TYPE = "loadType",
74
75
  LOAD_TAP_CHANGING_CAPABILITIES = "hasLoadTapChangingCapabilities",
75
76
  LOW_TAP_POSITION = "lowTapPosition",
@@ -64,6 +64,7 @@ var FieldConstants = /* @__PURE__ */ ((FieldConstants2) => {
64
64
  FieldConstants2["ID"] = "id";
65
65
  FieldConstants2["REGULATING"] = "isRegulating";
66
66
  FieldConstants2["LOADFLOW_PARAMETERS"] = "loadflowParameters";
67
+ FieldConstants2["SHORTCIRCUIT_PARAMETERS"] = "shortcircuitParameters";
67
68
  FieldConstants2["LOAD_TYPE"] = "loadType";
68
69
  FieldConstants2["LOAD_TAP_CHANGING_CAPABILITIES"] = "hasLoadTapChangingCapabilities";
69
70
  FieldConstants2["LOW_TAP_POSITION"] = "lowTapPosition";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gridsuite/commons-ui",
3
- "version": "0.272.0",
3
+ "version": "0.273.0",
4
4
  "description": "common react components for gridsuite applications",
5
5
  "author": "gridsuite team",
6
6
  "homepage": "https://github.com/gridsuite",