@gridsuite/commons-ui 0.295.0 → 0.297.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 (93) hide show
  1. package/dist/components/composite/agGridTable/BottomTableButtons.js +56 -44
  2. package/dist/components/composite/customAGGrid/custom-aggrid-filters/custom-aggrid-comparator-filter.js +32 -23
  3. package/dist/components/composite/customAGGrid/custom-aggrid-filters/custom-aggrid-text-filter.js +31 -23
  4. package/dist/components/composite/customAGGrid/custom-aggrid-header.js +67 -43
  5. package/dist/components/composite/elementSearch/elementSearchInput/ElementSearchInput.d.ts +3 -2
  6. package/dist/components/composite/filter/explicitNaming/ExplicitNamingFilterForm.js +43 -28
  7. package/dist/components/composite/reactQueryBuilder/CustomReactQueryBuilder.js +4 -7
  8. package/dist/components/composite/reactQueryBuilder/FieldSelector.js +5 -3
  9. package/dist/components/composite/reactQueryBuilder/PropertyValueEditor.js +63 -52
  10. package/dist/components/composite/reactQueryBuilder/compositeRuleEditor/GroupValueEditor.js +22 -9
  11. package/dist/components/composite/reactQueryBuilder/compositeRuleEditor/RuleValueEditor.js +59 -24
  12. package/dist/components/ui/csvPicker/csv-picker.js +24 -12
  13. package/dist/components/ui/dialogs/descriptionModificationDialog/DescriptionModificationDialog.js +15 -7
  14. package/dist/components/ui/dialogs/elementSaveDialog/ElementSaveDialog.js +82 -39
  15. package/dist/components/ui/dialogs/modifyElementSelection/ModifyElementSelection.js +29 -9
  16. package/dist/components/ui/dialogs/name-element-editor/name-element-editor-form.js +24 -15
  17. package/dist/components/ui/inputs/ActivableChip.js +2 -2
  18. package/dist/components/ui/inputs/SelectClearable.js +4 -3
  19. package/dist/components/ui/reactHookForm/DirectoryItemsInput.js +1 -1
  20. package/dist/components/ui/reactHookForm/OverflowableChip.js +24 -13
  21. package/dist/components/ui/reactHookForm/OverflowableChipWithHelperText.js +9 -4
  22. package/dist/components/ui/reactHookForm/autocompleteInputs/AutocompleteInput.js +11 -5
  23. package/dist/components/ui/reactHookForm/directory-item-input/directory-item-input.js +13 -3
  24. package/dist/components/ui/reactHookForm/expandableInput/DeletableRow.js +3 -1
  25. package/dist/components/ui/reactHookForm/utils/HelperPreviousValue.js +11 -1
  26. package/dist/features/authentication/AuthenticationRouter.js +62 -53
  27. package/dist/features/authentication/Login.js +15 -7
  28. package/dist/features/authentication/Logout.js +9 -1
  29. package/dist/features/cardErrorBoundary/CardErrorBoundary.js +28 -10
  30. package/dist/features/global-filter/ui/global-filter-panel.js +4 -10
  31. package/dist/features/network-modifications/battery/creation/BatteryCreationForm.js +22 -12
  32. package/dist/features/network-modifications/battery/modification/BatteryDialogTabsContent.js +21 -11
  33. package/dist/features/network-modifications/by-filter/deletion/ByFilterDeletionForm.js +35 -25
  34. package/dist/features/network-modifications/common/currentLimits/LimitsPane.js +28 -16
  35. package/dist/features/network-modifications/common/currentLimits/limitsEditor/LimitsEditor.js +16 -4
  36. package/dist/features/network-modifications/common/currentLimits/limitsEditor/LimitsPropertiesSideStack.js +81 -68
  37. package/dist/features/network-modifications/common/measurements/BusbarSectionVoltageMeasurementsForm.js +31 -21
  38. package/dist/features/network-modifications/common/reactiveLimits/reactiveCapabilityCurve/ReactiveCapabilityCurveTableForm.js +32 -21
  39. package/dist/features/network-modifications/common/regulatingTerminal/RegulatingTerminalForm.d.ts +1 -1
  40. package/dist/features/network-modifications/common/regulatingTerminal/RegulatingTerminalForm.js +1 -1
  41. package/dist/features/network-modifications/equipmentDeletion/hvdcLccDeletion/ShuntCompensatorSelectionForm.js +20 -9
  42. package/dist/features/network-modifications/generator/creation/GeneratorCreationForm.js +22 -12
  43. package/dist/features/network-modifications/generator/modification/GeneratorDialogTabsContent.js +28 -18
  44. package/dist/features/network-modifications/hvdcLine/vsc/common/converterStation/VscConverterStationPane.js +15 -4
  45. package/dist/features/network-modifications/hvdcLine/vsc/creation/vscHvdcLineCreation.utils.js +2 -2
  46. package/dist/features/network-modifications/hvdcLine/vsc/modification/vscHvdcLineModification.utils.js +7 -4
  47. package/dist/features/network-modifications/static-var-compensator/common/set-points-limits-form.js +70 -40
  48. package/dist/features/network-modifications/static-var-compensator/common/standby-automaton-form.js +35 -6
  49. package/dist/features/network-modifications/static-var-compensator/common/static-var-compensator-tabs-content.js +16 -7
  50. package/dist/features/network-modifications/tabular/TabularForm.js +102 -72
  51. package/dist/features/network-modifications/voltageLevel/creation/tabs/structureTab/switchesBetweenSections/SwitchesBetweenSections.js +20 -10
  52. package/dist/features/network-modifications/voltageLevel/creation/tabs/substationTab/SubstationTab.js +35 -17
  53. package/dist/features/network-modifications/voltageLevel/moveFeederBays/MoveVoltageLevelFeederBaysForm.js +9 -1
  54. package/dist/features/network-modifications/voltageLevel/moveFeederBays/feederBay/FeederBayPositionCellRender.js +6 -4
  55. package/dist/features/network-modifications/voltageLevel/section/VoltageLevelSectionCreationForm.js +17 -7
  56. package/dist/features/network-modifications/voltageLevel/topology/creation/CreateVoltageLevelTopologyForm.js +23 -13
  57. package/dist/features/network-modifications/voltageLevel/topology/modification/VoltageLevelTopologyModificationForm.js +25 -15
  58. package/dist/features/parameters/common/parameter-field.js +17 -4
  59. package/dist/features/parameters/common/parameter-table-field/parameter-table-field.js +23 -12
  60. package/dist/features/parameters/common/provider-param.js +1 -1
  61. package/dist/features/parameters/common/widget/parameter-float.js +16 -4
  62. package/dist/features/parameters/common/widget/parameter-line-directory-items-input.js +1 -1
  63. package/dist/features/parameters/common/widget/parameter-switch.js +13 -1
  64. package/dist/features/parameters/dynamic-simulation/curve/common/checkbox-select.js +6 -4
  65. package/dist/features/parameters/dynamic-simulation/curve/dialog/curve-selector-dialog.js +43 -32
  66. package/dist/features/parameters/dynamic-simulation/curve/dialog/curve-selector.js +47 -25
  67. package/dist/features/parameters/network-visualizations/map-parameters.js +7 -3
  68. package/dist/features/parameters/network-visualizations/network-area-diagram-parameters.js +7 -3
  69. package/dist/features/parameters/network-visualizations/single-line-diagram-parameters.js +7 -3
  70. package/dist/features/parameters/security-analysis/security-analysis-violations-hiding.js +23 -13
  71. package/dist/features/parameters/sensi/sensitivity-analysis-parameters-factor-count.js +2 -2
  72. package/dist/features/parameters/sensi/sensitivity-analysis-parameters-form.js +12 -1
  73. package/dist/features/parameters/sensi/sensitivity-parameters-fields.js +36 -26
  74. package/dist/features/parameters/short-circuit/short-circuit-general-tab-panel.js +67 -26
  75. package/dist/features/parameters/short-circuit/short-circuit-power-electronics-tab-panel.js +15 -4
  76. package/dist/features/parameters/voltage-init/equipment-selection-parameters.js +51 -15
  77. package/dist/features/parameters/voltage-init/general-parameters.js +9 -1
  78. package/dist/features/process-configs/common/FormSubSection.js +2 -2
  79. package/dist/features/process-configs/common/GeneralInformationSection.js +1 -1
  80. package/dist/features/process-configs/common/SpecificInformationSection.js +12 -4
  81. package/dist/features/process-configs/common/process-config-modifications-edition.js +3 -3
  82. package/dist/features/process-configs/form/components/ProcessTypeChangeDialog.js +5 -2
  83. package/dist/features/side-bar/AppSideBarHeader.js +36 -16
  84. package/dist/features/side-bar/footer/AppSideBarFooter.js +46 -38
  85. package/dist/features/side-bar/footer/applications/OtherAppRedirection.js +10 -8
  86. package/dist/features/side-bar/footer/common/SideBarMenuItem.js +9 -1
  87. package/dist/features/side-bar/footer/profile/ProfileInfos.js +15 -6
  88. package/dist/features/side-bar/footer/settings/DarkModeToggle.js +16 -4
  89. package/dist/features/side-bar/footer/settings/SettingsMenu.js +16 -6
  90. package/dist/features/topBar/AboutDialog.js +46 -17
  91. package/dist/features/topBar/TopBar.js +2 -2
  92. package/dist/features/topBar/UserInformationDialog.js +198 -45
  93. package/package.json +16 -11
