@gridsuite/commons-ui 0.35.1 → 0.35.3

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 (116) hide show
  1. package/README.md +2 -2
  2. package/es/components/AuthenticationRouter/AuthenticationRouter.js +102 -0
  3. package/es/components/AuthenticationRouter/index.js +7 -0
  4. package/{lib → es}/components/CardErrorBoundary/card-error-boundary.js +35 -42
  5. package/es/components/CardErrorBoundary/index.js +7 -0
  6. package/es/components/ElementSearchDialog/element-search-dialog.js +120 -0
  7. package/{lib → es}/components/ElementSearchDialog/equipment-item.js +26 -32
  8. package/es/components/ElementSearchDialog/index.js +8 -0
  9. package/es/components/ElementSearchDialog/tag-renderer.js +29 -0
  10. package/{lib → es}/components/FlatParameters/FlatParameters.js +42 -49
  11. package/es/components/FlatParameters/index.js +8 -0
  12. package/es/components/Login/Login.js +79 -0
  13. package/es/components/Login/Logout.js +78 -0
  14. package/es/components/Login/index.js +7 -0
  15. package/es/components/MuiVirtualizedTable/ColumnHeader.js +125 -0
  16. package/{lib → es}/components/MuiVirtualizedTable/KeyedColumnsRowIndexer.js +18 -25
  17. package/{lib → es}/components/MuiVirtualizedTable/MuiVirtualizedTable.js +88 -99
  18. package/es/components/MuiVirtualizedTable/index.js +9 -0
  19. package/es/components/OverflowableText/index.js +7 -0
  20. package/{lib → es}/components/OverflowableText/overflowable-text.js +20 -29
  21. package/es/components/ReportViewer/index.js +7 -0
  22. package/{lib → es}/components/ReportViewer/log-report-item.js +1 -6
  23. package/{lib → es}/components/ReportViewer/log-report.js +8 -13
  24. package/{lib → es}/components/ReportViewer/log-table.js +14 -24
  25. package/{lib → es}/components/ReportViewer/report-item.js +23 -30
  26. package/{lib → es}/components/ReportViewer/report-tree-view-context.js +3 -9
  27. package/{lib → es}/components/ReportViewer/report-viewer.js +32 -40
  28. package/es/components/ReportViewerDialog/index.js +7 -0
  29. package/es/components/ReportViewerDialog/report-viewer-dialog.js +67 -0
  30. package/es/components/SignInCallbackHandler/SignInCallbackHandler.js +19 -0
  31. package/es/components/SignInCallbackHandler/index.js +7 -0
  32. package/es/components/SilentRenewCallbackHandler/SilentRenewCallbackHandler.js +19 -0
  33. package/es/components/SilentRenewCallbackHandler/index.js +7 -0
  34. package/es/components/SnackbarProvider/SnackbarProvider.js +39 -0
  35. package/es/components/SnackbarProvider/index.js +7 -0
  36. package/es/components/TopBar/TopBar.js +565 -0
  37. package/es/components/TopBar/index.js +7 -0
  38. package/{lib → es}/components/TreeViewFinder/TreeViewFinder.js +59 -66
  39. package/es/components/TreeViewFinder/index.js +7 -0
  40. package/es/components/react-hook-form/autocomplete-input.js +110 -0
  41. package/es/components/react-hook-form/booleans/boolean-input.js +56 -0
  42. package/es/components/react-hook-form/booleans/checkbox-input.js +28 -0
  43. package/es/components/react-hook-form/booleans/switch-input.js +28 -0
  44. package/es/components/react-hook-form/error-management/error-input.js +50 -0
  45. package/es/components/react-hook-form/error-management/field-error-alert.js +22 -0
  46. package/es/components/react-hook-form/error-management/mid-form-error.js +25 -0
  47. package/es/components/react-hook-form/numbers/float-input.js +40 -0
  48. package/es/components/react-hook-form/numbers/integer-input.js +35 -0
  49. package/es/components/react-hook-form/numbers/utils.js +6 -0
  50. package/es/components/react-hook-form/radio-input.js +55 -0
  51. package/es/components/react-hook-form/select-input.js +40 -0
  52. package/es/components/react-hook-form/slider-input.js +48 -0
  53. package/es/components/react-hook-form/text-input.js +100 -0
  54. package/es/components/react-hook-form/utils/field-label.js +15 -0
  55. package/es/components/react-hook-form/utils/functions.js +42 -0
  56. package/es/components/react-hook-form/utils/submit-button.js +25 -0
  57. package/es/components/react-hook-form/utils/text-field-with-adornment.js +92 -0
  58. package/{lib → es}/components/translations/card-error-boundary-en.js +1 -7
  59. package/{lib → es}/components/translations/card-error-boundary-fr.js +1 -7
  60. package/{lib → es}/components/translations/element-search-en.js +1 -7
  61. package/{lib → es}/components/translations/element-search-fr.js +1 -7
  62. package/{lib → es}/components/translations/equipment-search-en.js +1 -7
  63. package/{lib → es}/components/translations/equipment-search-fr.js +1 -7
  64. package/es/components/translations/inputs-en.js +25 -0
  65. package/es/components/translations/inputs-fr.js +25 -0
  66. package/{lib → es}/components/translations/login-en.js +1 -7
  67. package/{lib → es}/components/translations/login-fr.js +1 -7
  68. package/{lib → es}/components/translations/report-viewer-en.js +1 -7
  69. package/{lib → es}/components/translations/report-viewer-fr.js +1 -7
  70. package/{lib → es}/components/translations/table-en.js +1 -7
  71. package/{lib → es}/components/translations/table-fr.js +1 -7
  72. package/{lib → es}/components/translations/top-bar-en.js +1 -7
  73. package/{lib → es}/components/translations/top-bar-fr.js +1 -7
  74. package/{lib → es}/components/translations/treeview-finder-en.js +1 -7
  75. package/{lib → es}/components/translations/treeview-finder-fr.js +1 -7
  76. package/{lib → es}/hooks/useDebounce.js +7 -12
  77. package/{lib → es}/hooks/useIntlRef.js +7 -10
  78. package/{lib → es}/hooks/useSnackMessage.js +9 -13
  79. package/es/index.js +62 -0
  80. package/{lib → es}/utils/AuthService.js +23 -34
  81. package/es/utils/ElementType.js +37 -0
  82. package/{lib → es}/utils/EquipmentType.js +8 -18
  83. package/{lib → es}/utils/UserManagerMock.js +2 -7
  84. package/es/utils/actions.js +65 -0
  85. package/{lib → es}/utils/algos.js +1 -5
  86. package/{lib → es}/utils/styles.js +4 -11
  87. package/package.json +11 -4
  88. package/lib/components/AuthenticationRouter/AuthenticationRouter.js +0 -111
  89. package/lib/components/AuthenticationRouter/index.js +0 -8
  90. package/lib/components/CardErrorBoundary/index.js +0 -8
  91. package/lib/components/ElementSearchDialog/element-search-dialog.js +0 -127
  92. package/lib/components/ElementSearchDialog/index.js +0 -9
  93. package/lib/components/ElementSearchDialog/tag-renderer.js +0 -36
  94. package/lib/components/FlatParameters/index.js +0 -8
  95. package/lib/components/Login/Login.js +0 -86
  96. package/lib/components/Login/Logout.js +0 -85
  97. package/lib/components/Login/index.js +0 -8
  98. package/lib/components/MuiVirtualizedTable/ColumnHeader.js +0 -134
  99. package/lib/components/MuiVirtualizedTable/index.js +0 -12
  100. package/lib/components/OverflowableText/index.js +0 -8
  101. package/lib/components/ReportViewer/index.js +0 -8
  102. package/lib/components/ReportViewerDialog/index.js +0 -8
  103. package/lib/components/ReportViewerDialog/report-viewer-dialog.js +0 -75
  104. package/lib/components/SignInCallbackHandler/SignInCallbackHandler.js +0 -27
  105. package/lib/components/SignInCallbackHandler/index.js +0 -8
  106. package/lib/components/SilentRenewCallbackHandler/SilentRenewCallbackHandler.js +0 -27
  107. package/lib/components/SilentRenewCallbackHandler/index.js +0 -8
  108. package/lib/components/SnackbarProvider/SnackbarProvider.js +0 -45
  109. package/lib/components/SnackbarProvider/index.js +0 -8
  110. package/lib/components/TopBar/TopBar.js +0 -576
  111. package/lib/components/TopBar/index.js +0 -8
  112. package/lib/components/TreeViewFinder/index.js +0 -9
  113. package/lib/index.js +0 -105
  114. package/lib/utils/ElementType.js +0 -45
  115. package/lib/utils/actions.js +0 -83
  116. /package/{lib → es}/components/images/powsybl_logo.svg +0 -0
