@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,5 +1,5 @@
1
1
  import { jsxs, jsx } from "react/jsx-runtime";
2
- import { Grid, IconButton } from "@mui/material";
2
+ import { Stack, IconButton } from "@mui/material";
3
3
  import { Close } from "@mui/icons-material";
4
4
  import { CustomAggridComparatorSelector } from "./custom-aggrid-comparator-selector.js";
5
5
  import { CustomAggridTextFilter } from "./custom-aggrid-text-filter.js";
@@ -23,7 +23,7 @@ function CustomAggridComparatorFilter({ colId, filterParams }) {
23
23
  // used for text filter as a UI type (examples: contains, startsWith..)
24
24
  } = filterParams;
25
25
  const isComparatorWithoutValue = selectedFilterComparator === FilterTextComparators.IS_EMPTY || selectedFilterComparator === FilterTextComparators.IS_NOT_EMPTY;
26
- return /* @__PURE__ */ jsxs(Grid, { container: true, direction: "column", gap: 0.8, sx: { padding: "8px" }, children: [
26
+ return /* @__PURE__ */ jsxs(Stack, { gap: 0.8, sx: { padding: "8px" }, children: [
27
27
  /* @__PURE__ */ jsxs("div", { style: { display: "flex", alignItems: "center", gap: "4px" }, children: [
28
28
  /* @__PURE__ */ jsx("div", { style: { flex: 1 }, children: /* @__PURE__ */ jsx(
29
29
  CustomAggridComparatorSelector,
@@ -1,6 +1,6 @@
1
1
  import { jsxs, jsx } from "react/jsx-runtime";
2
2
  import { useMemo } from "react";
3
- import { Grid, TextField, InputAdornment, IconButton } from "@mui/material";
3
+ import { Stack, Grid2, TextField, InputAdornment, IconButton } from "@mui/material";
4
4
  import { Clear } from "@mui/icons-material";
5
5
  import { useIntl } from "react-intl";
6
6
  import "../../../../utils/conversionUtils.js";
@@ -31,8 +31,8 @@ function CustomAggridTextFilter({
31
31
  }) {
32
32
  const intl = useIntl();
33
33
  const isRoundingDisplayed = useMemo(() => !!(isNumberInput && value), [isNumberInput, value]);
34
- return /* @__PURE__ */ jsxs(Grid, { container: true, direction: "column", gap: 0.2, children: [
35
- /* @__PURE__ */ jsx(Grid, { item: true, children: /* @__PURE__ */ jsx(
34
+ return /* @__PURE__ */ jsxs(Stack, { gap: 0.2, children: [
35
+ /* @__PURE__ */ jsx(Grid2, { children: /* @__PURE__ */ jsx(
36
36
  TextField,
37
37
  {
38
38
  size: "small",
@@ -51,7 +51,7 @@ function CustomAggridTextFilter({
51
51
  }
52
52
  }
53
53
  ) }),
54
- isRoundingDisplayed && /* @__PURE__ */ jsx(Grid, { item: true, children: /* @__PURE__ */ jsx(DisplayRounding, { decimalAfterDot }) })
54
+ isRoundingDisplayed && /* @__PURE__ */ jsx(Grid2, { children: /* @__PURE__ */ jsx(DisplayRounding, { decimalAfterDot }) })
55
55
  ] });
56
56
  }
57
57
  export {
@@ -1,5 +1,5 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
- import { Grid, IconButton, Badge } from "@mui/material";
2
+ import { Grid2, IconButton, Badge } from "@mui/material";
3
3
  import { FilterAlt } from "@mui/icons-material";
4
4
  import "../../../../utils/conversionUtils.js";
5
5
  import "../../../../utils/types/equipmentType.js";
@@ -15,7 +15,7 @@ function CustomFilterIcon({
15
15
  selectedFilterComparator
16
16
  }) {
17
17
  const isFilterActive = selectedFilterData !== void 0 && selectedFilterData !== null && (isNonEmptyStringOrArray(selectedFilterData) || selectedFilterComparator === FilterTextComparators.IS_EMPTY || selectedFilterComparator === FilterTextComparators.IS_NOT_EMPTY);
18
- return /* @__PURE__ */ jsx(Grid, { item: true, sx: styles.gridRoot, children: /* @__PURE__ */ jsx(Grid, { item: true, children: /* @__PURE__ */ jsx(IconButton, { size: "small", onClick: handleShowFilter, children: /* @__PURE__ */ jsx(Badge, { color: "secondary", variant: isFilterActive ? "dot" : void 0, invisible: !isFilterActive, children: /* @__PURE__ */ jsx(FilterAlt, { sx: styles.iconSize }) }) }) }) });
18
+ return /* @__PURE__ */ jsx(Grid2, { sx: styles.gridRoot, children: /* @__PURE__ */ jsx(Grid2, { children: /* @__PURE__ */ jsx(IconButton, { size: "small", onClick: handleShowFilter, children: /* @__PURE__ */ jsx(Badge, { color: "secondary", variant: isFilterActive ? "dot" : void 0, invisible: !isFilterActive, children: /* @__PURE__ */ jsx(FilterAlt, { sx: styles.iconSize }) }) }) }) });
19
19
  }
20
20
  export {
21
21
  CustomFilterIcon
@@ -1,7 +1,7 @@
1
1
  import { jsx, jsxs } from "react/jsx-runtime";
2
2
  import { useState, useCallback } from "react";
3
3
  import { FormattedMessage } from "react-intl";
4
- import { Grid, Tooltip } from "@mui/material";
4
+ import { Grid2, Tooltip } from "@mui/material";
5
5
  import { WarningAmber } from "@mui/icons-material";
6
6
  import { CustomAggridSort } from "./custom-aggrid-sort.js";
7
7
  import { CustomMenu } from "./custom-aggrid-menu.js";
@@ -9,13 +9,23 @@ import { useCustomAggridSort } from "./hooks/use-custom-aggrid-sort.js";
9
9
  import { CustomAggridFilter } from "./custom-aggrid-filters/custom-aggrid-filter.js";
10
10
  const styles = {
11
11
  displayName: {
12
+ minWidth: 0,
12
13
  overflow: "hidden",
13
- textOverflow: "ellipsis"
14
+ textOverflow: "ellipsis",
15
+ whiteSpace: "nowrap"
14
16
  },
15
17
  invalidIcon: {
16
18
  display: "flex",
17
19
  alignItems: "center",
18
20
  ml: 0.5
21
+ },
22
+ titleContainer: {
23
+ minWidth: 0
24
+ },
25
+ actions: {
26
+ flex: "0 0 auto",
27
+ flexWrap: "nowrap",
28
+ alignItems: "center"
19
29
  }
20
30
  };
21
31
  function CustomHeaderComponent({
@@ -44,39 +54,42 @@ function CustomHeaderComponent({
44
54
  const handleMouseLeave = useCallback(() => {
45
55
  setIsHoveringColumnHeader(false);
46
56
  }, []);
47
- return /* @__PURE__ */ jsx(Grid, { container: true, onMouseEnter: handleMouseEnter, onMouseLeave: handleMouseLeave, children: /* @__PURE__ */ jsxs(Grid, { container: true, alignItems: "center", wrap: "nowrap", children: [
57
+ return /* @__PURE__ */ jsx(Grid2, { container: true, onMouseEnter: handleMouseEnter, onMouseLeave: handleMouseLeave, sx: { width: "100%" }, children: /* @__PURE__ */ jsxs(Grid2, { container: true, alignItems: "center", wrap: "nowrap", sx: { width: "100%" }, children: [
48
58
  /* @__PURE__ */ jsx(
49
- Grid,
59
+ Grid2,
50
60
  {
51
61
  container: true,
52
62
  sx: {
53
- cursor: isSortable ? "pointer" : "default"
63
+ cursor: isSortable ? "pointer" : "default",
64
+ ...styles.titleContainer,
65
+ flex: forceDisplayFilterIcon ? "0 1 auto" : void 0
54
66
  },
55
- flexBasis: forceDisplayFilterIcon ? "0%" : "100%",
67
+ flexBasis: forceDisplayFilterIcon ? "auto" : "100%",
56
68
  children: /* @__PURE__ */ jsx(
57
- Grid,
69
+ Grid2,
58
70
  {
59
71
  container: true,
60
72
  sx: {
61
- overflow: "hidden"
73
+ overflow: "hidden",
74
+ minWidth: 0
62
75
  },
63
76
  onClick: handleClickHeader,
64
- children: /* @__PURE__ */ jsxs(Grid, { container: true, sx: styles.displayName, alignItems: "center", wrap: "nowrap", children: [
65
- /* @__PURE__ */ jsx(Grid, { item: true, children: displayName }),
66
- isInvalid && /* @__PURE__ */ jsx(Grid, { item: true, sx: styles.invalidIcon, children: /* @__PURE__ */ jsx(
77
+ children: /* @__PURE__ */ jsxs(Grid2, { container: true, sx: styles.displayName, alignItems: "center", wrap: "nowrap", children: [
78
+ /* @__PURE__ */ jsx(Grid2, { children: displayName }),
79
+ isInvalid && /* @__PURE__ */ jsx(Grid2, { sx: styles.invalidIcon, children: /* @__PURE__ */ jsx(
67
80
  Tooltip,
68
81
  {
69
82
  title: /* @__PURE__ */ jsx(FormattedMessage, { id: "spreadsheet/column/invalid-without-loadflow" }),
70
83
  children: /* @__PURE__ */ jsx(WarningAmber, { fontSize: "small", color: "warning" })
71
84
  }
72
85
  ) }),
73
- sortParams && /* @__PURE__ */ jsx(Grid, { item: true, children: /* @__PURE__ */ jsx(CustomAggridSort, { colId: column.getId(), sortParams }) })
86
+ sortParams && /* @__PURE__ */ jsx(Grid2, { children: /* @__PURE__ */ jsx(CustomAggridSort, { colId: column.getId(), sortParams }) })
74
87
  ] })
75
88
  }
76
89
  )
77
90
  }
78
91
  ),
79
- /* @__PURE__ */ jsxs(Grid, { container: true, flex: "1", wrap: "nowrap", children: [
92
+ /* @__PURE__ */ jsxs(Grid2, { container: true, sx: styles.actions, children: [
80
93
  filterComponent && /* @__PURE__ */ jsx(
81
94
  CustomAggridFilter,
82
95
  {
@@ -1,6 +1,6 @@
1
1
  import { jsxs, Fragment, jsx } from "react/jsx-runtime";
2
2
  import { useState, useRef } from "react";
3
- import { Grid, IconButton, Badge } from "@mui/material";
3
+ import { Grid2, IconButton, Badge } from "@mui/material";
4
4
  import { MoreVert } from "@mui/icons-material";
5
5
  const styles = {
6
6
  iconSize: {
@@ -11,7 +11,7 @@ function CustomMenu({ Menu, menuParams }) {
11
11
  const [menuOpen, setMenuOpen] = useState(false);
12
12
  const menuButtonRef = useRef(null);
13
13
  return /* @__PURE__ */ jsxs(Fragment, { children: [
14
- /* @__PURE__ */ jsx(Grid, { container: true, direction: "row", children: /* @__PURE__ */ jsx(IconButton, { ref: menuButtonRef, size: "small", onClick: () => setMenuOpen(true), children: /* @__PURE__ */ jsx(Badge, { color: "secondary", children: /* @__PURE__ */ jsx(MoreVert, { sx: styles.iconSize }) }) }) }),
14
+ /* @__PURE__ */ jsx(Grid2, { container: true, direction: "row", children: /* @__PURE__ */ jsx(IconButton, { ref: menuButtonRef, size: "small", onClick: () => setMenuOpen(true), children: /* @__PURE__ */ jsx(Badge, { color: "secondary", children: /* @__PURE__ */ jsx(MoreVert, { sx: styles.iconSize }) }) }) }),
15
15
  /* @__PURE__ */ jsx(Menu, { open: menuOpen, onClose: () => setMenuOpen(false), anchorEl: menuButtonRef.current, ...menuParams })
16
16
  ] });
17
17
  }
@@ -2,7 +2,7 @@ import { jsx } from "react/jsx-runtime";
2
2
  import { Grid2, Box } from "@mui/material";
3
3
  import { FormattedMessage } from "react-intl";
4
4
  function GridSection({ title, heading = 3, size = 12, customStyle }) {
5
- return /* @__PURE__ */ jsx(Grid2, { container: true, spacing: 2, size: 12, children: /* @__PURE__ */ jsx(Grid2, { size, children: /* @__PURE__ */ jsx(Box, { sx: customStyle, component: `h${heading}`, children: /* @__PURE__ */ jsx(FormattedMessage, { id: title }) }) }) });
5
+ return /* @__PURE__ */ jsx(Grid2, { container: true, spacing: 2, sx: { width: "100%" }, children: /* @__PURE__ */ jsx(Grid2, { size, children: /* @__PURE__ */ jsx(Box, { sx: customStyle, component: `h${heading}`, children: /* @__PURE__ */ jsx(FormattedMessage, { id: title }) }) }) });
6
6
  }
7
7
  export {
8
8
  GridSection
@@ -18,12 +18,14 @@ import { AboutDialog } from "./topBar/AboutDialog.js";
18
18
  import { GridLogo, LogoText } from "./topBar/GridLogo.js";
19
19
  import { DevModeBanner } from "./topBar/DevModeBanner.js";
20
20
  import { TopBar } from "./topBar/TopBar.js";
21
+ import { ParameterLayout } from "./parameters/common/parameter-layout/parameter-layout.js";
22
+ import { ParameterLayoutProvider, useParameterLayoutContext } from "./parameters/common/parameter-layout/parameter-layout-provider.js";
21
23
  import { formatComputingTypeLabel, isValidComputingType } from "./parameters/common/computing-type.js";
22
24
  import { COMMON_PARAMETERS, CONTINGENCIES, CONTINGENCY_LISTS, CONTINGENCY_LISTS_INFOS, PARAM_SA_FLOW_PROPORTIONAL_THRESHOLD, PARAM_SA_HIGH_VOLTAGE_ABSOLUTE_THRESHOLD, PARAM_SA_HIGH_VOLTAGE_PROPORTIONAL_THRESHOLD, PARAM_SA_LOW_VOLTAGE_ABSOLUTE_THRESHOLD, PARAM_SA_LOW_VOLTAGE_PROPORTIONAL_THRESHOLD, PARAM_SA_PROVIDER, PROVIDER, SPECIFIC_PARAMETERS, VERSION_PARAMETER, VOLTAGE_LEVEL } from "./parameters/common/constants.js";
23
25
  import { LineSeparator } from "./parameters/common/line-separator.js";
24
26
  import { LabelledButton, SwitchWithLabel, TabPanel } from "./parameters/common/parameters.js";
25
27
  import { CreateParameterDialog } from "./parameters/common/parameters-creation-dialog.js";
26
- import { ProviderParam } from "./parameters/common/ProviderParam.js";
28
+ import { ProviderParam } from "./parameters/common/provider-param.js";
27
29
  import { ParameterFloat } from "./parameters/common/widget/parameter-float.js";
28
30
  import { ParameterGroup } from "./parameters/common/widget/parameter-group.js";
29
31
  import { ParameterLineDirectoryItemsInput } from "./parameters/common/widget/parameter-line-directory-items-input.js";
@@ -402,6 +404,8 @@ export {
402
404
  PSTS_EQUIPMENT_TYPES,
403
405
  ParameterFloat,
404
406
  ParameterGroup,
407
+ ParameterLayout,
408
+ ParameterLayoutProvider,
405
409
  ParameterLineDirectoryItemsInput,
406
410
  ParameterLineSlider,
407
411
  ParameterSwitch,
@@ -712,6 +716,7 @@ export {
712
716
  useListenerManager,
713
717
  useModificationsDragAndDrop,
714
718
  useNotificationsListener,
719
+ useParameterLayoutContext,
715
720
  useParametersForm,
716
721
  useTabs,
717
722
  useTabsWithError,
@@ -1,10 +1,11 @@
1
- import { jsxs, Fragment, jsx } from "react/jsx-runtime";
1
+ import { jsxs, jsx } from "react/jsx-runtime";
2
+ import { Box } from "@mui/material";
2
3
  import { PowerMeasurementsForm } from "./PowerMeasurementsForm.js";
3
4
  import { GridSection } from "../../../../components/composite/grid/grid-section.js";
4
5
  function BranchActiveReactivePowerMeasurementsForm({
5
6
  equipmentToModify
6
7
  }) {
7
- return /* @__PURE__ */ jsxs(Fragment, { children: [
8
+ return /* @__PURE__ */ jsxs(Box, { sx: { width: "100%" }, children: [
8
9
  /* @__PURE__ */ jsx(GridSection, { title: "MeasurementsSection" }),
9
10
  /* @__PURE__ */ jsx(GridSection, { title: "Side1", heading: 4 }),
10
11
  /* @__PURE__ */ jsx(
@@ -1,6 +1,6 @@
1
1
  import { SyntheticEvent } from 'react';
2
2
  import { FieldErrors } from 'react-hook-form';
3
- export type UseTabs<TTabValue extends string> = {
3
+ export type UseTabsReturn<TTabValue extends string> = {
4
4
  selectedTab: TTabValue;
5
5
  tabsWithError: TTabValue[];
6
6
  onTabChange: (event: SyntheticEvent, newValue: TTabValue) => void;
@@ -9,5 +9,6 @@ export type UseTabs<TTabValue extends string> = {
9
9
  export type UseTabsProps<TTabValue extends string> = {
10
10
  defaultTab: TTabValue;
11
11
  tabEnum: Record<string, TTabValue>;
12
+ errors: FieldErrors;
12
13
  };
13
- export declare function useTabs<TTabValue extends string>({ defaultTab, tabEnum, }: Readonly<UseTabsProps<TTabValue>>): UseTabs<TTabValue>;
14
+ export declare function useTabs<TTabValue extends string>({ defaultTab, tabEnum, errors, }: Readonly<UseTabsProps<TTabValue>>): UseTabsReturn<TTabValue>;
@@ -1,11 +1,10 @@
1
1
  import { useState, useCallback } from "react";
2
- import { useFormState } from "react-hook-form";
3
2
  import { isObjectEmpty } from "../../../../utils/functions.js";
4
3
  function useTabs({
5
4
  defaultTab,
6
- tabEnum
5
+ tabEnum,
6
+ errors
7
7
  }) {
8
- const { errors } = useFormState();
9
8
  const [selectedTab, setSelectedTab] = useState(defaultTab);
10
9
  const [tabsWithError, setTabsWithError] = useState([]);
11
10
  const onTabChange = useCallback(
@@ -4,13 +4,14 @@
4
4
  * License, v. 2.0. If a copy of the MPL was not distributed with this
5
5
  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
6
6
  */
7
+ export * from './parameter-layout';
7
8
  export * from './computing-type';
8
9
  export * from './constants';
9
10
  export * from './parameters-edition-dialog-props';
10
11
  export * from './line-separator';
11
12
  export * from './parameters';
12
13
  export * from './parameters-creation-dialog';
13
- export * from './ProviderParam';
14
+ export * from './provider-param';
14
15
  export * from './widget';
15
16
  export * from './voltage-level-table';
16
17
  export * from './limitreductions';
@@ -1,9 +1,11 @@
1
+ import { ParameterLayout } from "./parameter-layout/parameter-layout.js";
2
+ import { ParameterLayoutProvider, useParameterLayoutContext } from "./parameter-layout/parameter-layout-provider.js";
1
3
  import { formatComputingTypeLabel, isValidComputingType } from "./computing-type.js";
2
4
  import { COMMON_PARAMETERS, CONTINGENCIES, CONTINGENCY_LISTS, CONTINGENCY_LISTS_INFOS, PARAM_SA_FLOW_PROPORTIONAL_THRESHOLD, PARAM_SA_HIGH_VOLTAGE_ABSOLUTE_THRESHOLD, PARAM_SA_HIGH_VOLTAGE_PROPORTIONAL_THRESHOLD, PARAM_SA_LOW_VOLTAGE_ABSOLUTE_THRESHOLD, PARAM_SA_LOW_VOLTAGE_PROPORTIONAL_THRESHOLD, PARAM_SA_PROVIDER, PROVIDER, SPECIFIC_PARAMETERS, VERSION_PARAMETER, VOLTAGE_LEVEL } from "./constants.js";
3
5
  import { LineSeparator } from "./line-separator.js";
4
6
  import { LabelledButton, SwitchWithLabel, TabPanel } from "./parameters.js";
5
7
  import { CreateParameterDialog } from "./parameters-creation-dialog.js";
6
- import { ProviderParam } from "./ProviderParam.js";
8
+ import { ProviderParam } from "./provider-param.js";
7
9
  import { ParameterFloat } from "./widget/parameter-float.js";
8
10
  import { ParameterGroup } from "./widget/parameter-group.js";
9
11
  import { ParameterLineDirectoryItemsInput } from "./widget/parameter-line-directory-items-input.js";
@@ -49,6 +51,8 @@ export {
49
51
  PROVIDER,
50
52
  ParameterFloat,
51
53
  ParameterGroup,
54
+ ParameterLayout,
55
+ ParameterLayoutProvider,
52
56
  ParameterLineDirectoryItemsInput,
53
57
  ParameterLineSlider,
54
58
  ParameterSwitch,
@@ -69,6 +73,7 @@ export {
69
73
  sanitizePercentageValue,
70
74
  toFormValuesContingencyListsInfos,
71
75
  toFormValuesLimitReductions,
76
+ useParameterLayoutContext,
72
77
  useParametersForm,
73
78
  useTabs
74
79
  };
@@ -41,6 +41,7 @@ import "mui-nested-menu";
41
41
  import "react-resizable-panels";
42
42
  import "react-papaparse";
43
43
  import { LineSeparator } from "./line-separator.js";
44
+ import "./parameter-layout/parameter-layout-provider.js";
44
45
  import "./widget/parameter-line-slider.js";
45
46
  import "./limitreductions/columns-definitions.js";
46
47
  import "./contingency-table/contingency-table.js";
@@ -96,7 +97,7 @@ function ParameterField({ id, name, type, label, description, possibleValues, sx
96
97
  return null;
97
98
  }
98
99
  };
99
- return /* @__PURE__ */ jsxs(Grid2, { container: true, spacing: 1, paddingTop: 1, justifyContent: "space-between", size: 12, children: [
100
+ return /* @__PURE__ */ jsxs(Grid2, { container: true, spacing: 1, paddingTop: 1, justifyContent: "space-between", sx: { width: "100%" }, children: [
100
101
  /* @__PURE__ */ jsx(Grid2, { size: 8, children: /* @__PURE__ */ jsx(CustomTooltip, { title: description, children: /* @__PURE__ */ jsx(Typography, { sx: parametersStyles.parameterName, children: label ? /* @__PURE__ */ jsx(FormattedMessage, { id: label }) : name }) }, name) }),
101
102
  /* @__PURE__ */ jsx(Grid2, { container: true, size: 4, sx: parametersStyles.controlItem, children: renderField() }),
102
103
  /* @__PURE__ */ jsx(LineSeparator, {})
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Copyright (c) 2025, 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 './parameter-layout';
8
+ export * from './parameter-layout-provider';
@@ -0,0 +1,7 @@
1
+ import { ParameterLayout } from "./parameter-layout.js";
2
+ import { ParameterLayoutProvider, useParameterLayoutContext } from "./parameter-layout-provider.js";
3
+ export {
4
+ ParameterLayout,
5
+ ParameterLayoutProvider,
6
+ useParameterLayoutContext
7
+ };
@@ -0,0 +1,10 @@
1
+ import { ReactNode } from 'react';
2
+ interface ParameterLayoutContextValue {
3
+ isXsScreen: boolean;
4
+ }
5
+ export declare const useParameterLayoutContext: () => ParameterLayoutContextValue;
6
+ export declare function ParameterLayoutProvider({ isXsScreen, children, }: Readonly<{
7
+ isXsScreen: boolean;
8
+ children: ReactNode;
9
+ }>): import("react").JSX.Element;
10
+ export {};
@@ -0,0 +1,15 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { createContext, useMemo, useContext } from "react";
3
+ const ParameterLayoutContext = createContext({ isXsScreen: false });
4
+ const useParameterLayoutContext = () => useContext(ParameterLayoutContext);
5
+ function ParameterLayoutProvider({
6
+ isXsScreen,
7
+ children
8
+ }) {
9
+ const isXsScreenMemo = useMemo(() => ({ isXsScreen }), [isXsScreen]);
10
+ return /* @__PURE__ */ jsx(ParameterLayoutContext.Provider, { value: isXsScreenMemo, children });
11
+ }
12
+ export {
13
+ ParameterLayoutProvider,
14
+ useParameterLayoutContext
15
+ };
@@ -0,0 +1,23 @@
1
+ import { MouseEventHandler, ReactNode } from 'react';
2
+ import { UUID } from 'node:crypto';
3
+ import { FieldValues, UseFormGetValues } from 'react-hook-form';
4
+ import { TreeViewFinderNodeProps } from '../../../../components/ui';
5
+ import { ElementType } from '../../../../utils';
6
+ export type CreateParameterDialogConfig<T extends FieldValues> = {
7
+ studyUuid: UUID | null;
8
+ getParameterValues: UseFormGetValues<T>;
9
+ parameterFormatter: (params: FieldValues) => any;
10
+ };
11
+ interface ParameterLayoutProps<T extends FieldValues> {
12
+ children: ReactNode;
13
+ title?: string;
14
+ isLoading?: boolean;
15
+ parameterType: ElementType;
16
+ createParameter?: CreateParameterDialogConfig<T>;
17
+ selectParameterHandler?: (nodes: TreeViewFinderNodeProps[]) => void;
18
+ resetHandler?: () => void;
19
+ validateHandler?: MouseEventHandler<HTMLButtonElement>;
20
+ validateDisabled?: boolean;
21
+ }
22
+ export declare function ParameterLayout<T extends FieldValues>({ children, title, isLoading, createParameter, resetHandler, validateHandler, validateDisabled, selectParameterHandler, parameterType, }: Readonly<ParameterLayoutProps<T>>): import("react").JSX.Element;
23
+ export {};
@@ -0,0 +1,167 @@
1
+ import { jsxs, jsx } from "react/jsx-runtime";
2
+ import { Stack, Box, Grid2, ButtonGroup, Tooltip, LinearProgress } from "@mui/material";
3
+ import { Upload, RestartAlt } from "@mui/icons-material";
4
+ import { useState, useCallback } from "react";
5
+ import { useIntl, FormattedMessage } from "react-intl";
6
+ import { LabelledButton } from "../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";
11
+ import "localized-countries";
12
+ import "localized-countries/data/fr";
13
+ import "localized-countries/data/en";
14
+ import "notistack";
15
+ import "../../../../components/ui/reactHookForm/provider/CustomFormProvider.js";
16
+ import { SubmitButton } from "../../../../components/ui/reactHookForm/utils/SubmitButton.js";
17
+ import "yup";
18
+ import { DirectoryItemSelector } from "../../../../components/ui/directoryItemSelector/DirectoryItemSelector.js";
19
+ import "../../../../components/ui/reactHookForm/numbers/RangeInput.js";
20
+ import { PopupConfirmationDialog } from "../../../../components/ui/dialogs/popupConfirmationDialog/PopupConfirmationDialog.js";
21
+ import "@material-symbols/svg-400/outlined/left_panel_open.svg?react";
22
+ import "@material-symbols/svg-400/outlined/arrows_output.svg?react";
23
+ import "@material-symbols/svg-400/outlined/arrows_input.svg?react";
24
+ import "@material-symbols/svg-400/outlined/left_panel_close.svg?react";
25
+ import "@material-symbols/svg-400/outlined/add_notes.svg?react";
26
+ import "../../../../components/ui/dialogs/descriptionModificationDialog/DescriptionModificationDialog.js";
27
+ import "../../../../components/ui/reactHookForm/expandableInput/ExpandableInput.js";
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";
31
+ import "../../../../components/ui/snackbarProvider/SnackbarProvider.js";
32
+ import "mui-nested-menu";
33
+ import "react-resizable-panels";
34
+ import "react-papaparse";
35
+ import "../../../../components/ui/treeViewFinder/TreeViewFinder.js";
36
+ import { CreateParameterDialog } from "../parameters-creation-dialog.js";
37
+ import { LineSeparator } from "../line-separator.js";
38
+ import { useParameterLayoutContext } from "./parameter-layout-provider.js";
39
+ const styles = {
40
+ stack: {
41
+ height: "100%"
42
+ },
43
+ title: {
44
+ paddingBottom: 0
45
+ },
46
+ content: {
47
+ flexGrow: 1,
48
+ overflowY: "auto",
49
+ overflowX: "hidden"
50
+ }
51
+ };
52
+ function ParameterLayout({
53
+ children,
54
+ title,
55
+ isLoading,
56
+ createParameter,
57
+ resetHandler,
58
+ validateHandler,
59
+ validateDisabled,
60
+ selectParameterHandler,
61
+ parameterType
62
+ }) {
63
+ const { isXsScreen } = useParameterLayoutContext();
64
+ const [openCreateParameterDialog, setOpenCreateParameterDialog] = useState(false);
65
+ const [openSelectParameterDialog, setOpenSelectParameterDialog] = useState(false);
66
+ const [openResetConfirmation, setOpenResetConfirmation] = useState(false);
67
+ const handlePrefillClick = useCallback(() => {
68
+ setOpenSelectParameterDialog(true);
69
+ }, []);
70
+ const handleSaveClick = useCallback(() => {
71
+ setOpenCreateParameterDialog(true);
72
+ }, []);
73
+ const handleResetClick = useCallback(() => {
74
+ setOpenResetConfirmation(true);
75
+ }, []);
76
+ const handleCancelReset = useCallback(() => {
77
+ setOpenResetConfirmation(false);
78
+ }, []);
79
+ const intl = useIntl();
80
+ return /* @__PURE__ */ jsxs(Stack, { sx: styles.stack, children: [
81
+ (title || selectParameterHandler || resetHandler) && /* @__PURE__ */ jsx(Box, { sx: styles.title, children: /* @__PURE__ */ jsxs(Grid2, { container: true, sx: { alignItems: "center", justifyContent: "space-between" }, children: [
82
+ /* @__PURE__ */ jsx(Grid2, { size: 4, children: title && !isXsScreen && /* @__PURE__ */ jsx(FormattedMessage, { id: title }) }),
83
+ /* @__PURE__ */ jsx(Grid2, { size: "auto", children: /* @__PURE__ */ jsxs(ButtonGroup, { children: [
84
+ selectParameterHandler && /* @__PURE__ */ jsx(
85
+ LabelledButton,
86
+ {
87
+ callback: handlePrefillClick,
88
+ label: "button.prefill",
89
+ "data-testid": "PrefillButton",
90
+ startIcon: /* @__PURE__ */ jsx(Upload, {})
91
+ }
92
+ ),
93
+ resetHandler && /* @__PURE__ */ jsx(Tooltip, { title: /* @__PURE__ */ jsx(FormattedMessage, { id: "tooltip.reset" }), children: /* @__PURE__ */ jsx(
94
+ LabelledButton,
95
+ {
96
+ callback: handleResetClick,
97
+ label: "button.reset",
98
+ "data-testid": "ResetButton",
99
+ startIcon: /* @__PURE__ */ jsx(RestartAlt, {})
100
+ }
101
+ ) })
102
+ ] }) })
103
+ ] }) }),
104
+ /* @__PURE__ */ jsx(Box, { sx: styles.content, children: isLoading ? /* @__PURE__ */ jsx(LinearProgress, {}) : children }),
105
+ /* @__PURE__ */ jsxs(Stack, { spacing: 1, children: [
106
+ /* @__PURE__ */ jsx(LineSeparator, {}),
107
+ /* @__PURE__ */ jsxs(Grid2, { container: true, spacing: 1, children: [
108
+ createParameter && /* @__PURE__ */ jsx(Grid2, { children: /* @__PURE__ */ jsx(LabelledButton, { label: "save", "data-testid": "SaveButton", callback: handleSaveClick }) }),
109
+ validateHandler && /* @__PURE__ */ jsx(Grid2, { children: /* @__PURE__ */ jsx(
110
+ SubmitButton,
111
+ {
112
+ variant: "contained",
113
+ "data-testid": "ValidateButton",
114
+ onClick: validateHandler,
115
+ disabled: validateDisabled
116
+ }
117
+ ) })
118
+ ] })
119
+ ] }),
120
+ openCreateParameterDialog && createParameter && /* @__PURE__ */ jsx(
121
+ CreateParameterDialog,
122
+ {
123
+ studyUuid: createParameter?.studyUuid,
124
+ open: openCreateParameterDialog,
125
+ onClose: () => setOpenCreateParameterDialog(false),
126
+ parameterValues: createParameter?.getParameterValues,
127
+ parameterFormatter: createParameter?.parameterFormatter,
128
+ parameterType
129
+ }
130
+ ),
131
+ openSelectParameterDialog && selectParameterHandler && /* @__PURE__ */ jsx(
132
+ DirectoryItemSelector,
133
+ {
134
+ open: openSelectParameterDialog,
135
+ onClose: (nodes) => {
136
+ setOpenSelectParameterDialog(false);
137
+ selectParameterHandler(nodes);
138
+ },
139
+ types: [parameterType],
140
+ title: intl.formatMessage({
141
+ id: "showSelectParameterDialog"
142
+ }),
143
+ onlyLeaves: true,
144
+ multiSelect: false,
145
+ validationButtonText: intl.formatMessage({
146
+ id: "validate"
147
+ })
148
+ }
149
+ ),
150
+ openResetConfirmation && resetHandler && /* @__PURE__ */ jsx(
151
+ PopupConfirmationDialog,
152
+ {
153
+ message: "resetParamsConfirmation",
154
+ validateButtonLabel: "validate",
155
+ openConfirmationPopup: openResetConfirmation,
156
+ setOpenConfirmationPopup: handleCancelReset,
157
+ handlePopupConfirmation: () => {
158
+ resetHandler();
159
+ setOpenResetConfirmation(false);
160
+ }
161
+ }
162
+ )
163
+ ] });
164
+ }
165
+ export {
166
+ ParameterLayout
167
+ };
@@ -0,0 +1,10 @@
1
+ import { SxProps } from '@mui/material';
2
+ export interface ProviderParamProps {
3
+ options: {
4
+ id: string;
5
+ label: string;
6
+ }[];
7
+ id?: string;
8
+ sx?: SxProps;
9
+ }
10
+ export declare function ProviderParam({ options, id, sx }: Readonly<ProviderParamProps>): import("react").JSX.Element;
@@ -1,4 +1,4 @@
1
- import { jsxs, Fragment, jsx } from "react/jsx-runtime";
1
+ import { jsxs, jsx } from "react/jsx-runtime";
2
2
  import { Grid2 } from "@mui/material";
3
3
  import { FormattedMessage } from "react-intl";
4
4
  import { LineSeparator } from "./line-separator.js";
@@ -7,6 +7,7 @@ import "@mui/icons-material";
7
7
  import "../../../components/ui/overflowableText/OverflowableText.js";
8
8
  import "../../../utils/conversionUtils.js";
9
9
  import "../../../utils/types/equipmentType.js";
10
+ import { mergeSx } from "../../../utils/styles.js";
10
11
  import "react";
11
12
  import "react-hook-form";
12
13
  import "localized-countries";
@@ -35,17 +36,14 @@ import "react-papaparse";
35
36
  import { PROVIDER } from "./constants.js";
36
37
  const styles = {
37
38
  providerParam: {
38
- height: "fit-content",
39
- justifyContent: "space-between"
39
+ padding: 0
40
40
  }
41
41
  };
42
- function ProviderParam({ options }) {
43
- return /* @__PURE__ */ jsxs(Fragment, { children: [
44
- /* @__PURE__ */ jsxs(Grid2, { container: true, sx: styles.providerParam, paddingRight: 1, size: 12, children: [
45
- /* @__PURE__ */ jsx(Grid2, { size: "grow", sx: parametersStyles.parameterName, children: /* @__PURE__ */ jsx(FormattedMessage, { id: "Provider" }) }),
46
- /* @__PURE__ */ jsx(Grid2, { container: true, size: 2, children: /* @__PURE__ */ jsx(MuiSelectInput, { name: PROVIDER, size: "small", fullWidth: true, options }) })
47
- ] }),
48
- /* @__PURE__ */ jsx(Grid2, { container: true, paddingTop: 1, paddingRight: 1, size: 12, children: /* @__PURE__ */ jsx(LineSeparator, {}) })
42
+ function ProviderParam({ options, id, sx }) {
43
+ return /* @__PURE__ */ jsxs(Grid2, { container: true, spacing: 1, sx: mergeSx(styles.providerParam, sx), justifyContent: "space-between", children: [
44
+ /* @__PURE__ */ jsx(Grid2, { size: "auto", sx: mergeSx(parametersStyles.parameterName, { paddingRight: 2 }), children: /* @__PURE__ */ jsx(FormattedMessage, { id: "Provider" }) }),
45
+ /* @__PURE__ */ jsx(Grid2, { size: "auto", sx: parametersStyles.controlItem, children: /* @__PURE__ */ jsx(MuiSelectInput, { name: PROVIDER, size: "small", options, "data-testid": `${id}Provider` }) }),
46
+ /* @__PURE__ */ jsx(LineSeparator, {})
49
47
  ] });
50
48
  }
51
49
  export {
@@ -40,7 +40,7 @@ function ParameterFloat({
40
40
  labelSize,
41
41
  inputSize
42
42
  }) {
43
- const content = /* @__PURE__ */ jsxs(Grid2, { container: true, direction: "row", spacing: 1, paddingTop: 3, size: 12, children: [
43
+ const content = /* @__PURE__ */ jsxs(Grid2, { container: true, direction: "row", spacing: 1, paddingTop: 3, sx: { width: "100%" }, children: [
44
44
  /* @__PURE__ */ jsx(Grid2, { size: labelSize, sx: style, children: /* @__PURE__ */ jsx(FormattedMessage, { id: label }) }),
45
45
  /* @__PURE__ */ jsx(Grid2, { size: inputSize, children: /* @__PURE__ */ jsx(FloatInput, { name, adornment }) })
46
46
  ] });
@@ -39,7 +39,7 @@ function ParameterLineDirectoryItemsInput({
39
39
  hideErrorMessage,
40
40
  allowMultiSelect = true
41
41
  }) {
42
- return /* @__PURE__ */ jsxs(Grid2, { container: true, spacing: 1, paddingTop: 1, paddingBottom: 1, size: 12, children: [
42
+ return /* @__PURE__ */ jsxs(Grid2, { container: true, spacing: 1, paddingTop: 1, paddingBottom: 1, sx: { width: "100%" }, children: [
43
43
  /* @__PURE__ */ jsx(Grid2, { size: 7, sx: parametersStyles.parameterName, children: /* @__PURE__ */ jsx(FormattedMessage, { id: label }) }),
44
44
  /* @__PURE__ */ jsx(Grid2, { size: 5, sx: parametersStyles.controlItem, children: /* @__PURE__ */ jsx(
45
45
  DirectoryItemsInput,