@@ -61,13 +61,25 @@ function EquipmentSelectionParameters() {
61
61
  /* @__PURE__ */ jsx("br", {}),
62
62
  /* @__PURE__ */ jsx(FormattedMessage, { id: "VoltageInitParametersBatteriesAlert" })
63
63
  ] }),
64
- /* @__PURE__ */ jsx(Grid, { container: true, justifyContent: "flex-end", sx: equipmentsSelectionStyles.choiceContainer, children: /* @__PURE__ */ jsx(Grid, { size: 5, sx: equipmentsSelectionStyles.choice, children: /* @__PURE__ */ jsx(
65
- RadioInput,
64
+ /* @__PURE__ */ jsx(
65
+ Grid,
66
66
  {
67
- name: GENERATORS_SELECTION_TYPE,
68
- options: Object.values(initialEquipmentsSelectionType)
67
+ container: true,
68
+ sx: [
69
+ {
70
+ justifyContent: "flex-end"
71
+ },
72
+ equipmentsSelectionStyles.choiceContainer
73
+ ],
74
+ children: /* @__PURE__ */ jsx(Grid, { size: 5, sx: equipmentsSelectionStyles.choice, children: /* @__PURE__ */ jsx(
75
+ RadioInput,
76
+ {
77
+ name: GENERATORS_SELECTION_TYPE,
78
+ options: Object.values(initialEquipmentsSelectionType)
79
+ }
80
+ ) })
69
81
  }
70
- ) }) }),
82
+ ),
71
83
  /* @__PURE__ */ jsx(
72
84
  ParameterLineDirectoryItemsInput,
73
85
  {
@@ -78,13 +90,25 @@ function EquipmentSelectionParameters() {
78
90
  hideErrorMessage: true
79
91
  }
80
92
  ),
81
- /* @__PURE__ */ jsx(Grid, { container: true, justifyContent: "flex-end", sx: equipmentsSelectionStyles.choiceContainer, children: /* @__PURE__ */ jsx(Grid, { size: 5, sx: equipmentsSelectionStyles.choice, children: /* @__PURE__ */ jsx(
82
- RadioInput,
93
+ /* @__PURE__ */ jsx(
94
+ Grid,
83
95
  {
84
- name: TRANSFORMERS_SELECTION_TYPE,
85
- options: Object.values(initialEquipmentsSelectionType)
96
+ container: true,
97
+ sx: [
98
+ {
99
+ justifyContent: "flex-end"
100
+ },
101
+ equipmentsSelectionStyles.choiceContainer
102
+ ],
103
+ children: /* @__PURE__ */ jsx(Grid, { size: 5, sx: equipmentsSelectionStyles.choice, children: /* @__PURE__ */ jsx(
104
+ RadioInput,
105
+ {
106
+ name: TRANSFORMERS_SELECTION_TYPE,
107
+ options: Object.values(initialEquipmentsSelectionType)
108
+ }
109
+ ) })
86
110
  }
87
- ) }) }),
111
+ ),
88
112
  /* @__PURE__ */ jsx(
89
113
  ParameterLineDirectoryItemsInput,
90
114
  {
@@ -95,13 +119,25 @@ function EquipmentSelectionParameters() {
95
119
  hideErrorMessage: true
96
120
  }
97
121
  ),
98
- /* @__PURE__ */ jsx(Grid, { container: true, justifyContent: "flex-end", sx: equipmentsSelectionStyles.choiceContainer, children: /* @__PURE__ */ jsx(Grid, { size: 5, sx: equipmentsSelectionStyles.choice, children: /* @__PURE__ */ jsx(
99
- RadioInput,
122
+ /* @__PURE__ */ jsx(
123
+ Grid,
100
124
  {
101
- name: SHUNT_COMPENSATORS_SELECTION_TYPE,
102
- options: Object.values(initialEquipmentsSelectionType)
125
+ container: true,
126
+ sx: [
127
+ {
128
+ justifyContent: "flex-end"
129
+ },
130
+ equipmentsSelectionStyles.choiceContainer
131
+ ],
132
+ children: /* @__PURE__ */ jsx(Grid, { size: 5, sx: equipmentsSelectionStyles.choice, children: /* @__PURE__ */ jsx(
133
+ RadioInput,
134
+ {
135
+ name: SHUNT_COMPENSATORS_SELECTION_TYPE,
136
+ options: Object.values(initialEquipmentsSelectionType)
137
+ }
138
+ ) })
103
139
  }
104
- ) }) }),
140
+ ),
105
141
  /* @__PURE__ */ jsx(
106
142
  ParameterLineDirectoryItemsInput,
107
143
  {
@@ -68,7 +68,15 @@ function GeneralParameters({ withApplyModifications }) {
68
68
  onChange: setApplyModificationsValue
69
69
  }
70
70
  ),
71
- /* @__PURE__ */ jsx(Box, { my: 2, children: /* @__PURE__ */ jsx(LineSeparator, {}) })
71
+ /* @__PURE__ */ jsx(
72
+ Box,
73
+ {
74
+ sx: {
75
+ my: 2
76
+ },
77
+ children: /* @__PURE__ */ jsx(LineSeparator, {})
78
+ }
79
+ )
72
80
  ] }),