@@ -0,0 +1,565 @@
1
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
+ /**
3
+ * Copyright (c) 2020, RTE (http://www.rte-france.com)
4
+ * This Source Code Form is subject to the terms of the Mozilla Public
5
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
6
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
7
+ */
8
+
9
+ import React, { useEffect, useRef, useState } from 'react';
10
+ import { FormattedMessage } from 'react-intl';
11
+ import AppBar from '@mui/material/AppBar';
12
+ import ExitToAppIcon from '@mui/icons-material/ExitToApp';
13
+ import { darken } from '@mui/material/styles';
14
+ import { styled } from '@mui/system';
15
+ import Toolbar from '@mui/material/Toolbar';
16
+ import Typography from '@mui/material/Typography';
17
+ import SettingsIcon from '@mui/icons-material/Settings';
18
+ import Button from '@mui/material/Button';
19
+ import Menu from '@mui/material/Menu';
20
+ import MenuItem from '@mui/material/MenuItem';
21
+ import Box from '@mui/material/Box';
22
+ import ListItemIcon from '@mui/material/ListItemIcon';
23
+ import ListItemText from '@mui/material/ListItemText';
24
+ import AppsIcon from '@mui/icons-material/Apps';
25
+ import SearchIcon from '@mui/icons-material/Search';
26
+ import FullscreenExitIcon from '@mui/icons-material/FullscreenExit';
27
+ import ArrowDropDownIcon from '@mui/icons-material/ArrowDropDown';
28
+ import ArrowDropUpIcon from '@mui/icons-material/ArrowDropUp';
29
+ import PersonIcon from '@mui/icons-material/Person';
30
+ import HelpOutlineIcon from '@mui/icons-material/HelpOutline';
31
+ import Brightness3Icon from '@mui/icons-material/Brightness3';
32
+ import WbSunnyIcon from '@mui/icons-material/WbSunny';
33
+ import ComputerIcon from '@mui/icons-material/Computer';
34
+ import ToggleButton from '@mui/material/ToggleButton';
35
+ import ToggleButtonGroup from '@mui/material/ToggleButtonGroup';
36
+ import PropTypes from 'prop-types';
37
+ import FullscreenIcon from '@mui/icons-material/Fullscreen';
38
+ import FullScreen, { fullScreenSupported } from 'react-request-fullscreen';
39
+ import Popper from '@mui/material/Popper';
40
+ import Paper from '@mui/material/Paper';
41
+ import MenuList from '@mui/material/MenuList';
42
+ import ClickAwayListener from '@mui/material/ClickAwayListener';
43
+ import { mergeSx } from '../../utils/styles';
44
+ import ElementSearchDialog from '../ElementSearchDialog';
45
+ var styles = {
46
+ grow: {
47
+ flexGrow: 1,
48
+ display: 'flex',
49
+ overflow: 'hidden'
50
+ },
51
+ logo: {
52
+ flexShrink: 0,
53
+ width: 48,
54
+ height: 48,
55
+ marginBottom: '8px'
56
+ },
57
+ menuIcon: {
58
+ width: 24,
59
+ height: 24
60
+ },
61
+ title: {
62
+ marginLeft: '18px'
63
+ },
64
+ clickable: {
65
+ cursor: 'pointer'
66
+ },
67
+ link: {
68
+ textDecoration: 'none',
69
+ color: 'inherit'
70
+ },
71
+ name: function name(theme) {
72
+ return {
73
+ backgroundColor: darken(theme.palette.background.paper, 0.1),
74
+ paddingTop: '10px',
75
+ borderRadius: '100%',
76
+ fontWeight: '400',
77
+ textTransform: 'uppercase',
78
+ height: '48px',
79
+ width: '48px'
80
+ };
81
+ },
82
+ arrowIcon: {
83
+ fontSize: '40px'
84
+ },
85
+ userMail: {
86
+ fontSize: '14px',
87
+ display: 'block'
88
+ },
89
+ borderBottom: {
90
+ borderBottom: '1px solid #ccc'
91
+ },
92
+ borderTop: {
93
+ borderTop: '1px solid #ccc'
94
+ },
95
+ settingsMenu: {
96
+ maxWidth: '385px',
97
+ zIndex: 60
98
+ },
99
+ sizeLabel: {
100
+ fontSize: '16px'
101
+ },
102
+ showHideMenu: {
103
+ padding: '0',
104
+ borderRadius: '25px'
105
+ },
106
+ toggleButtonGroup: {
107
+ marginLeft: '15px',
108
+ pointerEvents: 'auto'
109
+ },
110
+ toggleButton: {
111
+ height: '30px',
112
+ width: '48px',
113
+ padding: '7px',
114
+ textTransform: 'capitalize'
115
+ },
116
+ languageToggleButton: {
117
+ height: '30px',
118
+ width: '48px'
119
+ }
120
+ };
121
+ var StyledMenu = styled(function (props) {
122
+ return /*#__PURE__*/React.createElement(Menu, _extends({
123
+ elevation: 0,
124
+ anchorOrigin: {
125
+ vertical: 'bottom',
126
+ horizontal: 'center'
127
+ },
128
+ transformOrigin: {
129
+ vertical: 'top',
130
+ horizontal: 'center'
131
+ }
132
+ }, props));
133
+ })({
134
+ '& .MuiMenu-paper': {
135
+ border: '1px solid #d3d4d5'
136
+ }
137
+ });
138
+ var StyledMenuItem = styled(MenuItem)(function (_ref) {
139
+ var theme = _ref.theme;
140
+ return {
141
+ '&:focus': {
142
+ backgroundColor: theme.palette.primary.main,
143
+ '& .MuiListItemIcon-root, & .MuiListItemText-primary': {
144
+ color: theme.palette.common.white
145
+ }
146
+ }
147
+ };
148
+ });
149
+ var CustomListItemIcon = styled(ListItemIcon)({
150
+ minWidth: '30px',
151
+ paddingRight: '15px',
152
+ borderRadius: '25px'
153
+ });
154
+ export var DARK_THEME = 'Dark';
155
+ export var LIGHT_THEME = 'Light';
156
+ export var LANG_SYSTEM = 'sys';
157
+ export var LANG_ENGLISH = 'en';
158
+ export var LANG_FRENCH = 'fr';
159
+ var EN = 'EN';
160
+ var FR = 'FR';
161
+ var TopBar = function TopBar(_ref2) {
162
+ var appName = _ref2.appName,
163
+ appColor = _ref2.appColor,
164
+ appLogo = _ref2.appLogo,
165
+ onParametersClick = _ref2.onParametersClick,
166
+ onLogoutClick = _ref2.onLogoutClick,
167
+ onLogoClick = _ref2.onLogoClick,
168
+ user = _ref2.user,
169
+ children = _ref2.children,
170
+ appsAndUrls = _ref2.appsAndUrls,
171
+ onAboutClick = _ref2.onAboutClick,
172
+ onThemeClick = _ref2.onThemeClick,
173
+ theme = _ref2.theme,
174
+ onEquipmentLabellingClick = _ref2.onEquipmentLabellingClick,
175
+ equipmentLabelling = _ref2.equipmentLabelling,
176
+ withElementsSearch = _ref2.withElementsSearch,
177
+ searchDisabled = _ref2.searchDisabled,
178
+ searchingLabel = _ref2.searchingLabel,
179
+ onSearchTermChange = _ref2.onSearchTermChange,
180
+ _onSelectionChange = _ref2.onSelectionChange,
181
+ elementsFound = _ref2.elementsFound,
182
+ renderElement = _ref2.renderElement,
183
+ onLanguageClick = _ref2.onLanguageClick,
184
+ language = _ref2.language,
185
+ searchTermDisabled = _ref2.searchTermDisabled,
186
+ initialSearchTerm = _ref2.initialSearchTerm;
187
+ var _React$useState = React.useState(null),
188
+ anchorElSettingsMenu = _React$useState[0],
189
+ setAnchorElSettingsMenu = _React$useState[1];
190
+ var _React$useState2 = React.useState(null),
191
+ anchorElAppsMenu = _React$useState2[0],
192
+ setAnchorElAppsMenu = _React$useState2[1];
193
+ var fullScreenRef = useRef(null);
194
+ var _useState = useState(false),
195
+ isFullScreen = _useState[0],
196
+ setIsFullScreen = _useState[1];
197
+ var _useState2 = useState(false),
198
+ isDialogSearchOpen = _useState2[0],
199
+ setDialogSearchOpen = _useState2[1];
200
+ var handleClickElementSearch = function handleClickElementSearch() {
201
+ setDialogSearchOpen(true);
202
+ };
203
+ var handleToggleSettingsMenu = function handleToggleSettingsMenu(event) {
204
+ setAnchorElSettingsMenu(event.currentTarget);
205
+ };
206
+ var handleCloseSettingsMenu = function handleCloseSettingsMenu() {
207
+ setAnchorElSettingsMenu(null);
208
+ };
209
+ var handleClickAppsMenu = function handleClickAppsMenu(event) {
210
+ setAnchorElAppsMenu(event.currentTarget);
211
+ };
212
+ var handleCloseAppsMenu = function handleCloseAppsMenu() {
213
+ setAnchorElAppsMenu(null);
214
+ };
215
+ var onParametersClicked = function onParametersClicked() {
216
+ setAnchorElSettingsMenu(null);
217
+ if (onParametersClick) {
218
+ onParametersClick();
219
+ }
220
+ };
221
+ function onFullScreenChange(isFullScreenValue) {
222
+ setAnchorElSettingsMenu(null);
223
+ setIsFullScreen(isFullScreen);
224
+ }
225
+ function requestOrExitFullScreen() {
226
+ setAnchorElSettingsMenu(null);
227
+ fullScreenRef.current.fullScreen();
228
+ }
229
+ var abbreviationFromUserName = function abbreviationFromUserName(name) {
230
+ var tab = name.split(' ').map(function (x) {
231
+ return x.charAt(0);
232
+ });
233
+ if (tab.length === 1) {
234
+ return tab[0];
235
+ } else {
236
+ return tab[0] + tab[tab.length - 1];
237
+ }
238
+ };
239
+ var changeTheme = function changeTheme(event, value) {
240
+ if (onThemeClick && value !== null) {
241
+ onThemeClick(value);
242
+ }
243
+ };
244
+ var changeEquipmentLabelling = function changeEquipmentLabelling(event, value) {
245
+ if (onEquipmentLabellingClick && value !== null) {
246
+ onEquipmentLabellingClick(value);
247
+ }
248
+ };
249
+ var changeLanguage = function changeLanguage(event, value) {
250
+ if (onLanguageClick && value !== null) {
251
+ onLanguageClick(value);
252
+ }
253
+ };
254
+ var onAboutClicked = function onAboutClicked() {
255
+ setAnchorElSettingsMenu(false);
256
+ if (onAboutClick) {
257
+ onAboutClick();
258
+ }
259
+ };
260
+ useEffect(function () {
261
+ if (user && withElementsSearch && !searchDisabled) {
262
+ var openSearch = function openSearch(e) {
263
+ if (e.ctrlKey && e.shiftKey && e.key === 'f') {
264
+ e.preventDefault();
265
+ setDialogSearchOpen(true);
266
+ }
267
+ };
268
+ document.addEventListener('keydown', openSearch);
269
+ return function () {
270
+ return document.removeEventListener('keydown', openSearch);
271
+ };
272
+ }
273
+ }, [user, withElementsSearch, searchDisabled]);
274
+ return /*#__PURE__*/React.createElement(AppBar, {
275
+ position: "static",
276
+ color: "default",
277
+ sx: styles.appBar
278
+ }, /*#__PURE__*/React.createElement(FullScreen, {
279
+ ref: fullScreenRef,
280
+ onFullScreenChange: onFullScreenChange,
281
+ onFullScreenError: function onFullScreenError(e) {
282
+ return console.debug('full screen error : ' + e.message);
283
+ }
284
+ }), /*#__PURE__*/React.createElement(Toolbar, null, /*#__PURE__*/React.createElement(Box, {
285
+ sx: mergeSx(styles.logo, onLogoClick && styles.clickable),
286
+ onClick: onLogoClick
287
+ }, appLogo), /*#__PURE__*/React.createElement(Typography, {
288
+ variant: "h4",
289
+ sx: mergeSx(styles.title, onLogoClick && styles.clickable),
290
+ onClick: onLogoClick
291
+ }, /*#__PURE__*/React.createElement("span", {
292
+ style: {
293
+ fontWeight: 'bold'
294
+ }
295
+ }, "Grid"), /*#__PURE__*/React.createElement("span", {
296
+ style: {
297
+ color: appColor
298
+ }
299
+ }, appName)), /*#__PURE__*/React.createElement(Box, {
300
+ sx: styles.grow
301
+ }, children), user && withElementsSearch && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(ElementSearchDialog, {
302
+ open: isDialogSearchOpen,
303
+ onClose: function onClose() {
304
+ return setDialogSearchOpen(false);
305
+ },
306
+ searchingLabel: searchingLabel,
307
+ onSearchTermChange: onSearchTermChange,
308
+ onSelectionChange: function onSelectionChange(element) {
309
+ setDialogSearchOpen(false);
310
+ _onSelectionChange(element);
311
+ },
312
+ elementsFound: elementsFound,
313
+ renderElement: renderElement,
314
+ searchTermDisabled: searchTermDisabled,
315
+ initialSearchTerm: initialSearchTerm
316
+ }), /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(Button, {
317
+ color: "inherit",
318
+ onClick: handleClickElementSearch,
319
+ disabled: searchDisabled
320
+ }, /*#__PURE__*/React.createElement(SearchIcon, null)))), user && /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(Button, {
321
+ "aria-controls": "apps-menu",
322
+ "aria-haspopup": "true",
323
+ onClick: handleClickAppsMenu,
324
+ color: "inherit"
325
+ }, /*#__PURE__*/React.createElement(AppsIcon, null)), /*#__PURE__*/React.createElement(StyledMenu, {
326
+ id: "apps-menu",
327
+ anchorEl: anchorElAppsMenu,
328
+ keepMounted: true,
329
+ open: Boolean(anchorElAppsMenu),
330
+ onClose: handleCloseAppsMenu
331
+ }, appsAndUrls && appsAndUrls.filter(function (item) {
332
+ return !item.hiddenInAppsMenu;
333
+ }).map(function (item) {
334
+ return /*#__PURE__*/React.createElement(Box, {
335
+ component: "a",
336
+ key: item.name,
337
+ href: item.url,
338
+ sx: styles.link,
339
+ target: "_blank",
340
+ rel: "noopener noreferrer"
341
+ }, /*#__PURE__*/React.createElement(StyledMenuItem, {
342
+ onClick: handleCloseAppsMenu
343
+ }, /*#__PURE__*/React.createElement(ListItemText, null, /*#__PURE__*/React.createElement("span", {
344
+ style: {
345
+ fontWeight: 'bold'
346
+ }
347
+ }, "Grid"), /*#__PURE__*/React.createElement("span", {
348
+ style: {
349
+ color: item.appColor === undefined ? 'grey' : item.appColor,
350
+ fontWeight: 'bold'
351
+ }
352
+ }, item.name))));
353
+ }))), user && /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(Button, {
354
+ "aria-controls": "settings-menu",
355
+ "aria-haspopup": "true",
356
+ sx: styles.showHideMenu,
357
+ onClick: handleToggleSettingsMenu,
358
+ color: "inherit",
359
+ style: Boolean(anchorElSettingsMenu) ? {
360
+ cursor: 'initial'
361
+ } : {
362
+ cursor: 'pointer'
363
+ }
364
+ }, /*#__PURE__*/React.createElement(Box, {
365
+ component: "span",
366
+ sx: styles.name
367
+ }, user !== null ? abbreviationFromUserName(user.profile.name) : ''), anchorElSettingsMenu ? /*#__PURE__*/React.createElement(ArrowDropUpIcon, {
368
+ sx: styles.arrowIcon
369
+ }) : /*#__PURE__*/React.createElement(ArrowDropDownIcon, {
370
+ sx: styles.arrowIcon
371
+ })), /*#__PURE__*/React.createElement(Popper, {
372
+ sx: styles.settingsMenu,
373
+ open: Boolean(anchorElSettingsMenu),
374
+ anchorEl: anchorElSettingsMenu
375
+ }, /*#__PURE__*/React.createElement(Paper, null, /*#__PURE__*/React.createElement(ClickAwayListener, {
376
+ onClickAway: handleCloseSettingsMenu
377
+ }, /*#__PURE__*/React.createElement(MenuList, {
378
+ id: "settings-menu"
379
+ }, /*#__PURE__*/React.createElement(StyledMenuItem, {
380
+ sx: styles.borderBottom,
381
+ disabled: true,
382
+ style: {
383
+ opacity: '1'
384
+ }
385
+ }, /*#__PURE__*/React.createElement(CustomListItemIcon, null, /*#__PURE__*/React.createElement(PersonIcon, {
386
+ fontSize: "small"
387
+ })), /*#__PURE__*/React.createElement(ListItemText, {
388
+ disabled: false
389
+ }, user !== null && /*#__PURE__*/React.createElement(Box, {
390
+ component: "span",
391
+ sx: styles.sizeLabel
392
+ }, user.profile.name, ' ', /*#__PURE__*/React.createElement("br", null), /*#__PURE__*/React.createElement(Box, {
393
+ component: "span",
394
+ sx: styles.userMail
395
+ }, user.profile.email)))), /*#__PURE__*/React.createElement(StyledMenuItem, {
396
+ disabled: true,
397
+ style: {
398
+ opacity: '1',
399
+ paddingTop: '10px',
400
+ paddingBottom: '10px',
401
+ backgroundColor: 'transparent'
402
+ }
403
+ }, /*#__PURE__*/React.createElement(ListItemText, null, /*#__PURE__*/React.createElement(Typography, {
404
+ sx: styles.sizeLabel
405
+ }, /*#__PURE__*/React.createElement(FormattedMessage, {
406
+ id: "top-bar/displayMode",
407
+ defaultMessage: 'Display mode'
408
+ }))), /*#__PURE__*/React.createElement(ToggleButtonGroup, {
409
+ exclusive: true,
410
+ value: theme,
411
+ size: "large",
412
+ sx: styles.toggleButtonGroup,
413
+ onChange: changeTheme
414
+ }, /*#__PURE__*/React.createElement(ToggleButton, {
415
+ value: LIGHT_THEME,
416
+ "aria-label": LIGHT_THEME,
417
+ sx: styles.toggleButton
418
+ }, /*#__PURE__*/React.createElement(WbSunnyIcon, {
419
+ fontSize: "small"
420
+ })), /*#__PURE__*/React.createElement(ToggleButton, {
421
+ value: DARK_THEME,
422
+ "aria-label": DARK_THEME,
423
+ sx: styles.toggleButton
424
+ }, /*#__PURE__*/React.createElement(Brightness3Icon, {
425
+ fontSize: "small"
426
+ })))), onEquipmentLabellingClick && /*#__PURE__*/React.createElement(StyledMenuItem, {
427
+ disabled: true,
428
+ style: {
429
+ opacity: '1',
430
+ // padding: '0',
431
+ paddingTop: '10px',
432
+ paddingBottom: '10px',
433
+ backgroundColor: 'transparent'
434
+ }
435
+ }, /*#__PURE__*/React.createElement(ListItemText, null, /*#__PURE__*/React.createElement(Typography, {
436
+ sx: styles.sizeLabel
437
+ }, /*#__PURE__*/React.createElement(FormattedMessage, {
438
+ id: "top-bar/equipmentLabel",
439
+ defaultMessage: 'Equipment label'
440
+ }))), /*#__PURE__*/React.createElement(ToggleButtonGroup, {
441
+ exclusive: true,
442
+ value: equipmentLabelling,
443
+ sx: styles.toggleButtonGroup,
444
+ onChange: changeEquipmentLabelling
445
+ }, /*#__PURE__*/React.createElement(ToggleButton, {
446
+ value: false,
447
+ sx: styles.toggleButton
448
+ }, /*#__PURE__*/React.createElement(FormattedMessage, {
449
+ id: "top-bar/id",
450
+ defaultMessage: 'Id'
451
+ })), /*#__PURE__*/React.createElement(ToggleButton, {
452
+ value: true,
453
+ sx: styles.toggleButton
454
+ }, /*#__PURE__*/React.createElement(FormattedMessage, {
455
+ id: "top-bar/name",
456
+ defaultMessage: 'Name'
457
+ })))), /*#__PURE__*/React.createElement(StyledMenuItem, {
458
+ disabled: true,
459
+ style: {
460
+ opacity: '1',
461
+ paddingTop: '10px',
462
+ paddingBottom: '10px',
463
+ backgroundColor: 'transparent'
464
+ }
465
+ }, /*#__PURE__*/React.createElement(ListItemText, null, /*#__PURE__*/React.createElement(Typography, {
466
+ sx: styles.sizeLabel
467
+ }, /*#__PURE__*/React.createElement(FormattedMessage, {
468
+ id: "top-bar/language",
469
+ defaultMessage: 'Language'
470
+ }))), /*#__PURE__*/React.createElement(ToggleButtonGroup, {
471
+ exclusive: true,
472
+ value: language,
473
+ sx: styles.toggleButtonGroup,
474
+ onChange: changeLanguage
475
+ }, /*#__PURE__*/React.createElement(ToggleButton, {
476
+ value: LANG_SYSTEM,
477
+ "aria-label": LANG_SYSTEM,
478
+ sx: styles.languageToggleButton
479
+ }, /*#__PURE__*/React.createElement(ComputerIcon, null)), /*#__PURE__*/React.createElement(ToggleButton, {
480
+ value: LANG_ENGLISH,
481
+ "aria-label": LANG_ENGLISH,
482
+ sx: styles.languageToggleButton
483
+ }, EN), /*#__PURE__*/React.createElement(ToggleButton, {
484
+ value: LANG_FRENCH,
485
+ "aria-label": LANG_FRENCH,
486
+ sx: styles.toggleButton
487
+ }, FR))), /*#__PURE__*/React.createElement(StyledMenuItem, {
488
+ disabled: !onParametersClick,
489
+ onClick: onParametersClicked,
490
+ sx: styles.borderTop
491
+ }, /*#__PURE__*/React.createElement(CustomListItemIcon, null, /*#__PURE__*/React.createElement(SettingsIcon, {
492
+ fontSize: "small"
493
+ })), /*#__PURE__*/React.createElement(ListItemText, null, /*#__PURE__*/React.createElement(Typography, {
494
+ sx: styles.sizeLabel
495
+ }, /*#__PURE__*/React.createElement(FormattedMessage, {
496
+ id: "top-bar/settings",
497
+ defaultMessage: 'Settings'
498
+ })))), /*#__PURE__*/React.createElement(StyledMenuItem, {
499
+ sx: styles.borderBottom,
500
+ disabled: true,
501
+ style: {
502
+ opacity: '1'
503
+ },
504
+ onClick: onAboutClicked
505
+ }, /*#__PURE__*/React.createElement(CustomListItemIcon, null, /*#__PURE__*/React.createElement(HelpOutlineIcon, {
506
+ fontSize: "small"
507
+ })), /*#__PURE__*/React.createElement(ListItemText, null, /*#__PURE__*/React.createElement(Typography, {
508
+ sx: styles.sizeLabel
509
+ }, /*#__PURE__*/React.createElement(FormattedMessage, {
510
+ id: "top-bar/about",
511
+ defaultMessage: 'About'
512
+ })))), fullScreenSupported() && /*#__PURE__*/React.createElement(StyledMenuItem, {
513
+ onClick: requestOrExitFullScreen
514
+ }, isFullScreen ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(CustomListItemIcon, null, /*#__PURE__*/React.createElement(FullscreenExitIcon, {
515
+ fontSize: "small"
516
+ })), /*#__PURE__*/React.createElement(ListItemText, null, /*#__PURE__*/React.createElement(Typography, {
517
+ sx: styles.sizeLabel
518
+ }, /*#__PURE__*/React.createElement(FormattedMessage, {
519
+ id: "top-bar/exitFullScreen",
520
+ defaultMessage: 'Exit full screen mode'
521
+ })))) : /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(CustomListItemIcon, null, /*#__PURE__*/React.createElement(FullscreenIcon, {
522
+ fontSize: "small"
523
+ })), /*#__PURE__*/React.createElement(ListItemText, null, /*#__PURE__*/React.createElement(Typography, {
524
+ sx: styles.sizeLabel
525
+ }, /*#__PURE__*/React.createElement(FormattedMessage, {
526
+ id: "top-bar/goFullScreen",
527
+ defaultMessage: 'Full screen'
528
+ }))))), /*#__PURE__*/React.createElement(StyledMenuItem, {
529
+ onClick: onLogoutClick
530
+ }, /*#__PURE__*/React.createElement(CustomListItemIcon, null, /*#__PURE__*/React.createElement(ExitToAppIcon, {
531
+ fontSize: "small"
532
+ })), /*#__PURE__*/React.createElement(ListItemText, null, /*#__PURE__*/React.createElement(Typography, {
533
+ sx: styles.sizeLabel
534
+ }, /*#__PURE__*/React.createElement(FormattedMessage, {
535
+ id: "top-bar/logout",
536
+ defaultMessage: 'Logout'
537
+ })))))))))));
538
+ };
539
+ TopBar.propTypes = process.env.NODE_ENV !== "production" ? {
540
+ onParametersClick: PropTypes.func,
541
+ onLogoutClick: PropTypes.func,
542
+ onLogoClick: PropTypes.func,
543
+ appName: PropTypes.string,
544
+ appColor: PropTypes.string,
545
+ appLogo: PropTypes.object,
546
+ user: PropTypes.object,
547
+ children: PropTypes.node,
548
+ appsAndUrls: PropTypes.array,
549
+ onThemeClick: PropTypes.func,
550
+ theme: PropTypes.string,
551
+ onAboutClick: PropTypes.func,
552
+ onEquipmentLabellingClick: PropTypes.func,
553
+ equipmentLabelling: PropTypes.bool,
554
+ withElementsSearch: PropTypes.bool,
555
+ searchDisabled: PropTypes.bool,
556
+ searchingLabel: PropTypes.string,
557
+ onSearchTermChange: PropTypes.func,
558
+ onSelectionChange: PropTypes.func,
559
+ elementsFound: PropTypes.array,
560
+ onLanguageClick: PropTypes.func.isRequired,
561
+ language: PropTypes.string.isRequired,
562
+ searchTermDisabled: PropTypes.bool,
563
+ initialSearchTerm: PropTypes.string
564
+ } : {};
565
+ export default TopBar;
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Copyright (c) 2020, 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 { default } from './TopBar';