@dexteel/mesf-core 7.15.2 → 7.16.1

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.
package/dist/index.esm.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { HubConnectionBuilder, LogLevel } from '@microsoft/signalr';
2
2
  export * from '@microsoft/signalr';
3
3
  export { LicenseManager } from 'ag-grid-enterprise';
4
- import { styled, DialogTitle as DialogTitle$1, DialogContent as DialogContent$1, DialogActions as DialogActions$1, Grid2, Button, Box, MenuItem, ListItemIcon, createTheme, TextField, Alert as Alert$2, useTheme, InputAdornment, Popover, MenuList, ListItemText, alpha, Dialog as Dialog$1, Paper, List, ListItem, Chip, SvgIcon, Typography as Typography$1, Checkbox, IconButton as IconButton$1, CircularProgress, FormControl, FormHelperText, FormControlLabel, Snackbar, DialogContentText, Badge, InputLabel, Select, Input, Divider, Card, CardContent, CardActions, Collapse, Tooltip, CssBaseline, AppBar, Toolbar, Container, Menu, Switch, Autocomplete, Hidden, Drawer, Grid, Accordion, AccordionSummary, AccordionDetails, Tabs, Tab, useMediaQuery, ListSubheader, ListItemButton, StyledEngineProvider, ThemeProvider, ListItemSecondaryAction } from '@mui/material';
4
+ import { styled, DialogTitle as DialogTitle$1, DialogContent as DialogContent$1, DialogActions as DialogActions$1, Grid2, Button, Box, MenuItem, ListItemIcon, createTheme, TextField, Alert as Alert$2, useTheme, InputAdornment, Popover, MenuList, ListItemText, alpha, Dialog as Dialog$1, Paper, List, ListItem, Chip, SvgIcon, Typography as Typography$1, Checkbox, IconButton as IconButton$1, CircularProgress, FormControl, FormHelperText, FormControlLabel, Snackbar, DialogContentText, Badge, InputLabel, Select, Input, Divider, Card, CardContent, CardActions, Collapse, Tooltip, CssBaseline, AppBar, Toolbar, Container, Menu, Switch, Autocomplete, useMediaQuery, Drawer, Grid, Accordion, AccordionSummary, AccordionDetails, Tabs, Tab, ListSubheader, ListItemButton, StyledEngineProvider, ThemeProvider, ListItemSecondaryAction } from '@mui/material';
5
5
  import { useMutation, useQuery, useQueryClient, QueryClient, QueryClientProvider } from '@tanstack/react-query';
6
6
  import * as React from 'react';
7
7
  import React__default, { createContext, useContext, useRef, useState, useEffect, useCallback, useMemo, Component, lazy, Suspense } from 'react';
@@ -25,7 +25,7 @@ import DeleteIcon from '@mui/icons-material/Delete';
25
25
  import EditIcon from '@mui/icons-material/Edit';
26
26
  import FindInPageIcon from '@mui/icons-material/FindInPage';
27
27
  import PlaylistAddIcon from '@mui/icons-material/PlaylistAdd';
28
- import { ArrowRight, ArrowBackRounded, ArrowForwardRounded, SkipNext, ChevronLeft, ChevronRight, Cloud, Square as Square$1, Timeline, Send, Menu as Menu$1, People, Storage, Group, Assignment, Chat, ViewList, Build, Settings as Settings$2, Code as Code$1, FastRewind, FastForward, ZoomIn, Restore, Lock, Create, Delete, Folder, InsertChart, Search, PlaylistAdd, DragIndicator, Save, AttachFile, CloudUpload, GetApp } from '@mui/icons-material';
28
+ import { ArrowRight, ArrowBackRounded, ArrowForwardRounded, SkipNext, ChevronLeft, ChevronRight, Cloud, ExpandLess, ExpandMore, Square as Square$1, Timeline, Send, Menu as Menu$1, People, Storage, Group, Assignment, Chat, ViewList, Build, Settings as Settings$2, Code as Code$1, FastRewind, FastForward, ZoomIn, Restore, Lock, Create, Delete, Folder, InsertChart, Search, PlaylistAdd, DragIndicator, Save, AttachFile, CloudUpload, GetApp } from '@mui/icons-material';
29
29
  import ContentCopyIcon from '@mui/icons-material/ContentCopy';