73
81
  /* @__PURE__ */ jsx(
74
82
  ParameterSwitch,
@@ -1,8 +1,8 @@
1
1
  import { jsxs, jsx } from "react/jsx-runtime";
2
2
  import { Stack, Typography } from "@mui/material";
3
3
  function FormSubSection({ children, id, title }) {
4
- return /* @__PURE__ */ jsxs(Stack, { spacing: 1.5, component: "section", "aria-labelledby": id, children: [
5
- /* @__PURE__ */ jsx(Typography, { id, variant: "subtitle1", fontWeight: 600, children: title }),
4
+ return /* @__PURE__ */ jsxs(Stack, { component: "section", "aria-labelledby": id, children: [
5
+ /* @__PURE__ */ jsx(Typography, { sx: { paddingBottom: 1, fontWeight: 600 }, id, variant: "subtitle1", children: title }),
6
6
  children
7
7
  ] });
8
8
  }
@@ -84,7 +84,7 @@ function GeneralInformationSection({
84
84
  )
85
85
  ] }),
86
86
  withFolderField && /* @__PURE__ */ jsxs(Grid, { size: { xs: 12, sm: 12 }, children: [
87
- /* @__PURE__ */ jsx(Typography, { variant: "subtitle1", children: /* @__PURE__ */ jsx(FormattedMessage, { id: "processConfigSaveDirectory" }) }),
87
+ /* @__PURE__ */ jsx(Typography, { variant: "subtitle1", sx: { fontWeight: 600, paddingBottom: 0.5 }, children: /* @__PURE__ */ jsx(FormattedMessage, { id: "processConfigSaveDirectory" }) }),
88
88
  /* @__PURE__ */ jsx(
89
89
  DirectoryItemInput,
90
90
  {
@@ -9,10 +9,18 @@ function SpecificInformationSection({ control, onPrefill }) {
9
9
  FormSection,
10
10
  {
11
11
  id: "specific-information-heading",
12
- title: /* @__PURE__ */ jsxs(Stack, { component: "span", direction: "row", alignItems: "center", justifyContent: "space-between", width: "100%", children: [
13
- /* @__PURE__ */ jsx(FormattedMessage, { id: "processConfigSpecificInformation" }),
14
- onPrefill && /* @__PURE__ */ jsx(Button, { variant: "outlined", sx: { textTransform: "none" }, onClick: onPrefill, children: /* @__PURE__ */ jsx(FormattedMessage, { id: "processConfigPrefill" }) })
15
- ] }),
12
+ title: /* @__PURE__ */ jsxs(
13
+ Stack,
14
+ {
15
+ component: "span",
16
+ direction: "row",
17
+ sx: { alignItems: "center", justifyContent: "space-between", width: "100%" },
18
+ children: [
19
+ /* @__PURE__ */ jsx(FormattedMessage, { id: "processConfigSpecificInformation" }),
20
+ onPrefill && /* @__PURE__ */ jsx(Button, { variant: "outlined", sx: { textTransform: "none" }, onClick: onPrefill, children: /* @__PURE__ */ jsx(FormattedMessage, { id: "processConfigPrefill" }) })
21
+ ]
22
+ }
23
+ ),
16
24
  children: [
17
25
  /* @__PURE__ */ jsx(ModificationsSubSection, {}),
18
26
  /* @__PURE__ */ jsx(ProvidersParametersSubSection, { control })
@@ -2,7 +2,7 @@ import { jsx } from "react/jsx-runtime";
2
2
  import { useFieldArray } from "react-hook-form";
3
3
  import { useCallback, useMemo } from "react";
4
4
  import { useIntl } from "react-intl";
5
- import "@mui/material";
5
+ import { Box } from "@mui/material";
6
6
  import "@mui/icons-material";
7
7
  import "../../../components/ui/overflowableText/OverflowableText.js";
8
8
  import "../../../utils/conversionUtils.js";
@@ -105,7 +105,7 @@ function ProcessConfigModificationsEdition({ name }) {
105
105
  () => [{ ...getDefaultRowData(columnsDefinition), modification: [] }],
106
106
  [columnsDefinition]
107
107
  );
108
- return /* @__PURE__ */ jsx(
108
+ return /* @__PURE__ */ jsx(Box, { sx: { paddingTop: 1 }, children: /* @__PURE__ */ jsx(
109
109
  DndTable,
110
110
  {
111
111
  name,
@@ -114,7 +114,7 @@ function ProcessConfigModificationsEdition({ name }) {
114
114
  columnsDefinition,
115
115
  withAddRowsDialog: false
116
116
  }
117
- );
117
+ ) });
118
118
  }
119
119
  export {
120
120
  ProcessConfigModificationsEdition
@@ -6,8 +6,11 @@ function ProcessTypeChangeDialog({ open, onCancel, onConfirm }) {
6
6
  Dialog,
7
7
  {
8
8
  open,
9
- onClose: onCancel,
10
- disableEscapeKeyDown: true,
9
+ onClose: (_, reason) => {
10
+ if (reason !== "escapeKeyDown") {
11
+ onCancel();
12
+ }
13
+ },
11
14
  maxWidth: "xs",
12
15
  slotProps: { paper: { sx: { minWidth: 320 } } },
13
16
  "aria-labelledby": "process-type-change-warning-title",
@@ -29,27 +29,47 @@ function AppSideBarHeader({
29
29
  },
30
30
  spacing: 1,
31
31
  children: [
32
- /* @__PURE__ */ jsxs(Stack, { direction: "row", alignItems: "center", justifyContent: isMinimized ? "center" : "flex-start", children: [
33
- /* @__PURE__ */ jsxs(Box, { sx: { position: "relative", display: "inline-block" }, children: [
34
- appLogo,
35
- isMinimized && /* @__PURE__ */ jsx(EnvironmentChip, { environment, variant: "minimized" })
36
- ] }),
37
- !isMinimized && /* @__PURE__ */ jsxs(Box, { sx: { position: "relative", display: "inline-block" }, children: [
38
- /* @__PURE__ */ jsxs(Typography, { fontSize: 18, children: [
39
- /* @__PURE__ */ jsx(Box, { component: "span", style: { fontWeight: "bold" }, children: "Grid" }),
40
- /* @__PURE__ */ jsx(Box, { component: "span", sx: { color: appNameColor }, children: appName })
41
- ] }),
42
- /* @__PURE__ */ jsx(EnvironmentChip, { environment, variant: "expanded" })
43
- ] })
44
- ] }),
32
+ /* @__PURE__ */ jsxs(
33
+ Stack,
34
+ {
35
+ direction: "row",
36
+ sx: {
37
+ alignItems: "center",
38
+ justifyContent: isMinimized ? "center" : "flex-start"
39
+ },
40
+ children: [
41
+ /* @__PURE__ */ jsxs(Box, { sx: { position: "relative", display: "inline-block" }, children: [
42
+ appLogo,
43
+ isMinimized && /* @__PURE__ */ jsx(EnvironmentChip, { environment, variant: "minimized" })
44
+ ] }),
45
+ !isMinimized && /* @__PURE__ */ jsxs(Box, { sx: { position: "relative", display: "inline-block" }, children: [
46
+ /* @__PURE__ */ jsxs(
47
+ Typography,
48
+ {
49
+ sx: {
50
+ fontSize: 18
51
+ },
52
+ children: [
53
+ /* @__PURE__ */ jsx(Box, { component: "span", style: { fontWeight: "bold" }, children: "Grid" }),
54
+ /* @__PURE__ */ jsx(Box, { component: "span", sx: { color: appNameColor }, children: appName })
55
+ ]
56
+ }
57
+ ),
58
+ /* @__PURE__ */ jsx(EnvironmentChip, { environment, variant: "expanded" })
59
+ ] })
60
+ ]
61
+ }
62
+ ),
45
63
  /* @__PURE__ */ jsx(
46
64
  Stack,
47
65
  {
48
66
  direction: "row",
49
- visibility: isLoggedIn ? "inherit" : "hidden",
50
- alignItems: "center",
51
- justifyContent: isMinimized ? "center" : "end",
52
67
  spacing: 1,
68
+ sx: {
69
+ visibility: isLoggedIn ? "inherit" : "hidden",
70
+ alignItems: "center",
71
+ justifyContent: isMinimized ? "center" : "end"
72
+ },
53
73
  children: /* @__PURE__ */ jsxs(Fragment, { children: [
54
74
  !isMinimized && /* @__PURE__ */ jsxs(Typography, { variant: "caption", children: [
55
75
  "V",
@@ -18,44 +18,52 @@ function AppSideBarFooter({
18
18
  onLogoutClick
19
19
  }) {
20
20
  const isUserLoggedIn = !!userProfile;
21
- return /* @__PURE__ */ jsx(Stack, { p: 1, children: /* @__PURE__ */ jsxs(MenuList, { disablePadding: true, children: [
22
- isUserLoggedIn && /* @__PURE__ */ jsxs(Fragment, { children: [
23
- /* @__PURE__ */ jsx(ApplicationMenu, { isMinimized, appsAndUrls }),
24
- /* @__PURE__ */ jsx(ProfileMenu, { isMinimized, userProfile }),
25
- /* @__PURE__ */ jsx(
26
- SettingsMenu,
27
- {
28
- isMinimized,
29
- currentTheme,
30
- setTheme,
31
- selectedLanguage,
32
- setSelectedLanguage
33
- }
34
- ),
35
- /* @__PURE__ */ jsx(
36
- SideBarMenuItem,
37
- {
38
- tooltip: isMinimized ? "top-bar/logout" : void 0,
39
- label: "top-bar/logout",
40
- icon: /* @__PURE__ */ jsx(Logout, {}),
41
- onClick: onLogoutClick,
42
- showLabel: !isMinimized
43
- }
44
- )
45
- ] }),
46
- /* @__PURE__ */ jsx(Divider, {}),
47
- /* @__PURE__ */ jsx(
48
- SideBarMenuItem,
49
- {
50
- tooltip: isMinimized ? "top-bar/expand" : void 0,
51
- label: "top-bar/minimize",
52
- icon: isMinimized ? /* @__PURE__ */ jsx(KeyboardDoubleArrowRight, {}) : /* @__PURE__ */ jsx(KeyboardDoubleArrowLeft, {}),
53
- onClick: toggleSideBarMinimized,
54
- showLabel: !isMinimized,
55
- disabled: isSmallScreen
56
- }
57
- )
58
- ] }) });
21
+ return /* @__PURE__ */ jsx(
22
+ Stack,
23
+ {
24
+ sx: {
25
+ p: 1
26
+ },
27
+ children: /* @__PURE__ */ jsxs(MenuList, { disablePadding: true, children: [
28
+ isUserLoggedIn && /* @__PURE__ */ jsxs(Fragment, { children: [
29
+ /* @__PURE__ */ jsx(ApplicationMenu, { isMinimized, appsAndUrls }),
30
+ /* @__PURE__ */ jsx(ProfileMenu, { isMinimized, userProfile }),
31
+ /* @__PURE__ */ jsx(
32
+ SettingsMenu,
33
+ {
34
+ isMinimized,
35
+ currentTheme,
36
+ setTheme,
37
+ selectedLanguage,
38
+ setSelectedLanguage
39
+ }
40
+ ),
41
+ /* @__PURE__ */ jsx(
42
+ SideBarMenuItem,
43
+ {
44
+ tooltip: isMinimized ? "top-bar/logout" : void 0,
45
+ label: "top-bar/logout",
46
+ icon: /* @__PURE__ */ jsx(Logout, {}),
47
+ onClick: onLogoutClick,
48
+ showLabel: !isMinimized
49
+ }
50
+ )
51
+ ] }),
52
+ /* @__PURE__ */ jsx(Divider, {}),
53
+ /* @__PURE__ */ jsx(
54
+ SideBarMenuItem,
55
+ {
56
+ tooltip: isMinimized ? "top-bar/expand" : void 0,
57
+ label: "top-bar/minimize",
58
+ icon: isMinimized ? /* @__PURE__ */ jsx(KeyboardDoubleArrowRight, {}) : /* @__PURE__ */ jsx(KeyboardDoubleArrowLeft, {}),
59
+ onClick: toggleSideBarMinimized,
60
+ showLabel: !isMinimized,
61
+ disabled: isSmallScreen
62
+ }
63
+ )
64
+ ] })
65
+ }
66
+ );
59
67
  }
60
68
  export {
61
69
  AppSideBarFooter
@@ -53,23 +53,25 @@ function OtherAppRedirection({ app }) {
53
53
  return /* @__PURE__ */ jsx(CustomMenuItem, { sx: submenuFooterStyle.subMenuChildren, children: /* @__PURE__ */ jsx(
54
54
  Box,
55
55
  {
56
- sx: {
57
- textDecoration: "none",
58
- color: "inherit"
59
- },
60
56
  component: "a",
61
57
  href: app.url.toString(),
62
58
  target: "_blank",
63
59
  rel: "noopener noreferrer",
64
- width: "100%",
60
+ sx: {
61
+ width: "100%",
62
+ textDecoration: "none",
63
+ color: "inherit"
64
+ },
65
65
  children: /* @__PURE__ */ jsxs(
66
66
  Stack,
67
67
  {
68
68
  spacing: 2,
69
69
  direction: "row",
70
- alignContent: "center",
71
- alignItems: "center",
72
- justifyContent: "space-between",
70
+ sx: {
71
+ alignContent: "center",
72
+ alignItems: "center",
73
+ justifyContent: "space-between"
74
+ },
73
75
  children: [
74
76
  /* @__PURE__ */ jsxs(Typography, { children: [
75
77
  "Grid",
@@ -61,7 +61,15 @@ function SideBarMenuItem({
61
61
  return /* @__PURE__ */ jsx(Tooltip, { placement: "right-start", title: tooltip && intl.formatMessage({ id: tooltip }), children: /* @__PURE__ */ jsxs(CustomMenuItem, { disabled, onClick, sx: submenuFooterStyle.subMenu, children: [
62
62
  icon,
63
63
  " ",
64
- showLabel && /* @__PURE__ */ jsx(Typography, { px: 1, children: intl.formatMessage({ id: label }) })
64
+ showLabel && /* @__PURE__ */ jsx(
65
+ Typography,
66
+ {
67
+ sx: {
68
+ px: 1
69
+ },
70
+ children: intl.formatMessage({ id: label })
71
+ }
72
+ )
65
73
  ] }) });
66
74
  }
67
75
  export {
@@ -15,12 +15,21 @@ function ProfileInfos({ userProfile }) {
15
15
  disabled: true,
16
16
  children: [
17
17
  /* @__PURE__ */ jsx(Person, {}),
18
- /* @__PURE__ */ jsxs(Box, { component: "span", px: 1, children: [
19
- userProfile?.name,
20
- " ",
21
- /* @__PURE__ */ jsx("br", {}),
22
- /* @__PURE__ */ jsx(Box, { component: "span", children: userProfile?.email })
23
- ] })
18
+ /* @__PURE__ */ jsxs(
19
+ Box,
20
+ {
21
+ component: "span",
22
+ sx: {
23
+ px: 1
24
+ },
25
+ children: [
26
+ userProfile?.name,
27
+ " ",
28
+ /* @__PURE__ */ jsx("br", {}),
29
+ /* @__PURE__ */ jsx(Box, { component: "span", children: userProfile?.email })
30
+ ]
31
+ }
32
+ )
24
33
  ]
25
34
  }
26
35
  ),
@@ -56,10 +56,22 @@ function DarkModeToggle({ currentTheme, setTheme }) {
56
56
  const targetModeValue = event.target.checked ? DARK_THEME : LIGHT_THEME;
57
57
  setTheme(targetModeValue);
58
58
  };
59
- return /* @__PURE__ */ jsx(CustomMenuItem, { sx: submenuFooterStyle.subMenuChildren, children: /* @__PURE__ */ jsxs(Stack, { width: "100%", direction: "row", justifyContent: "space-between", alignItems: "center", spacing: 2, children: [
60
- /* @__PURE__ */ jsx(FormattedMessage, { id: "top-bar/darkMode" }),
61
- /* @__PURE__ */ jsx(Switch, { checked: isDarkMode, onChange: toggleMode })
62
- ] }) });
59
+ return /* @__PURE__ */ jsx(CustomMenuItem, { sx: submenuFooterStyle.subMenuChildren, children: /* @__PURE__ */ jsxs(
60
+ Stack,
61
+ {
62
+ direction: "row",
63
+ spacing: 2,
64
+ sx: {
65
+ width: "100%",
66
+ justifyContent: "space-between",
67
+ alignItems: "center"
68
+ },
69
+ children: [
70
+ /* @__PURE__ */ jsx(FormattedMessage, { id: "top-bar/darkMode" }),
71
+ /* @__PURE__ */ jsx(Switch, { checked: isDarkMode, onChange: toggleMode })
72
+ ]
73
+ }
74
+ ) });
63
75
  }
64
76
  export {
65
77
  DarkModeToggle
@@ -77,12 +77,22 @@ function SettingsMenu({
77
77
  sx: submenuFooterStyle.subMenuChildren,
78
78
  renderLabel: () => /* @__PURE__ */ jsxs(Box, { children: [
79
79
  intl.formatMessage({ id: "top-bar/language" }),
80
- /* @__PURE__ */ jsxs(Typography, { component: "span", fontSize: 12, sx: { color: "text.secondary" }, children: [
81
- " - ",
82
- intl.formatMessage({
83
- id: `top-bar/language/${selectedLanguage}`
84
- })
85
- ] })
80
+ /* @__PURE__ */ jsxs(
81
+ Typography,
82
+ {
83
+ component: "span",
84
+ sx: {
85
+ fontSize: 12,
86
+ color: "text.secondary"
87
+ },
88
+ children: [
89
+ " - ",
90
+ intl.formatMessage({
91
+ id: `top-bar/language/${selectedLanguage}`
92
+ })
93
+ ]
94
+ }
95
+ )
86
96
  ] }),
87
97
  children: availableLanguages.map((language) => /* @__PURE__ */ jsx(
88
98
  LanguageSelection,
@@ -153,22 +153,41 @@ function Module({ type, name, version, gitTag }) {
153
153
  ] })
154
154
  ] })
155
155
  ] }),
156
- children: /* @__PURE__ */ jsxs(Stack, { direction: "row", justifyContent: "flex-start", alignItems: "baseline", spacing: 1, children: [
157
- ModuleTypesIcons[type] || ModuleTypesIcons.other,
158
- /* @__PURE__ */ jsx(Typography, { display: "inline", noWrap: true, children: name || "<?>" }),
159
- /* @__PURE__ */ jsx(
160
- Typography,
161
- {
162
- variant: "caption",
163
- sx: mergeSx(moduleStyles.version, (theme) => ({
164
- color: theme.palette.text.secondary
165
- })),
166
- display: "inline",
167
- noWrap: true,
168
- children: gitTag || version || null
169
- }
170
- )
171
- ] })
156
+ children: /* @__PURE__ */ jsxs(
157
+ Stack,
158
+ {
159
+ direction: "row",
160
+ spacing: 1,
161
+ sx: {
162
+ justifyContent: "flex-start",
163
+ alignItems: "baseline"
164
+ },
165
+ children: [
166
+ ModuleTypesIcons[type] || ModuleTypesIcons.other,
167
+ /* @__PURE__ */ jsx(
168
+ Typography,
169
+ {
170
+ noWrap: true,
171
+ sx: {
172
+ display: "inline"
173
+ },
174
+ children: name || "<?>"
175
+ }
176
+ ),
177
+ /* @__PURE__ */ jsx(
178
+ Typography,
179
+ {
180
+ variant: "caption",
181
+ noWrap: true,
182
+ sx: mergeSx({ display: "inline" }, moduleStyles.version, (theme) => ({
183
+ color: theme.palette.text.secondary
184
+ })),
185
+ children: gitTag || version || null
186
+ }
187
+ )
188
+ ]
189
+ }
190
+ )
172
191
  }
173
192
  )
174
193
  }
@@ -329,7 +348,17 @@ function AboutDialog({
329
348
  /* @__PURE__ */ jsx(Apps, { fontSize: "small" }),
330
349
  /* @__PURE__ */ jsx(FormattedMessage, { id: "about-dialog/modules-section" })
331
350
  ] }),
332
- /* @__PURE__ */ jsx(AccordionDetails, { children: /* @__PURE__ */ jsx(Grid, { container: true, sx: { pl: 2 }, spacing: 1, children: loadingAdditionalModules ? /* @__PURE__ */ jsx(Grid, { size: "grow", display: "inline-flex", justifyContent: "center", children: /* @__PURE__ */ jsx(CircularProgress, { color: "inherit" }) }) : Array.isArray(modules) && /* @__PURE__ */ jsx(Fragment, { children: [...modules].sort(compareModules).map((module, idx) => /* @__PURE__ */ jsx(
351
+ /* @__PURE__ */ jsx(AccordionDetails, { children: /* @__PURE__ */ jsx(Grid, { container: true, sx: { pl: 2 }, spacing: 1, children: loadingAdditionalModules ? /* @__PURE__ */ jsx(
352
+ Grid,
353
+ {
354
+ size: "grow",
355
+ sx: {
356
+ display: "inline-flex",
357
+ justifyContent: "center"
358
+ },
359
+ children: /* @__PURE__ */ jsx(CircularProgress, { color: "inherit" })
360
+ }
361
+ ) : Array.isArray(modules) && /* @__PURE__ */ jsx(Fragment, { children: [...modules].sort(compareModules).map((module, idx) => /* @__PURE__ */ jsx(
333
362
  Module,
334
363
  {
335
364
  type: module.type,
@@ -2,7 +2,7 @@ import { jsx, jsxs } from "react/jsx-runtime";
2
2
  import { useMemo, useState } from "react";
3
3
  import { FormattedMessage } from "react-intl";
4
4
  import { styled, Menu, MenuItem, ListItemIcon, AppBar, Toolbar, Box, IconButton, ListItemText, Button, Popper, Paper, ClickAwayListener, MenuList, Typography, ToggleButtonGroup, ToggleButton } from "@mui/material";
5
- import { Apps, ArrowDropUp, ArrowDropDown, Person, Badge, ManageAccounts, HelpOutline, WbSunny, Brightness3, Computer, ExitToApp } from "@mui/icons-material";
5
+ import { Apps, ArrowDropUp, ArrowDropDown, Person, Badge, ManageAccounts, HelpOutlined, WbSunny, Brightness3, Computer, ExitToApp } from "@mui/icons-material";
6
6
  import { GridLogo } from "./GridLogo.js";
7
7
  import { AboutDialog } from "./AboutDialog.js";
8
8
  import { useStateBoolean } from "../../hooks/customStates/useStateBoolean.js";
@@ -343,7 +343,7 @@ function TopBar({
343
343
  style: { opacity: "1" },
344
344
  onClick: onAboutClicked,
345
345
  children: [
346
- /* @__PURE__ */ jsx(CustomListItemIcon, { children: /* @__PURE__ */ jsx(HelpOutline, { fontSize: "small" }) }),
346
+ /* @__PURE__ */ jsx(CustomListItemIcon, { children: /* @__PURE__ */ jsx(HelpOutlined, { fontSize: "small" }) }),
347
347
  /* @__PURE__ */ jsx(ListItemText, { children: /* @__PURE__ */ jsx(Typography, { sx: styles.sizeLabel, children: /* @__PURE__ */ jsx(FormattedMessage, { id: "top-bar/about", defaultMessage: "About" }) }) })
348
348
  ]
349
349
  }