@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,98 +1,77 @@
1
- import { jsxs, Fragment, jsx } from "react/jsx-runtime";
2
- import { Stack, Grid2, Tabs, Tab, LinearProgress } from "@mui/material";
1
+ import { jsxs, jsx } from "react/jsx-runtime";
2
+ import { Stack, Grid2, Tabs, Tab } from "@mui/material";
3
3
  import { FormattedMessage } from "react-intl";
4
4
  import ScenarioParameters from "./scenario-parameters.js";
5
5
  import ContingencyParameters from "./contingency-parameters.js";
6
- import "../../../utils/conversionUtils.js";
7
- import "../../../utils/types/equipmentType.js";
8
6
  import "@mui/icons-material";
9
- import { mergeSx } from "../../../utils/styles.js";
10
- import { TabPanel } from "../common/parameters.js";
11
7
  import "react";
8
+ import { TabPanel } from "../common/parameters.js";
9
+ import "../../../components/ui/overflowableText/OverflowableText.js";
10
+ import "../../../utils/conversionUtils.js";
11
+ import "../../../utils/types/equipmentType.js";
12
+ import "react-hook-form";
12
13
  import "localized-countries";
13
14
  import "localized-countries/data/fr";
14
15
  import "localized-countries/data/en";
15
16
  import "notistack";
16
- import "react-hook-form";
17
17
  import "../../../components/ui/reactHookForm/provider/CustomFormProvider.js";
18
- import "../../../components/ui/dialogs/descriptionModificationDialog/DescriptionModificationDialog.js";
19
- import "../../../components/ui/dialogs/elementSaveDialog/ElementSaveDialog.js";
20
- import "../../../components/ui/treeViewFinder/TreeViewFinder.js";
21
- import "@hello-pangea/dnd";
22
- import "../../../components/ui/overflowableText/OverflowableText.js";
23
- import { ProviderParam } from "../common/ProviderParam.js";
24
18
  import "yup";
19
+ import "../../../components/ui/treeViewFinder/TreeViewFinder.js";
25
20
  import "../../../components/ui/reactHookForm/numbers/RangeInput.js";
26
21
  import "@material-symbols/svg-400/outlined/left_panel_open.svg?react";
27
22
  import "@material-symbols/svg-400/outlined/arrows_output.svg?react";
28
23
  import "@material-symbols/svg-400/outlined/arrows_input.svg?react";
29
24
  import "@material-symbols/svg-400/outlined/left_panel_close.svg?react";
30
25
  import "@material-symbols/svg-400/outlined/add_notes.svg?react";
26
+ import "../../../components/ui/dialogs/descriptionModificationDialog/DescriptionModificationDialog.js";
31
27
  import "../../../components/ui/reactHookForm/expandableInput/ExpandableInput.js";
32
28
  import "../../../components/ui/reactHookForm/directory-item-input/directory-item-utils.js";
29
+ import "@hello-pangea/dnd";
30
+ import "../../../components/ui/dialogs/elementSaveDialog/ElementSaveDialog.js";
33
31
  import "../../../components/ui/snackbarProvider/SnackbarProvider.js";
34
32
  import "mui-nested-menu";
35
33
  import "react-resizable-panels";
36
34
  import "react-papaparse";
37
- import { getTabStyle, parametersStyles } from "../parameters-style.js";
35
+ import "../common/parameter-layout/parameter-layout-provider.js";
36
+ import { ProviderParam } from "../common/provider-param.js";
37
+ import { parametersStyles, getTabStyle } from "../parameters-style.js";
38
38
  import "../common/widget/parameter-line-slider.js";
39
39
  import "../common/limitreductions/columns-definitions.js";
40
40
  import "../common/contingency-table/contingency-table.js";
41
41
  import "../common/contingency-table/columns-definitions.js";
42
- import { useTabs } from "../common/hook/use-tabs.js";
43
42
  import "@hookform/resolvers/yup";
44
43
  import "../../../components/composite/filter/HeaderFilterForm.js";
45
44
  import { TabValues } from "./dynamic-security-analysis.type.js";