30
30
  import FormatListBulletedSharpIcon from '@mui/icons-material/FormatListBulletedSharp';
31
31
  import LockOutlinedIcon from '@mui/icons-material/LockOutlined';
@@ -6687,6 +6687,175 @@ function Logout() {
6687
6687
  React__default.createElement(Typography$1, { variant: "h6" }, "Logging out..."))));
6688
6688
  }
6689
6689
 
6690
+ function NavbarMenuBar({ menus, isMobile = false, closeDrawer, hoverSwitchDelayMs = 100, }) {
6691
+ const hasPermissionTo = useHasPermission();
6692
+ const [openMenuId, setOpenMenuId] = useState(null);
6693
+ const [menuAnchorEl, setMenuAnchorEl] = useState(null);
6694
+ const triggerRefs = useRef({});
6695
+ const hoverTimeoutRef = useRef(null);
6696
+ const visibleMenus = useMemo(() => {
6697
+ return menus
6698
+ .filter((menu) => !menu.permission || hasPermissionTo(menu.permission))
6699
+ .map((menu) => (Object.assign(Object.assign({}, menu), { items: menu.items.filter((item) => !item.permission || hasPermissionTo(item.permission)) })))
6700
+ .filter((menu) => menu.items.length > 0 || Boolean(menu.to));
6701
+ }, [hasPermissionTo, menus]);
6702
+ const clearHoverTimeout = () => {
6703
+ if (hoverTimeoutRef.current !== null) {
6704
+ window.clearTimeout(hoverTimeoutRef.current);
6705
+ hoverTimeoutRef.current = null;
6706
+ }
6707
+ };
6708
+ const focusTrigger = (menuId) => {
6709
+ var _a;
6710
+ (_a = triggerRefs.current[menuId]) === null || _a === void 0 ? void 0 : _a.focus();
6711
+ };
6712
+ const getAdjacentMenu = (menuId, direction) => {
6713
+ var _a;
6714
+ const currentIndex = visibleMenus.findIndex((menu) => menu.id === menuId);
6715
+ if (currentIndex === -1) {
6716
+ return null;
6717
+ }
6718
+ const nextIndex = (currentIndex + direction + visibleMenus.length) % visibleMenus.length;
6719
+ return (_a = visibleMenus[nextIndex]) !== null && _a !== void 0 ? _a : null;
6720
+ };
6721
+ const openMenu = (menuId, anchorEl) => {
6722
+ var _a;
6723
+ clearHoverTimeout();
6724
+ setOpenMenuId(menuId);
6725
+ setMenuAnchorEl((_a = anchorEl !== null && anchorEl !== void 0 ? anchorEl : triggerRefs.current[menuId]) !== null && _a !== void 0 ? _a : null);
6726
+ };
6727
+ const closeMenu = () => {
6728
+ clearHoverTimeout();
6729
+ setOpenMenuId(null);
6730
+ setMenuAnchorEl(null);
6731
+ };
6732
+ useEffect(() => () => clearHoverTimeout(), []);
6733
+ useEffect(() => {
6734
+ if (!openMenuId) {
6735
+ return;
6736
+ }
6737
+ const handlePointerDown = (event) => {
6738
+ const target = event.target;
6739
+ const trigger = triggerRefs.current[openMenuId];
6740
+ const menuPaper = document.querySelector(`#${openMenuId}-menu .MuiPaper-root`);
6741
+ if (target &&
6742
+ ((trigger && trigger.contains(target)) ||
6743
+ (menuPaper && menuPaper.contains(target)))) {
6744
+ return;
6745
+ }
6746
+ closeMenu();
6747
+ };
6748
+ document.addEventListener("mousedown", handlePointerDown, true);
6749
+ document.addEventListener("touchstart", handlePointerDown, true);
6750
+ return () => {
6751
+ document.removeEventListener("mousedown", handlePointerDown, true);
6752
+ document.removeEventListener("touchstart", handlePointerDown, true);
6753
+ };
6754
+ }, [openMenuId]);
6755
+ const handleMenuOpen = (event, menuId) => {
6756
+ if (openMenuId === menuId) {
6757
+ closeMenu();
6758
+ return;
6759
+ }
6760
+ openMenu(menuId, event.currentTarget);
6761
+ };
6762
+ const handleMenuHover = (event, menuId) => {
6763
+ if (isMobile || !openMenuId || openMenuId === menuId) {
6764
+ return;
6765
+ }
6766
+ clearHoverTimeout();
6767
+ hoverTimeoutRef.current = window.setTimeout(() => {
6768
+ openMenu(menuId, event.currentTarget);
6769
+ }, hoverSwitchDelayMs);
6770
+ };
6771
+ const handleMenuKeyDown = (event, menu) => {
6772
+ switch (event.key) {
6773
+ case "Enter":
6774
+ case " ":
6775
+ case "ArrowDown": {
6776
+ if (!menu.items.length) {
6777
+ return;
6778
+ }
6779
+ event.preventDefault();
6780
+ openMenu(menu.id, event.currentTarget);
6781
+ break;
6782
+ }
6783
+ case "ArrowRight":
6784
+ case "ArrowLeft": {
6785
+ event.preventDefault();
6786
+ const adjacentMenu = getAdjacentMenu(menu.id, event.key === "ArrowRight" ? 1 : -1);
6787
+ if (!adjacentMenu) {
6788
+ return;
6789
+ }
6790
+ focusTrigger(adjacentMenu.id);
6791
+ if (openMenuId && adjacentMenu.items.length) {
6792
+ openMenu(adjacentMenu.id);
6793
+ }
6794
+ break;
6795
+ }
6796
+ case "Escape": {
6797
+ if (!openMenuId) {
6798
+ return;
6799
+ }
6800
+ event.preventDefault();
6801
+ closeMenu();
6802
+ focusTrigger(menu.id);
6803
+ break;
6804
+ }
6805
+ }
6806
+ };
6807
+ return (React__default.createElement(React__default.Fragment, null, visibleMenus.map((menu) => {
6808
+ var _a;
6809
+ const isMenuOpen = openMenuId === menu.id;
6810
+ const buttonId = `${menu.id}-trigger`;
6811
+ return menu.items.length > 0 ? (React__default.createElement(React__default.Fragment, { key: menu.id },
6812
+ React__default.createElement(Button, { ref: (node) => {
6813
+ triggerRefs.current[menu.id] = node;
6814
+ }, id: buttonId, "aria-controls": `${menu.id}-menu`, "aria-haspopup": "true", "aria-expanded": isMenuOpen ? "true" : undefined, onClick: (event) => handleMenuOpen(event, menu.id), onMouseEnter: (event) => handleMenuHover(event, menu.id), onMouseLeave: clearHoverTimeout, onKeyDown: (event) => handleMenuKeyDown(event, menu), sx: {
6815
+ marginRight: (theme) => theme.spacing(2),
6816
+ color: "white",
6817
+ display: "flex",
6818
+ alignItems: "center",
6819
+ whiteSpace: "nowrap",
6820
+ } },
6821
+ menu.label,
6822
+ isMenuOpen ? (React__default.createElement(ExpandLess, { sx: { marginLeft: (theme) => theme.spacing(0.5) } })) : (React__default.createElement(ExpandMore, { sx: { marginLeft: (theme) => theme.spacing(0.5) } }))),
6823
+ React__default.createElement(Menu, { id: `${menu.id}-menu`, anchorEl: isMenuOpen ? menuAnchorEl : null, hideBackdrop: true, disableScrollLock: true, keepMounted: true, open: isMenuOpen, onClose: closeMenu, sx: {
6824
+ pointerEvents: "none",
6825
+ "& .MuiPaper-root": {
6826
+ pointerEvents: "auto",
6827
+ },
6828
+ }, MenuListProps: {
6829
+ "aria-labelledby": buttonId,
6830
+ autoFocusItem: isMenuOpen,
6831
+ }, anchorOrigin: {
6832
+ vertical: "bottom",
6833
+ horizontal: "center",
6834
+ }, transformOrigin: {
6835
+ vertical: "top",
6836
+ horizontal: "center",
6837
+ } }, menu.items.map((item, index) => (React__default.createElement(MenuItem, { key: `${menu.id}-item-${item.label}-${index}`, component: Link, to: item.to, onClick: () => {
6838
+ closeMenu();
6839
+ closeDrawer === null || closeDrawer === void 0 ? void 0 : closeDrawer();
6840
+ }, sx: {
6841
+ textDecoration: "none",
6842
+ color: "inherit",
6843
+ } },
6844
+ React__default.createElement(Typography$1, null, item.label))))))) : (React__default.createElement(Button, { key: menu.id, ref: (node) => {
6845
+ triggerRefs.current[menu.id] = node;
6846
+ }, id: buttonId, component: Link, to: (_a = menu.to) !== null && _a !== void 0 ? _a : "#", onClick: () => {
6847
+ closeMenu();
6848
+ closeDrawer === null || closeDrawer === void 0 ? void 0 : closeDrawer();
6849
+ }, onKeyDown: (event) => handleMenuKeyDown(event, menu), sx: {
6850
+ marginRight: (theme) => theme.spacing(2),
6851
+ color: "white",
6852
+ display: "flex",
6853
+ alignItems: "center",
6854
+ whiteSpace: "nowrap",
6855
+ } }, menu.label));
6856
+ })));
6857
+ }
6858
+
6690
6859
  const TimeAndUserMenu = () => {
6691
6860
  const { getUserName } = useToken();
6692
6861
  const [userName, setUserName] = useState(getUserName());
@@ -9667,7 +9836,7 @@ const ConfigurationContext = createContext([
9667
9836
  [],
9668
9837
  () => React__default.createElement(React__default.Fragment, null),
9669
9838
  ]);
9670
- const NavbarContext = createContext(() => React__default.createElement(React__default.Fragment, null));
9839
+ const NavbarContext = createContext(() => (React__default.createElement(React__default.Fragment, null)));
9671
9840
 
9672
9841
  const AreaSelector$1 = lazy(() => Promise.resolve().then(function () { return areaSelector; }).then((mod) => ({
9673
9842
  default: mod.AreaSelector,
@@ -9677,7 +9846,8 @@ function Header({ showAreaSelector = false, showTrendingsV2Icon = true, navbarTi
9677
9846
  const CustomNavbar = useContext(NavbarContext);
9678
9847
  const [drawerOpen, setDrawerOpen] = useState(false);
9679
9848
  const hasPermissionTo = useHasPermission();
9680
- useUserContext();
9849
+ const theme = useTheme();
9850
+ const isCompactNavigation = useMediaQuery(theme.breakpoints.down("lg"));
9681
9851
  const handleDrawerToggle = () => {
9682
9852
  setDrawerOpen(!drawerOpen);
9683
9853
  };
@@ -9701,19 +9871,23 @@ function Header({ showAreaSelector = false, showTrendingsV2Icon = true, navbarTi
9701
9871
  return (React__default.createElement(React__default.Fragment, null,
9702
9872
  React__default.createElement(AppBar, { position: "static", sx: {
9703
9873
  backgroundColor: (theme) => theme.palette.primary.main,
9874
+ zIndex: (theme) => theme.zIndex.modal + 1,
9704
9875
  } },
9705
- React__default.createElement(Toolbar, { sx: { backgroundColor: (theme) => theme.palette.primary.main } },
9706
- React__default.createElement(Hidden, { mdUp: true },
9707
- React__default.createElement(IconButton$1, { edge: "start", sx: {
9708
- flexGrow: 0,
9709
- marginRight: (theme) => theme.spacing(2),
9710
- textDecoration: "none",
9711
- color: "white",
9712
- textWrap: "nowrap",
9713
- }, color: "inherit", "aria-label": "menu", onClick: handleDrawerToggle },
9714
- React__default.createElement(MenuIcon, null))),
9876
+ React__default.createElement(Toolbar, { sx: {
9877
+ backgroundColor: (theme) => theme.palette.primary.main,
9878
+ minWidth: 0,
9879
+ overflowX: "hidden",
9880
+ } },
9881
+ isCompactNavigation && (React__default.createElement(IconButton$1, { edge: "start", sx: {
9882
+ flexShrink: 0,
9883
+ marginRight: (theme) => theme.spacing(2),
9884
+ textDecoration: "none",
9885
+ color: "white",
9886
+ textWrap: "nowrap",
9887
+ }, color: "inherit", "aria-label": "menu", onClick: handleDrawerToggle },
9888
+ React__default.createElement(MenuIcon, null))),
9715
9889
  React__default.createElement(Typography$1, { variant: "h6", component: Link, to: "/home", sx: {
9716
- flexGrow: 0,
9890
+ flexShrink: 0,
9717
9891
  marginRight: (theme) => theme.spacing(2),
9718
9892
  textDecoration: "none",
9719
9893
  color: "white",
@@ -9722,16 +9896,21 @@ function Header({ showAreaSelector = false, showTrendingsV2Icon = true, navbarTi
9722
9896
  React__default.createElement(Box, { sx: {
9723
9897
  display: "flex",
9724
9898
  flexGrow: 1,
9899
+ minWidth: 0,
9900
+ overflow: "hidden",
9725
9901
  "& a": {
9726
9902
  color: "white",
9727
9903
  },
9728
- } },
9729
- React__default.createElement(Hidden, { smDown: true },
9730
- React__default.createElement(CustomNavbar, { closeDrawer: handleDrawerToggle }))),
9904
+ "& > *": {
9905
+ minWidth: 0,
9906
+ maxWidth: "100%",
9907
+ },
9908
+ } }, !isCompactNavigation && (React__default.createElement(CustomNavbar, { closeDrawer: handleDrawerToggle }))),
9731
9909
  React__default.createElement(Box, { sx: {
9732
9910
  display: "flex",
9733
9911
  alignItems: "center",
9734
9912
  color: "white",
9913
+ flexShrink: 0,
9735
9914
  } },
9736
9915
  showTrendingsV2Icon && (React__default.createElement(Tooltip, { title: "Trendings V2 (ECharts)", placement: "bottom", arrow: true, enterDelay: 1500 },
9737
9916
  React__default.createElement(IconButton$1, { color: "inherit", component: Link, to: "/trendings-v2" },
@@ -9746,8 +9925,11 @@ function Header({ showAreaSelector = false, showTrendingsV2Icon = true, navbarTi
9746
9925
  width: 250,
9747
9926
  "& .MuiDrawer-paper": {
9748
9927
  width: 250,
9749
- marginTop: 56, // Height of AppBar on mobile
9750
- height: `calc(100% - 56px)`,
9928
+ top: { xs: 56, sm: 64 },
9929
+ height: {
9930
+ xs: "calc(100% - 56px)",
9931
+ sm: "calc(100% - 64px)",
9932
+ },
9751
9933
  backgroundColor: (theme) => theme.palette.grey[100], // Light grey background
9752
9934
  // Alternatively, you can use a specific color:
9753
9935
  // backgroundColor: '#f5f5f5',
@@ -11801,9 +11983,10 @@ const NotificationSnackBar = ({ message, onHide = () => { }, severity = "success
11801
11983
  function buildTagsTreeV2(data) {
11802
11984
  const tagsForTree = [];
11803
11985
  data.forEach((el) => {
11986
+ var _a, _b;
11804
11987
  const tagForTree = {
11805
11988
  id: el.TagId,
11806
- parent: el.ParentTagFolderId || 0,
11989
+ parent: (_b = (_a = el.ParentTagFolderId) !== null && _a !== void 0 ? _a : el.ParentTagId) !== null && _b !== void 0 ? _b : 0,
11807
11990
  text: el.TagName,
11808
11991
  data: el,
11809
11992
  droppable: el.TagTypeCode === "F",
@@ -13153,6 +13336,12 @@ const TagsTableV2 = () => {
13153
13336
  // Handler for context menu on the table
13154
13337
  const handleContextMenu = useCallback((e) => {
13155
13338
  var _a;
13339
+ if (tagsTreeModalOpen ||
13340
+ bitSelectorModalOpen ||
13341
+ saveAsViewModalOpen ||
13342
+ loadViewOpen) {
13343
+ return;
13344
+ }
13156
13345
  e.preventDefault();
13157
13346
  // Find the closest row element
13158
13347
  const target = e.target;
@@ -13174,7 +13363,13 @@ const TagsTableV2 = () => {
13174
13363
  }
13175
13364
  // Right-clicked on empty table area - pass null to show only general options
13176
13365
  showContextMenu(e, null, "chartContextV2");
13177
- }, [showContextMenu]);
13366
+ }, [
13367
+ showContextMenu,
13368
+ tagsTreeModalOpen,
13369
+ bitSelectorModalOpen,
13370
+ saveAsViewModalOpen,
13371
+ loadViewOpen,
13372
+ ]);
13178
13373
  // Calculate cursor data values for each tag
13179
13374
  const cursorValues = useMemo(() => {
13180
13375
  var _a, _b;
@@ -15075,7 +15270,7 @@ const TrendingsPageV2 = () => {
15075
15270
  // Fetch views
15076
15271
  const { data: views, isLoading: viewsLoading, isError: viewsIsError, error: viewsError, isSuccess: viewSuccess, } = useSearchViews({ autoRefresh });
15077
15272
  // Fetch view tags
15078
- const { data: viewTagsData, isLoading: viewTagsLoading, isError: viewTagsIsError, error: viewTagsError, isSuccess: viewTagsSuccess, } = useSearchViewTags({ viewId });
15273
+ const { data: viewTagsData, isLoading: viewTagsLoading, isFetching: viewTagsFetching, isError: viewTagsIsError, error: viewTagsError, isSuccess: viewTagsSuccess, } = useSearchViewTags({ viewId });
15079
15274
  // Memoize tagIds for series query
15080
15275
  // Tags are sorted in DESCENDING order to match TrendingChartV2 processing
15081
15276
  const tagIds = useMemo(() => Object.values(viewTags)
@@ -15112,7 +15307,7 @@ const TrendingsPageV2 = () => {
15112
15307
  return stableTagIdsRef.current;
15113
15308
  }, [realTagIds, timeScopeStart, timeScopeEnd]);
15114
15309
  // Fetch series data using stable query key
15115
- const { data: series, isLoading: seriesLoading, isError: seriesIsError, error: seriesError, } = useSearchSeries({
15310
+ const { data: series, isLoading: seriesLoading, isFetching: seriesFetching, isError: seriesIsError, error: seriesError, } = useSearchSeries({
15116
15311
  start: timeScopeStart.getTime(),
15117
15312
  end: timeScopeEnd.getTime(),
15118
15313
  tagIds: queryTagIds,
@@ -15316,7 +15511,7 @@ const TrendingsPageV2 = () => {
15316
15511
  seriesError,
15317
15512
  seriesIsError,
15318
15513
  ]);
15319
- const isLoading = viewsLoading || viewTagsLoading;
15514
+ const isLoading = viewsLoading || (viewTagsLoading && viewTagsFetching);
15320
15515
  return (React__default.createElement(React__default.Fragment, null,
15321
15516
  React__default.createElement(HelmetDexteel, { title: "Trendings" }),
15322
15517
  React__default.createElement("div", { style: {
@@ -15353,7 +15548,7 @@ const TrendingsPageV2 = () => {
15353
15548
  React__default.createElement(Group$1, { orientation: "vertical", style: { width: "100%", height: "100%" } },
15354
15549
  React__default.createElement(Panel, { defaultSize: 80, minSize: 20 },
15355
15550
  React__default.createElement("div", { style: { height: "100%", width: "100%" } },
15356
- React__default.createElement(TrendingChartV2, { customOptions: chartOptions, series: filteredSeries, isLoading: seriesLoading, onChartReady: setChartInstance, dataLoadedTrigger: dataLoadedTrigger }))),
15551
+ React__default.createElement(TrendingChartV2, { customOptions: chartOptions, series: filteredSeries, isLoading: seriesLoading && seriesFetching, onChartReady: setChartInstance, dataLoadedTrigger: dataLoadedTrigger }))),
15357
15552
  React__default.createElement(Separator, { style: {
15358
15553
  height: "10px",
15359
15554
  background: "#f0f0f0",
@@ -20254,5 +20449,5 @@ var areaSelector = /*#__PURE__*/Object.freeze({
20254
20449
  AreaSelector: AreaSelector
20255
20450
  });
20256
20451
 
20257
- export { Account, AssetProvider, AssetTreePicker, AuthContext, AuthProvider, ButtonWithLoading, ChangePassword, CheckBoxControl, Configuration$1 as Configuration, ContextMenu$1 as ContextMenu, ContextMenuMESFProvider, CreateNewAssetDialog, CurrencyFormatter, DataGridControl, DateFormatter, DateTimeFormatter, ENTRY_INITIAL_VALUES$1 as ENTRY_INITIAL_VALUES, EditAssetDialog, ErrorModal, ExcelIcon, FetchError, FilterPanel, GenericPanel, GenericTable, GetCrewColor, GetShiftColor, HelmetDexteel, IntegerFormatter, LogbookSettingsInitialState, LogbookSettingsProvider, Login, Logout, LongFilterPanel, MESApiService, MESFLogbookEntry$1 as MESFLogbookEntry, MESFLogbookReport$1 as MESFLogbookReport, MESFMain, MESSAGE_API, MESSAGE_ERRORS, MasterDetailPanel, MesfModal, ModalTreeFilterControl, MultipleSelectorControl, NumberFormatter, RemoveAssetDialog, SPExecutorPage, ShiftDayNavigatorControl, ShiftNavigatorProvider, ShiftPeriodNavigatorControl, SimplePasswordControl, SimpleSelectorControl, TimeAndUserMenu, TimeFormatter, TimeService, TreePickerControl, TreePickerControlV2, USER_LABELS, UTLSettingsProvider, UserProvider, axiosInstance, deleteUser, dxtServerTimeZone, dxtToLocalServerTime, dxtToUTC, formatNumber, getAuthTypes, getCrewStyle, getDataUser, getEntries$1 as getEntries, getError, getMomentTz, getShiftByParameters, getShiftStyle, getShiftsRangeByParameters, getTokenFromLS, getUserPermissionsFromAPI, getUsers, logbookNavbar, logbookRoutesMESF, renewToken, routeLogbookEntry$1 as routeLogbookEntry, routeLogbookReport, useSearchAssets as searchAssets, sectionLogbookNavbar, sectionLogbookRoutesMESF, setPassword, setProfilesToUser, themeDXT, themeMESF, upsertUser, useAssetContext, useContextMenuMESF, useEntries$1 as useEntries, useFrontendVersionCheck, useHasPermission, useHasProfile, useLogbookSettings, useMesfRealtime, useShiftNavigator, useShiftNavigatorManager, useToken, useUTLSettingsContext, useUserContext };
20452
+ export { Account, AssetProvider, AssetTreePicker, AuthContext, AuthProvider, ButtonWithLoading, ChangePassword, CheckBoxControl, Configuration$1 as Configuration, ContextMenu$1 as ContextMenu, ContextMenuMESFProvider, CreateNewAssetDialog, CurrencyFormatter, DataGridControl, DateFormatter, DateTimeFormatter, ENTRY_INITIAL_VALUES$1 as ENTRY_INITIAL_VALUES, EditAssetDialog, ErrorModal, ExcelIcon, FetchError, FilterPanel, GenericPanel, GenericTable, GetCrewColor, GetShiftColor, HelmetDexteel, IntegerFormatter, LogbookSettingsInitialState, LogbookSettingsProvider, Login, Logout, LongFilterPanel, MESApiService, MESFLogbookEntry$1 as MESFLogbookEntry, MESFLogbookReport$1 as MESFLogbookReport, MESFMain, MESSAGE_API, MESSAGE_ERRORS, MasterDetailPanel, MesfModal, ModalTreeFilterControl, MultipleSelectorControl, NavbarMenuBar, NumberFormatter, RemoveAssetDialog, SPExecutorPage, ShiftDayNavigatorControl, ShiftNavigatorProvider, ShiftPeriodNavigatorControl, SimplePasswordControl, SimpleSelectorControl, TimeAndUserMenu, TimeFormatter, TimeService, TreePickerControl, TreePickerControlV2, USER_LABELS, UTLSettingsProvider, UserProvider, axiosInstance, deleteUser, dxtServerTimeZone, dxtToLocalServerTime, dxtToUTC, formatNumber, getAuthTypes, getCrewStyle, getDataUser, getEntries$1 as getEntries, getError, getMomentTz, getShiftByParameters, getShiftStyle, getShiftsRangeByParameters, getTokenFromLS, getUserPermissionsFromAPI, getUsers, logbookNavbar, logbookRoutesMESF, renewToken, routeLogbookEntry$1 as routeLogbookEntry, routeLogbookReport, useSearchAssets as searchAssets, sectionLogbookNavbar, sectionLogbookRoutesMESF, setPassword, setProfilesToUser, themeDXT, themeMESF, upsertUser, useAssetContext, useContextMenuMESF, useEntries$1 as useEntries, useFrontendVersionCheck, useHasPermission, useHasProfile, useLogbookSettings, useMesfRealtime, useShiftNavigator, useShiftNavigatorManager, useToken, useUTLSettingsContext, useUserContext };
20258
20453
  //# sourceMappingURL=index.esm.js.map