46
45
  function DynamicSecurityAnalysisParametersForm({
47
46
  dynamicSecurityAnalysisMethods,
48
- renderTitleFields,
49
- renderActions
47
+ useTabsReturn
50
48
  }) {
51
- const { paramsLoaded, formattedProviders } = dynamicSecurityAnalysisMethods;
52
- const { selectedTab, tabsWithError, onTabChange, onError } = useTabs({
53
- defaultTab: TabValues.SCENARIO,
54
- tabEnum: TabValues
55
- });
56
- return /* @__PURE__ */ jsxs(Fragment, { children: [
57
- renderTitleFields?.(),
58
- paramsLoaded ? /* @__PURE__ */ jsxs(Stack, { sx: { height: "100%" }, children: [
59
- /* @__PURE__ */ jsx(Grid2, { container: true, children: /* @__PURE__ */ jsx(ProviderParam, { options: formattedProviders }) }),
60
- /* @__PURE__ */ jsx(Grid2, { children: /* @__PURE__ */ jsxs(Tabs, { value: selectedTab, variant: "scrollable", onChange: onTabChange, "aria-label": "parameters", children: [
61
- /* @__PURE__ */ jsx(
62
- Tab,
63
- {
64
- label: /* @__PURE__ */ jsx(FormattedMessage, { id: "DynamicSecurityAnalysisScenario" }),
65
- value: TabValues.SCENARIO,
66
- sx: getTabStyle(tabsWithError, TabValues.SCENARIO)
67
- }
68
- ),
69
- /* @__PURE__ */ jsx(
70
- Tab,
71
- {
72
- label: /* @__PURE__ */ jsx(FormattedMessage, { id: "DynamicSecurityAnalysisContingency" }),
73
- value: TabValues.CONTINGENCY,
74
- sx: getTabStyle(tabsWithError, TabValues.CONTINGENCY)
75
- }
76
- )
77
- ] }) }),
78
- /* @__PURE__ */ jsxs(
79
- Grid2,
49
+ const { formattedProviders } = dynamicSecurityAnalysisMethods;
50
+ const { selectedTab, tabsWithError, onTabChange } = useTabsReturn;
51
+ return /* @__PURE__ */ jsxs(Stack, { sx: parametersStyles.scrollableGrid, children: [
52
+ /* @__PURE__ */ jsx(Grid2, { size: 12, children: /* @__PURE__ */ jsx(ProviderParam, { options: formattedProviders, id: "Dsa" }) }),
53
+ /* @__PURE__ */ jsx(Grid2, { size: 12, children: /* @__PURE__ */ jsxs(Tabs, { value: selectedTab, variant: "scrollable", onChange: onTabChange, "aria-label": "parameters", children: [
54
+ /* @__PURE__ */ jsx(
55
+ Tab,
80
56
  {
81
- container: true,
82
- size: "grow",
83
- sx: mergeSx(parametersStyles.scrollableGrid, {
84
- paddingTop: 0,
85
- width: "100%"
86
- }),
87
- children: [
88
- /* @__PURE__ */ jsx(TabPanel, { value: selectedTab, index: TabValues.SCENARIO, children: /* @__PURE__ */ jsx(ScenarioParameters, { path: TabValues.SCENARIO }) }),
89
- /* @__PURE__ */ jsx(TabPanel, { value: selectedTab, index: TabValues.CONTINGENCY, children: /* @__PURE__ */ jsx(ContingencyParameters, { path: TabValues.CONTINGENCY }) })
90
- ]
91
- },
92
- "dsaParameters"
57
+ label: /* @__PURE__ */ jsx(FormattedMessage, { id: "DynamicSecurityAnalysisScenario" }),
58
+ value: TabValues.SCENARIO,
59
+ sx: getTabStyle(tabsWithError, TabValues.SCENARIO)
60
+ }
93
61
  ),
94
- renderActions?.(onError)
95
- ] }) : /* @__PURE__ */ jsx(LinearProgress, {})
62
+ /* @__PURE__ */ jsx(
63
+ Tab,
64
+ {
65
+ label: /* @__PURE__ */ jsx(FormattedMessage, { id: "DynamicSecurityAnalysisContingency" }),
66
+ value: TabValues.CONTINGENCY,
67
+ sx: getTabStyle(tabsWithError, TabValues.CONTINGENCY)
68
+ }
69
+ )
70
+ ] }) }),
71
+ /* @__PURE__ */ jsxs(Grid2, { container: true, size: 12, sx: { paddingTop: 0, width: "100%", maxHeight: "100%" }, children: [
72
+ /* @__PURE__ */ jsx(TabPanel, { value: selectedTab, index: TabValues.SCENARIO, children: /* @__PURE__ */ jsx(ScenarioParameters, { path: TabValues.SCENARIO }) }),
73
+ /* @__PURE__ */ jsx(TabPanel, { value: selectedTab, index: TabValues.CONTINGENCY, children: /* @__PURE__ */ jsx(ContingencyParameters, { path: TabValues.CONTINGENCY }) })
74
+ ] }, "dsaParameters")
96
75
  ] });
97
76
  }
98
77
  export {
@@ -4,21 +4,17 @@ import "../../../utils/conversionUtils.js";
4
4
  import "../../../utils/types/equipmentType.js";
5
5
  import "react/jsx-runtime";
6
6
  import "@mui/icons-material";
7
- import { PROVIDER } from "../common/constants.js";
8
7
  import "@mui/material";
9
- import "react-intl";
10
8
  import "react";
9
+ import "react-intl";
10
+ import "../../../components/ui/overflowableText/OverflowableText.js";
11
+ import "react-hook-form";
11
12
  import "localized-countries";
12
13
  import "localized-countries/data/fr";
13
14
  import "localized-countries/data/en";
14
15
  import "notistack";
15
- import "react-hook-form";
16
16
  import "../../../components/ui/reactHookForm/provider/CustomFormProvider.js";
17
- import "../../../components/ui/dialogs/descriptionModificationDialog/DescriptionModificationDialog.js";
18
- import "../../../components/ui/dialogs/elementSaveDialog/ElementSaveDialog.js";
19
17
  import "../../../components/ui/treeViewFinder/TreeViewFinder.js";
20
- import "@hello-pangea/dnd";
21
- import "../../../components/ui/overflowableText/OverflowableText.js";
22
18
  import { NAME } from "../../../components/ui/reactHookForm/constants.js";
23
19
  import "../../../components/ui/reactHookForm/numbers/RangeInput.js";
24
20
  import "@material-symbols/svg-400/outlined/left_panel_open.svg?react";
@@ -26,12 +22,17 @@ import "@material-symbols/svg-400/outlined/arrows_output.svg?react";
26
22
  import "@material-symbols/svg-400/outlined/arrows_input.svg?react";
27
23
  import "@material-symbols/svg-400/outlined/left_panel_close.svg?react";
28
24
  import "@material-symbols/svg-400/outlined/add_notes.svg?react";
25
+ import "../../../components/ui/dialogs/descriptionModificationDialog/DescriptionModificationDialog.js";
29
26
  import "../../../components/ui/reactHookForm/expandableInput/ExpandableInput.js";
30
27
  import "../../../components/ui/reactHookForm/directory-item-input/directory-item-utils.js";
28
+ import "@hello-pangea/dnd";
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";
34
+ import "../common/parameter-layout/parameter-layout-provider.js";
35
+ import { PROVIDER } from "../common/constants.js";
35
36
  import "../common/widget/parameter-line-slider.js";
36
37
  import "../common/limitreductions/columns-definitions.js";
37
38
  import "../common/contingency-table/contingency-table.js";
@@ -1,52 +1,49 @@
1
- import { jsx, jsxs, Fragment } from "react/jsx-runtime";
2
- import { useIntl, FormattedMessage } from "react-intl";
3
- import { useState, useCallback, useEffect } from "react";
4
- import { Grid2 } from "@mui/material";
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { 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 { mapDynamicSimulationParameters } from "../../../utils/types/dynamic-simulation.type.js";
10
8
  import "@mui/icons-material";
11
- import { mergeSx } from "../../../utils/styles.js";
12
- import { LabelledButton } from "../common/parameters.js";
13
- import { CreateParameterDialog } from "../common/parameters-creation-dialog.js";
14
- import { parametersStyles } from "../parameters-style.js";
15
- import "../../../components/ui/overflowableText/OverflowableText.js";
16
- 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";
17
13
  import { fetchDynamicSimulationParameters } from "../../../services/dynamic-simulation.js";
18
14
  import "localized-countries";
19
15
  import "localized-countries/data/fr";
20
16
  import "localized-countries/data/en";
21
17
  import { useSnackMessage } from "../../../hooks/useSnackMessage.js";
18
+ import "react-hook-form";
22
19
  import { CustomFormProvider } from "../../../components/ui/reactHookForm/provider/CustomFormProvider.js";
23
- import { SubmitButton } from "../../../components/ui/reactHookForm/utils/SubmitButton.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";
24
25
  import "yup";
25
- import { DirectoryItemSelector } from "../../../components/ui/directoryItemSelector/DirectoryItemSelector.js";
26
26
  import "../../../components/ui/reactHookForm/numbers/RangeInput.js";
27
- import { PopupConfirmationDialog } from "../../../components/ui/dialogs/popupConfirmationDialog/PopupConfirmationDialog.js";
28
27
  import "@material-symbols/svg-400/outlined/left_panel_open.svg?react";
29
28
  import "@material-symbols/svg-400/outlined/arrows_output.svg?react";
30
29
  import "@material-symbols/svg-400/outlined/arrows_input.svg?react";
31
30
  import "@material-symbols/svg-400/outlined/left_panel_close.svg?react";
32
31
  import "@material-symbols/svg-400/outlined/add_notes.svg?react";
33
- import "../../../components/ui/dialogs/descriptionModificationDialog/DescriptionModificationDialog.js";
34
32
  import "../../../components/ui/reactHookForm/expandableInput/ExpandableInput.js";
35
33
  import "../../../components/ui/reactHookForm/directory-item-input/directory-item-utils.js";
36
- import "@hello-pangea/dnd";
37
- import "../../../components/ui/dialogs/elementSaveDialog/ElementSaveDialog.js";
38
34
  import "../../../components/ui/snackbarProvider/SnackbarProvider.js";
39
35
  import "mui-nested-menu";
40
36
  import "react-resizable-panels";
41
37
  import "react-papaparse";
42
- import "../../../components/ui/treeViewFinder/TreeViewFinder.js";
43
38
  import "../common/widget/parameter-line-slider.js";
44
39
  import "../common/limitreductions/columns-definitions.js";
45
40
  import "../common/contingency-table/contingency-table.js";
46
41
  import "../common/contingency-table/columns-definitions.js";
42
+ import { useTabs } from "../common/hook/use-tabs.js";
47
43
  import "@hookform/resolvers/yup";
48
44
  import "../../../components/composite/filter/HeaderFilterForm.js";
49
45
  import { useDynamicSimulationParametersForm, toParamsEnriched, toFormValues } from "./use-dynamic-simulation-parameters-form.js";
46
+ import { TabValues } from "./dynamic-simulation.type.js";
50
47
  import { DynamicSimulationForm } from "./dynamic-simulation-parameters-form.js";
51
48
  import useDefaultParams from "./hook/use-default-params.js";
52
49
  function DynamicSimulationInline({
@@ -64,24 +61,15 @@ function DynamicSimulationInline({
64
61
  name: null,
65
62
  description: null
66
63
  });
67
- const intl = useIntl();
68
64
  const { snackError } = useSnackMessage();
69
65
  const { getDefaultParams, setDefaultParams } = useDefaultParams(params);
70
- const [openCreateParameterDialog, setOpenCreateParameterDialog] = useState(false);
71
- const [openSelectParameterDialog, setOpenSelectParameterDialog] = useState(false);
72
- const [openResetConfirmation, setOpenResetConfirmation] = useState(false);
73
- const { formSchema, formMethods } = dynamicSimulationMethods;
74
- const { reset, handleSubmit, getValues, formState } = formMethods;
75
- const handleResetClick = useCallback(() => {
76
- setOpenResetConfirmation(true);
77
- }, []);
78
- const handleCancelReset = useCallback(() => {
79
- setOpenResetConfirmation(false);
80
- }, []);
81
- const handleReset = useCallback(() => {
82
- resetParameters();
83
- setOpenResetConfirmation(false);
84
- }, [resetParameters]);
66
+ const { formMethods } = dynamicSimulationMethods;
67
+ const { reset, getValues, formState, handleSubmit } = formMethods;
68
+ const useTabsReturn = useTabs({
69
+ defaultTab: TabValues.TAB_TIME_DELAY,
70
+ tabEnum: TabValues,
71
+ errors: formState.errors
72
+ });
85
73
  const onSubmit = useCallback(
86
74
  (formData) => {
87
75
  updateParameters(toParamsEnriched(formData, getDefaultParams()));
@@ -91,7 +79,6 @@ function DynamicSimulationInline({
91
79
  const handleLoadParameter = useCallback(
92
80
  (newParams) => {
93
81
  if (newParams?.length) {
94
- setOpenSelectParameterDialog(false);
95
82
  const parametersUuid = newParams[0].id;
96
83
  fetchDynamicSimulationParameters(parametersUuid).then((_params) => {
97
84
  reset(toFormValues(_params), {
@@ -102,85 +89,36 @@ function DynamicSimulationInline({
102
89
  snackWithFallback(snackError, error, { headerId: "paramsRetrievingError" });
103
90
  });
104
91
  }
105
- setOpenSelectParameterDialog(false);
106
92
  },
107
93
  [reset, setDefaultParams, snackError]
108
94
  );
109
95
  useEffect(() => {
110
96
  setHaveDirtyFields(formState.isDirty);
111
97
  }, [formState, setHaveDirtyFields]);
112
- const renderActions = (onSubmitError) => {
113
- return /* @__PURE__ */ jsxs(Fragment, { children: [
114
- /* @__PURE__ */ jsx(Grid2, { container: true, children: /* @__PURE__ */ jsxs(
115
- Grid2,
116
- {
117
- sx: mergeSx(parametersStyles.controlParametersItem, {
118
- paddingTop: 1,
119
- paddingBottom: 2,
120
- paddingLeft: 0
121
- }),
122
- children: [
123
- /* @__PURE__ */ jsx(
124
- LabelledButton,
125
- {
126
- disabled: true,
127
- callback: () => setOpenSelectParameterDialog(true),
128
- label: "settings.button.chooseSettings"
129
- }
130
- ),
131
- /* @__PURE__ */ jsx(LabelledButton, { disabled: true, callback: () => setOpenCreateParameterDialog(true), label: "save" }),
132
- /* @__PURE__ */ jsx(LabelledButton, { callback: handleResetClick, label: "resetToDefault" }),
133
- /* @__PURE__ */ jsx(SubmitButton, { variant: "outlined", onClick: handleSubmit(onSubmit, onSubmitError), children: /* @__PURE__ */ jsx(FormattedMessage, { id: "validate" }) })
134
- ]
135
- }
136
- ) }),
137
- openCreateParameterDialog && /* @__PURE__ */ jsx(
138
- CreateParameterDialog,
139
- {
140
- studyUuid,
141
- open: openCreateParameterDialog,
142
- onClose: () => setOpenCreateParameterDialog(false),
143
- parameterValues: getValues,
144
- parameterFormatter: (formData) => mapDynamicSimulationParameters(toParamsEnriched(formData, getDefaultParams())),
145
- parameterType: ElementType.DYNAMIC_SIMULATION_PARAMETERS
146
- }
147
- ),
148
- openSelectParameterDialog && /* @__PURE__ */ jsx(
149
- DirectoryItemSelector,
150
- {
151
- open: openSelectParameterDialog,
152
- onClose: handleLoadParameter,
153
- types: [ElementType.DYNAMIC_SIMULATION_PARAMETERS],
154
- title: intl.formatMessage({
155
- id: "showSelectParameterDialog"
156
- }),
157
- onlyLeaves: true,
158
- multiSelect: false,
159
- validationButtonText: intl.formatMessage({
160
- id: "validate"
161
- })
162
- }
163
- ),
164
- openResetConfirmation && /* @__PURE__ */ jsx(
165
- PopupConfirmationDialog,
98
+ return /* @__PURE__ */ jsx(CustomFormProvider, { validationSchema: dynamicSimulationMethods.formSchema, ...formMethods, children: /* @__PURE__ */ jsx(
99
+ ParameterLayout,
100
+ {
101
+ title: "DynamicSimulation",
102
+ isLoading: !dynamicSimulationMethods.paramsLoaded,
103
+ parameterType: ElementType.DYNAMIC_SIMULATION_PARAMETERS,
104
+ createParameter: {
105
+ studyUuid,
106
+ parameterFormatter: (formData) => mapDynamicSimulationParameters(toParamsEnriched(formData, getDefaultParams())),
107
+ getParameterValues: getValues
108
+ },
109
+ selectParameterHandler: handleLoadParameter,
110
+ resetHandler: resetParameters,
111
+ validateHandler: handleSubmit(onSubmit, useTabsReturn.onError),
112
+ children: /* @__PURE__ */ jsx(
113
+ DynamicSimulationForm,
166
114
  {
167
- message: "resetParamsConfirmation",
168
- validateButtonLabel: "validate",
169
- openConfirmationPopup: openResetConfirmation,
170
- setOpenConfirmationPopup: handleCancelReset,
171
- handlePopupConfirmation: handleReset
115
+ dynamicSimulationMethods,
116
+ useTabsReturn,
117
+ voltageLevelsFetcher,
118
+ countriesFetcher,
119
+ evaluateFilterFetcher
172
120
  }
173
121
  )
174
- ] });
175
- };
176
- return /* @__PURE__ */ jsx(CustomFormProvider, { validationSchema: formSchema, ...formMethods, children: /* @__PURE__ */ jsx(
177
- DynamicSimulationForm,
178
- {
179
- dynamicSimulationMethods,
180
- renderActions,
181
- voltageLevelsFetcher,
182
- countriesFetcher,
183
- evaluateFilterFetcher
184
122
  }
185
123
  ) });
186
124
  }
@@ -1,15 +1,14 @@
1
- import { ReactNode } from 'react';
2
- import { FieldErrors } from 'react-hook-form';
1
+ import { UseTabsReturn } from '../common';
3
2
  import { VoltageLevelInfos } from '../../../utils/types/equipmentType';
3
+ import { TabValues } from './dynamic-simulation.type';
4
4
  import { ExpertFilter, IdentifiableAttributes } from '../../../components/composite/filter';
5
5
  import { UseComputationParametersFormReturn } from '../common/utils';
6
6
  type DynamicSimulationFormProps = {
7
7
  dynamicSimulationMethods: UseComputationParametersFormReturn;
8
- renderTitleFields?: () => ReactNode;
9
- renderActions?: (onSubmitError: (errors: FieldErrors) => void) => ReactNode;
8
+ useTabsReturn: UseTabsReturn<TabValues>;
10
9
  voltageLevelsFetcher?: () => Promise<VoltageLevelInfos[]>;
11
10
  countriesFetcher?: () => Promise<string[]>;
12
11
  evaluateFilterFetcher?: (filter: ExpertFilter) => Promise<IdentifiableAttributes[]>;
13
12
  };
14
- export declare function DynamicSimulationForm({ dynamicSimulationMethods, renderTitleFields, renderActions, voltageLevelsFetcher, countriesFetcher, evaluateFilterFetcher, }: Readonly<DynamicSimulationFormProps>): import("react").JSX.Element;
13
+ export declare function DynamicSimulationForm({ dynamicSimulationMethods, useTabsReturn, voltageLevelsFetcher, countriesFetcher, evaluateFilterFetcher, }: Readonly<DynamicSimulationFormProps>): import("react").JSX.Element;
15
14
  export {};
@@ -1,43 +1,42 @@
1
- import { jsxs, Fragment, jsx } from "react/jsx-runtime";
2
- import { Stack, Grid2, Tabs, Tab, LinearProgress } from "@mui/material";
1
+ import { jsxs, jsx } from "react/jsx-runtime";
2
+ import { Stack, Grid2, Tabs, Tab } from "@mui/material";
3
3
  import { FormattedMessage } from "react-intl";
4
- import "../../../utils/conversionUtils.js";
5
- import "../../../utils/types/equipmentType.js";
6
4
  import "@mui/icons-material";
7
- import { mergeSx } from "../../../utils/styles.js";
8
- import { TabPanel } from "../common/parameters.js";
9
5
  import "react";
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";
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
- import "../../../components/ui/treeViewFinder/TreeViewFinder.js";
19
- import "@hello-pangea/dnd";
20
- import "../../../components/ui/overflowableText/OverflowableText.js";
21
- import { ProviderParam } from "../common/ProviderParam.js";
22
16
  import "yup";
17
+ import "../../../components/ui/treeViewFinder/TreeViewFinder.js";
23
18
  import "../../../components/ui/reactHookForm/numbers/RangeInput.js";
24
19
  import "@material-symbols/svg-400/outlined/left_panel_open.svg?react";
25
20
  import "@material-symbols/svg-400/outlined/arrows_output.svg?react";
26
21
  import "@material-symbols/svg-400/outlined/arrows_input.svg?react";
27
22
  import "@material-symbols/svg-400/outlined/left_panel_close.svg?react";
28
23
  import "@material-symbols/svg-400/outlined/add_notes.svg?react";
24
+ import "../../../components/ui/dialogs/descriptionModificationDialog/DescriptionModificationDialog.js";
29
25
  import "../../../components/ui/reactHookForm/expandableInput/ExpandableInput.js";
30
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";
31
29
  import "../../../components/ui/snackbarProvider/SnackbarProvider.js";
32
30
  import "mui-nested-menu";
33
31
  import "react-resizable-panels";
34
32
  import "react-papaparse";
35
- import { getTabStyle, parametersStyles } from "../parameters-style.js";
33
+ import "../common/parameter-layout/parameter-layout-provider.js";
34
+ import { ProviderParam } from "../common/provider-param.js";
35
+ import { parametersStyles, getTabStyle } from "../parameters-style.js";
36
36
  import "../common/widget/parameter-line-slider.js";
37
37
  import "../common/limitreductions/columns-definitions.js";
38
38
  import "../common/contingency-table/contingency-table.js";
39
39
  import "../common/contingency-table/columns-definitions.js";
40
- import { useTabs } from "../common/hook/use-tabs.js";
41
40
  import "@hookform/resolvers/yup";
42
41
  import "../../../components/composite/filter/HeaderFilterForm.js";
43
42
  import { TabValues } from "./dynamic-simulation.type.js";
@@ -53,94 +52,74 @@ import { NetworkParameters } from "./network/network-parameters.js";
53
52
  import CurveParameters from "./curve/curve-parameters.js";
54
53
  function DynamicSimulationForm({
55
54
  dynamicSimulationMethods,
56
- renderTitleFields,
57
- renderActions,
55
+ useTabsReturn,
58
56
  // fetchers for curve parameters
59
57
  voltageLevelsFetcher,
60
58
  countriesFetcher,
61
59
  evaluateFilterFetcher
62
60
  }) {
63
- const { paramsLoaded, formattedProviders } = dynamicSimulationMethods;
64
- const { selectedTab, tabsWithError, onTabChange, onError } = useTabs({
65
- defaultTab: TabValues.TAB_TIME_DELAY,
66
- tabEnum: TabValues
67
- });
68
- return /* @__PURE__ */ jsxs(Fragment, { children: [
69
- renderTitleFields?.(),
70
- paramsLoaded ? /* @__PURE__ */ jsxs(Stack, { sx: { height: "100%" }, children: [
71
- /* @__PURE__ */ jsx(Grid2, { container: true, children: /* @__PURE__ */ jsx(ProviderParam, { options: formattedProviders }) }),
72
- /* @__PURE__ */ jsx(Grid2, { children: /* @__PURE__ */ jsxs(Tabs, { value: selectedTab, variant: "scrollable", onChange: onTabChange, "aria-label": "parameters", children: [
73
- /* @__PURE__ */ jsx(
74
- Tab,
75
- {
76
- label: /* @__PURE__ */ jsx(FormattedMessage, { id: "DynamicSimulationTimeDelay" }),
77
- value: TabValues.TAB_TIME_DELAY,
78
- sx: getTabStyle(tabsWithError, TabValues.TAB_TIME_DELAY)
79
- }
80
- ),
81
- /* @__PURE__ */ jsx(
82
- Tab,
83
- {
84
- label: /* @__PURE__ */ jsx(FormattedMessage, { id: "DynamicSimulationSolver" }),
85
- value: TabValues.TAB_SOLVER,
86
- sx: getTabStyle(tabsWithError, TabValues.TAB_SOLVER)
87
- }
88
- ),
89
- /* @__PURE__ */ jsx(
90
- Tab,
91
- {
92
- label: /* @__PURE__ */ jsx(FormattedMessage, { id: "DynamicSimulationMapping" }),
93
- value: TabValues.TAB_MAPPING,
94
- sx: getTabStyle(tabsWithError, TabValues.TAB_MAPPING)
95
- }
96
- ),
97
- /* @__PURE__ */ jsx(
98
- Tab,
99
- {
100
- label: /* @__PURE__ */ jsx(FormattedMessage, { id: "DynamicSimulationNetwork" }),
101
- value: TabValues.TAB_NETWORK,
102
- sx: getTabStyle(tabsWithError, TabValues.TAB_NETWORK)
103
- }
104
- ),
105
- /* @__PURE__ */ jsx(
106
- Tab,
107
- {
108
- label: /* @__PURE__ */ jsx(FormattedMessage, { id: "DynamicSimulationCurve" }),
109
- value: TabValues.TAB_CURVE,
110
- sx: getTabStyle(tabsWithError, TabValues.TAB_CURVE)
111
- }
112
- )
113
- ] }) }),
114
- /* @__PURE__ */ jsxs(
115
- Grid2,
61
+ const { formattedProviders } = dynamicSimulationMethods;
62
+ const { selectedTab, tabsWithError, onTabChange } = useTabsReturn;
63
+ return /* @__PURE__ */ jsxs(Stack, { sx: parametersStyles.scrollableGrid, children: [
64
+ /* @__PURE__ */ jsx(Grid2, { size: 12, children: /* @__PURE__ */ jsx(ProviderParam, { options: formattedProviders, id: "Ds" }) }),
65
+ /* @__PURE__ */ jsx(Grid2, { size: 12, children: /* @__PURE__ */ jsxs(Tabs, { value: selectedTab, variant: "scrollable", onChange: onTabChange, "aria-label": "parameters", children: [
66
+ /* @__PURE__ */ jsx(
67
+ Tab,
68
+ {
69
+ label: /* @__PURE__ */ jsx(FormattedMessage, { id: "DynamicSimulationTimeDelay" }),
70
+ value: TabValues.TAB_TIME_DELAY,
71
+ sx: getTabStyle(tabsWithError, TabValues.TAB_TIME_DELAY)
72
+ }
73
+ ),
74
+ /* @__PURE__ */ jsx(
75
+ Tab,
116
76
  {
117
- container: true,
118
- size: "grow",
119
- sx: mergeSx(parametersStyles.scrollableGrid, {
120
- paddingTop: 0,
121
- width: "100%"
122
- }),
123
- children: [
124
- /* @__PURE__ */ jsx(TabPanel, { value: selectedTab, index: TabValues.TAB_TIME_DELAY, children: /* @__PURE__ */ jsx(TimeDelayParameters, { path: TabValues.TAB_TIME_DELAY }) }),
125
- /* @__PURE__ */ jsx(TabPanel, { value: selectedTab, index: TabValues.TAB_SOLVER, children: /* @__PURE__ */ jsx(SolverParameters, { path: TabValues.TAB_SOLVER }) }),
126
- /* @__PURE__ */ jsx(TabPanel, { value: selectedTab, index: TabValues.TAB_MAPPING, children: /* @__PURE__ */ jsx(MappingParameters, { path: TabValues.TAB_MAPPING }) }),
127
- /* @__PURE__ */ jsx(TabPanel, { value: selectedTab, index: TabValues.TAB_NETWORK, children: /* @__PURE__ */ jsx(NetworkParameters, { path: TabValues.TAB_NETWORK }) }),
128
- /* @__PURE__ */ jsx(TabPanel, { value: selectedTab, index: TabValues.TAB_CURVE, children: /* @__PURE__ */ jsx(
129
- CurveParameters,
130
- {
131
- path: TabValues.TAB_CURVE,
132
- mappingPath: `${TabValues.TAB_MAPPING}.${MAPPING}`,
133
- voltageLevelsFetcher,
134
- countriesFetcher,
135
- evaluateFilterFetcher
136
- }
137
- ) })
138
- ]
139
- },
140
- "dsParameters"
77
+ label: /* @__PURE__ */ jsx(FormattedMessage, { id: "DynamicSimulationSolver" }),
78
+ value: TabValues.TAB_SOLVER,
79
+ sx: getTabStyle(tabsWithError, TabValues.TAB_SOLVER)
80
+ }
141
81
  ),
142
- renderActions?.(onError)
143
- ] }) : /* @__PURE__ */ jsx(LinearProgress, {})
82
+ /* @__PURE__ */ jsx(
83
+ Tab,
84
+ {
85
+ label: /* @__PURE__ */ jsx(FormattedMessage, { id: "DynamicSimulationMapping" }),
86
+ value: TabValues.TAB_MAPPING,
87
+ sx: getTabStyle(tabsWithError, TabValues.TAB_MAPPING)
88
+ }
89
+ ),
90
+ /* @__PURE__ */ jsx(
91
+ Tab,
92
+ {
93
+ label: /* @__PURE__ */ jsx(FormattedMessage, { id: "DynamicSimulationNetwork" }),
94
+ value: TabValues.TAB_NETWORK,
95
+ sx: getTabStyle(tabsWithError, TabValues.TAB_NETWORK)
96
+ }
97
+ ),
98
+ /* @__PURE__ */ jsx(
99
+ Tab,
100
+ {
101
+ label: /* @__PURE__ */ jsx(FormattedMessage, { id: "DynamicSimulationCurve" }),
102
+ value: TabValues.TAB_CURVE,
103
+ sx: getTabStyle(tabsWithError, TabValues.TAB_CURVE)
104
+ }
105
+ )
106
+ ] }) }),
107
+ /* @__PURE__ */ jsxs(Grid2, { container: true, size: 12, sx: { paddingTop: 0, width: "100%", maxHeight: "100%" }, children: [
108
+ /* @__PURE__ */ jsx(TabPanel, { value: selectedTab, index: TabValues.TAB_TIME_DELAY, children: /* @__PURE__ */ jsx(TimeDelayParameters, { path: TabValues.TAB_TIME_DELAY }) }),
109
+ /* @__PURE__ */ jsx(TabPanel, { value: selectedTab, index: TabValues.TAB_SOLVER, children: /* @__PURE__ */ jsx(SolverParameters, { path: TabValues.TAB_SOLVER }) }),
110
+ /* @__PURE__ */ jsx(TabPanel, { value: selectedTab, index: TabValues.TAB_MAPPING, children: /* @__PURE__ */ jsx(MappingParameters, { path: TabValues.TAB_MAPPING }) }),
111
+ /* @__PURE__ */ jsx(TabPanel, { value: selectedTab, index: TabValues.TAB_NETWORK, children: /* @__PURE__ */ jsx(NetworkParameters, { path: TabValues.TAB_NETWORK }) }),
112
+ /* @__PURE__ */ jsx(TabPanel, { value: selectedTab, index: TabValues.TAB_CURVE, children: /* @__PURE__ */ jsx(
113
+ CurveParameters,
114
+ {
115
+ path: TabValues.TAB_CURVE,
116
+ mappingPath: `${TabValues.TAB_MAPPING}.${MAPPING}`,
117
+ voltageLevelsFetcher,
118
+ countriesFetcher,
119
+ evaluateFilterFetcher
120
+ }
121
+ ) })
122
+ ] }, "dsParameters")
144
123
  ] });
145
124
  }
146
125
  export {