@digital-ai/dot-components 2.0.0 → 2.0.2
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/CHANGE_LOG.md +61 -5
- package/README.md +1 -1
- package/index.esm.js +397 -723
- package/index.umd.js +1790 -2259
- package/lib/components/avatar/Avatar.d.ts +2 -2
- package/lib/components/button-toggle/ButtonToggle.d.ts +3 -1
- package/lib/components/index.d.ts +2 -0
- package/lib/components/linear-progress/LinearProgress.d.ts +14 -0
- package/lib/components/linear-progress/LinearProgress.styles.d.ts +3 -0
- package/lib/components/linear-progress/index.d.ts +2 -0
- package/lib/components/menu/Menu.styles.d.ts +1 -1
- package/lib/components/menu/utils/constants.d.ts +2 -2
- package/lib/components/menu/utils/helpers.d.ts +1 -1
- package/lib/components/popper/Popper.styles.d.ts +1 -1
- package/lib/components/table/TablePagination.styles.d.ts +1 -0
- package/lib/theme-provider/ThemeProvider.d.ts +14 -1
- package/package.json +3 -2
package/index.esm.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { jsx, jsxs, Fragment as Fragment$1 } from 'react/jsx-runtime';
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import { useState, useEffect, forwardRef, useRef, Fragment, createElement, useMemo, useContext, createContext, useCallback } from 'react';
|
|
4
|
-
import { Tooltip, Icon, Typography, Accordion, AccordionSummary, AccordionDetails, AccordionActions, InputAdornment, InputLabel, TextField, Toolbar, Alert, Fade, IconButton, Link, Avatar, List, ListItem, CircularProgress, Popper, MenuList, MenuItem, Paper, ClickAwayListener, Drawer, ListItemIcon, Collapse, ListSubheader, Divider, ListItemText, Badge, useMediaQuery, Autocomplete,
|
|
4
|
+
import { Tooltip, Icon, Typography, Accordion, AccordionSummary, AccordionDetails, AccordionActions, InputAdornment, InputLabel, TextField, Toolbar, Alert, Fade, IconButton, Link, Avatar, Button, darken, List, ListItem, CircularProgress, Popper, MenuList, MenuItem, Paper, ClickAwayListener, Drawer, ListItemIcon, Collapse, ListSubheader, Divider, ListItemText, Badge, useMediaQuery, Autocomplete, Chip, AvatarGroup, Breadcrumbs, ToggleButtonGroup, ToggleButton, Card, CardContent, CardHeader, FormControlLabel, Checkbox, FormControl, FormGroup, FormLabel, FormHelperText, Dialog, DialogContent, DialogActions, useTheme as useTheme$1, RadioGroup, Radio, Switch, Skeleton, Snackbar, ButtonGroup, TablePagination, TableContainer, TableCell, TableRow, TableBody, TableSortLabel, TableHead, Table, Tabs, Tab, LinearProgress } from '@mui/material';
|
|
5
5
|
import styled, { css, createGlobalStyle, ThemeProvider as ThemeProvider$1, keyframes } from 'styled-components';
|
|
6
|
-
import { createTheme, ThemeProvider, alpha } from '@mui/material/styles';
|
|
6
|
+
import { createTheme, ThemeProvider, alpha, useTheme } from '@mui/material/styles';
|
|
7
7
|
import { StylesProvider } from '@mui/styles';
|
|
8
8
|
import { useDropzone } from 'react-dropzone';
|
|
9
9
|
import GridLayout, { WidthProvider } from 'react-grid-layout';
|
|
@@ -41,13 +41,11 @@ const DotTooltip = ({
|
|
|
41
41
|
}), void 0) : children;
|
|
42
42
|
};
|
|
43
43
|
|
|
44
|
-
const rootClassName
|
|
44
|
+
const rootClassName$$ = 'dot-icon';
|
|
45
45
|
const StyledIcon = styled(Icon).withConfig({
|
|
46
46
|
displayName: "Iconstyles__StyledIcon",
|
|
47
47
|
componentId: "st0ybo-0"
|
|
48
|
-
})(["", ""], ({
|
|
49
|
-
theme
|
|
50
|
-
}) => css(["&.", "{align-items:center;box-sizing:content-box;color:", ";display:flex;float:left;font-size:20px;justify-content:center;&.MuiIcon-fontSizeLarge{font-size:28px;height:35px;width:35px;i{height:28px;}}&.MuiIcon-fontSizeSmall{font-size:18px;i{height:18px;}}i{height:20px;&:before{font-family:'dot' !important;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;}&.icon-flow:before{content:\"\\ea09\";}&.icon-applications:before{content:'\\ea03';}&.icon-migration:before{content:'\\ea04';}&.icon-cleanup:before{content:'\\ea05';}&.icon-user-add:before{content:'\\ea06';}&.icon-back-solid:before{content:'\\ea07';}&.icon-defect:before{content:'\\ea08';}&.icon-singleproject:before{content:'\\e9f9';}&.icon-share:before{content:'\\e9fa';}&.icon-requesttemplate:before{content:'\\e9fb';}&.icon-project:before{content:'\\e9fc';}&.icon-progresstracker:before{content:'\\e9fd';}&.icon-devops:before{content:'\\e9fe';}&.icon-closedproject:before{content:'\\e9ff';}&.icon-chess:before{content:'\\ea00';}&.icon-ball:before{content:'\\ea01';}&.icon-mobile:before{content:'\\ea02';}&.icon-ideaspace:before{content:'\\e9de';}&.icon-testtemplate:before{content:'\\e9df';}&.icon-regressionset:before{content:'\\e9e0';}&.icon-testset:before{content:'\\e9e1';}&.icon-forecast:before{content:'\\e9e2';}&.icon-bookmark:before{content:'\\e9e3';}&.icon-forward:before{content:'\\e9e4';}&.icon-assetapp:before{content:'\\e9e5';}&.icon-unbundle:before{content:'\\e9e6';}&.icon-stream:before{content:'\\e9e7';}&.icon-stream:before{content:'\\e9e7';}&.icon-hourglass:before{content:'\\e9e8';}&.icon-support:before{content:'\\e9e9';}&.icon-trophy:before{content:'\\e9ea';}&.icon-regression:before{content:'\\e9eb';}&.icon-tasktemplate:before{content:'\\e9ec';}&.icon-defecttemplate:before{content:'\\e9ed';}&.icon-request:before{content:'\\e9ee';}&.icon-activity:before{content:'\\e9ef';}&.icon-bulb:before{content:'\\e9f0';}&.icon-wallet:before{content:'\\e9f1';}&.icon-epic:before{content:'\\e9f2';}&.icon-column-swap-right:before{content:'\\e9f3';}&.icon-column-swap-left:before{content:'\\e9f4';}&.icon-gears:before{content:'\\e9f5';}&.icon-portfolioitemtemplate:before{content:'\\e9f6';}&.icon-storytemplate:before{content:'\\e9f7';}&.icon-story:before{content:'\\e9f8';}&.icon-check-line:before{content:'\\e9dd';}&.icon-plugins:before{content:'\\e9dc';}&.icon-integrations:before{content:'\\e9db';}&.icon-line-graph:before{content:'\\e9d7';}&.icon-rocket-filled:before{content:'\\e9d8';}&.icon-circle-check-outline:before{content:'\\e9d9';}&.icon-circle-info-outline:before{content:'\\e9da';}&.icon-analytics:before{content:'\\e9d4';}&.icon-Increment:before{content:'\\e9d5';}&.icon-Portfolio:before{content:'\\e9d6';}&.icon-user-security:before{content:'\\e9d2';}&.icon-rocket:before{content:'\\e9d3';}&.icon-merge:before{content:'\\e9d1';}&.icon-cpu:before{content:'\\e9d0';}&.icon-progression:before{content:'\\e9cf';}&.icon-commit:before{content:'\\e95f';}&.icon-design:before{content:'\\e960';}&.icon-key:before{content:'\\e981';}&.icon-infrastructure:before{content:'\\e989';}&.icon-report:before{content:'\\e9ce';}&.icon-package:before{content:'\\e9c9';}&.icon-security-off:before{content:'\\e9ca';}&.icon-security-on:before{content:'\\e9cb';}&.icon-marker-check:before{content:'\\e9cc';}&.icon-restore:before{content:'\\e9cd';}&.icon-check-outlined:before{content:'\\e9c7';}&.icon-circle-half-full:before{content:'\\e9c8';}&.icon-host:before{content:'\\e9b9';}&.icon-cluster:before{content:'\\e9ba';}&.icon-environment:before{content:'\\e9bb';}&.icon-monitor-controls:before{content:'\\e9bc';}&.icon-flag:before{content:'\\e9bd';}&.icon-satelite:before{content:'\\e9be';}&.icon-satelite-group:before{content:'\\e9bf';}&.icon-monitor-gears:before{content:'\\e9c0';}&.icon-patch:before{content:'\\e9b6';}&.icon-branch:before{content:'\\e9b4';}&.icon-send-airplane:before{content:'\\e9b5';}&.icon-briefcase:before{content:'\\e9b7';}&.icon-cluster-dependencies:before{content:'\\e9b8';}&.icon-script:before{content:'\\e966';}&.icon-pattern-bundle:before{content:'\\e967';}&.icon-outline:before{content:'\\e968';}&.icon-apps:before{content:'\\e969';}&.icon-archive:before{content:'\\e96a';}&.icon-arrow-down:before{content:'\\e96b';}&.icon-arrow-right:before{content:'\\e96c';}&.icon-arrow-up:before{content:'\\e96d';}&.icon-attachment:before{content:'\\e96e';}&.icon-board:before{content:'\\e96f';}&.icon-calendar:before{content:'\\e970';}&.icon-change:before{content:'\\e971';}&.icon-chevron-right:before{content:'\\e972';}&.icon-circle-minus-outlines:before{content:'\\e973';}&.icon-circle-paused:before{content:'\\e974';}&.icon-column:before{content:'\\e975';}&.icon-comment:before{content:'\\e976';}&.icon-configuration-preferences:before{content:'\\e977';}&.icon-conversation-bubbles:before{content:'\\e978';}&.icon-dashboard:before{content:'\\e979';}&.icon-database:before{content:'\\e97a';}&.icon-delivery-eta-icon:before{content:'\\e97b';}&.icon-download:before{content:'\\e97c';}&.icon-drag:before{content:'\\e97d';}&.icon-duplicate:before{content:'\\e97e';}&.icon-exit:before{content:'\\e97f';}&.icon-expand-chevrons:before{content:'\\e980';}&.icon-expander:before{content:'\\e981';}&.icon-file-image:before{content:'\\e982';}&.icon-file-lines:before{content:'\\e983';}&.icon-file-warning:before{content:'\\e984';}&.icon-file:before{content:'\\e985';}&.icon-filter:before{content:'\\e986';}&.icon-flag-none:before{content:'\\e987';}&.icon-folder:before{content:'\\e988';}&.icon-full-screen:before{content:'\\e989';}&.icon-fullscreen-enter:before{content:'\\e98a';}&.icon-fullscreen-exit:before{content:'\\e98b';}&.icon-grid:before{content:'\\e98c';}&.icon-hard-drive:before{content:'\\e98d';}&.icon-help:before{content:'\\e98e';}&.icon-history:before{content:'\\e98f';}&.icon-inbox:before{content:'\\e990';}&.icon-link:before{content:'\\e991';}&.icon-list:before{content:'\\e992';}&.icon-lock:before{content:'\\e993';}&.icon-mail:before{content:'\\e994';}&.icon-menu:before{content:'\\e995';}&.icon-monitor-satellite:before{content:'\\e996';}&.icon-monitor:before{content:'\\e997';}&.icon-notification-bell:before{content:'\\e998';}&.icon-open-new-tab:before{content:'\\e999';}&.icon-options:before{content:'\\e99a';}&.icon-parallel:before{content:'\\e99b';}&.icon-pending-clock:before{content:'\\e99c';}&.icon-play:before{content:'\\e99d';}&.icon-redo:before{content:'\\e99e';}&.icon-refresh:before{content:'\\e99f';}&.icon-release:before{content:'\\e9a0';}&.icon-search:before{content:'\\e9a3';}&.icon-sequential:before{content:'\\e9a4';}&.icon-sort-asc:before{content:'\\e9a5';}&.icon-sort-desc:before{content:'\\e9a6';}&.icon-star-favorites-active:before{content:'\\e9a7';}&.icon-star-favorites-default:before{content:'\\e9a8';}&.icon-target:before{content:'\\e9a9';}&.icon-task:before{content:'\\e9aa';}&.icon-template:before{content:'\\e9ab';}&.icon-undo:before{content:'\\e9ac';}&.icon-unlock:before{content:'\\e9ad';}&.icon-variable:before{content:'\\e9ae';}&.icon-vault:before{content:'\\e9af';}&.icon-visibility-off:before{content:'\\e9b0';}&.icon-visibility-on:before{content:'\\e9b1';}&.icon-webhook:before{content:'\\e9b2';}&.icon-wrench:before{content:'\\e9b3';}&.icon-bright:before{content:'\\e961';}&.icon-rogue-commits:before{content:'\\e962';}&.icon-home:before{content:'\\e963';}&.icon-blocking-issues:before{content:'\\e964';}&.icon-print-link:before{content:'\\e965';}&.icon-logo-deploy:before{content:'\\e902';}&.icon-logo-experitest:before{content:'\\e903';}&.icon-logo-numerify:before{content:'\\e904';}&.icon-logo-arxan:before{content:'\\e905';}&.icon-logo-continuum:before{content:'\\e906';}&.icon-logo-versionone:before{content:'\\e907';}&.icon-logo-release:before{content:'\\e908';}&.icon-warning-solid:before{content:'\\e909';}&.icon-warning-outline:before{content:'\\e90a';}&.icon-info-solid:before{content:'\\e90b';}&.icon-minus-solid:before{content:'\\e90c';}&.icon-check-solid:before{content:'\\e90d';}&.icon-error-solid:before{content:'\\e90e';}&.icon-error-outlines:before{content:'\\e90f';}&.icon-add-outlined:before{content:'\\e910';}&.icon-add-solid:before{content:'\\e911';}&.icon-clear-solid:before{content:'\\e912';}&.icon-dark:before{content:'\\e913';}&.icon-location:before{content:'\\e914';}&.icon-roadmap:before{content:'\\e915';}&.icon-follow-solid:before{content:'\\e916';}&.icon-follow-outlined:before{content:'\\e917';}&.icon-video:before{content:'\\e918';}&.icon-thumbs-down:before{content:'\\e919';}&.icon-camera:before{content:'\\e91a';}&.icon-users:before{content:'\\e91b';}&.icon-user:before{content:'\\e91c';}&.icon-announcement:before{content:'\\e91d';}&.icon-not-allowed:before{content:'\\e91e';}&.icon-zoom-out:before{content:'\\e91f';}&.icon-zoom-in:before{content:'\\e920';}&.icon-triangle:before{content:'\\e921';}&.icon-delay:before{content:'\\e922';}&.icon-circle-outline:before{content:'\\e923';}&.icon-circle:before{content:'\\e924';}&.icon-add-from-list:before{content:'\\e925';}&.icon-sync:before{content:'\\e926';}&.icon-keyboard:before{content:'\\e927';}&.icon-planner:before{content:'\\e928';}&.icon-tag:before{content:'\\e929';}&.icon-progress:before{content:'\\e92a';}&.icon-timeline:before{content:'\\e92b';}&.icon-abort:before{content:'\\e92c';}&.icon-cancel:before{content:'\\e92d';}&.icon-power:before{content:'\\e92e';}&.icon-resize:before{content:'\\e92f';}&.icon-close:before{content:'\\e930';}&.icon-save:before{content:'\\e931';}&.icon-drag-vertical-up-down:before{content:'\\e932';}&.icon-add:before{content:'\\e933';}&.icon-minus:before{content:'\\e934';}&.icon-target-none:before{content:'\\e935';}&.icon-placeholder:before{content:'\\e936';}&.icon-server:before{content:'\\e937';}&.icon-square-wrench:before{content:'\\e938';}&.icon-square-wrench-check:before{content:'\\e939';}&.icon-square-settings:before{content:'\\e93a';}&.icon-trigger:before{content:'\\e93c';}&.icon-precondition:before{content:'\\e93d';}&.icon-composition:before{content:'\\e93e';}&.icon-block:before{content:'\\e93f';}&.icon-group:before{content:'\\e940';}&.icon-settings-admin-opaque:before{content:'\\e941';}&.icon-puzzle:before{content:'\\e942';}&.icon-alphabet-icon:before{content:'\\e943';}&.icon-crop:before{content:'\\e944';}&.icon-upload-file:before{content:'\\e945';}&.icon-container:before{content:'\\e946';}&.icon-flag-risk:before{content:'\\e947';}&.icon-learn:before{content:'\\e948';}&.icon-tree:before{content:'\\e949';}&.icon-process-template:before{content:'\\e94a';}&.icon-flag-attention:before{content:'\\e94b';}&.icon-collection:before{content:'\\e94c';}&.icon-table:before{content:'\\e94d';}&.icon-linkBrakeIt:before{content:'\\e94e';}&.icon-move-folder:before{content:'\\e94f';}&.icon-columns:before{content:'\\e950';}&.icon-file-word-doc:before{content:'\\e951';}&.icon-file-ppt:before{content:'\\e952';}&.icon-file-zip:before{content:'\\e953';}&.icon-file-xls:before{content:'\\e954';}&.icon-file-pdf:before{content:'\\e955';}&.icon-file-xml:before{content:'\\e956';}&.icon-dictionary-locked:before{content:'\\e957';}&.icon-dictionary:before{content:'\\e958';}&.icon-file-dotted:before{content:'\\e959';}&.icon-file-circle-check:before{content:'\\e95a';}&.icon-back:before{content:'\\e95b';}&.icon-chevron-left:before{content:'\\e95c';}&.icon-chevron-up:before{content:'\\e95d';}&.icon-chevron-down:before{content:'\\e95e';}&.icon-return-level-up:before{content:'\\e95f';}&.icon-return:before{content:'\\e960';}&.icon-edit:before{content:'\\e900';}&.icon-delete:before{content:'\\e901';}&.icon-settings:before{content:'\\e93b';}&.icon-network-drive:before{content:'\\e9a1';}&.icon-GitOps:before{content:'\\e9a2';}&.icon-rss:before{content:'\\e9c1';}&.icon-bug:before{content:'\\e9c2';}&.icon-cloud:before{content:'\\e9c3';}&.icon-more-horizontal:before{content:'\\e9c4';}&.icon-expand:before{content:'\\e9c5';}&.icon-collapse:before{content:'\\e9c6';}}}"], rootClassName$_, theme.palette.text.primary));
|
|
48
|
+
})(["", ""], () => css(["&.", "{align-items:center;box-sizing:content-box;display:flex;float:left;font-size:20px;justify-content:center;&.MuiIcon-fontSizeLarge{font-size:28px;height:35px;width:35px;i{height:28px;}}&.MuiIcon-fontSizeSmall{font-size:18px;i{height:18px;}}i{height:20px;&:before{font-family:'dot' !important;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;}&.icon-flow:before{content:'\\ea09';}&.icon-applications:before{content:'\\ea03';}&.icon-migration:before{content:'\\ea04';}&.icon-cleanup:before{content:'\\ea05';}&.icon-user-add:before{content:'\\ea06';}&.icon-back-solid:before{content:'\\ea07';}&.icon-defect:before{content:'\\ea08';}&.icon-singleproject:before{content:'\\e9f9';}&.icon-share:before{content:'\\e9fa';}&.icon-requesttemplate:before{content:'\\e9fb';}&.icon-project:before{content:'\\e9fc';}&.icon-progresstracker:before{content:'\\e9fd';}&.icon-devops:before{content:'\\e9fe';}&.icon-closedproject:before{content:'\\e9ff';}&.icon-chess:before{content:'\\ea00';}&.icon-ball:before{content:'\\ea01';}&.icon-mobile:before{content:'\\ea02';}&.icon-ideaspace:before{content:'\\e9de';}&.icon-testtemplate:before{content:'\\e9df';}&.icon-regressionset:before{content:'\\e9e0';}&.icon-testset:before{content:'\\e9e1';}&.icon-forecast:before{content:'\\e9e2';}&.icon-bookmark:before{content:'\\e9e3';}&.icon-forward:before{content:'\\e9e4';}&.icon-assetapp:before{content:'\\e9e5';}&.icon-unbundle:before{content:'\\e9e6';}&.icon-stream:before{content:'\\e9e7';}&.icon-stream:before{content:'\\e9e7';}&.icon-hourglass:before{content:'\\e9e8';}&.icon-support:before{content:'\\e9e9';}&.icon-trophy:before{content:'\\e9ea';}&.icon-regression:before{content:'\\e9eb';}&.icon-tasktemplate:before{content:'\\e9ec';}&.icon-defecttemplate:before{content:'\\e9ed';}&.icon-request:before{content:'\\e9ee';}&.icon-activity:before{content:'\\e9ef';}&.icon-bulb:before{content:'\\e9f0';}&.icon-wallet:before{content:'\\e9f1';}&.icon-epic:before{content:'\\e9f2';}&.icon-column-swap-right:before{content:'\\e9f3';}&.icon-column-swap-left:before{content:'\\e9f4';}&.icon-gears:before{content:'\\e9f5';}&.icon-portfolioitemtemplate:before{content:'\\e9f6';}&.icon-storytemplate:before{content:'\\e9f7';}&.icon-story:before{content:'\\e9f8';}&.icon-check-line:before{content:'\\e9dd';}&.icon-plugins:before{content:'\\e9dc';}&.icon-integrations:before{content:'\\e9db';}&.icon-line-graph:before{content:'\\e9d7';}&.icon-rocket-filled:before{content:'\\e9d8';}&.icon-circle-check-outline:before{content:'\\e9d9';}&.icon-circle-info-outline:before{content:'\\e9da';}&.icon-analytics:before{content:'\\e9d4';}&.icon-Increment:before{content:'\\e9d5';}&.icon-Portfolio:before{content:'\\e9d6';}&.icon-user-security:before{content:'\\e9d2';}&.icon-rocket:before{content:'\\e9d3';}&.icon-merge:before{content:'\\e9d1';}&.icon-cpu:before{content:'\\e9d0';}&.icon-progression:before{content:'\\e9cf';}&.icon-commit:before{content:'\\e95f';}&.icon-design:before{content:'\\e960';}&.icon-key:before{content:'\\e981';}&.icon-infrastructure:before{content:'\\e989';}&.icon-report:before{content:'\\e9ce';}&.icon-package:before{content:'\\e9c9';}&.icon-security-off:before{content:'\\e9ca';}&.icon-security-on:before{content:'\\e9cb';}&.icon-marker-check:before{content:'\\e9cc';}&.icon-restore:before{content:'\\e9cd';}&.icon-check-outlined:before{content:'\\e9c7';}&.icon-circle-half-full:before{content:'\\e9c8';}&.icon-host:before{content:'\\e9b9';}&.icon-cluster:before{content:'\\e9ba';}&.icon-environment:before{content:'\\e9bb';}&.icon-monitor-controls:before{content:'\\e9bc';}&.icon-flag:before{content:'\\e9bd';}&.icon-satelite:before{content:'\\e9be';}&.icon-satelite-group:before{content:'\\e9bf';}&.icon-monitor-gears:before{content:'\\e9c0';}&.icon-patch:before{content:'\\e9b6';}&.icon-branch:before{content:'\\e9b4';}&.icon-send-airplane:before{content:'\\e9b5';}&.icon-briefcase:before{content:'\\e9b7';}&.icon-cluster-dependencies:before{content:'\\e9b8';}&.icon-script:before{content:'\\e966';}&.icon-pattern-bundle:before{content:'\\e967';}&.icon-outline:before{content:'\\e968';}&.icon-apps:before{content:'\\e969';}&.icon-archive:before{content:'\\e96a';}&.icon-arrow-down:before{content:'\\e96b';}&.icon-arrow-right:before{content:'\\e96c';}&.icon-arrow-up:before{content:'\\e96d';}&.icon-attachment:before{content:'\\e96e';}&.icon-board:before{content:'\\e96f';}&.icon-calendar:before{content:'\\e970';}&.icon-change:before{content:'\\e971';}&.icon-chevron-right:before{content:'\\e972';}&.icon-circle-minus-outlines:before{content:'\\e973';}&.icon-circle-paused:before{content:'\\e974';}&.icon-column:before{content:'\\e975';}&.icon-comment:before{content:'\\e976';}&.icon-configuration-preferences:before{content:'\\e977';}&.icon-conversation-bubbles:before{content:'\\e978';}&.icon-dashboard:before{content:'\\e979';}&.icon-database:before{content:'\\e97a';}&.icon-delivery-eta-icon:before{content:'\\e97b';}&.icon-download:before{content:'\\e97c';}&.icon-drag:before{content:'\\e97d';}&.icon-duplicate:before{content:'\\e97e';}&.icon-exit:before{content:'\\e97f';}&.icon-expand-chevrons:before{content:'\\e980';}&.icon-expander:before{content:'\\e981';}&.icon-file-image:before{content:'\\e982';}&.icon-file-lines:before{content:'\\e983';}&.icon-file-warning:before{content:'\\e984';}&.icon-file:before{content:'\\e985';}&.icon-filter:before{content:'\\e986';}&.icon-flag-none:before{content:'\\e987';}&.icon-folder:before{content:'\\e988';}&.icon-full-screen:before{content:'\\e989';}&.icon-fullscreen-enter:before{content:'\\e98a';}&.icon-fullscreen-exit:before{content:'\\e98b';}&.icon-grid:before{content:'\\e98c';}&.icon-hard-drive:before{content:'\\e98d';}&.icon-help:before{content:'\\e98e';}&.icon-history:before{content:'\\e98f';}&.icon-inbox:before{content:'\\e990';}&.icon-link:before{content:'\\e991';}&.icon-list:before{content:'\\e992';}&.icon-lock:before{content:'\\e993';}&.icon-mail:before{content:'\\e994';}&.icon-menu:before{content:'\\e995';}&.icon-monitor-satellite:before{content:'\\e996';}&.icon-monitor:before{content:'\\e997';}&.icon-notification-bell:before{content:'\\e998';}&.icon-open-new-tab:before{content:'\\e999';}&.icon-options:before{content:'\\e99a';}&.icon-parallel:before{content:'\\e99b';}&.icon-pending-clock:before{content:'\\e99c';}&.icon-play:before{content:'\\e99d';}&.icon-redo:before{content:'\\e99e';}&.icon-refresh:before{content:'\\e99f';}&.icon-release:before{content:'\\e9a0';}&.icon-search:before{content:'\\e9a3';}&.icon-sequential:before{content:'\\e9a4';}&.icon-sort-asc:before{content:'\\e9a5';}&.icon-sort-desc:before{content:'\\e9a6';}&.icon-star-favorites-active:before{content:'\\e9a7';}&.icon-star-favorites-default:before{content:'\\e9a8';}&.icon-target:before{content:'\\e9a9';}&.icon-task:before{content:'\\e9aa';}&.icon-template:before{content:'\\e9ab';}&.icon-undo:before{content:'\\e9ac';}&.icon-unlock:before{content:'\\e9ad';}&.icon-variable:before{content:'\\e9ae';}&.icon-vault:before{content:'\\e9af';}&.icon-visibility-off:before{content:'\\e9b0';}&.icon-visibility-on:before{content:'\\e9b1';}&.icon-webhook:before{content:'\\e9b2';}&.icon-wrench:before{content:'\\e9b3';}&.icon-bright:before{content:'\\e961';}&.icon-rogue-commits:before{content:'\\e962';}&.icon-home:before{content:'\\e963';}&.icon-blocking-issues:before{content:'\\e964';}&.icon-print-link:before{content:'\\e965';}&.icon-logo-deploy:before{content:'\\e902';}&.icon-logo-experitest:before{content:'\\e903';}&.icon-logo-numerify:before{content:'\\e904';}&.icon-logo-arxan:before{content:'\\e905';}&.icon-logo-continuum:before{content:'\\e906';}&.icon-logo-versionone:before{content:'\\e907';}&.icon-logo-release:before{content:'\\e908';}&.icon-warning-solid:before{content:'\\e909';}&.icon-warning-outline:before{content:'\\e90a';}&.icon-info-solid:before{content:'\\e90b';}&.icon-minus-solid:before{content:'\\e90c';}&.icon-check-solid:before{content:'\\e90d';}&.icon-error-solid:before{content:'\\e90e';}&.icon-error-outlines:before{content:'\\e90f';}&.icon-add-outlined:before{content:'\\e910';}&.icon-add-solid:before{content:'\\e911';}&.icon-clear-solid:before{content:'\\e912';}&.icon-dark:before{content:'\\e913';}&.icon-location:before{content:'\\e914';}&.icon-roadmap:before{content:'\\e915';}&.icon-follow-solid:before{content:'\\e916';}&.icon-follow-outlined:before{content:'\\e917';}&.icon-video:before{content:'\\e918';}&.icon-thumbs-down:before{content:'\\e919';}&.icon-camera:before{content:'\\e91a';}&.icon-users:before{content:'\\e91b';}&.icon-user:before{content:'\\e91c';}&.icon-announcement:before{content:'\\e91d';}&.icon-not-allowed:before{content:'\\e91e';}&.icon-zoom-out:before{content:'\\e91f';}&.icon-zoom-in:before{content:'\\e920';}&.icon-triangle:before{content:'\\e921';}&.icon-delay:before{content:'\\e922';}&.icon-circle-outline:before{content:'\\e923';}&.icon-circle:before{content:'\\e924';}&.icon-add-from-list:before{content:'\\e925';}&.icon-sync:before{content:'\\e926';}&.icon-keyboard:before{content:'\\e927';}&.icon-planner:before{content:'\\e928';}&.icon-tag:before{content:'\\e929';}&.icon-progress:before{content:'\\e92a';}&.icon-timeline:before{content:'\\e92b';}&.icon-abort:before{content:'\\e92c';}&.icon-cancel:before{content:'\\e92d';}&.icon-power:before{content:'\\e92e';}&.icon-resize:before{content:'\\e92f';}&.icon-close:before{content:'\\e930';}&.icon-save:before{content:'\\e931';}&.icon-drag-vertical-up-down:before{content:'\\e932';}&.icon-add:before{content:'\\e933';}&.icon-minus:before{content:'\\e934';}&.icon-target-none:before{content:'\\e935';}&.icon-placeholder:before{content:'\\e936';}&.icon-server:before{content:'\\e937';}&.icon-square-wrench:before{content:'\\e938';}&.icon-square-wrench-check:before{content:'\\e939';}&.icon-square-settings:before{content:'\\e93a';}&.icon-trigger:before{content:'\\e93c';}&.icon-precondition:before{content:'\\e93d';}&.icon-composition:before{content:'\\e93e';}&.icon-block:before{content:'\\e93f';}&.icon-group:before{content:'\\e940';}&.icon-settings-admin-opaque:before{content:'\\e941';}&.icon-puzzle:before{content:'\\e942';}&.icon-alphabet-icon:before{content:'\\e943';}&.icon-crop:before{content:'\\e944';}&.icon-upload-file:before{content:'\\e945';}&.icon-container:before{content:'\\e946';}&.icon-flag-risk:before{content:'\\e947';}&.icon-learn:before{content:'\\e948';}&.icon-tree:before{content:'\\e949';}&.icon-process-template:before{content:'\\e94a';}&.icon-flag-attention:before{content:'\\e94b';}&.icon-collection:before{content:'\\e94c';}&.icon-table:before{content:'\\e94d';}&.icon-linkBrakeIt:before{content:'\\e94e';}&.icon-move-folder:before{content:'\\e94f';}&.icon-columns:before{content:'\\e950';}&.icon-file-word-doc:before{content:'\\e951';}&.icon-file-ppt:before{content:'\\e952';}&.icon-file-zip:before{content:'\\e953';}&.icon-file-xls:before{content:'\\e954';}&.icon-file-pdf:before{content:'\\e955';}&.icon-file-xml:before{content:'\\e956';}&.icon-dictionary-locked:before{content:'\\e957';}&.icon-dictionary:before{content:'\\e958';}&.icon-file-dotted:before{content:'\\e959';}&.icon-file-circle-check:before{content:'\\e95a';}&.icon-back:before{content:'\\e95b';}&.icon-chevron-left:before{content:'\\e95c';}&.icon-chevron-up:before{content:'\\e95d';}&.icon-chevron-down:before{content:'\\e95e';}&.icon-return-level-up:before{content:'\\e95f';}&.icon-return:before{content:'\\e960';}&.icon-edit:before{content:'\\e900';}&.icon-delete:before{content:'\\e901';}&.icon-settings:before{content:'\\e93b';}&.icon-network-drive:before{content:'\\e9a1';}&.icon-GitOps:before{content:'\\e9a2';}&.icon-rss:before{content:'\\e9c1';}&.icon-bug:before{content:'\\e9c2';}&.icon-cloud:before{content:'\\e9c3';}&.icon-more-horizontal:before{content:'\\e9c4';}&.icon-expand:before{content:'\\e9c5';}&.icon-collapse:before{content:'\\e9c6';}}}"], rootClassName$$));
|
|
51
49
|
|
|
52
50
|
const DotIcon = ({
|
|
53
51
|
ariaLabel,
|
|
@@ -57,7 +55,7 @@ const DotIcon = ({
|
|
|
57
55
|
iconId,
|
|
58
56
|
tooltip
|
|
59
57
|
}) => {
|
|
60
|
-
const rootClasses = useStylesWithRootClass(rootClassName
|
|
58
|
+
const rootClasses = useStylesWithRootClass(rootClassName$$, className);
|
|
61
59
|
return jsx(DotTooltip, Object.assign({
|
|
62
60
|
title: tooltip
|
|
63
61
|
}, {
|
|
@@ -106,7 +104,7 @@ const DotTypography = ({
|
|
|
106
104
|
}), void 0);
|
|
107
105
|
};
|
|
108
106
|
|
|
109
|
-
const rootClassName$
|
|
107
|
+
const rootClassName$_ = 'dot-accordion';
|
|
110
108
|
const summaryClassName = 'dot-accordion-summary';
|
|
111
109
|
const detailClassName = 'dot-accordion-details';
|
|
112
110
|
const StyledAccordion = styled(Accordion).withConfig({
|
|
@@ -114,7 +112,7 @@ const StyledAccordion = styled(Accordion).withConfig({
|
|
|
114
112
|
componentId: "sc-1amx4r3-0"
|
|
115
113
|
})(["", ""], ({
|
|
116
114
|
theme
|
|
117
|
-
}) => css(["&.", " .", "{align-items:center;display:flex;&.Mui-expanded{border-top:1px solid rgba(0,0,0,0.12);&:before{opacity:1;}}.MuiAccordionSummary-content{align-items:center;gap:", ";width:calc(100% - ", ");.dot-tooltip{overflow:hidden;}}.MuiAccordionSummary-expandIconWrapper{padding:", ";margin-right:", ";}.MuiTypography-root{margin-bottom:0;}.MuiTypography-body1{padding:2px 0;}}"], rootClassName$
|
|
115
|
+
}) => css(["&.", " .", "{align-items:center;display:flex;&.Mui-expanded{border-top:1px solid rgba(0,0,0,0.12);&:before{opacity:1;}}.MuiAccordionSummary-content{align-items:center;gap:", ";width:calc(100% - ", ");.dot-tooltip{overflow:hidden;}}.MuiAccordionSummary-expandIconWrapper{padding:", ";margin-right:", ";}.MuiTypography-root{margin-bottom:0;}.MuiTypography-body1{padding:2px 0;}}"], rootClassName$_, summaryClassName, theme.spacing(1), theme.spacing(5), theme.spacing(1.5), theme.spacing(-1.5)));
|
|
118
116
|
|
|
119
117
|
const DotAccordion = ({
|
|
120
118
|
actions,
|
|
@@ -131,7 +129,7 @@ const DotAccordion = ({
|
|
|
131
129
|
summary,
|
|
132
130
|
noWrap: _noWrap = true
|
|
133
131
|
}) => {
|
|
134
|
-
const rootClasses = useStylesWithRootClass(rootClassName$
|
|
132
|
+
const rootClasses = useStylesWithRootClass(rootClassName$_, className);
|
|
135
133
|
const [elevation, setElevation] = useState();
|
|
136
134
|
useEffect(() => {
|
|
137
135
|
if (onChange && expanded === undefined) {
|
|
@@ -184,7 +182,7 @@ const DotAccordion = ({
|
|
|
184
182
|
}), void 0);
|
|
185
183
|
};
|
|
186
184
|
|
|
187
|
-
const rootClassName$
|
|
185
|
+
const rootClassName$Z = 'dot-text-field';
|
|
188
186
|
const rootSelectClassName = 'dot-select-field';
|
|
189
187
|
const labelClassName = 'dot-input-label';
|
|
190
188
|
const errorClassName = 'dot-error';
|
|
@@ -208,15 +206,15 @@ const StyledTextField = styled(TextField).withConfig({
|
|
|
208
206
|
})(["", ""], ({
|
|
209
207
|
theme,
|
|
210
208
|
InputProps
|
|
211
|
-
}) => css(["&.", "{.MuiInputBase-root{margin-bottom:0;}.MuiInputBase-input{box-sizing:content-box;}.MuiOutlinedInput-input{padding:", ";}.MuiInputBase-inputSizeSmall{padding-top:10.5px;padding-bottom:10.5px;&:not(textarea){height:19px;}}.
|
|
209
|
+
}) => css(["&.", "{.MuiInputBase-root{margin-bottom:0;}.MuiInputBase-input{box-sizing:content-box;}.MuiOutlinedInput-input{padding:", ";}.MuiInputBase-inputSizeSmall{padding-top:10.5px;padding-bottom:10.5px;&:not(textarea){height:19px;}}.MuiInputBase-inputMultiline{padding:0;}}&.", ",&.", "{.", "{color:", ";.dot-icon i{margin-top:-2px;}}.MuiInputBase-root{margin-bottom:0;}.MuiInputBase-inputSizeSmall:not(textarea){height:19px;padding-top:10.5px;padding-bottom:10.5px;}select.dot-select{padding-left:", ";}.MuiSelect-select:focus{background-color:transparent;}.MuiSelect-icon{right:", ";}&.", "{.MuiOutlinedInput-notchedOutline{border-color:", ";}.MuiFormLabel-root.Mui-focused{color:", ";}.", " .dot-icon{color:", ";}}&.", "{.MuiInputLabel-outlined.MuiInputLabel-shrink{color:", ";}.", " .dot-icon{color:", ";}}&.", "{.MuiOutlinedInput-notchedOutline{border-color:", ";}.MuiInputLabel-outlined.MuiInputLabel-shrink{color:", ";}.", " .dot-icon{color:", ";}}.MuiOutlinedInput-adornedStart{padding-left:12px;&.", " .", "{border-color:", ";}}.MuiInputLabel-outlined.MuiInputLabel-shrink{color:", ";}.MuiInputBase-inputAdornedStart{padding-left:12px;}.MuiInputBase-inputAdornedEnd{padding-right:12px;}.MuiFormHelperText-root{font-family:", ";font-size:", "px;font-weight:400;margin:", ";display:flex;align-items:flex-end;&:not(.Mui-error){color:", ";}&.read-only .MuiOutlinedInput-root:hover > fieldset{border-color:", ";}}}"], rootClassName$Z, InputProps.startAdornment ? `18px 12px 18px 0px` : `18px 12px`, rootSelectClassName, rootClassName$Z, adornmentIconClassName, theme.palette.layer.n700, theme.spacing(1.5), InputProps.endAdornment ? `44px` : `12px`, successClassName, theme.palette.secondary.main, theme.palette.grey[700], adornmentIconClassName, theme.palette.secondary.main, errorClassName, theme.palette.error.main, adornmentIconClassName, theme.palette.error.main, warningClassName, theme.palette.warning.main, theme.palette.grey[700], adornmentIconClassName, theme.palette.warning.main, warningClassName, fieldsetClassName, theme.palette.warning[500], theme.palette.grey[700], theme.typography.fontFamily, theme.typography.body2.fontSize, theme.spacing(0.5, 0, 0, 1.5), theme.palette.grey[400], theme.palette.layer.n200));
|
|
212
210
|
|
|
213
|
-
const rootClassName$
|
|
211
|
+
const rootClassName$Y = 'dot-action-toolbar';
|
|
214
212
|
const StyledToolbar = styled(Toolbar).withConfig({
|
|
215
213
|
displayName: "ActionToolbarstyles__StyledToolbar",
|
|
216
214
|
componentId: "sc-5llm03-0"
|
|
217
215
|
})(["", ""], ({
|
|
218
216
|
theme
|
|
219
|
-
}) => css(["&.", "{border-bottom:1px solid ", ";.", " .MuiInputBase-root{margin-bottom:0;}}"], rootClassName$
|
|
217
|
+
}) => css(["&.", "{border-bottom:1px solid ", ";.", " .MuiInputBase-root{margin-bottom:0;}}"], rootClassName$Y, theme.palette.grey[100], rootClassName$Z));
|
|
220
218
|
|
|
221
219
|
const DotActionToolbar = ({
|
|
222
220
|
ariaLabel,
|
|
@@ -225,7 +223,7 @@ const DotActionToolbar = ({
|
|
|
225
223
|
'data-testid': dataTestId,
|
|
226
224
|
variant: _variant = 'dense'
|
|
227
225
|
}) => {
|
|
228
|
-
const rootClasses = useStylesWithRootClass(rootClassName$
|
|
226
|
+
const rootClasses = useStylesWithRootClass(rootClassName$Y, className);
|
|
229
227
|
return jsx(StyledToolbar, Object.assign({
|
|
230
228
|
"aria-label": ariaLabel,
|
|
231
229
|
className: rootClasses,
|
|
@@ -236,13 +234,13 @@ const DotActionToolbar = ({
|
|
|
236
234
|
}), void 0);
|
|
237
235
|
};
|
|
238
236
|
|
|
239
|
-
const rootClassName$
|
|
237
|
+
const rootClassName$X = 'dot-alert-banner';
|
|
240
238
|
const StyledAlertBanner = styled(Alert).withConfig({
|
|
241
239
|
displayName: "AlertBannerstyles__StyledAlertBanner",
|
|
242
240
|
componentId: "sc-1u3aqgz-0"
|
|
243
241
|
})(["", ""], ({
|
|
244
242
|
theme
|
|
245
|
-
}) => css(["&.", "{align-items:center;border-radius:8px;display:flex;overflow:hidden;padding:", ";.dot-icon,.MuiAlert-icon,.MuiAlert-message{padding:0;.dot-typography{margin-bottom:0;}}&.MuiAlert-standardSuccess{.dot-icon,.MuiAlert-icon,.dot-typography{color:", ";}}&.MuiAlert-standardInfo{background-color:", ";.dot-icon,.MuiAlert-icon,.dot-typography{color:", ";}}&.MuiAlert-standardWarning{background-color:", ";.dot-icon,.MuiAlert-icon,.dot-typography{color:", ";}}&.MuiAlert-standardError{background-color:", ";.dot-typography{color:", ";}.dot-icon,.MuiAlert-icon{color:", ";}}}"], rootClassName$
|
|
243
|
+
}) => css(["&.", "{align-items:center;border-radius:8px;box-sizing:border-box;display:flex;min-height:48px;overflow:hidden;padding:", ";.dot-icon,.MuiAlert-icon,.MuiAlert-message{padding:0;.dot-typography{margin-bottom:0;}}&.MuiAlert-standardSuccess{.dot-icon,.MuiAlert-icon,.dot-typography{color:", ";}}&.MuiAlert-standardInfo{background-color:", ";.dot-icon,.MuiAlert-icon,.dot-typography{color:", ";}}&.MuiAlert-standardWarning{background-color:", ";.dot-icon,.MuiAlert-icon,.dot-typography{color:", ";}}&.MuiAlert-standardError{background-color:", ";.dot-typography{color:", ";}.dot-icon,.MuiAlert-icon{color:", ";}}}"], rootClassName$X, theme.spacing(0.75, 2), theme.palette.success[700], theme.palette.primary[50], theme.palette.primary[500], theme.palette.warning[100], theme.palette.grey[700], theme.palette.error[50], theme.palette.error[700], theme.palette.error[500]));
|
|
246
244
|
|
|
247
245
|
var LatoRegular = "data:font/woff;base64,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";
|
|
248
246
|
|
|
@@ -251,7 +249,7 @@ var LatoBold = "data:font/woff;base64,d09GRgABAAAAAI+4ABIAAAABJ8AAAQBoAAAAAAAAAA
|
|
|
251
249
|
var Dot = "data:font/woff;base64,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BAAAbgQAAGYEAABmBAAAZgQAAGYEAABmBAAAZgQAAGYEAABmBAAAZgQAAGYEAABmBAAAZgQAAGYEAABmBAAAZgQAAGYEAAChBAAA3wQAAQwEAABmBAABAAQAAJoEAACdBAAAZgQAAQAEAABmBAAAZgQAAGYEAABmBAAAZgQAAJ4EAADfBAAAZgQAAJoEAABmBAAAaAQAAGYEAACaBAAAZgQAAGYEAABmBAAAZgQAAGYEAABmBAAAzQQAAGYEAABmBAAAZgQAAGYEAABmBAAAZgQAAGYEAABmBAAAZgQAAGYEAABmBAAAZgQAAM0EAADNBAAAzQQAAJoEAAB0BAABEwQAAHkEAAB5BAABWQQAAGgEAABmBAAAZgQAAJoEAABmBAAAZgQAAHkEAAByBAAAZgQAAGYEAABmBAAA2AQAATMEAADYBAAAZgQAAJoEAACaBAAAdAQAARMEAABmBAAAZgQAAGYEAABoBAAAZgQAAIEEAABmBAAAmgQAAGYEAABmBAAAdAQAAGYEAABmBAABAAQAAGYEAABmBAAAmgQAAJoEAACaBAAAawQAAGYEAABmBAAAZgQAAGYEAAB2BAAAZgQAAGYEAABmBAAAZgQAAGYEAABmBAAAZgQAAJoEAABmBAAAZgQAAGYEAABmBAAAnAQAAGYEAAGaBAAAZgQAAGYEAABmBAAAZgQAAKAEAABmBAAAZgQAAH8EAABmBAAAZgQAAS0EAAEtBAAAaQQAAGkEAABmBAAAmgPPAHQEAAB2BAAAmgQAAGYEAABmBAAAaQQAAGsEAABrBAAAZgQAAGYEAABmBAAAdAQAAGYEAABmBAAAmgQAAJoEAABmBAAAZgQAAJoEAABoBAAAZwQAAGYEAABmBAAAZgQAAGgEAABmBAAAZgQAAGYEAABzBAAAZgQAAJIEAABzBAAAmgQAAJoEAAB1BAAAbQQAAGYEAABmBAAAZgQAAGYEAABrBAAAwAQAAHUEAABmBAAAZgQAAJoEAABmBAAAZgQAAGYEAACaBAAAeQQAAG4EAACaBAAAyAQAANEEAAA2BAAAtgQAAGYEAACrBAAAYQQAAHgEAACJBAAAZgQAAGcEAABnBAAAZgQAAJoEAACaBAAAYQQAANYEAABmBAAAZgQAAGYEAABmBAAAZwQAAGYEAACaBAAAmgQAAJoEAABmBAAAZgQAAM0EAAGaBAAAZgQAANYEAAEABAAAZgQAAM0EAABrBAAAZgQAAGwEAABmBAAAZgQAAJoEAAEAAAAAAAAKABQAHgC4AVAC0ARkBegHOgfgCJIJQgmuClYKqAsIC3YLyAxEDMINGA10Df4OsA8MD0gPrA/8EJoRLBHoEl4TVhOyFC4UwBVGFdwWMhaCFuYXiBhsGMwZPhmmGeYaUhquGyAbVBuIHAAcaByaHLQdSh4uHq4fiCBmISYicCLEIu4jMCO0JGIk6iVOJZwl/iZkJqgnKCeoJ/ooZCjYKSYpuipiKu4rTCuuLEAslCz0Lhwuii8ALzovsjBIMHgwoDDGMOwxKDGqMowyyDMyM1oz5DQkNJg1HjW6NgY2MDZaNoQ3FDeKN+44QjhqONQ5KDlgOe46hDtqPDY9Aj3ePkQ+xj9GP6xAAECaQRRBpkJgQrxDAkNQQ7ZEaES2RQRFgEYSRuxHdEgASMpJPkmiSeJKJErgSy5LzExETHpMyE08TaZOBk6CT2pQDFBoUNJRDlE+UW5RslIeUp5TGFOsVAxUglXOVmJXblhgWTBZ4lpKWoxbalviXFZc7F2iXlZfKF/OYGRhUmKwYyxkPGSuZOZlVmWyZkBmrGdIZ9xoZmi0aUxp7Gp8a5Br9GyUbc5uDm5qbyJwBnE+cbRyMHL4c0RzanSAdPp2VHeceL55Dnk+efR6mntCe9x8UH0AfZ5+oH9Of8qACoDAgR6BsoIggpKDxIRghO6FYoYGhrKHWofUiCKLLovCjLSNVI2YjiCOno74j36P1pBUkJQAAAABAAABDgIxABAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAADgCuAAEAAAAAAAEAAwAAAAEAAAAAAAIABwA8AAEAAAAAAAMAAwAqAAEAAAAAAAQAAwBRAAEAAAAAAAUACwAJAAEAAAAAAAYAAwAzAAEAAAAAAAoAGgBaAAMAAQQJAAEABgADAAMAAQQJAAIADgBDAAMAAQQJAAMABgAtAAMAAQQJAAQABgBUAAMAAQQJAAUAFgAUAAMAAQQJAAYABgA2AAMAAQQJAAoANAB0ZG90AGQAbwB0VmVyc2lvbiAyLjAAVgBlAHIAcwBpAG8AbgAgADIALgAwZG90AGQAbwB0ZG90AGQAbwB0UmVndWxhcgBSAGUAZwB1AGwAYQByZG90AGQAbwB0Rm9udCBnZW5lcmF0ZWQgYnkgSWNvTW9vbi4ARgBvAG4AdAAgAGcAZQBuAGUAcgBhAHQAZQBkACAAYgB5ACAASQBjAG8ATQBvAG8AbgAuAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==";
|
|
252
250
|
|
|
253
251
|
let _ = t => t,
|
|
254
|
-
|
|
252
|
+
_t;
|
|
255
253
|
const GlobalFonts = createGlobalStyle(_t || (_t = _`
|
|
256
254
|
@font-face {
|
|
257
255
|
font-family: 'Lato';
|
|
@@ -293,9 +291,9 @@ const b900 = '#1a3d70';
|
|
|
293
291
|
const bA100 = '#abcaff';
|
|
294
292
|
const bA200 = '#78aaff';
|
|
295
293
|
const bA400 = '#458aff';
|
|
296
|
-
const bA700 = '#2b7aff';
|
|
294
|
+
const bA700 = '#2b7aff';
|
|
295
|
+
//Success green
|
|
297
296
|
//https://zeroheight.com/4a9ac476a/p/22005a-color/t/653193
|
|
298
|
-
|
|
299
297
|
const g50 = '#e9f0e0';
|
|
300
298
|
const g100 = '#c8dab3';
|
|
301
299
|
const g200 = '#a4c280';
|
|
@@ -309,9 +307,9 @@ const g900 = '#215500';
|
|
|
309
307
|
const gA100 = '#aaff87';
|
|
310
308
|
const gA200 = '#86ff54';
|
|
311
309
|
const gA400 = '#61ff21';
|
|
312
|
-
const gA700 = '#4fff08';
|
|
310
|
+
const gA700 = '#4fff08';
|
|
311
|
+
//Neutral color
|
|
313
312
|
//https://zeroheight.com/4a9ac476a/p/22005a-color/t/44d174
|
|
314
|
-
|
|
315
313
|
const n0 = '#ffffff';
|
|
316
314
|
const n50 = '#f3f5f6';
|
|
317
315
|
const n100 = '#e3e5e8';
|
|
@@ -328,9 +326,9 @@ const n900_70 = 'rgba(35, 46, 64, 0.7)';
|
|
|
328
326
|
const nA100 = '#88b1ff';
|
|
329
327
|
const nA200 = '#5590ff';
|
|
330
328
|
const nA400 = '#226eff';
|
|
331
|
-
const nA700 = '#085eff';
|
|
329
|
+
const nA700 = '#085eff';
|
|
330
|
+
//Warning orange
|
|
332
331
|
//https://zeroheight.com/4a9ac476a/p/22005a-color/t/01bbd7
|
|
333
|
-
|
|
334
332
|
const o50 = '#fff3e9';
|
|
335
333
|
const o100 = '#ffe2c8';
|
|
336
334
|
const o200 = '#ffcfa4';
|
|
@@ -344,9 +342,9 @@ const o900 = '#ff7021';
|
|
|
344
342
|
const oA100 = '#ffffff';
|
|
345
343
|
const oA200 = '#ffffff';
|
|
346
344
|
const oA400 = '#ffe0d0';
|
|
347
|
-
const oA700 = '#ffceb7';
|
|
345
|
+
const oA700 = '#ffceb7';
|
|
346
|
+
//Error red
|
|
348
347
|
//https://zeroheight.com/4a9ac476a/p/22005a-color/t/941bd8
|
|
349
|
-
|
|
350
348
|
const r50 = '#fae4e4';
|
|
351
349
|
const r100 = '#f3bcbc';
|
|
352
350
|
const r200 = '#eb8f90';
|
|
@@ -360,10 +358,10 @@ const r900 = '#bc0a0b';
|
|
|
360
358
|
const rA100 = '#ffe7e7';
|
|
361
359
|
const rA200 = '#ffb4b5';
|
|
362
360
|
const rA400 = '#ff8182';
|
|
363
|
-
const rA700 = '#ff6869';
|
|
361
|
+
const rA700 = '#ff6869';
|
|
362
|
+
//Graph color
|
|
364
363
|
//Yellow
|
|
365
364
|
//https://zeroheight.com/4a9ac476a/p/22005a-color/t/48416f
|
|
366
|
-
|
|
367
365
|
const y50 = '#fdf8e2';
|
|
368
366
|
const y100 = '#faeeb8';
|
|
369
367
|
const y200 = '#f7e288';
|
|
@@ -377,9 +375,9 @@ const y900 = '#e2a305';
|
|
|
377
375
|
const yA100 = '#ffffff';
|
|
378
376
|
const yA200 = '#fff2d7';
|
|
379
377
|
const yA400 = '#ffe2a4';
|
|
380
|
-
const yA700 = '#ffda8b';
|
|
378
|
+
const yA700 = '#ffda8b';
|
|
379
|
+
//Purple
|
|
381
380
|
//https://zeroheight.com/4a9ac476a/p/22005a-color/t/48416f
|
|
382
|
-
|
|
383
381
|
const p50 = '#f3e4ee';
|
|
384
382
|
const p100 = '#e0bbd4';
|
|
385
383
|
const p200 = '#cc8eb8';
|
|
@@ -652,6 +650,10 @@ const avatarColors = {
|
|
|
652
650
|
lightGrey: {
|
|
653
651
|
color: n700,
|
|
654
652
|
backgroundColor: n200
|
|
653
|
+
},
|
|
654
|
+
transparent: {
|
|
655
|
+
color: n0,
|
|
656
|
+
backgroundColor: 'transparent'
|
|
655
657
|
}
|
|
656
658
|
};
|
|
657
659
|
const darkTheme = createTheme({
|
|
@@ -683,8 +685,8 @@ const darkTheme = createTheme({
|
|
|
683
685
|
n700: '#21272D',
|
|
684
686
|
n800: '#171B22',
|
|
685
687
|
n900: '#0D1017' // level-0
|
|
686
|
-
|
|
687
688
|
},
|
|
689
|
+
|
|
688
690
|
text: {
|
|
689
691
|
primary: n0
|
|
690
692
|
}
|
|
@@ -805,6 +807,23 @@ const lightTheme = createTheme({
|
|
|
805
807
|
A400: nA400,
|
|
806
808
|
A700: nA700
|
|
807
809
|
},
|
|
810
|
+
purple: {
|
|
811
|
+
main: p500,
|
|
812
|
+
'50': p50,
|
|
813
|
+
'100': p100,
|
|
814
|
+
'200': p200,
|
|
815
|
+
'300': p300,
|
|
816
|
+
'400': p400,
|
|
817
|
+
'500': p500,
|
|
818
|
+
'600': p600,
|
|
819
|
+
'700': p700,
|
|
820
|
+
'800': p800,
|
|
821
|
+
'900': p900,
|
|
822
|
+
A100: pA100,
|
|
823
|
+
A200: pA200,
|
|
824
|
+
A400: pA400,
|
|
825
|
+
A700: pA700
|
|
826
|
+
},
|
|
808
827
|
layer: {
|
|
809
828
|
n0: n0,
|
|
810
829
|
n50: n50,
|
|
@@ -866,7 +885,6 @@ const calculateNumberFromText = text => {
|
|
|
866
885
|
const charCodes = text.split('') // => ["A", "A"]
|
|
867
886
|
.map(char => char.charCodeAt(0)) // => [65, 65]
|
|
868
887
|
.join(''); // => "6565"
|
|
869
|
-
|
|
870
888
|
return parseInt(charCodes, 10);
|
|
871
889
|
};
|
|
872
890
|
const calculateWidth = width => {
|
|
@@ -905,16 +923,14 @@ const DotAlertBanner = ({
|
|
|
905
923
|
iconId: iconId
|
|
906
924
|
}, void 0);
|
|
907
925
|
};
|
|
908
|
-
|
|
909
926
|
const AlertBannerIconMapping = {
|
|
910
927
|
error: AlertBannerIcon('error-solid'),
|
|
911
928
|
info: AlertBannerIcon('info-solid'),
|
|
912
929
|
success: AlertBannerIcon('check-solid'),
|
|
913
930
|
warning: AlertBannerIcon('warning-solid')
|
|
914
931
|
};
|
|
915
|
-
const rootClasses = useStylesWithRootClass(rootClassName$
|
|
932
|
+
const rootClasses = useStylesWithRootClass(rootClassName$X, severity, className);
|
|
916
933
|
/* For simple string use default component, for everything else use 'div' */
|
|
917
|
-
|
|
918
934
|
const typographyComponent = isString(children) ? undefined : 'div';
|
|
919
935
|
return jsx(StyledAlertBanner, Object.assign({
|
|
920
936
|
action: action,
|
|
@@ -958,11 +974,11 @@ const DotAppLogo = ({
|
|
|
958
974
|
}), void 0);
|
|
959
975
|
};
|
|
960
976
|
|
|
961
|
-
const rootClassName$
|
|
977
|
+
const rootClassName$W = 'dot-icon-btn';
|
|
962
978
|
const StyledIconButton = styled(IconButton).withConfig({
|
|
963
979
|
displayName: "IconButtonstyles__StyledIconButton",
|
|
964
980
|
componentId: "eko0kb-0"
|
|
965
|
-
})(["", ""], () => css(["&.", "{font-size:inherit;padding:10px;.dot-icon.MuiIcon-fontSizeSmall{padding:1px;}&.MuiIconButton-sizeSmall{padding:3px;}&.ripple-disabled{&:hover,&:active,&:focus{background:", ";}}"], rootClassName$
|
|
981
|
+
})(["", ""], () => css(["&.", "{font-size:inherit;padding:10px;.dot-icon.MuiIcon-fontSizeSmall{padding:1px;}&.MuiIconButton-sizeSmall{padding:3px;}&.ripple-disabled{&:hover,&:active,&:focus{background:", ";}}"], rootClassName$W, hoverGray));
|
|
966
982
|
|
|
967
983
|
const DotIconButton = ({
|
|
968
984
|
ariaLabel,
|
|
@@ -978,7 +994,7 @@ const DotIconButton = ({
|
|
|
978
994
|
size: _size = 'medium'
|
|
979
995
|
}) => {
|
|
980
996
|
const rippleClassName = _disableRipple ? 'ripple-disabled' : '';
|
|
981
|
-
const rootClasses = useStylesWithRootClass(rootClassName$
|
|
997
|
+
const rootClasses = useStylesWithRootClass(rootClassName$W, rippleClassName, className);
|
|
982
998
|
return jsx(DotTooltip, Object.assign({
|
|
983
999
|
"data-testid": "icon-button-tooltip",
|
|
984
1000
|
title: tooltip
|
|
@@ -1004,11 +1020,11 @@ const DotIconButton = ({
|
|
|
1004
1020
|
}), void 0);
|
|
1005
1021
|
};
|
|
1006
1022
|
|
|
1007
|
-
const rootClassName$
|
|
1023
|
+
const rootClassName$V = 'dot-link';
|
|
1008
1024
|
const StyledLink = styled(Link).withConfig({
|
|
1009
1025
|
displayName: "Linkstyles__StyledLink",
|
|
1010
1026
|
componentId: "sc-1lpmaww-0"
|
|
1011
|
-
})(["", ""], () => css(["&.", "{cursor:pointer;&:hover:not(.MuiLink-underlineHover){text-decoration:none;}}"], rootClassName$
|
|
1027
|
+
})(["", ""], () => css(["&.", "{cursor:pointer;&:hover:not(.MuiLink-underlineHover){text-decoration:none;}}"], rootClassName$V));
|
|
1012
1028
|
|
|
1013
1029
|
const DotLink = ({
|
|
1014
1030
|
ariaLabel,
|
|
@@ -1025,15 +1041,13 @@ const DotLink = ({
|
|
|
1025
1041
|
tooltip,
|
|
1026
1042
|
underline
|
|
1027
1043
|
}) => {
|
|
1028
|
-
const rootClasses = useStylesWithRootClass(rootClassName$
|
|
1029
|
-
|
|
1044
|
+
const rootClasses = useStylesWithRootClass(rootClassName$V, className);
|
|
1030
1045
|
const handleKeyPress = event => {
|
|
1031
1046
|
if (onClick && event.key === 'Enter') {
|
|
1032
1047
|
event.preventDefault();
|
|
1033
1048
|
onClick(event);
|
|
1034
1049
|
}
|
|
1035
1050
|
};
|
|
1036
|
-
|
|
1037
1051
|
return jsx(DotTooltip, Object.assign({
|
|
1038
1052
|
title: tooltip
|
|
1039
1053
|
}, {
|
|
@@ -1058,7 +1072,7 @@ const DotLink = ({
|
|
|
1058
1072
|
}), void 0);
|
|
1059
1073
|
};
|
|
1060
1074
|
|
|
1061
|
-
const rootClassName$
|
|
1075
|
+
const rootClassName$U = 'dot-avatar';
|
|
1062
1076
|
const avatarSpacing = {
|
|
1063
1077
|
small: 3,
|
|
1064
1078
|
medium: 5,
|
|
@@ -1069,7 +1083,7 @@ const StyledAvatar = styled(Avatar).withConfig({
|
|
|
1069
1083
|
componentId: "sc-13bzj2s-0"
|
|
1070
1084
|
})(["", ""], ({
|
|
1071
1085
|
theme
|
|
1072
|
-
}) => css(["&.", "{display:inline-flex;background-color:", ";border:0px;&:focus-visible{box-shadow:0px 0px 0px 3px ", ",0px 0px 0px 5px ", ";outline:0;}img{width:auto;height:105%;}.dot-i,.dot-typography{color:", ";margin-bottom:0;}&.small{height:", ";width:", ";}&.medium{height:", ";width:", ";}&.large{height:", ";width:", ";}}"], rootClassName$
|
|
1086
|
+
}) => css(["&.", "{display:inline-flex;background-color:", ";border:0px;&:focus-visible{box-shadow:0px 0px 0px 3px ", ",0px 0px 0px 5px ", ";outline:0;}img{width:auto;height:105%;}.dot-i,.dot-typography{color:", ";margin-bottom:0;}&.small{height:", ";width:", ";}&.medium{height:", ";width:", ";}&.large{height:", ";width:", ";}}"], rootClassName$U, ({
|
|
1073
1087
|
color
|
|
1074
1088
|
}) => {
|
|
1075
1089
|
return color && theme.palette.avatarColors[color] ? theme.palette.avatarColors[color].backgroundColor : theme.palette.avatarColors['default'].backgroundColor;
|
|
@@ -1089,7 +1103,6 @@ const AvatarContent = ({
|
|
|
1089
1103
|
}) => {
|
|
1090
1104
|
const parsedText = () => {
|
|
1091
1105
|
const textArray = text.split(' ');
|
|
1092
|
-
|
|
1093
1106
|
if (textArray.length > 1) {
|
|
1094
1107
|
const firstInitial = textArray[0].slice(0, 1);
|
|
1095
1108
|
const secondInitial = textArray[1].slice(0, 1);
|
|
@@ -1098,11 +1111,8 @@ const AvatarContent = ({
|
|
|
1098
1111
|
return text ? text.slice(0, 1) : '';
|
|
1099
1112
|
}
|
|
1100
1113
|
};
|
|
1101
|
-
|
|
1102
1114
|
const getHeadingFromAvatarSize = () => size === 'large' ? 'h1' : 'h3';
|
|
1103
|
-
|
|
1104
1115
|
const getIconFontSizeFromAvatarSize = () => size === 'small' ? size : 'medium';
|
|
1105
|
-
|
|
1106
1116
|
if (type === 'icon' || type === 'image' && !imageSrc) {
|
|
1107
1117
|
return jsx(DotIcon, {
|
|
1108
1118
|
"data-testid": `${dataTestId}-icon`,
|
|
@@ -1110,7 +1120,6 @@ const AvatarContent = ({
|
|
|
1110
1120
|
iconId: iconId || 'user'
|
|
1111
1121
|
}, void 0);
|
|
1112
1122
|
}
|
|
1113
|
-
|
|
1114
1123
|
if (type === 'text') {
|
|
1115
1124
|
return jsx(DotTypography, Object.assign({
|
|
1116
1125
|
variant: size === 'small' ? 'caption' : getHeadingFromAvatarSize()
|
|
@@ -1118,10 +1127,8 @@ const AvatarContent = ({
|
|
|
1118
1127
|
children: parsedText()
|
|
1119
1128
|
}), void 0);
|
|
1120
1129
|
}
|
|
1121
|
-
|
|
1122
1130
|
return null;
|
|
1123
1131
|
};
|
|
1124
|
-
|
|
1125
1132
|
const DotAvatar = ({
|
|
1126
1133
|
alt,
|
|
1127
1134
|
ariaLabel,
|
|
@@ -1140,14 +1147,12 @@ const DotAvatar = ({
|
|
|
1140
1147
|
variant: _variant = 'circular',
|
|
1141
1148
|
style
|
|
1142
1149
|
}) => {
|
|
1143
|
-
const rootClasses = useStylesWithRootClass(rootClassName$
|
|
1144
|
-
|
|
1150
|
+
const rootClasses = useStylesWithRootClass(rootClassName$U, className);
|
|
1145
1151
|
const getAvatarColor = () => {
|
|
1146
1152
|
if (color) return color;
|
|
1147
1153
|
if (_text && _text !== alt) return getAvatarColorForInputText(_text);
|
|
1148
1154
|
return 'default';
|
|
1149
1155
|
};
|
|
1150
|
-
|
|
1151
1156
|
return jsx(DotTooltip, Object.assign({
|
|
1152
1157
|
title: tooltip
|
|
1153
1158
|
}, {
|
|
@@ -1180,6 +1185,80 @@ const DotAvatar = ({
|
|
|
1180
1185
|
}), void 0);
|
|
1181
1186
|
};
|
|
1182
1187
|
|
|
1188
|
+
const rootClassName$T = 'dot-button';
|
|
1189
|
+
const StyledButton = styled(Button).withConfig({
|
|
1190
|
+
displayName: "Buttonstyles__StyledButton",
|
|
1191
|
+
componentId: "sx99hh-0"
|
|
1192
|
+
})(["", ""], ({
|
|
1193
|
+
theme
|
|
1194
|
+
}) => css(["&.", "{margin:", ";min-width:auto;white-space:nowrap;&.MuiButton-outlined{border-color:rgba(0,0,0,0.23);color:", ";}&:not(.MuiButton-sizeLarge):not(.MuiButton-sizeSmall){height:", ";}&.MuiButton-containedSecondary{background-color:", ";&:hover,&:active{background-color:", ";}}&.MuiButton-text{padding:6px 16px;}.dot-icon{padding:0;i{height:auto;}}}"], rootClassName$T, theme.spacing(0.5), theme.palette.grey[700], theme.spacing(5), theme.palette.error.main, darken(theme.palette.error.main, 0.2)));
|
|
1195
|
+
|
|
1196
|
+
/** This component wraps the Button component from @material-ui. */
|
|
1197
|
+
const DotButton = /*#__PURE__*/forwardRef(({
|
|
1198
|
+
ariaLabel,
|
|
1199
|
+
autoFocus: _autoFocus = false,
|
|
1200
|
+
children,
|
|
1201
|
+
className,
|
|
1202
|
+
'data-testid': dataTestId,
|
|
1203
|
+
disabled: _disabled = false,
|
|
1204
|
+
disableRipple: _disableRipple = false,
|
|
1205
|
+
endIcon,
|
|
1206
|
+
fullWidth: _fullWidth = false,
|
|
1207
|
+
isSubmit: _isSubmit = false,
|
|
1208
|
+
onClick,
|
|
1209
|
+
size: _size = 'medium',
|
|
1210
|
+
startIcon,
|
|
1211
|
+
tooltip,
|
|
1212
|
+
type: _type = 'primary'
|
|
1213
|
+
}, ref) => {
|
|
1214
|
+
const rootClasses = useStylesWithRootClass(rootClassName$T, className);
|
|
1215
|
+
let color;
|
|
1216
|
+
let variant;
|
|
1217
|
+
switch (_type) {
|
|
1218
|
+
case 'destructive':
|
|
1219
|
+
color = _disabled ? 'inherit' : 'secondary';
|
|
1220
|
+
variant = 'contained';
|
|
1221
|
+
break;
|
|
1222
|
+
case 'primary':
|
|
1223
|
+
color = 'primary';
|
|
1224
|
+
variant = 'contained';
|
|
1225
|
+
break;
|
|
1226
|
+
case 'outlined':
|
|
1227
|
+
color = 'inherit';
|
|
1228
|
+
variant = 'outlined';
|
|
1229
|
+
break;
|
|
1230
|
+
case 'text':
|
|
1231
|
+
color = 'inherit';
|
|
1232
|
+
variant = 'text';
|
|
1233
|
+
break;
|
|
1234
|
+
}
|
|
1235
|
+
return jsx(DotTooltip, Object.assign({
|
|
1236
|
+
title: tooltip
|
|
1237
|
+
}, {
|
|
1238
|
+
children: jsx(StyledButton, Object.assign({
|
|
1239
|
+
"aria-label": ariaLabel,
|
|
1240
|
+
autoFocus: _autoFocus,
|
|
1241
|
+
classes: {
|
|
1242
|
+
root: rootClasses
|
|
1243
|
+
},
|
|
1244
|
+
color: color,
|
|
1245
|
+
"data-testid": dataTestId,
|
|
1246
|
+
disableRipple: _disableRipple,
|
|
1247
|
+
disabled: _disabled,
|
|
1248
|
+
endIcon: endIcon,
|
|
1249
|
+
fullWidth: _fullWidth,
|
|
1250
|
+
onClick: event => onClick && onClick(event),
|
|
1251
|
+
ref: ref,
|
|
1252
|
+
size: _size,
|
|
1253
|
+
startIcon: startIcon,
|
|
1254
|
+
type: _isSubmit ? 'submit' : 'button',
|
|
1255
|
+
variant: variant
|
|
1256
|
+
}, {
|
|
1257
|
+
children: children
|
|
1258
|
+
}), void 0)
|
|
1259
|
+
}), void 0);
|
|
1260
|
+
});
|
|
1261
|
+
|
|
1183
1262
|
const rootClassName$S = 'dot-list';
|
|
1184
1263
|
const listItemRootClass = 'dot-list-item';
|
|
1185
1264
|
const nestedListClassName = 'dot-nested-list';
|
|
@@ -1189,17 +1268,15 @@ const StyledList = styled(List).withConfig({
|
|
|
1189
1268
|
componentId: "wxwqwr-0"
|
|
1190
1269
|
})(["", ""], ({
|
|
1191
1270
|
theme
|
|
1192
|
-
}) => css(["&.", "{background:", "
|
|
1271
|
+
}) => css(["&.", "{background:", ";.dot-icon{color:", ";}&.", " .", "{padding-left:", ";}.MuiListSubheader-root{padding:0;.MuiTypography-root{padding:", ";}}}"], rootClassName$S, theme.palette.layer.n0, theme.palette.layer.n700, nestedListClassName, listItemRootClass, theme.spacing(4), theme.spacing(1)));
|
|
1193
1272
|
|
|
1194
1273
|
const getChevronIcon = (nestedListType, isOpened) => {
|
|
1195
1274
|
if (nestedListType !== 'expandable') {
|
|
1196
1275
|
return 'chevron-right';
|
|
1197
1276
|
}
|
|
1198
|
-
|
|
1199
1277
|
if (isOpened) {
|
|
1200
1278
|
return 'chevron-up';
|
|
1201
1279
|
}
|
|
1202
|
-
|
|
1203
1280
|
return 'chevron-down';
|
|
1204
1281
|
};
|
|
1205
1282
|
|
|
@@ -1288,8 +1365,8 @@ const StyledPopper = styled(Popper).withConfig({
|
|
|
1288
1365
|
max-height: ${getListMaxHeight($maxHeight)};
|
|
1289
1366
|
`, theme.spacing(7), theme.palette.grey[100], theme.spacing(0, 0, 0.5, 0.5), theme.palette.layer.n100, theme.spacing(3)));
|
|
1290
1367
|
|
|
1291
|
-
const MENU_ITEM_HEIGHT_NORMAL =
|
|
1292
|
-
const MENU_ITEM_HEIGHT_DENSE =
|
|
1368
|
+
const MENU_ITEM_HEIGHT_NORMAL = 48;
|
|
1369
|
+
const MENU_ITEM_HEIGHT_DENSE = 36;
|
|
1293
1370
|
const DEFAULT_MAX_VISIBLE_ITEMS = 7;
|
|
1294
1371
|
|
|
1295
1372
|
const rootClassName$O = 'dot-ul';
|
|
@@ -1300,7 +1377,7 @@ const StyledMenuList = styled(MenuList).withConfig({
|
|
|
1300
1377
|
componentId: "yqdwwg-0"
|
|
1301
1378
|
})(["", ""], ({
|
|
1302
1379
|
theme
|
|
1303
|
-
}) => css(["&.", "{.dot-li{justify-content:space-between;gap:", ";&:hover{background:", ";}&.Mui-selected,&.Mui-selected:hover{background:", ";}&.", "{padding-right:", ";}}}"], rootClassName$O, theme.spacing(3), hoverGray, lightSelectedGray, listItemWithSubmenuClassName, theme.spacing(0.5)));
|
|
1380
|
+
}) => css(["&.", "{.dot-li{font-size:", "px;justify-content:space-between;gap:", ";&:hover{background:", ";}&.Mui-selected,&.Mui-selected:hover{background:", ";}&.", "{padding-right:", ";}}}"], rootClassName$O, theme.typography.body1.fontSize, theme.spacing(3), hoverGray, lightSelectedGray, listItemWithSubmenuClassName, theme.spacing(0.5)));
|
|
1304
1381
|
|
|
1305
1382
|
const getDefaultItemHeight = isDense => isDense ? MENU_ITEM_HEIGHT_DENSE : MENU_ITEM_HEIGHT_NORMAL;
|
|
1306
1383
|
const calculateItemHeight = (isDense, customItemHeight, menuItemHeight) => {
|
|
@@ -1308,9 +1385,7 @@ const calculateItemHeight = (isDense, customItemHeight, menuItemHeight) => {
|
|
|
1308
1385
|
if (customItemHeight && customItemHeight >= MENU_ITEM_HEIGHT_DENSE) {
|
|
1309
1386
|
return customItemHeight;
|
|
1310
1387
|
}
|
|
1311
|
-
|
|
1312
1388
|
const itemHeightType = typeof menuItemHeight;
|
|
1313
|
-
|
|
1314
1389
|
if (itemHeightType === 'number' || itemHeightType === 'string') {
|
|
1315
1390
|
return menuItemHeight;
|
|
1316
1391
|
} else {
|
|
@@ -1321,7 +1396,6 @@ const getNumberOfVisibleItems = (numberOfItems, maxVisibleItems) => {
|
|
|
1321
1396
|
if (maxVisibleItems && maxVisibleItems > 0) {
|
|
1322
1397
|
return maxVisibleItems <= numberOfItems ? maxVisibleItems : numberOfItems;
|
|
1323
1398
|
}
|
|
1324
|
-
|
|
1325
1399
|
return DEFAULT_MAX_VISIBLE_ITEMS;
|
|
1326
1400
|
};
|
|
1327
1401
|
const calculateMaxHeight = ({
|
|
@@ -1333,9 +1407,8 @@ const calculateMaxHeight = ({
|
|
|
1333
1407
|
// if menuItemHeight is "auto" set maxHeight as same
|
|
1334
1408
|
if (typeof menuItemHeight === 'string') {
|
|
1335
1409
|
return menuItemHeight;
|
|
1336
|
-
}
|
|
1337
|
-
|
|
1338
|
-
|
|
1410
|
+
}
|
|
1411
|
+
// If 'menuItemHeight' is set it will take precedence here
|
|
1339
1412
|
const itemHeight = menuItemHeight ? menuItemHeight : getDefaultItemHeight(isDense);
|
|
1340
1413
|
let maxHeight = 0;
|
|
1341
1414
|
const numberOfVisibleItems = getNumberOfVisibleItems(menuItems.length, maxVisibleItems);
|
|
@@ -1343,8 +1416,8 @@ const calculateMaxHeight = ({
|
|
|
1343
1416
|
visibleItems.forEach(({
|
|
1344
1417
|
height
|
|
1345
1418
|
}) => {
|
|
1346
|
-
const customItemHeight = height ? height : itemHeight;
|
|
1347
|
-
|
|
1419
|
+
const customItemHeight = height ? height : itemHeight;
|
|
1420
|
+
// + 3 is for bottom margin of menuItem
|
|
1348
1421
|
maxHeight += customItemHeight + 3;
|
|
1349
1422
|
});
|
|
1350
1423
|
return maxHeight;
|
|
@@ -1363,7 +1436,6 @@ const checkForAutoFocus = (autoFocusItem, isFirstItem) => !!(autoFocusItem && is
|
|
|
1363
1436
|
* Since this component is used inside 'ClickAwayListener',
|
|
1364
1437
|
* it needs to be contained within 'forwardRef' function
|
|
1365
1438
|
*/
|
|
1366
|
-
|
|
1367
1439
|
const DotMenuList = /*#__PURE__*/forwardRef(({
|
|
1368
1440
|
autoFocusItem,
|
|
1369
1441
|
className,
|
|
@@ -1381,25 +1453,21 @@ const DotMenuList = /*#__PURE__*/forwardRef(({
|
|
|
1381
1453
|
const rootClasses = useStylesWithRootClass(rootClassName$O, className);
|
|
1382
1454
|
const [activeSubmenu, setActiveSubmenu] = useState(null);
|
|
1383
1455
|
const [subItemAnchorEl, setSubItemAnchorEl] = useState(null);
|
|
1384
|
-
|
|
1385
1456
|
const openSubmenu = (target, itemKey) => {
|
|
1386
1457
|
// Set new anchor for submenu and active submenu key
|
|
1387
1458
|
// so that new submenu can be opened
|
|
1388
1459
|
setSubItemAnchorEl(target);
|
|
1389
1460
|
setActiveSubmenu(itemKey);
|
|
1390
1461
|
};
|
|
1391
|
-
|
|
1392
1462
|
const closeActiveSubmenu = () => {
|
|
1393
1463
|
// We want to clean active submenu state if it exists.
|
|
1394
1464
|
// This will make previous submenu disappear when
|
|
1395
1465
|
// hovering to item with no submenu items
|
|
1396
1466
|
activeSubmenu && setActiveSubmenu(null);
|
|
1397
1467
|
};
|
|
1398
|
-
|
|
1399
1468
|
const getMouseEnterHandler = (itemKey, hasSubmenu) => event => {
|
|
1400
1469
|
hasSubmenu ? openSubmenu(event.currentTarget, itemKey) : closeActiveSubmenu();
|
|
1401
1470
|
};
|
|
1402
|
-
|
|
1403
1471
|
return jsx(StyledMenuList, Object.assign({
|
|
1404
1472
|
classes: {
|
|
1405
1473
|
root: rootClasses
|
|
@@ -1434,7 +1502,6 @@ const DotMenuList = /*#__PURE__*/forwardRef(({
|
|
|
1434
1502
|
const hasSubmenu = !!subItems;
|
|
1435
1503
|
const hasAutoFocus = checkForAutoFocus(autoFocusItem, isFirstItem);
|
|
1436
1504
|
const menuItemClasses = useStylesWithRootClass(listItemClassName$1, hasSubmenu ? listItemWithSubmenuClassName : '', classes ? classes : '');
|
|
1437
|
-
|
|
1438
1505
|
const handleClick = event => {
|
|
1439
1506
|
// Execute select callback only for items which does not have
|
|
1440
1507
|
// submenu defined. If there is no menu or handler - prevent
|
|
@@ -1446,8 +1513,6 @@ const DotMenuList = /*#__PURE__*/forwardRef(({
|
|
|
1446
1513
|
* If there is submenu, right arrow icon will be added
|
|
1447
1514
|
* and sub-menu will be rendered
|
|
1448
1515
|
*/
|
|
1449
|
-
|
|
1450
|
-
|
|
1451
1516
|
return jsxs(MenuItem, Object.assign({
|
|
1452
1517
|
autoFocus: hasAutoFocus,
|
|
1453
1518
|
"aria-label": itemAriaLabel,
|
|
@@ -1497,37 +1562,33 @@ const DotMenu = ({
|
|
|
1497
1562
|
}) => {
|
|
1498
1563
|
const rootClasses = useStylesWithRootClass(rootClassName$P, className, _loading ? 'loading' : '');
|
|
1499
1564
|
const isSubmenu = checkIfSubmenu(anchorEl);
|
|
1500
|
-
const hasSubItems = checkForSubItems(_menuItems);
|
|
1565
|
+
const hasSubItems = checkForSubItems(_menuItems);
|
|
1566
|
+
// Timeout object is customizable when Menu component is either submenu
|
|
1501
1567
|
// (it is opened within parent menu) or it contains at least one item which
|
|
1502
1568
|
// has sub-items. This is done because when multi-level menu is closing it
|
|
1503
1569
|
// will first close the parent and only then child menus - which looks
|
|
1504
1570
|
// a bit weird - so here I'm giving it exit value of 0 so that it looks like
|
|
1505
1571
|
// they all close at the same time. For "normal" menus, timeout is unnecessary.
|
|
1506
|
-
|
|
1507
1572
|
const timeout = isSubmenu || hasSubItems ? {
|
|
1508
1573
|
exit: 0,
|
|
1509
1574
|
enter: 300
|
|
1510
1575
|
} : undefined;
|
|
1511
|
-
|
|
1512
1576
|
const handleSelect = (event, itemKey) => {
|
|
1513
1577
|
onLeave && onLeave(event);
|
|
1514
1578
|
onSelect && onSelect(event, id, itemKey);
|
|
1515
1579
|
};
|
|
1516
|
-
|
|
1517
1580
|
const handleListKeyDown = event => {
|
|
1518
1581
|
if (onLeave && event.key === 'Tab') {
|
|
1519
1582
|
event.preventDefault();
|
|
1520
1583
|
onLeave(event);
|
|
1521
1584
|
}
|
|
1522
|
-
};
|
|
1523
|
-
|
|
1524
|
-
|
|
1585
|
+
};
|
|
1586
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
1525
1587
|
const handleClickAway = event => {
|
|
1526
1588
|
if (onLeave && (!anchorEl || !anchorEl.contains(event.currentTarget))) {
|
|
1527
1589
|
onLeave(event);
|
|
1528
1590
|
}
|
|
1529
1591
|
};
|
|
1530
|
-
|
|
1531
1592
|
return jsx(StyledPopper, Object.assign({
|
|
1532
1593
|
anchorEl: anchorEl,
|
|
1533
1594
|
"aria-label": ariaLabel,
|
|
@@ -1592,7 +1653,7 @@ const DotMenu = ({
|
|
|
1592
1653
|
const CreateUUID = () => {
|
|
1593
1654
|
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
|
|
1594
1655
|
const r = Math.random() * 16 | 0,
|
|
1595
|
-
|
|
1656
|
+
v = c === 'x' ? r : r & 0x3 | 0x8;
|
|
1596
1657
|
return v.toString(16);
|
|
1597
1658
|
});
|
|
1598
1659
|
};
|
|
@@ -1768,7 +1829,6 @@ const StyledDotDrawer = styled(DotDrawer).withConfig({
|
|
|
1768
1829
|
}) => css(["&.", "{.dot-drawer-paper{z-index:", ";animation:", ";}}"], nestedDrawerClassName, open ? levelFirst : levelBottom, open && css(["", " 0.2s cubic-bezier(1,0,1,.01);"], fadeIn)));
|
|
1769
1830
|
|
|
1770
1831
|
const DEFAULT_TOOLTIP_PLACEMENT = 'top-start';
|
|
1771
|
-
|
|
1772
1832
|
const DotListDivider = ({
|
|
1773
1833
|
item,
|
|
1774
1834
|
index
|
|
@@ -1784,13 +1844,11 @@ const DotListDivider = ({
|
|
|
1784
1844
|
}), void 0)
|
|
1785
1845
|
}), void 0);
|
|
1786
1846
|
}
|
|
1787
|
-
|
|
1788
1847
|
return jsx(Divider, {
|
|
1789
1848
|
"aria-hidden": true,
|
|
1790
1849
|
"data-testid": `divider-${index}`
|
|
1791
1850
|
}, void 0);
|
|
1792
1851
|
};
|
|
1793
|
-
|
|
1794
1852
|
const DotList = ({
|
|
1795
1853
|
ariaLabel,
|
|
1796
1854
|
children,
|
|
@@ -1809,11 +1867,9 @@ const DotList = ({
|
|
|
1809
1867
|
const listWidth = typeof _width === 'number' ? `${_width}px` : _width;
|
|
1810
1868
|
const listRef = useRef();
|
|
1811
1869
|
const [listItemIndex, setListItemIndex] = useState(null);
|
|
1812
|
-
|
|
1813
1870
|
const updateSelectedListItem = currentIndex => {
|
|
1814
1871
|
currentIndex === listItemIndex ? setListItemIndex(null) : setListItemIndex(currentIndex);
|
|
1815
1872
|
};
|
|
1816
|
-
|
|
1817
1873
|
return jsxs(StyledList, Object.assign({
|
|
1818
1874
|
"aria-label": ariaLabel,
|
|
1819
1875
|
classes: {
|
|
@@ -1831,34 +1887,28 @@ const DotList = ({
|
|
|
1831
1887
|
children: [_items.map((item, index) => {
|
|
1832
1888
|
const handleListItemClick = e => {
|
|
1833
1889
|
var _a;
|
|
1834
|
-
|
|
1835
1890
|
updateSelectedListItem(index);
|
|
1836
1891
|
(_a = item.onClick) === null || _a === void 0 ? void 0 : _a.call(item, e);
|
|
1837
1892
|
};
|
|
1838
|
-
|
|
1839
1893
|
const handleMenuLeave = event => {
|
|
1840
|
-
var _a, _b;
|
|
1841
|
-
|
|
1842
|
-
|
|
1894
|
+
var _a, _b;
|
|
1895
|
+
// Remove index only if clicked element is not found within the list
|
|
1843
1896
|
if (!((_a = listRef.current) === null || _a === void 0 ? void 0 : _a.contains(event.target))) {
|
|
1844
1897
|
setListItemIndex(null);
|
|
1845
1898
|
(_b = item.onMenuLeave) === null || _b === void 0 ? void 0 : _b.call(item, event);
|
|
1846
1899
|
}
|
|
1847
1900
|
};
|
|
1848
|
-
|
|
1849
1901
|
if (item.child) {
|
|
1850
1902
|
return jsx(Fragment, {
|
|
1851
1903
|
children: item.child
|
|
1852
1904
|
}, `item-child-${index}`);
|
|
1853
1905
|
}
|
|
1854
|
-
|
|
1855
1906
|
if (item.divider) {
|
|
1856
1907
|
return jsx(DotListDivider, {
|
|
1857
1908
|
index: index,
|
|
1858
1909
|
item: item
|
|
1859
1910
|
}, `divider-${index}`);
|
|
1860
1911
|
}
|
|
1861
|
-
|
|
1862
1912
|
return jsx(DotListItem, {
|
|
1863
1913
|
className: item.className,
|
|
1864
1914
|
component: item.component,
|
|
@@ -1913,16 +1963,12 @@ const DotListItem = ({
|
|
|
1913
1963
|
const [anchorEl, setAnchorEl] = useState(null);
|
|
1914
1964
|
const showEndIcon = endIcon || hasChildren;
|
|
1915
1965
|
const rootClasses = useStylesWithRootClass(listItemRootClass, className, isOpened ? 'open' : '');
|
|
1916
|
-
|
|
1917
1966
|
const toggleOpen = event => setAnchorEl(event.currentTarget);
|
|
1918
|
-
|
|
1919
1967
|
const handleClick = event => {
|
|
1920
1968
|
onClick === null || onClick === void 0 ? void 0 : onClick(event);
|
|
1921
1969
|
toggleOpen(event);
|
|
1922
1970
|
};
|
|
1923
|
-
|
|
1924
1971
|
const handleMenuLeave = event => onMenuLeave(event);
|
|
1925
|
-
|
|
1926
1972
|
const renderListItemText = () => primaryText && secondaryText ? jsx(ListItemText, {
|
|
1927
1973
|
primary: primaryText,
|
|
1928
1974
|
secondary: secondaryText
|
|
@@ -1931,17 +1977,14 @@ const DotListItem = ({
|
|
|
1931
1977
|
}, {
|
|
1932
1978
|
children: text
|
|
1933
1979
|
}), void 0);
|
|
1934
|
-
|
|
1935
1980
|
const renderListItemEndIcon = () => {
|
|
1936
1981
|
if (hasChildren || !endIcon) {
|
|
1937
1982
|
return jsx(DotIcon, {
|
|
1938
1983
|
iconId: hasChildren && getChevronIcon(nestedListType, isOpened)
|
|
1939
1984
|
}, void 0);
|
|
1940
1985
|
}
|
|
1941
|
-
|
|
1942
1986
|
return endIcon;
|
|
1943
1987
|
};
|
|
1944
|
-
|
|
1945
1988
|
return jsxs(Fragment$1, {
|
|
1946
1989
|
children: [jsx(DotTooltip, Object.assign({
|
|
1947
1990
|
"data-testid": `${dataTestId}-tooltip`,
|
|
@@ -1997,7 +2040,6 @@ const NestedList = ({
|
|
|
1997
2040
|
}) => {
|
|
1998
2041
|
const flyoutItemClasses = useStylesWithRootClass(listItemRootClass, flyoutListItemClassName);
|
|
1999
2042
|
const flyoutSpanClasses = useStylesWithRootClass(listItemLinkClassName, flyoutItemLinkClassName);
|
|
2000
|
-
|
|
2001
2043
|
if (type === 'expandable') {
|
|
2002
2044
|
return jsx(Collapse, Object.assign({
|
|
2003
2045
|
in: open,
|
|
@@ -2014,7 +2056,6 @@ const NestedList = ({
|
|
|
2014
2056
|
}, parentItemIndex)
|
|
2015
2057
|
}), void 0);
|
|
2016
2058
|
}
|
|
2017
|
-
|
|
2018
2059
|
if (type === 'menu') {
|
|
2019
2060
|
const menuItems = items.map((item, index) => {
|
|
2020
2061
|
const {
|
|
@@ -2066,7 +2107,6 @@ const NestedList = ({
|
|
|
2066
2107
|
open: open
|
|
2067
2108
|
}, parentItemIndex);
|
|
2068
2109
|
}
|
|
2069
|
-
|
|
2070
2110
|
if (type === 'drawer') {
|
|
2071
2111
|
return jsx(StyledDotDrawer, Object.assign({
|
|
2072
2112
|
PaperProps: {
|
|
@@ -2094,20 +2134,14 @@ const NestedList = ({
|
|
|
2094
2134
|
};
|
|
2095
2135
|
|
|
2096
2136
|
var _path$2, _path2$2, _path3, _path4;
|
|
2097
|
-
|
|
2098
2137
|
var _excluded$2 = ["title", "titleId"];
|
|
2099
|
-
|
|
2100
2138
|
function _extends$2() { _extends$2 = 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$2.apply(this, arguments); }
|
|
2101
|
-
|
|
2102
2139
|
function _objectWithoutProperties$2(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose$2(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
2103
|
-
|
|
2104
2140
|
function _objectWithoutPropertiesLoose$2(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
2105
|
-
|
|
2106
2141
|
function SvgLogoD(_ref, svgRef) {
|
|
2107
2142
|
var title = _ref.title,
|
|
2108
|
-
|
|
2109
|
-
|
|
2110
|
-
|
|
2143
|
+
titleId = _ref.titleId,
|
|
2144
|
+
props = _objectWithoutProperties$2(_ref, _excluded$2);
|
|
2111
2145
|
return /*#__PURE__*/React.createElement("svg", _extends$2({
|
|
2112
2146
|
width: 26,
|
|
2113
2147
|
height: 27,
|
|
@@ -2134,24 +2168,17 @@ function SvgLogoD(_ref, svgRef) {
|
|
|
2134
2168
|
fill: "#649A3D"
|
|
2135
2169
|
})));
|
|
2136
2170
|
}
|
|
2137
|
-
|
|
2138
2171
|
var ForwardRef$2 = /*#__PURE__*/React.forwardRef(SvgLogoD);
|
|
2139
2172
|
|
|
2140
2173
|
var _path$1, _path2$1;
|
|
2141
|
-
|
|
2142
2174
|
var _excluded$1 = ["title", "titleId"];
|
|
2143
|
-
|
|
2144
2175
|
function _extends$1() { _extends$1 = 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$1.apply(this, arguments); }
|
|
2145
|
-
|
|
2146
2176
|
function _objectWithoutProperties$1(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose$1(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
2147
|
-
|
|
2148
2177
|
function _objectWithoutPropertiesLoose$1(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
2149
|
-
|
|
2150
2178
|
function SvgLogoDigitalAi(_ref, svgRef) {
|
|
2151
2179
|
var title = _ref.title,
|
|
2152
|
-
|
|
2153
|
-
|
|
2154
|
-
|
|
2180
|
+
titleId = _ref.titleId,
|
|
2181
|
+
props = _objectWithoutProperties$1(_ref, _excluded$1);
|
|
2155
2182
|
return /*#__PURE__*/React.createElement("svg", _extends$1({
|
|
2156
2183
|
width: 93,
|
|
2157
2184
|
height: 23,
|
|
@@ -2170,20 +2197,84 @@ function SvgLogoDigitalAi(_ref, svgRef) {
|
|
|
2170
2197
|
fill: "#649A3D"
|
|
2171
2198
|
})));
|
|
2172
2199
|
}
|
|
2173
|
-
|
|
2174
2200
|
var ForwardRef$1 = /*#__PURE__*/React.forwardRef(SvgLogoDigitalAi);
|
|
2175
2201
|
|
|
2202
|
+
var _path, _path2;
|
|
2203
|
+
var _excluded = ["title", "titleId"];
|
|
2204
|
+
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); }
|
|
2205
|
+
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
2206
|
+
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
2207
|
+
function SvgLogoDigitalAiWhite(_ref, svgRef) {
|
|
2208
|
+
var title = _ref.title,
|
|
2209
|
+
titleId = _ref.titleId,
|
|
2210
|
+
props = _objectWithoutProperties(_ref, _excluded);
|
|
2211
|
+
return /*#__PURE__*/React.createElement("svg", _extends({
|
|
2212
|
+
width: 100,
|
|
2213
|
+
height: 26,
|
|
2214
|
+
viewBox: "0 0 100 26",
|
|
2215
|
+
fill: "none",
|
|
2216
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
2217
|
+
ref: svgRef,
|
|
2218
|
+
"aria-labelledby": titleId
|
|
2219
|
+
}, props), title ? /*#__PURE__*/React.createElement("title", {
|
|
2220
|
+
id: titleId
|
|
2221
|
+
}, title) : null, _path || (_path = /*#__PURE__*/React.createElement("path", {
|
|
2222
|
+
d: "M97.2643 6.22339H96.774V5.94409L98.0413 5.94642V6.22572H97.5511L97.5487 7.73862H97.2643V6.22339ZM98.2702 5.94642H98.7166L99.1305 7.21958H99.1374L99.5514 5.94642H100L99.9977 7.73629H99.7156L99.7179 6.29787H99.7133L99.2253 7.73629H99.0264L98.5477 6.29555H98.5431L98.5408 7.73396H98.2702V5.94642ZM88.5299 5.87892C87.7668 5.87892 87.1933 6.38399 87.0939 7.11018C86.1295 6.11167 84.7235 5.56238 83.1094 5.56238C79.1365 5.55772 76.0192 8.69988 76.0146 12.7172C76.0146 12.815 76.0169 12.9104 76.0215 13.0058C77.5154 13.597 78.5746 15.0633 78.5722 16.7741C78.5722 17.2349 78.4913 17.6772 78.3479 18.0891C79.5851 19.1854 81.2316 19.8371 83.0909 19.8394C84.6889 19.8418 86.2012 19.0551 87.0684 18.2265C87.1332 19.0178 87.709 19.5578 88.5114 19.5601C89.4203 19.5601 89.9868 18.9922 89.9868 18.0752L89.9984 7.34526C90.003 6.45382 89.4249 5.87892 88.5299 5.87892ZM83.0747 16.6949C80.8986 16.6926 79.1273 14.9074 79.1319 12.7125C79.1342 10.52 80.9079 8.73713 83.084 8.73945C85.26 8.74178 87.0314 10.527 87.0291 12.7219C87.0268 14.9144 85.2531 16.6973 83.0747 16.6949ZM62.5905 5.85099C61.8274 5.85099 61.2538 6.35606 61.1544 7.08225C60.1901 6.08374 58.7841 5.53445 57.1699 5.53445C53.197 5.52979 50.0821 8.67196 50.0775 12.6893C50.0728 16.7462 53.1161 19.8069 57.1561 19.8115C58.7563 19.8138 60.2664 19.0271 61.1336 18.1985C61.1983 18.9899 61.7742 19.5299 62.5766 19.5322C63.4854 19.5322 64.052 18.9643 64.052 18.0472L64.0636 7.31733C64.0636 6.42589 63.4854 5.85099 62.5905 5.85099ZM57.0358 16.6647C54.8597 16.6624 53.0884 14.8771 53.0907 12.6823C53.093 10.4898 54.8667 8.70687 57.0428 8.70919C59.2211 8.71152 60.9902 10.4967 60.9879 12.6916C60.9879 14.8841 59.2142 16.667 57.0358 16.6647ZM12.5199 0.5C11.6227 0.5 11.0446 1.07257 11.0446 1.95936L11.0399 7.04268C10.1149 6.03021 8.72512 5.47626 7.09479 5.47393C3.31846 5.4716 0.00462987 8.81394 4.84224e-06 12.6311C-0.00462018 16.4203 3.30459 19.7487 7.07861 19.7533C8.75287 19.7556 10.3207 18.8875 11.1509 18.031C11.3128 18.962 11.8701 19.4717 12.7373 19.4717C13.4542 19.4717 13.9745 18.9177 13.9768 18.1543L13.9953 1.96402C13.9953 1.08886 13.4033 0.502328 12.5199 0.5ZM7.05317 16.6088C4.87709 16.6065 3.10571 14.8213 3.10802 12.6264C3.11033 10.4339 4.88403 8.65101 7.06011 8.65333C9.23618 8.65566 11.0076 10.4409 11.0053 12.6357C11.0029 14.8283 9.22924 16.6112 7.05317 16.6088ZM33.9708 5.8184C33.0273 5.8184 32.5417 6.26063 32.4191 7.24983C31.5404 6.35606 29.991 5.50186 28.3352 5.50186C24.5612 5.49721 21.2451 8.83023 21.2427 12.6311C21.2381 16.4343 24.545 19.7719 28.3213 19.7766C30.028 19.7789 31.3762 19.2552 32.2411 18.259C32.1578 21.1359 30.7772 22.5324 28.0323 22.5301C27.1373 22.5301 26.5569 23.1119 26.5546 24.0127C26.5546 24.9577 27.1258 25.4977 28.1225 25.5C33.3534 25.507 35.2126 21.6759 35.2149 18.394L35.2265 7.11251C35.2311 6.36305 34.7016 5.8184 33.9708 5.8184ZM28.2612 16.6321C26.0828 16.6298 24.3138 14.8446 24.3161 12.6497C24.3184 10.4572 26.0921 8.67428 28.2682 8.67661C30.4442 8.67894 32.2156 10.4642 32.2133 12.659C32.211 14.8539 30.4373 16.6344 28.2612 16.6321ZM94.036 5.78349C93.2082 5.78349 92.5838 6.4096 92.5838 7.24285L92.5352 18.1264C92.5352 19.0015 93.1295 19.6113 93.9852 19.6137C94.894 19.6137 95.4605 19.0458 95.4628 18.131L95.5114 7.24751C95.5091 6.37236 94.9171 5.78349 94.036 5.78349ZM17.7832 5.63686C16.9553 5.63686 16.331 6.26296 16.331 7.09622L16.3194 17.9914C16.3194 18.8665 16.9137 19.4787 17.7694 19.4787C18.6782 19.4787 19.2447 18.9108 19.2447 17.9937L19.2563 7.09855C19.2563 6.22572 18.6643 5.63686 17.7832 5.63686ZM39.2803 5.69737C38.4525 5.69737 37.8281 6.32348 37.8281 7.15673L37.8165 18.0147C37.8165 18.8898 38.4108 19.5019 39.2665 19.5019C40.1753 19.5019 40.7419 18.934 40.7419 18.017L40.7534 7.15906C40.7534 6.28624 40.1614 5.69737 39.2803 5.69737ZM48.3315 16.6368C47.3718 16.5553 46.7775 16.283 46.7798 15.1751L46.7868 8.90005H47.5476C48.3893 8.90005 48.9998 8.28791 48.9998 7.44069C48.9998 6.53761 48.4333 5.95573 47.5499 5.9534H46.7891L46.7937 2.02686C46.7937 1.10981 46.2294 0.541896 45.3206 0.539568C44.4673 0.539568 43.8684 1.14938 43.8684 2.0222L43.8637 5.98599C43.1561 6.09305 42.7214 6.64235 42.7214 7.43371C42.7214 8.17852 43.1746 8.75109 43.8614 8.88143L43.8545 15.1937C43.8522 17.9332 45.3137 19.5066 47.869 19.5113C48.9258 19.5136 49.5595 19.0015 49.5595 18.1473C49.5595 17.2629 49.1131 16.7136 48.3315 16.6368ZM68.3209 0.562843C67.4676 0.562843 66.8686 1.16335 66.8686 2.0222L66.8501 18.0449C66.8501 18.9201 67.4444 19.5322 68.3001 19.5322C69.2089 19.5322 69.7755 18.9643 69.7778 18.0472L69.7963 2.02453C69.794 1.12378 69.2297 0.565171 68.3209 0.562843ZM76.8471 15.2146C76.7986 15.1402 76.7454 15.068 76.6876 15.0005C76.5534 14.8376 76.4008 14.6933 76.2343 14.5629C76.1765 14.5187 76.1164 14.4745 76.0539 14.4349C75.7464 14.2324 75.3972 14.0904 75.0202 14.0253C74.8699 13.9997 74.715 13.9857 74.5577 13.9857C74.0814 13.9857 73.6327 14.1067 73.2419 14.3209C73.1633 14.3628 73.087 14.4093 73.013 14.4605C72.2776 14.9609 71.7943 15.8058 71.792 16.7671C71.792 17.7284 72.273 18.5756 73.0083 19.076C73.0823 19.1272 73.1587 19.1738 73.235 19.2157C73.6258 19.4298 74.0744 19.5532 74.5508 19.5532C75.2191 19.5532 75.8319 19.3157 76.3083 18.9201C76.4447 18.806 76.5696 18.6803 76.6829 18.543C76.7407 18.4755 76.7939 18.4034 76.8425 18.3289C76.9419 18.1799 77.0275 18.024 77.0969 17.8564C77.2356 17.5235 77.3143 17.1581 77.3143 16.7741C77.3143 16.39 77.2379 16.0246 77.0992 15.6895C77.0321 15.5195 76.9466 15.3613 76.8471 15.2146Z",
|
|
2223
|
+
fill: "white"
|
|
2224
|
+
})), _path2 || (_path2 = /*#__PURE__*/React.createElement("path", {
|
|
2225
|
+
d: "M59.6633 12.0655C59.7095 12.2633 59.735 12.4682 59.735 12.68C59.735 12.7963 59.728 12.9127 59.7141 13.0244C59.7003 13.1385 59.6795 13.2479 59.6517 13.3573C59.5962 13.5737 59.5153 13.7809 59.4112 13.9717C58.9556 14.8166 58.0653 15.3915 57.0432 15.3915C55.5562 15.3915 54.3514 14.1766 54.3514 12.68C54.3514 12.4938 54.3699 12.3099 54.4069 12.133C54.585 11.2509 55.1909 10.5223 55.9979 10.1802C56.3194 10.0429 56.6732 9.96606 57.0455 9.96606C57.4178 9.96606 57.7716 10.0429 58.0931 10.1802C58.6966 10.4362 59.1823 10.911 59.4667 11.4999C59.5499 11.6791 59.617 11.8677 59.6633 12.0655ZM7.05822 9.96606C5.57127 9.96606 4.36646 11.181 4.36646 12.6776C4.36646 14.1742 5.57127 15.3892 7.05822 15.3892C8.54517 15.3892 9.7523 14.1742 9.7523 12.6776C9.7523 11.181 8.54517 9.96606 7.05822 9.96606ZM84.1273 10.1802C84.0464 10.1453 83.9655 10.115 83.8799 10.0894C83.7527 10.0499 83.6232 10.0196 83.4891 9.99865C83.355 9.9777 83.2185 9.96606 83.0798 9.96606C82.8023 9.96606 82.5317 10.008 82.2796 10.0871C82.1964 10.1127 82.1131 10.1453 82.0322 10.1779C81.2275 10.52 80.6216 11.2485 80.4412 12.1307C80.4065 12.3076 80.3857 12.4891 80.3857 12.6776C80.3857 13.4271 80.6863 14.1044 81.1743 14.5955C81.2968 14.7189 81.4309 14.8306 81.572 14.926C81.7871 15.0727 82.023 15.189 82.2773 15.2682C82.5317 15.3473 82.8 15.3892 83.0775 15.3892C83.2162 15.3892 83.355 15.3799 83.4868 15.3589C83.6209 15.338 83.7504 15.3077 83.8776 15.2682C84.1297 15.189 84.3678 15.0727 84.5829 14.926C84.7263 14.8283 84.8604 14.7189 84.9807 14.5955C85.4686 14.1044 85.7692 13.4271 85.7692 12.6776C85.7692 12.4914 85.7507 12.3076 85.7137 12.1307C85.538 11.2509 84.9344 10.5223 84.1273 10.1802ZM29.3115 10.1802C28.9901 10.0429 28.6363 9.96606 28.264 9.96606C27.8916 9.96606 27.5378 10.0429 27.2164 10.1802C26.4116 10.5223 25.8058 11.2509 25.6254 12.133C25.5907 12.3099 25.5699 12.4914 25.5699 12.68C25.5699 14.1789 26.7747 15.3915 28.2617 15.3915C29.7486 15.3915 30.9557 14.1766 30.9557 12.68C30.9557 12.4938 30.9372 12.3099 30.9002 12.133C30.7245 11.2509 30.1186 10.5223 29.3115 10.1802Z",
|
|
2226
|
+
fill: "#649A3D"
|
|
2227
|
+
})));
|
|
2228
|
+
}
|
|
2229
|
+
var ForwardRef = /*#__PURE__*/React.forwardRef(SvgLogoDigitalAiWhite);
|
|
2230
|
+
|
|
2176
2231
|
const rootClassName$J = 'dot-sidebar';
|
|
2177
2232
|
const StyledSidebar = styled.aside.withConfig({
|
|
2178
2233
|
displayName: "Sidebarstyles__StyledSidebar",
|
|
2179
2234
|
componentId: "l3atb4-0"
|
|
2180
2235
|
})(["", ""], ({
|
|
2181
2236
|
theme
|
|
2182
|
-
}) => css(["&.", "{align-items:stretch;background:", ";border-width:0 1px;border-style:solid;border-color:", ";box-sizing:border-box;color:", ";display:flex;height:100%;flex-direction:column;justify-content:space-between;letter-spacing:0.01em;-o-transition:width cubic-bezier(0.4,0,0.6,1) 0.3s;-moz-transition:width cubic-bezier(0.4,0,0.6,1) 0.3s;-webkit-transition:width cubic-bezier(0.4,0,0.6,1) 0.3s;transition:width cubic-bezier(0.4,0,0.6,1) 0.3s;header{align-items:center;border-bottom:1px solid;border-bottom-color:", ";display:flex;height:40px;flex-shrink:0;overflow:hidden;padding:", ";white-space:nowrap;&.app-logo{box-sizing:border-box;.dot-app-logo{svg,img{max-width:100%;}}}.dot-avatar{margin-right:", ";}}.go-back{align-items:center;border-bottom:1px solid;border-bottom-color:", ";display:flex;.go-back-button{margin:", ";background-color:", ";&:hover{background-color:", ";}&:focus-visible{box-shadow:0 0 0 2px ", ",0 0 0 4px ", ";}}}hr.MuiDivider-root{border-color:", ";margin:", ";}.MuiListSubheader-root{border-bottom:1px solid ", ";margin:", ";.dot-typography{display:block;margin:0;padding:", ";}}ul.side-nav{background:transparent;flex-grow:2;overflow-x:hidden;overflow-y:auto;padding:0;width:auto;.dot-nested-list{background:transparent;}.", "{.dot-drawer-paper{padding:", ";overflow-y:auto;border-right:1px solid ", ";box-shadow:0 0 5px 0 rgba(0,0,0,0.15);}.MuiTypography-root.MuiTypography-subtitle2{line-height:40px;}.", "{margin:0;padding-left:", ";}}.dot-list-item{height:44px;padding:0;&.Mui-focusVisible{box-shadow:inset 0 0 0 2px ", ";border:2px solid ", ";}&.open{border:'none';}.dot-list-item-link .dot-icon{margin-right:", ";}.dot-icon{border-radius:50%;height:40px;margin:", ";width:40px;}.dot-typography{white-space:nowrap;}}}.toggle-nav{border-top:1px solid;border-top-color:", ";padding:", ";text-align:right;.dot-icon{transform:rotate(0deg);-o-transition:all cubic-bezier(0.4,0,0.2,1) 0.3s;-moz-transition:all cubic-bezier(0.4,0,0.2,1) 0.3s;-webkit-transition:all cubic-bezier(0.4,0,0.2,1) 0.3s;transition:all cubic-bezier(0.4,0,0.2,1) 0.3s;}}.powered-by{border-top:1px solid;border-top-color:", ";color:", ";display:flex;flex-direction:column;flex-shrink:0;font-size:12px;overflow:hidden;padding:", ";p.desc{white-space:nowrap;}.company-name{margin-top:", ";}.d-icon{display:none;}}&.collapsed{overflow:hidden;width:58px;-o-transition:all cubic-bezier(0.4,0,0.6,1) 0.3s;-moz-transition:all cubic-bezier(0.4,0,0.6,1) 0.3s;-webkit-transition:all cubic-bezier(0.4,0,0.6,1) 0.3s;transition:all cubic-bezier(0.4,0,0.6,1) 0.3s;li.MuiListSubheader-root .dot-typography,.go-back .MuiTypography-root,.MuiListItem-divider .dot-list-item-link,.child,.powered-by .company-name,.powered-by p.desc{display:none;}.dot-nested-drawer li.MuiListSubheader-root .dot-typography,.powered-by .d-icon{display:block;}header .dot-app-logo{text-align:center;}ul.side-nav{width:56px;.dot-list-item{margin-left:0;}.toggle-nav{align-self:center;}}.powered-by{align-items:center;}}}"], rootClassName$J, theme.palette.layer.n50, theme.palette.layer.n100, theme.palette.grey[700], theme.palette.layer.n100, theme.spacing(1, 2), theme.spacing(1), theme.palette.layer.n100, theme.spacing(0.5, 1), theme.palette.layer.n100, theme.palette.layer.n200, theme.palette.layer.n0, theme.palette.layer.n900, theme.palette.layer.n100, theme.spacing(1, 0), theme.palette.layer.n100, theme.spacing(0, 0, 1), theme.spacing(1.5, 2), nestedDrawerClassName, theme.spacing(2), theme.palette.layer.n100, listItemRootClass, theme.spacing(2), theme.palette.layer.n0, theme.palette.layer.n900, theme.spacing(1), theme.spacing(0, 1), theme.palette.layer.n100, theme.spacing(1), theme.palette.layer.n100, theme.palette.grey[400], theme.spacing(1), theme.spacing(1)));
|
|
2237
|
+
}) => css(["&.", "{align-items:stretch;background:", ";border-width:0 1px;border-style:solid;border-color:", ";box-sizing:border-box;color:", ";display:flex;height:100%;flex-direction:column;justify-content:space-between;letter-spacing:0.01em;-o-transition:width cubic-bezier(0.4,0,0.6,1) 0.3s;-moz-transition:width cubic-bezier(0.4,0,0.6,1) 0.3s;-webkit-transition:width cubic-bezier(0.4,0,0.6,1) 0.3s;transition:width cubic-bezier(0.4,0,0.6,1) 0.3s;header{align-items:center;border-bottom:1px solid;border-bottom-color:", ";display:flex;height:40px;flex-shrink:0;overflow:hidden;padding:", ";white-space:nowrap;&.app-logo{box-sizing:border-box;.dot-app-logo{svg,img{max-width:100%;}}}.dot-avatar{margin-right:", ";}}.go-back{align-items:center;border-bottom:1px solid;border-bottom-color:", ";display:flex;.go-back-button{margin:", ";background-color:", ";&:hover{background-color:", ";}&:focus-visible{box-shadow:0 0 0 2px ", ",0 0 0 4px ", ";}}.back-button-text{margin-right:", ";}}hr.MuiDivider-root{border-color:", ";margin:", ";}.MuiListSubheader-root{border-bottom:1px solid ", ";margin:", ";.dot-typography{display:block;margin:0;padding:", ";}}ul.side-nav{background:transparent;flex-grow:2;overflow-x:hidden;overflow-y:auto;padding:0;width:auto;.dot-nested-list{background:transparent;}.", "{.dot-drawer-paper{padding:", ";overflow-y:auto;border-right:1px solid ", ";box-shadow:0 0 5px 0 rgba(0,0,0,0.15);}.MuiTypography-root.MuiTypography-subtitle2{line-height:40px;}.", "{margin:0;padding-left:", ";}}.dot-list-item{height:44px;padding:0;&.Mui-focusVisible{box-shadow:inset 0 0 0 2px ", ";border:2px solid ", ";}&.open{border:'none';}.dot-list-item-link .dot-icon{margin-right:", ";}.dot-icon{border-radius:50%;height:40px;margin:", ";width:40px;}.dot-typography{white-space:nowrap;}}}.toggle-nav{border-top:1px solid;border-top-color:", ";padding:", ";text-align:right;.dot-icon{transform:rotate(0deg);-o-transition:all cubic-bezier(0.4,0,0.2,1) 0.3s;-moz-transition:all cubic-bezier(0.4,0,0.2,1) 0.3s;-webkit-transition:all cubic-bezier(0.4,0,0.2,1) 0.3s;transition:all cubic-bezier(0.4,0,0.2,1) 0.3s;}}.powered-by{border-top:1px solid;border-top-color:", ";color:", ";display:flex;flex-direction:column;flex-shrink:0;font-size:12px;overflow:hidden;padding:", ";p.desc{white-space:nowrap;}.company-name{margin-top:", ";}.d-icon{display:none;}}&.collapsed{overflow:hidden;width:58px;-o-transition:all cubic-bezier(0.4,0,0.6,1) 0.3s;-moz-transition:all cubic-bezier(0.4,0,0.6,1) 0.3s;-webkit-transition:all cubic-bezier(0.4,0,0.6,1) 0.3s;transition:all cubic-bezier(0.4,0,0.6,1) 0.3s;li.MuiListSubheader-root .dot-typography,.go-back .MuiTypography-root,.MuiListItem-divider .dot-list-item-link,.child,.powered-by .company-name,.powered-by p.desc{display:none;}.dot-nested-drawer li.MuiListSubheader-root .dot-typography,.powered-by .d-icon{display:block;}header .dot-app-logo{text-align:center;}ul.side-nav{width:56px;.dot-list-item{margin-left:0;}.toggle-nav{align-self:center;}}.powered-by{align-items:center;}}}"], rootClassName$J, theme.palette.layer.n50, theme.palette.layer.n100, theme.palette.grey[700], theme.palette.layer.n100, theme.spacing(1, 2), theme.spacing(1), theme.palette.layer.n100, theme.spacing(0.5, 1), theme.palette.layer.n100, theme.palette.layer.n200, theme.palette.layer.n0, theme.palette.layer.n900, theme.spacing(2.5), theme.palette.layer.n100, theme.spacing(1, 0), theme.palette.layer.n100, theme.spacing(0, 0, 1), theme.spacing(1.5, 2), nestedDrawerClassName, theme.spacing(2), theme.palette.layer.n100, listItemRootClass, theme.spacing(2), theme.palette.layer.n0, theme.palette.layer.n900, theme.spacing(1), theme.spacing(0, 1), theme.palette.layer.n100, theme.spacing(1), theme.palette.layer.n100, theme.palette.grey[400], theme.spacing(1), theme.spacing(1)));
|
|
2238
|
+
|
|
2239
|
+
const rootClassName$I = 'dot-truncate-with-tooltip';
|
|
2240
|
+
const StyledTruncateWithTooltip = styled(Tooltip).withConfig({
|
|
2241
|
+
displayName: "TruncateWithTooltipstyles__StyledTruncateWithTooltip",
|
|
2242
|
+
componentId: "sc-1o80lur-0"
|
|
2243
|
+
})(["", ""], () => css(["&.", "{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;}&.dot-characters-limit{display:inline;}"], rootClassName$I));
|
|
2244
|
+
|
|
2245
|
+
const getTruncatedLabel = (label, charactersLimit) => {
|
|
2246
|
+
if (!charactersLimit || charactersLimit <= 0 || label.length < charactersLimit) return label;
|
|
2247
|
+
return `${label.substr(0, charactersLimit)}...`;
|
|
2248
|
+
};
|
|
2249
|
+
|
|
2250
|
+
const DotTruncateWithTooltip = ({
|
|
2251
|
+
ariaLabel,
|
|
2252
|
+
charactersLimit,
|
|
2253
|
+
className,
|
|
2254
|
+
'data-testid': dataTestId,
|
|
2255
|
+
label,
|
|
2256
|
+
width
|
|
2257
|
+
}) => {
|
|
2258
|
+
const rootClasses = useStylesWithRootClass(rootClassName$I, className, charactersLimit ? 'dot-characters-limit' : '');
|
|
2259
|
+
return jsx(StyledTruncateWithTooltip, Object.assign({
|
|
2260
|
+
"aria-label": ariaLabel,
|
|
2261
|
+
className: rootClasses,
|
|
2262
|
+
"data-testid": dataTestId,
|
|
2263
|
+
title: label,
|
|
2264
|
+
style: {
|
|
2265
|
+
width: calculateWidth(width)
|
|
2266
|
+
}
|
|
2267
|
+
}, {
|
|
2268
|
+
children: jsx("span", {
|
|
2269
|
+
children: getTruncatedLabel(label, charactersLimit)
|
|
2270
|
+
}, void 0)
|
|
2271
|
+
}), void 0);
|
|
2272
|
+
};
|
|
2183
2273
|
|
|
2184
2274
|
const Brand = ({
|
|
2185
2275
|
brandDesc
|
|
2186
2276
|
}) => {
|
|
2277
|
+
const theme = useTheme();
|
|
2187
2278
|
return jsxs("div", Object.assign({
|
|
2188
2279
|
className: "powered-by"
|
|
2189
2280
|
}, {
|
|
@@ -2195,7 +2286,9 @@ const Brand = ({
|
|
|
2195
2286
|
}), void 0), jsx(DotTooltip, Object.assign({
|
|
2196
2287
|
title: "digital.ai"
|
|
2197
2288
|
}, {
|
|
2198
|
-
children: jsx(ForwardRef$1, {
|
|
2289
|
+
children: theme.palette.mode === "light" ? jsx(ForwardRef$1, {
|
|
2290
|
+
className: "company-name"
|
|
2291
|
+
}, void 0) : jsx(ForwardRef, {
|
|
2199
2292
|
className: "company-name"
|
|
2200
2293
|
}, void 0)
|
|
2201
2294
|
}), void 0), jsx(DotTooltip, Object.assign({
|
|
@@ -2207,7 +2300,6 @@ const Brand = ({
|
|
|
2207
2300
|
}), void 0)]
|
|
2208
2301
|
}), void 0);
|
|
2209
2302
|
};
|
|
2210
|
-
|
|
2211
2303
|
const Header = ({
|
|
2212
2304
|
appLogo,
|
|
2213
2305
|
appLogoSmall,
|
|
@@ -2234,7 +2326,6 @@ const Header = ({
|
|
|
2234
2326
|
}, void 0)
|
|
2235
2327
|
}), void 0);
|
|
2236
2328
|
};
|
|
2237
|
-
|
|
2238
2329
|
const DotSidebar = ({
|
|
2239
2330
|
appLogo,
|
|
2240
2331
|
appLogoSmall,
|
|
@@ -2262,9 +2353,7 @@ const DotSidebar = ({
|
|
|
2262
2353
|
const hasBackItem = _goBack && backItem;
|
|
2263
2354
|
const displayHeader = title || hasAppLogo;
|
|
2264
2355
|
const openClass = isOpen ? 'open' : 'collapsed';
|
|
2265
|
-
|
|
2266
2356
|
const checkPrimaryNavMissingIcons = () => _navItems.some(item => !item.divider && !item.startIcon);
|
|
2267
|
-
|
|
2268
2357
|
useEffect(() => {
|
|
2269
2358
|
// Incorrect usage warning
|
|
2270
2359
|
if (_collapsable && checkPrimaryNavMissingIcons()) {
|
|
@@ -2277,12 +2366,10 @@ const DotSidebar = ({
|
|
|
2277
2366
|
useEffect(() => {
|
|
2278
2367
|
setSidebarWidth(isOpen ? _width : 58);
|
|
2279
2368
|
}, [isOpen]);
|
|
2280
|
-
|
|
2281
2369
|
const collapseNav = () => {
|
|
2282
2370
|
onCollapseChange && onCollapseChange(isOpen);
|
|
2283
2371
|
setIsOpen(!isOpen);
|
|
2284
2372
|
};
|
|
2285
|
-
|
|
2286
2373
|
const sidebarClasses = useStylesWithRootClass('side-nav', openClass);
|
|
2287
2374
|
const rootClasses = useStylesWithRootClass(rootClassName$J, openClass, className);
|
|
2288
2375
|
return jsxs(StyledSidebar, Object.assign({
|
|
@@ -2311,9 +2398,14 @@ const DotSidebar = ({
|
|
|
2311
2398
|
onClick: backItem.onClick,
|
|
2312
2399
|
tooltip: backItem.title || backItem.text
|
|
2313
2400
|
}, void 0), jsx(DotTypography, Object.assign({
|
|
2314
|
-
|
|
2401
|
+
className: "back-button-text",
|
|
2402
|
+
variant: "h4",
|
|
2403
|
+
noWrap: true
|
|
2315
2404
|
}, {
|
|
2316
|
-
children:
|
|
2405
|
+
children: jsx(DotTruncateWithTooltip, {
|
|
2406
|
+
"data-testid": dataTestId && `${dataTestId}-go-back-truncate-tooltip`,
|
|
2407
|
+
label: backItem.text
|
|
2408
|
+
}, void 0)
|
|
2317
2409
|
}), void 0)]
|
|
2318
2410
|
}), void 0), _navItems.length > 0 && jsx(DotList, {
|
|
2319
2411
|
ariaLabel: "left navigation",
|
|
@@ -2350,13 +2442,13 @@ const DotSidebar = ({
|
|
|
2350
2442
|
}), void 0);
|
|
2351
2443
|
};
|
|
2352
2444
|
|
|
2353
|
-
const rootClassName$
|
|
2445
|
+
const rootClassName$H = 'dot-badge';
|
|
2354
2446
|
const StyledBadge = styled(Badge).withConfig({
|
|
2355
2447
|
displayName: "Badgestyles__StyledBadge",
|
|
2356
2448
|
componentId: "sc-1brv3h5-0"
|
|
2357
2449
|
})(["", ""], ({
|
|
2358
2450
|
theme
|
|
2359
|
-
}) => css(["&.", "{
|
|
2451
|
+
}) => css(["&.", "{color:", ";word-break:normal;.MuiBadge-badge{background-color:", ";&.MuiBadge-standard{font-size:10px;height:", ";min-width:", ";padding:", ";}}}"], rootClassName$H, theme.palette.text.primary, ({
|
|
2360
2452
|
$badgeColor
|
|
2361
2453
|
}) => {
|
|
2362
2454
|
return $badgeColor;
|
|
@@ -2374,7 +2466,7 @@ const DotBadge = ({
|
|
|
2374
2466
|
overlap,
|
|
2375
2467
|
variant: _variant = 'dot'
|
|
2376
2468
|
}) => {
|
|
2377
|
-
const rootClasses = useStylesWithRootClass(rootClassName$
|
|
2469
|
+
const rootClasses = useStylesWithRootClass(rootClassName$H, className);
|
|
2378
2470
|
return jsx(StyledBadge, Object.assign({
|
|
2379
2471
|
"$badgeColor": badgeColor,
|
|
2380
2472
|
anchorOrigin: {
|
|
@@ -2397,43 +2489,7 @@ const DotBadge = ({
|
|
|
2397
2489
|
}), void 0);
|
|
2398
2490
|
};
|
|
2399
2491
|
|
|
2400
|
-
|
|
2401
|
-
|
|
2402
|
-
var _excluded = ["title", "titleId"];
|
|
2403
|
-
|
|
2404
|
-
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); }
|
|
2405
|
-
|
|
2406
|
-
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
2407
|
-
|
|
2408
|
-
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
2409
|
-
|
|
2410
|
-
function SvgLogoDigitalAiWhite(_ref, svgRef) {
|
|
2411
|
-
var title = _ref.title,
|
|
2412
|
-
titleId = _ref.titleId,
|
|
2413
|
-
props = _objectWithoutProperties(_ref, _excluded);
|
|
2414
|
-
|
|
2415
|
-
return /*#__PURE__*/React.createElement("svg", _extends({
|
|
2416
|
-
width: 100,
|
|
2417
|
-
height: 26,
|
|
2418
|
-
viewBox: "0 0 100 26",
|
|
2419
|
-
fill: "none",
|
|
2420
|
-
xmlns: "http://www.w3.org/2000/svg",
|
|
2421
|
-
ref: svgRef,
|
|
2422
|
-
"aria-labelledby": titleId
|
|
2423
|
-
}, props), title ? /*#__PURE__*/React.createElement("title", {
|
|
2424
|
-
id: titleId
|
|
2425
|
-
}, title) : null, _path || (_path = /*#__PURE__*/React.createElement("path", {
|
|
2426
|
-
d: "M97.2643 6.22339H96.774V5.94409L98.0413 5.94642V6.22572H97.5511L97.5487 7.73862H97.2643V6.22339ZM98.2702 5.94642H98.7166L99.1305 7.21958H99.1374L99.5514 5.94642H100L99.9977 7.73629H99.7156L99.7179 6.29787H99.7133L99.2253 7.73629H99.0264L98.5477 6.29555H98.5431L98.5408 7.73396H98.2702V5.94642ZM88.5299 5.87892C87.7668 5.87892 87.1933 6.38399 87.0939 7.11018C86.1295 6.11167 84.7235 5.56238 83.1094 5.56238C79.1365 5.55772 76.0192 8.69988 76.0146 12.7172C76.0146 12.815 76.0169 12.9104 76.0215 13.0058C77.5154 13.597 78.5746 15.0633 78.5722 16.7741C78.5722 17.2349 78.4913 17.6772 78.3479 18.0891C79.5851 19.1854 81.2316 19.8371 83.0909 19.8394C84.6889 19.8418 86.2012 19.0551 87.0684 18.2265C87.1332 19.0178 87.709 19.5578 88.5114 19.5601C89.4203 19.5601 89.9868 18.9922 89.9868 18.0752L89.9984 7.34526C90.003 6.45382 89.4249 5.87892 88.5299 5.87892ZM83.0747 16.6949C80.8986 16.6926 79.1273 14.9074 79.1319 12.7125C79.1342 10.52 80.9079 8.73713 83.084 8.73945C85.26 8.74178 87.0314 10.527 87.0291 12.7219C87.0268 14.9144 85.2531 16.6973 83.0747 16.6949ZM62.5905 5.85099C61.8274 5.85099 61.2538 6.35606 61.1544 7.08225C60.1901 6.08374 58.7841 5.53445 57.1699 5.53445C53.197 5.52979 50.0821 8.67196 50.0775 12.6893C50.0728 16.7462 53.1161 19.8069 57.1561 19.8115C58.7563 19.8138 60.2664 19.0271 61.1336 18.1985C61.1983 18.9899 61.7742 19.5299 62.5766 19.5322C63.4854 19.5322 64.052 18.9643 64.052 18.0472L64.0636 7.31733C64.0636 6.42589 63.4854 5.85099 62.5905 5.85099ZM57.0358 16.6647C54.8597 16.6624 53.0884 14.8771 53.0907 12.6823C53.093 10.4898 54.8667 8.70687 57.0428 8.70919C59.2211 8.71152 60.9902 10.4967 60.9879 12.6916C60.9879 14.8841 59.2142 16.667 57.0358 16.6647ZM12.5199 0.5C11.6227 0.5 11.0446 1.07257 11.0446 1.95936L11.0399 7.04268C10.1149 6.03021 8.72512 5.47626 7.09479 5.47393C3.31846 5.4716 0.00462987 8.81394 4.84224e-06 12.6311C-0.00462018 16.4203 3.30459 19.7487 7.07861 19.7533C8.75287 19.7556 10.3207 18.8875 11.1509 18.031C11.3128 18.962 11.8701 19.4717 12.7373 19.4717C13.4542 19.4717 13.9745 18.9177 13.9768 18.1543L13.9953 1.96402C13.9953 1.08886 13.4033 0.502328 12.5199 0.5ZM7.05317 16.6088C4.87709 16.6065 3.10571 14.8213 3.10802 12.6264C3.11033 10.4339 4.88403 8.65101 7.06011 8.65333C9.23618 8.65566 11.0076 10.4409 11.0053 12.6357C11.0029 14.8283 9.22924 16.6112 7.05317 16.6088ZM33.9708 5.8184C33.0273 5.8184 32.5417 6.26063 32.4191 7.24983C31.5404 6.35606 29.991 5.50186 28.3352 5.50186C24.5612 5.49721 21.2451 8.83023 21.2427 12.6311C21.2381 16.4343 24.545 19.7719 28.3213 19.7766C30.028 19.7789 31.3762 19.2552 32.2411 18.259C32.1578 21.1359 30.7772 22.5324 28.0323 22.5301C27.1373 22.5301 26.5569 23.1119 26.5546 24.0127C26.5546 24.9577 27.1258 25.4977 28.1225 25.5C33.3534 25.507 35.2126 21.6759 35.2149 18.394L35.2265 7.11251C35.2311 6.36305 34.7016 5.8184 33.9708 5.8184ZM28.2612 16.6321C26.0828 16.6298 24.3138 14.8446 24.3161 12.6497C24.3184 10.4572 26.0921 8.67428 28.2682 8.67661C30.4442 8.67894 32.2156 10.4642 32.2133 12.659C32.211 14.8539 30.4373 16.6344 28.2612 16.6321ZM94.036 5.78349C93.2082 5.78349 92.5838 6.4096 92.5838 7.24285L92.5352 18.1264C92.5352 19.0015 93.1295 19.6113 93.9852 19.6137C94.894 19.6137 95.4605 19.0458 95.4628 18.131L95.5114 7.24751C95.5091 6.37236 94.9171 5.78349 94.036 5.78349ZM17.7832 5.63686C16.9553 5.63686 16.331 6.26296 16.331 7.09622L16.3194 17.9914C16.3194 18.8665 16.9137 19.4787 17.7694 19.4787C18.6782 19.4787 19.2447 18.9108 19.2447 17.9937L19.2563 7.09855C19.2563 6.22572 18.6643 5.63686 17.7832 5.63686ZM39.2803 5.69737C38.4525 5.69737 37.8281 6.32348 37.8281 7.15673L37.8165 18.0147C37.8165 18.8898 38.4108 19.5019 39.2665 19.5019C40.1753 19.5019 40.7419 18.934 40.7419 18.017L40.7534 7.15906C40.7534 6.28624 40.1614 5.69737 39.2803 5.69737ZM48.3315 16.6368C47.3718 16.5553 46.7775 16.283 46.7798 15.1751L46.7868 8.90005H47.5476C48.3893 8.90005 48.9998 8.28791 48.9998 7.44069C48.9998 6.53761 48.4333 5.95573 47.5499 5.9534H46.7891L46.7937 2.02686C46.7937 1.10981 46.2294 0.541896 45.3206 0.539568C44.4673 0.539568 43.8684 1.14938 43.8684 2.0222L43.8637 5.98599C43.1561 6.09305 42.7214 6.64235 42.7214 7.43371C42.7214 8.17852 43.1746 8.75109 43.8614 8.88143L43.8545 15.1937C43.8522 17.9332 45.3137 19.5066 47.869 19.5113C48.9258 19.5136 49.5595 19.0015 49.5595 18.1473C49.5595 17.2629 49.1131 16.7136 48.3315 16.6368ZM68.3209 0.562843C67.4676 0.562843 66.8686 1.16335 66.8686 2.0222L66.8501 18.0449C66.8501 18.9201 67.4444 19.5322 68.3001 19.5322C69.2089 19.5322 69.7755 18.9643 69.7778 18.0472L69.7963 2.02453C69.794 1.12378 69.2297 0.565171 68.3209 0.562843ZM76.8471 15.2146C76.7986 15.1402 76.7454 15.068 76.6876 15.0005C76.5534 14.8376 76.4008 14.6933 76.2343 14.5629C76.1765 14.5187 76.1164 14.4745 76.0539 14.4349C75.7464 14.2324 75.3972 14.0904 75.0202 14.0253C74.8699 13.9997 74.715 13.9857 74.5577 13.9857C74.0814 13.9857 73.6327 14.1067 73.2419 14.3209C73.1633 14.3628 73.087 14.4093 73.013 14.4605C72.2776 14.9609 71.7943 15.8058 71.792 16.7671C71.792 17.7284 72.273 18.5756 73.0083 19.076C73.0823 19.1272 73.1587 19.1738 73.235 19.2157C73.6258 19.4298 74.0744 19.5532 74.5508 19.5532C75.2191 19.5532 75.8319 19.3157 76.3083 18.9201C76.4447 18.806 76.5696 18.6803 76.6829 18.543C76.7407 18.4755 76.7939 18.4034 76.8425 18.3289C76.9419 18.1799 77.0275 18.024 77.0969 17.8564C77.2356 17.5235 77.3143 17.1581 77.3143 16.7741C77.3143 16.39 77.2379 16.0246 77.0992 15.6895C77.0321 15.5195 76.9466 15.3613 76.8471 15.2146Z",
|
|
2427
|
-
fill: "white"
|
|
2428
|
-
})), _path2 || (_path2 = /*#__PURE__*/React.createElement("path", {
|
|
2429
|
-
d: "M59.6633 12.0655C59.7095 12.2633 59.735 12.4682 59.735 12.68C59.735 12.7963 59.728 12.9127 59.7141 13.0244C59.7003 13.1385 59.6795 13.2479 59.6517 13.3573C59.5962 13.5737 59.5153 13.7809 59.4112 13.9717C58.9556 14.8166 58.0653 15.3915 57.0432 15.3915C55.5562 15.3915 54.3514 14.1766 54.3514 12.68C54.3514 12.4938 54.3699 12.3099 54.4069 12.133C54.585 11.2509 55.1909 10.5223 55.9979 10.1802C56.3194 10.0429 56.6732 9.96606 57.0455 9.96606C57.4178 9.96606 57.7716 10.0429 58.0931 10.1802C58.6966 10.4362 59.1823 10.911 59.4667 11.4999C59.5499 11.6791 59.617 11.8677 59.6633 12.0655ZM7.05822 9.96606C5.57127 9.96606 4.36646 11.181 4.36646 12.6776C4.36646 14.1742 5.57127 15.3892 7.05822 15.3892C8.54517 15.3892 9.7523 14.1742 9.7523 12.6776C9.7523 11.181 8.54517 9.96606 7.05822 9.96606ZM84.1273 10.1802C84.0464 10.1453 83.9655 10.115 83.8799 10.0894C83.7527 10.0499 83.6232 10.0196 83.4891 9.99865C83.355 9.9777 83.2185 9.96606 83.0798 9.96606C82.8023 9.96606 82.5317 10.008 82.2796 10.0871C82.1964 10.1127 82.1131 10.1453 82.0322 10.1779C81.2275 10.52 80.6216 11.2485 80.4412 12.1307C80.4065 12.3076 80.3857 12.4891 80.3857 12.6776C80.3857 13.4271 80.6863 14.1044 81.1743 14.5955C81.2968 14.7189 81.4309 14.8306 81.572 14.926C81.7871 15.0727 82.023 15.189 82.2773 15.2682C82.5317 15.3473 82.8 15.3892 83.0775 15.3892C83.2162 15.3892 83.355 15.3799 83.4868 15.3589C83.6209 15.338 83.7504 15.3077 83.8776 15.2682C84.1297 15.189 84.3678 15.0727 84.5829 14.926C84.7263 14.8283 84.8604 14.7189 84.9807 14.5955C85.4686 14.1044 85.7692 13.4271 85.7692 12.6776C85.7692 12.4914 85.7507 12.3076 85.7137 12.1307C85.538 11.2509 84.9344 10.5223 84.1273 10.1802ZM29.3115 10.1802C28.9901 10.0429 28.6363 9.96606 28.264 9.96606C27.8916 9.96606 27.5378 10.0429 27.2164 10.1802C26.4116 10.5223 25.8058 11.2509 25.6254 12.133C25.5907 12.3099 25.5699 12.4914 25.5699 12.68C25.5699 14.1789 26.7747 15.3915 28.2617 15.3915C29.7486 15.3915 30.9557 14.1766 30.9557 12.68C30.9557 12.4938 30.9372 12.3099 30.9002 12.133C30.7245 11.2509 30.1186 10.5223 29.3115 10.1802Z",
|
|
2430
|
-
fill: "#649A3D"
|
|
2431
|
-
})));
|
|
2432
|
-
}
|
|
2433
|
-
|
|
2434
|
-
var ForwardRef = /*#__PURE__*/React.forwardRef(SvgLogoDigitalAiWhite);
|
|
2435
|
-
|
|
2436
|
-
const rootClassName$H = 'dot-app-toolbar';
|
|
2492
|
+
const rootClassName$G = 'dot-app-toolbar';
|
|
2437
2493
|
const denseClassName = 'dense';
|
|
2438
2494
|
const StyledMainMenu = styled(DotDrawer).withConfig({
|
|
2439
2495
|
displayName: "AppToolbarstyles__StyledMainMenu",
|
|
@@ -2446,7 +2502,7 @@ const StyledAppToolbar = styled.header.withConfig({
|
|
|
2446
2502
|
componentId: "sc-3kokby-1"
|
|
2447
2503
|
})(["", ""], ({
|
|
2448
2504
|
theme
|
|
2449
|
-
}) => css(["&.", "{align-items:center;background:", ";border-bottom:4px solid ", ";box-sizing:border-box;color:", ";display:flex;height:64px;padding:", ";position:fixed;width:100%;z-index:", ";top:0;left:0;right:0;&.without-menu-icon{padding-left:", ";}&.", "{height:48px;}.dot-main-menu-btn,.dot-right-side{.dot-icon-btn{color:", ";}}.dot-main-menu-btn{text-align:center;}.dot-branding{align-items:center;display:flex;padding:", ";.primary-logo,.app-logo{margin-right:", ";}.primary-logo,.dot-app-logo{display:flex;max-width:200px;svg,img{max-height:36px;max-width:200px;}}a{line-height:0;}.divider{margin-left:", ";}}div.dot-right-side{display:flex;flex-grow:2;justify-content:flex-end;.dot-badge .MuiBadge-anchorOriginTopRightRectangular{top:", ";right:", ";}}.avatar-wrapper{display:flex;align-items:center;justify-content:center;width:40px;button.dot-avatar:focus-visible{box-shadow:0px 0px 0px 3px ", ",0px 0px 0px 5px ", ";}}}"], rootClassName$
|
|
2505
|
+
}) => css(["&.", "{align-items:center;background:", ";border-bottom:4px solid ", ";box-sizing:border-box;color:", ";display:flex;height:64px;padding:", ";position:fixed;width:100%;z-index:", ";top:0;left:0;right:0;&.without-menu-icon{padding-left:", ";}&.", "{height:48px;}.dot-main-menu-btn,.dot-right-side{.dot-icon-btn{color:", ";}}.dot-main-menu-btn{text-align:center;}.dot-branding{align-items:center;display:flex;padding:", ";.primary-logo,.app-logo{margin-right:", ";}.primary-logo,.dot-app-logo{display:flex;max-width:200px;svg,img{max-height:36px;max-width:200px;}}a{line-height:0;}.divider{margin-left:", ";}}div.dot-right-side{display:flex;flex-grow:2;justify-content:flex-end;.dot-badge .MuiBadge-anchorOriginTopRightRectangular{top:", ";right:", ";}}.avatar-wrapper{display:flex;align-items:center;justify-content:center;width:40px;button.dot-avatar:focus-visible{box-shadow:0px 0px 0px 3px ", ",0px 0px 0px 5px ", ";}}}"], rootClassName$G, theme.palette.grey[700], theme.palette.grey[100], theme.palette.grey[0], theme.spacing(1.5, 2, 1.5, 1), levelFourth, theme.spacing(1.5), denseClassName, theme.palette.grey[100], theme.spacing(0, 4, 0, 0.75), theme.spacing(1.5), theme.spacing(2), theme.spacing(1.5), theme.spacing(1.5), theme.palette.layer.n900, theme.palette.layer.n0));
|
|
2450
2506
|
|
|
2451
2507
|
const DotAppToolbar = ({
|
|
2452
2508
|
ariaLabel,
|
|
@@ -2474,33 +2530,29 @@ const DotAppToolbar = ({
|
|
|
2474
2530
|
const displayAppLogo = appLogo || appLogoSmall;
|
|
2475
2531
|
const mainMenuRef = useRef(null);
|
|
2476
2532
|
const denseClass = _dense ? denseClassName : '';
|
|
2477
|
-
const rootClasses = useStylesWithRootClass(rootClassName$
|
|
2533
|
+
const rootClasses = useStylesWithRootClass(rootClassName$G, className, denseClass, showMainMenu ? '' : 'without-menu-icon');
|
|
2478
2534
|
const mainMenuClasses = useStylesWithRootClass('dot-main-menu', denseClass, menuOpen ? 'open' : '');
|
|
2479
2535
|
const targetBreakpoint = useMediaQuery(theme => theme.breakpoints.up('md'));
|
|
2480
2536
|
useEffect(() => {
|
|
2481
2537
|
const handleInsideMenuClick = event => {
|
|
2482
2538
|
var _a, _b;
|
|
2483
|
-
|
|
2484
2539
|
const targetEl = event.target;
|
|
2485
2540
|
const clickInsideMenu = (_a = mainMenuRef.current) === null || _a === void 0 ? void 0 : _a.contains(targetEl);
|
|
2486
|
-
const hasLink = (_b = targetEl.closest('a')) === null || _b === void 0 ? void 0 : _b.hasAttribute('href');
|
|
2541
|
+
const hasLink = (_b = targetEl.closest('a')) === null || _b === void 0 ? void 0 : _b.hasAttribute('href');
|
|
2542
|
+
// Close menu on click only in two cases:
|
|
2487
2543
|
// 1. 'closeMenuOnItemClick' is set to true
|
|
2488
2544
|
// 2. item has a link and 'closeMenuOnItemClick' is NOT explicitly set to false
|
|
2489
|
-
|
|
2490
2545
|
const shouldCloseMenu = clickInsideMenu && (closeMenuOnItemClick || hasLink && closeMenuOnItemClick !== false);
|
|
2491
2546
|
shouldCloseMenu && updateMenuOpen(false);
|
|
2492
2547
|
};
|
|
2493
|
-
|
|
2494
2548
|
if (mainMenuRef === null || mainMenuRef === void 0 ? void 0 : mainMenuRef.current) {
|
|
2495
2549
|
mainMenuRef.current.addEventListener('click', handleInsideMenuClick);
|
|
2496
2550
|
return () => {
|
|
2497
2551
|
var _a;
|
|
2498
|
-
|
|
2499
2552
|
(_a = mainMenuRef.current) === null || _a === void 0 ? void 0 : _a.removeEventListener('click', handleInsideMenuClick);
|
|
2500
2553
|
};
|
|
2501
2554
|
}
|
|
2502
2555
|
}, []);
|
|
2503
|
-
|
|
2504
2556
|
const renderNavItems = _navItems.map((item, index) => {
|
|
2505
2557
|
return jsx(DotBadge, Object.assign({
|
|
2506
2558
|
badgeColor: item.badgeColor,
|
|
@@ -2520,7 +2572,6 @@ const DotAppToolbar = ({
|
|
|
2520
2572
|
}, index)
|
|
2521
2573
|
}), index);
|
|
2522
2574
|
});
|
|
2523
|
-
|
|
2524
2575
|
const appToolbar = jsxs(StyledAppToolbar, Object.assign({
|
|
2525
2576
|
"aria-label": ariaLabel,
|
|
2526
2577
|
className: rootClasses,
|
|
@@ -2603,16 +2654,14 @@ const DotAppToolbar = ({
|
|
|
2603
2654
|
children: avatar
|
|
2604
2655
|
}), void 0)]
|
|
2605
2656
|
}), void 0)]
|
|
2606
|
-
}), void 0);
|
|
2607
|
-
|
|
2608
|
-
|
|
2657
|
+
}), void 0);
|
|
2658
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
2609
2659
|
const handleClickAway = event => {
|
|
2610
2660
|
if (_menuCloseOnClickAway && onClickAway) {
|
|
2611
2661
|
updateMenuOpen(false);
|
|
2612
2662
|
onClickAway(event);
|
|
2613
2663
|
}
|
|
2614
2664
|
};
|
|
2615
|
-
|
|
2616
2665
|
return _menuCloseOnClickAway ? jsx(ClickAwayListener, Object.assign({
|
|
2617
2666
|
onClickAway: handleClickAway
|
|
2618
2667
|
}, {
|
|
@@ -2622,7 +2671,7 @@ const DotAppToolbar = ({
|
|
|
2622
2671
|
}), void 0) : appToolbar;
|
|
2623
2672
|
};
|
|
2624
2673
|
|
|
2625
|
-
const rootClassName$
|
|
2674
|
+
const rootClassName$F = 'dot-autocomplete';
|
|
2626
2675
|
const inputRootClassName = 'dot-input-root';
|
|
2627
2676
|
const inputMediumClassName = 'dot-input-medium';
|
|
2628
2677
|
const StyledAutocomplete = styled(Autocomplete).withConfig({
|
|
@@ -2630,87 +2679,7 @@ const StyledAutocomplete = styled(Autocomplete).withConfig({
|
|
|
2630
2679
|
componentId: "j2sgjy-0"
|
|
2631
2680
|
})(["", ""], ({
|
|
2632
2681
|
theme
|
|
2633
|
-
}) => css(["&.", "{.", "{padding-top:", ";padding-bottom:", ";}.dot-chip:first-child{margin-left:", ";}.dot-text-field{.
|
|
2634
|
-
|
|
2635
|
-
const rootClassName$F = 'dot-button';
|
|
2636
|
-
const StyledButton = styled(Button).withConfig({
|
|
2637
|
-
displayName: "Buttonstyles__StyledButton",
|
|
2638
|
-
componentId: "sx99hh-0"
|
|
2639
|
-
})(["", ""], ({
|
|
2640
|
-
theme
|
|
2641
|
-
}) => css(["&.", "{margin:", ";min-width:auto;white-space:nowrap;&.MuiButton-outlined{border-color:rgba(0,0,0,0.23);color:", ";}&:not(.MuiButton-sizeLarge):not(.MuiButton-sizeSmall){height:", ";}&.MuiButton-containedSecondary{background-color:", ";&:hover,&:active{background-color:", ";}}&.MuiButton-text{padding:6px 16px;}span.dot-icon{padding:0;i{color:", ";height:auto;}}}"], rootClassName$F, theme.spacing(0.5), theme.palette.grey[700], theme.spacing(5), theme.palette.error.main, darken(theme.palette.error.main, 0.2), theme.palette.layer.n0));
|
|
2642
|
-
|
|
2643
|
-
/** This component wraps the Button component from @material-ui. */
|
|
2644
|
-
|
|
2645
|
-
const DotButton = /*#__PURE__*/forwardRef(({
|
|
2646
|
-
ariaLabel,
|
|
2647
|
-
autoFocus: _autoFocus = false,
|
|
2648
|
-
children,
|
|
2649
|
-
className,
|
|
2650
|
-
'data-testid': dataTestId,
|
|
2651
|
-
disabled: _disabled = false,
|
|
2652
|
-
disableRipple: _disableRipple = false,
|
|
2653
|
-
endIcon,
|
|
2654
|
-
fullWidth: _fullWidth = false,
|
|
2655
|
-
isSubmit: _isSubmit = false,
|
|
2656
|
-
onClick,
|
|
2657
|
-
size: _size = 'medium',
|
|
2658
|
-
startIcon,
|
|
2659
|
-
tooltip,
|
|
2660
|
-
type: _type = 'primary'
|
|
2661
|
-
}, ref) => {
|
|
2662
|
-
const rootClasses = useStylesWithRootClass(rootClassName$F, className);
|
|
2663
|
-
let color;
|
|
2664
|
-
let variant;
|
|
2665
|
-
|
|
2666
|
-
switch (_type) {
|
|
2667
|
-
case 'destructive':
|
|
2668
|
-
color = _disabled ? 'inherit' : 'secondary';
|
|
2669
|
-
variant = 'contained';
|
|
2670
|
-
break;
|
|
2671
|
-
|
|
2672
|
-
case 'primary':
|
|
2673
|
-
color = 'primary';
|
|
2674
|
-
variant = 'contained';
|
|
2675
|
-
break;
|
|
2676
|
-
|
|
2677
|
-
case 'outlined':
|
|
2678
|
-
color = 'inherit';
|
|
2679
|
-
variant = 'outlined';
|
|
2680
|
-
break;
|
|
2681
|
-
|
|
2682
|
-
case 'text':
|
|
2683
|
-
color = 'inherit';
|
|
2684
|
-
variant = 'text';
|
|
2685
|
-
break;
|
|
2686
|
-
}
|
|
2687
|
-
|
|
2688
|
-
return jsx(DotTooltip, Object.assign({
|
|
2689
|
-
title: tooltip
|
|
2690
|
-
}, {
|
|
2691
|
-
children: jsx(StyledButton, Object.assign({
|
|
2692
|
-
"aria-label": ariaLabel,
|
|
2693
|
-
autoFocus: _autoFocus,
|
|
2694
|
-
classes: {
|
|
2695
|
-
root: rootClasses
|
|
2696
|
-
},
|
|
2697
|
-
color: color,
|
|
2698
|
-
"data-testid": dataTestId,
|
|
2699
|
-
disableRipple: _disableRipple,
|
|
2700
|
-
disabled: _disabled,
|
|
2701
|
-
endIcon: endIcon,
|
|
2702
|
-
fullWidth: _fullWidth,
|
|
2703
|
-
onClick: event => onClick && onClick(event),
|
|
2704
|
-
ref: ref,
|
|
2705
|
-
size: _size,
|
|
2706
|
-
startIcon: startIcon,
|
|
2707
|
-
type: _isSubmit ? 'submit' : 'button',
|
|
2708
|
-
variant: variant
|
|
2709
|
-
}, {
|
|
2710
|
-
children: children
|
|
2711
|
-
}), void 0)
|
|
2712
|
-
}), void 0);
|
|
2713
|
-
});
|
|
2682
|
+
}) => css(["&.", "{.", "{padding-top:", ";padding-bottom:", ";}.dot-chip:first-child{margin-left:", ";}.dot-text-field{.dot-input-root{height:", ";}.warning-icon{color:", ";}.error-icon{color:", ";}}}"], rootClassName$F, inputRootClassName, theme.spacing(0), theme.spacing(0), theme.spacing(0), theme.spacing(5), theme.palette.warning.main, theme.palette.error.main));
|
|
2714
2683
|
|
|
2715
2684
|
const rootClassName$E = 'dot-chip';
|
|
2716
2685
|
const StyledChip = styled(Chip).withConfig({
|
|
@@ -2739,7 +2708,6 @@ const DotChip = ({
|
|
|
2739
2708
|
}) => {
|
|
2740
2709
|
const errorClass = _error ? 'Mui-error' : '';
|
|
2741
2710
|
const rootClasses = useStylesWithRootClass(rootClassName$E, className, errorClass);
|
|
2742
|
-
|
|
2743
2711
|
const getChipLabel = () => {
|
|
2744
2712
|
if (_charactersLimit <= 0 || children.length < _charactersLimit) return children;
|
|
2745
2713
|
const label = `${children.substring(0, _charactersLimit)}...`;
|
|
@@ -2751,7 +2719,6 @@ const DotChip = ({
|
|
|
2751
2719
|
}, void 0)
|
|
2752
2720
|
}), void 0);
|
|
2753
2721
|
};
|
|
2754
|
-
|
|
2755
2722
|
return jsx(StyledChip, {
|
|
2756
2723
|
"aria-label": ariaLabel,
|
|
2757
2724
|
avatar: avatar,
|
|
@@ -2771,8 +2738,8 @@ const DotChip = ({
|
|
|
2771
2738
|
}, void 0);
|
|
2772
2739
|
};
|
|
2773
2740
|
|
|
2741
|
+
// takes multiple types of data from autocomplete selection
|
|
2774
2742
|
// parses value and returns a string which is saved to state
|
|
2775
|
-
|
|
2776
2743
|
const parseAutoCompleteValue = value => {
|
|
2777
2744
|
if (typeof value === 'string') {
|
|
2778
2745
|
return value;
|
|
@@ -2782,7 +2749,6 @@ const parseAutoCompleteValue = value => {
|
|
|
2782
2749
|
if (index !== 0) {
|
|
2783
2750
|
titles += ',';
|
|
2784
2751
|
}
|
|
2785
|
-
|
|
2786
2752
|
if (typeof val === 'string') {
|
|
2787
2753
|
titles += val;
|
|
2788
2754
|
} else {
|
|
@@ -2793,7 +2759,6 @@ const parseAutoCompleteValue = value => {
|
|
|
2793
2759
|
} else if (value && value.title) {
|
|
2794
2760
|
return value.title;
|
|
2795
2761
|
}
|
|
2796
|
-
|
|
2797
2762
|
return '';
|
|
2798
2763
|
};
|
|
2799
2764
|
const getChipsFromAutocomplete = ({
|
|
@@ -2901,17 +2866,16 @@ const DotAutoComplete = ({
|
|
|
2901
2866
|
const [isOpened, setIsOpened] = useState(false);
|
|
2902
2867
|
const [inputText, setInputText] = useState('');
|
|
2903
2868
|
const textFieldWarningClassName = !_error && _warning && warningClassName;
|
|
2904
|
-
const rootClasses = useStylesWithRootClass(rootClassName$
|
|
2905
|
-
const textFieldRootClasses = useStylesWithRootClass(rootClassName$
|
|
2869
|
+
const rootClasses = useStylesWithRootClass(rootClassName$F, className);
|
|
2870
|
+
const textFieldRootClasses = useStylesWithRootClass(rootClassName$Z, className, _readOnly ? 'read-only' : '', textFieldWarningClassName);
|
|
2906
2871
|
const inputRootClasses = useStylesWithRootClass(inputRootClassName, _dense ? '' : inputMediumClassName);
|
|
2907
|
-
let textFieldInput;
|
|
2908
|
-
|
|
2872
|
+
let textFieldInput;
|
|
2873
|
+
// Used for focus management while popper is opened
|
|
2909
2874
|
const actionItemRef = useRef();
|
|
2910
|
-
|
|
2911
2875
|
const textFieldRef = element => {
|
|
2912
2876
|
// We want to use this element in callback function
|
|
2913
|
-
textFieldInput = element;
|
|
2914
|
-
|
|
2877
|
+
textFieldInput = element;
|
|
2878
|
+
// Check if ref is defined via props
|
|
2915
2879
|
if (inputRef) {
|
|
2916
2880
|
// Check if callback ref
|
|
2917
2881
|
if (typeof inputRef === 'function') {
|
|
@@ -2922,7 +2886,6 @@ const DotAutoComplete = ({
|
|
|
2922
2886
|
}
|
|
2923
2887
|
}
|
|
2924
2888
|
};
|
|
2925
|
-
|
|
2926
2889
|
const valuesChanged = ({
|
|
2927
2890
|
event,
|
|
2928
2891
|
val,
|
|
@@ -2931,7 +2894,6 @@ const DotAutoComplete = ({
|
|
|
2931
2894
|
onChange && onChange(event, val, reason);
|
|
2932
2895
|
setShowPlaceholder(parseAutoCompleteValue(val) === '');
|
|
2933
2896
|
};
|
|
2934
|
-
|
|
2935
2897
|
const sortOptions = () => {
|
|
2936
2898
|
return _group ? options.sort((a, b) => {
|
|
2937
2899
|
const aGroup = a.group ? a.group : '';
|
|
@@ -2939,37 +2901,34 @@ const DotAutoComplete = ({
|
|
|
2939
2901
|
return -bGroup.localeCompare(aGroup);
|
|
2940
2902
|
}) : options;
|
|
2941
2903
|
};
|
|
2942
|
-
|
|
2943
2904
|
const handleBlur = event => {
|
|
2944
2905
|
event.relatedTarget !== actionItemRef.current && setIsOpened(false);
|
|
2945
2906
|
onBlur === null || onBlur === void 0 ? void 0 : onBlur(event);
|
|
2946
2907
|
};
|
|
2947
|
-
|
|
2948
2908
|
const onActionButtonClick = () => {
|
|
2949
2909
|
setIsOpened(false);
|
|
2950
2910
|
textFieldInput.focus();
|
|
2951
2911
|
onActionItemClick(inputText);
|
|
2952
|
-
};
|
|
2953
|
-
|
|
2954
|
-
|
|
2912
|
+
};
|
|
2913
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
2955
2914
|
const DotPopper = props => {
|
|
2956
2915
|
if (!isActionItemDefined) return jsx(StyledPopper, Object.assign({}, props, {
|
|
2957
2916
|
className: rootClassName$Q,
|
|
2958
2917
|
disablePortal: _disablePortal,
|
|
2959
2918
|
"$maxHeight": maxHeight
|
|
2960
|
-
}), void 0);
|
|
2919
|
+
}), void 0);
|
|
2920
|
+
// Disable action if customer explicitly enabled duplicate
|
|
2961
2921
|
// item insertion and input text is found inside the 'options'
|
|
2962
|
-
|
|
2963
|
-
|
|
2964
|
-
|
|
2922
|
+
const isActionDisabled = preventDuplicateInsertion && checkIfDuplicateItem(inputText, options);
|
|
2923
|
+
// Display warning icon if disabled
|
|
2965
2924
|
const actionStartIconId = isActionDisabled ? 'warning-solid' : actionIconId;
|
|
2966
2925
|
const defaultText = inputText ? `Add "${inputText}"` : DEFAULT_ACTION_ITEM_TEXT;
|
|
2967
2926
|
const nonDisabledText = actionItemText ? actionItemText : defaultText;
|
|
2968
|
-
const itemText = isActionDisabled ? 'Value already exists' : nonDisabledText;
|
|
2927
|
+
const itemText = isActionDisabled ? 'Value already exists' : nonDisabledText;
|
|
2928
|
+
// If simple text, we need to give it a class so that
|
|
2969
2929
|
// styling for displaying ellipsis on a long text
|
|
2970
2930
|
// can be applied. If it is custom node coming from the
|
|
2971
2931
|
// consumer, then leave it as it is.
|
|
2972
|
-
|
|
2973
2932
|
const itemTextNode = isString(itemText) ? jsx("span", Object.assign({
|
|
2974
2933
|
className: "dot-action-item-text"
|
|
2975
2934
|
}, {
|
|
@@ -2985,7 +2944,6 @@ const DotAutoComplete = ({
|
|
|
2985
2944
|
children: jsxs(Paper, Object.assign({}, paperProps, {
|
|
2986
2945
|
children: [paperChildren, jsx("div", Object.assign({
|
|
2987
2946
|
className: "dot-action-item",
|
|
2988
|
-
|
|
2989
2947
|
/* Add this to short circuit blur event (otherwise button click will not work):
|
|
2990
2948
|
* https://github.com/mui-org/material-ui/issues/19038 */
|
|
2991
2949
|
onBlur: handleBlur,
|
|
@@ -3019,27 +2977,23 @@ const DotAutoComplete = ({
|
|
|
3019
2977
|
}), void 0)]
|
|
3020
2978
|
}), void 0)
|
|
3021
2979
|
}), void 0);
|
|
3022
|
-
};
|
|
3023
|
-
|
|
3024
|
-
|
|
3025
|
-
|
|
3026
|
-
|
|
3027
|
-
|
|
2980
|
+
};
|
|
2981
|
+
// Use passed in onOpen callback (if exists), otherwise create custom function
|
|
2982
|
+
const handleOpen = onOpen || (() => setIsOpened(true));
|
|
2983
|
+
// Use passed in onClose callback (if exists), otherwise create custom function
|
|
3028
2984
|
const handleClose = onClose || (event => {
|
|
3029
2985
|
// We want to close popper in each occasion where focus isn't set to action item
|
|
3030
2986
|
if (!('relatedTarget' in event) || event.relatedTarget !== actionItemRef.current) {
|
|
3031
2987
|
setIsOpened(false);
|
|
3032
2988
|
}
|
|
3033
|
-
});
|
|
3034
|
-
|
|
3035
|
-
|
|
2989
|
+
});
|
|
2990
|
+
// Create handler only if 'onInputChange' or 'actionItem' prop is defined
|
|
3036
2991
|
const handleInputChange = (onInputChange || isActionItemDefined) && ((event, inputValue, reason) => {
|
|
3037
2992
|
isActionItemDefined && setInputText(inputValue);
|
|
3038
2993
|
onInputChange === null || onInputChange === void 0 ? void 0 : onInputChange(event, inputValue, reason);
|
|
3039
|
-
}) || undefined;
|
|
2994
|
+
}) || undefined;
|
|
2995
|
+
// Create callback when action item click event handler is defined,
|
|
3040
2996
|
// free-solo mode is NOT set and 'Enter' key has been pressed
|
|
3041
|
-
|
|
3042
|
-
|
|
3043
2997
|
const handleKeyDown = !_freesolo && onActionItemClick && (event => {
|
|
3044
2998
|
if (event.key === 'Enter') {
|
|
3045
2999
|
// Do NOT execute callback if duplicate item or have selected an option from the dropdown
|
|
@@ -3047,19 +3001,16 @@ const DotAutoComplete = ({
|
|
|
3047
3001
|
onActionButtonClick();
|
|
3048
3002
|
}
|
|
3049
3003
|
}) || undefined;
|
|
3050
|
-
|
|
3051
3004
|
const handleRenderChips = (values, getTagProps) => getChipsFromAutocomplete({
|
|
3052
3005
|
chipSize: _dense ? 'small' : 'medium',
|
|
3053
3006
|
getTagProps,
|
|
3054
3007
|
isReadOnly: _readOnly,
|
|
3055
3008
|
values
|
|
3056
3009
|
});
|
|
3057
|
-
|
|
3058
3010
|
const handleTagsRender = () => {
|
|
3059
3011
|
if (!_multiple) return;
|
|
3060
3012
|
return renderTags || handleRenderChips;
|
|
3061
3013
|
};
|
|
3062
|
-
|
|
3063
3014
|
const renderErrorOrWarningIcon = () => {
|
|
3064
3015
|
if (!_error && !_warning) return;
|
|
3065
3016
|
const iconType = _error ? 'error' : 'warning';
|
|
@@ -3069,7 +3020,6 @@ const DotAutoComplete = ({
|
|
|
3069
3020
|
iconId: `${iconType}-solid`
|
|
3070
3021
|
}, void 0);
|
|
3071
3022
|
};
|
|
3072
|
-
|
|
3073
3023
|
const renderEndAdornment = nativeEndAdornment => {
|
|
3074
3024
|
const getInputAdornment = () => {
|
|
3075
3025
|
const icon = renderErrorOrWarningIcon();
|
|
@@ -3080,7 +3030,6 @@ const DotAutoComplete = ({
|
|
|
3080
3030
|
children: icon
|
|
3081
3031
|
}), void 0) : icon;
|
|
3082
3032
|
};
|
|
3083
|
-
|
|
3084
3033
|
return jsxs(Fragment$1, {
|
|
3085
3034
|
children: [loading && jsx(DotProgress, {
|
|
3086
3035
|
color: "inherit",
|
|
@@ -3088,7 +3037,6 @@ const DotAutoComplete = ({
|
|
|
3088
3037
|
}, void 0), getInputAdornment(), nativeEndAdornment]
|
|
3089
3038
|
}, void 0);
|
|
3090
3039
|
};
|
|
3091
|
-
|
|
3092
3040
|
return jsx(StyledAutocomplete, {
|
|
3093
3041
|
PopperComponent: DotPopper,
|
|
3094
3042
|
"aria-label": ariaLabel,
|
|
@@ -3129,7 +3077,8 @@ const DotAutoComplete = ({
|
|
|
3129
3077
|
// 'inputProps' as 'object' type and will complain when accessing
|
|
3130
3078
|
// className without casting to proper type
|
|
3131
3079
|
const inputProps = params.inputProps;
|
|
3132
|
-
return (
|
|
3080
|
+
return (
|
|
3081
|
+
// We are not using DotInputText here because the {...params} spread
|
|
3133
3082
|
// passed to renderInput includes inputProps and InputProps properties
|
|
3134
3083
|
// that must be passed to TextField in order for Autocomplete to work
|
|
3135
3084
|
// correctly. We decided that at this time exposing those props in
|
|
@@ -3167,9 +3116,8 @@ const DotAutoComplete = ({
|
|
|
3167
3116
|
label: persistentLabel ? null : label,
|
|
3168
3117
|
name: label,
|
|
3169
3118
|
onKeyDown: event => {
|
|
3170
|
-
var _a;
|
|
3171
|
-
|
|
3172
|
-
|
|
3119
|
+
var _a;
|
|
3120
|
+
// Intercept 'tab' key press while action item element exists
|
|
3173
3121
|
if (event.key === 'Tab' && actionItemRef.current) {
|
|
3174
3122
|
event.preventDefault();
|
|
3175
3123
|
(_a = actionItemRef === null || actionItemRef === void 0 ? void 0 : actionItemRef.current) === null || _a === void 0 ? void 0 : _a.focus();
|
|
@@ -3244,7 +3192,6 @@ const getItemsAfterCollapse = (adjustMaxItems, visibleItemsNumber, maxItems) =>
|
|
|
3244
3192
|
if (maxItems) {
|
|
3245
3193
|
return adjustMaxItems ? 1 : 2;
|
|
3246
3194
|
}
|
|
3247
|
-
|
|
3248
3195
|
if (visibleItemsNumber > 1) return visibleItemsNumber - 1;
|
|
3249
3196
|
if (visibleItemsNumber === 1) return visibleItemsNumber;
|
|
3250
3197
|
return undefined;
|
|
@@ -3254,12 +3201,10 @@ const getMaxItems = (adjustMaxItems, visibleItemsNumber, maxItems) => {
|
|
|
3254
3201
|
if (maxItems) {
|
|
3255
3202
|
return adjustMaxItems ? 2 : maxItems;
|
|
3256
3203
|
}
|
|
3257
|
-
|
|
3258
3204
|
return visibleItemsNumber > 1 ? visibleItemsNumber : undefined;
|
|
3259
3205
|
};
|
|
3260
3206
|
const getWidthFromRef = ref => {
|
|
3261
3207
|
var _a;
|
|
3262
|
-
|
|
3263
3208
|
return (_a = ref === null || ref === void 0 ? void 0 : ref.current) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect().width;
|
|
3264
3209
|
};
|
|
3265
3210
|
const checkIfFirstItemAfterCollapse = (currentIndex, items, itemsAfterCollapse) => currentIndex === items.length - itemsAfterCollapse;
|
|
@@ -3286,7 +3231,6 @@ const getMenuItems = (items, itemsAfterCollapse) => {
|
|
|
3286
3231
|
}, {
|
|
3287
3232
|
children: item.text
|
|
3288
3233
|
}), index);
|
|
3289
|
-
|
|
3290
3234
|
return {
|
|
3291
3235
|
children: itemChildren,
|
|
3292
3236
|
key: index.toString()
|
|
@@ -3331,12 +3275,10 @@ const mapBreadcrumbItems = (items, refs, {
|
|
|
3331
3275
|
underline
|
|
3332
3276
|
} = item;
|
|
3333
3277
|
let truncatedText = '';
|
|
3334
|
-
|
|
3335
3278
|
if (text.length > characterLimit) {
|
|
3336
3279
|
truncatedText = text.slice(0, characterLimit) + '...';
|
|
3337
|
-
}
|
|
3338
|
-
|
|
3339
|
-
|
|
3280
|
+
}
|
|
3281
|
+
// Check if last element
|
|
3340
3282
|
if (index === items.length - 1) {
|
|
3341
3283
|
// Add tooltip if item is not fully visible
|
|
3342
3284
|
return isLastItemFullyVisible ? getLastItemElement(item, lastItemRef, index) : jsx(DotTooltip, Object.assign({
|
|
@@ -3394,16 +3336,15 @@ const useBreadcrumbsResizer = (breadcrumbsRightCoord, breadcrumbItemsProps, refs
|
|
|
3394
3336
|
};
|
|
3395
3337
|
const [breadcrumbsSettings, setBreadcrumbsSettings] = useState(initialMaxVisibleItems);
|
|
3396
3338
|
/* Adjust number of visible items after collapse */
|
|
3397
|
-
|
|
3398
3339
|
useEffect(() => {
|
|
3399
3340
|
// Automatic resizing is performed only when 'maxItem' is NOT set
|
|
3400
|
-
if (maxItems !== undefined || !(lastItemRef === null || lastItemRef === void 0 ? void 0 : lastItemRef.current) || !breadcrumbsRightCoord) return;
|
|
3401
|
-
|
|
3402
|
-
const lastItemWidth = getWidthFromRef(lastItemRef);
|
|
3341
|
+
if (maxItems !== undefined || !(lastItemRef === null || lastItemRef === void 0 ? void 0 : lastItemRef.current) || !breadcrumbsRightCoord) return;
|
|
3342
|
+
// Get width of breadcrumb's last item
|
|
3343
|
+
const lastItemWidth = getWidthFromRef(lastItemRef);
|
|
3344
|
+
// Get width of breadcrumb's first item after collapse
|
|
3403
3345
|
// Sometimes first item can also be last item
|
|
3404
|
-
|
|
3405
|
-
|
|
3406
|
-
|
|
3346
|
+
const firstItemWidth = getWidthFromRef(firstItemRef) || lastItemWidth;
|
|
3347
|
+
// Get left coordinate of the last item
|
|
3407
3348
|
const lastItemLeftCoord = lastItemRef.current.getBoundingClientRect().left;
|
|
3408
3349
|
const {
|
|
3409
3350
|
lastRemovedItemWidth,
|
|
@@ -3412,7 +3353,6 @@ const useBreadcrumbsResizer = (breadcrumbsRightCoord, breadcrumbItemsProps, refs
|
|
|
3412
3353
|
const availableSpace = breadcrumbsRightCoord - lastItemLeftCoord;
|
|
3413
3354
|
const hasHiddenItems = maxVisibleItems < items.length;
|
|
3414
3355
|
const isLastRemovedItemSuitable = lastRemovedItemWidth !== undefined ? availableSpace - lastRemovedItemWidth > MIN_AVAILABLE_SPACE : false;
|
|
3415
|
-
|
|
3416
3356
|
if (availableSpace < MIN_AVAILABLE_SPACE && maxVisibleItems > 2) {
|
|
3417
3357
|
setBreadcrumbsSettings(prevValue => ({
|
|
3418
3358
|
maxVisibleItems: prevValue.maxVisibleItems - 1,
|
|
@@ -3426,16 +3366,14 @@ const useBreadcrumbsResizer = (breadcrumbsRightCoord, breadcrumbItemsProps, refs
|
|
|
3426
3366
|
}
|
|
3427
3367
|
}, [maxItems, breadcrumbsRightCoord, lastItemRef === null || lastItemRef === void 0 ? void 0 : lastItemRef.current, firstItemRef === null || firstItemRef === void 0 ? void 0 : firstItemRef.current, breadcrumbsSettings]);
|
|
3428
3368
|
/* Set new initial state after array of items has been changed */
|
|
3429
|
-
|
|
3430
3369
|
useEffect(() => {
|
|
3431
3370
|
// Run this effect only when 'items' array change
|
|
3432
3371
|
// Ignore it on initial render
|
|
3433
3372
|
if (!isMountedRef.current) {
|
|
3434
3373
|
isMountedRef.current = true;
|
|
3435
3374
|
return;
|
|
3436
|
-
}
|
|
3437
|
-
|
|
3438
|
-
|
|
3375
|
+
}
|
|
3376
|
+
// Set new state only if object values are different
|
|
3439
3377
|
setBreadcrumbsSettings(initialMaxVisibleItems);
|
|
3440
3378
|
}, [items]);
|
|
3441
3379
|
return [breadcrumbsSettings];
|
|
@@ -3454,7 +3392,6 @@ const useBreadcrumbsObserver = (items, maxItems) => {
|
|
|
3454
3392
|
lastItemRef
|
|
3455
3393
|
});
|
|
3456
3394
|
/* Observe breadcrumbs width change and store it in state */
|
|
3457
|
-
|
|
3458
3395
|
useEffect(() => {
|
|
3459
3396
|
// Automatic resizing is performed only when 'maxItem' is NOT set
|
|
3460
3397
|
if (maxItems !== undefined) return;
|
|
@@ -3499,7 +3436,6 @@ const DotBreadcrumbs = ({
|
|
|
3499
3436
|
firstItemRef,
|
|
3500
3437
|
lastItemRef
|
|
3501
3438
|
};
|
|
3502
|
-
|
|
3503
3439
|
const clickListener = event => {
|
|
3504
3440
|
if (event instanceof KeyboardEvent && event.key !== 'Enter') return;
|
|
3505
3441
|
event.stopPropagation();
|
|
@@ -3507,7 +3443,6 @@ const DotBreadcrumbs = ({
|
|
|
3507
3443
|
return !currentMenuOpen;
|
|
3508
3444
|
});
|
|
3509
3445
|
};
|
|
3510
|
-
|
|
3511
3446
|
const onMenuLeave = _event => {
|
|
3512
3447
|
setMenuOpen(false);
|
|
3513
3448
|
};
|
|
@@ -3515,12 +3450,9 @@ const DotBreadcrumbs = ({
|
|
|
3515
3450
|
In order for this to be functioning properly we need to set 'items' in
|
|
3516
3451
|
the dependencies list as it will re-trigger hook if items array change.
|
|
3517
3452
|
*/
|
|
3518
|
-
|
|
3519
|
-
|
|
3520
3453
|
useEffect(() => {
|
|
3521
3454
|
if (!_expansionMenu || !breadcrumbRef || !breadcrumbRef.current) return;
|
|
3522
3455
|
const expandElement = getExpandElement(breadcrumbRef.current);
|
|
3523
|
-
|
|
3524
3456
|
if (expandElement) {
|
|
3525
3457
|
setAnchorEl(expandElement);
|
|
3526
3458
|
addListenersToMenu(expandElement, clickListener);
|
|
@@ -3613,12 +3545,13 @@ const StyledToggleButtonGroup = styled(ToggleButtonGroup).withConfig({
|
|
|
3613
3545
|
componentId: "sc-1oh4ljv-0"
|
|
3614
3546
|
})(["", ""], ({
|
|
3615
3547
|
theme
|
|
3616
|
-
}) => css(["&.", "{button:not(.MuiToggleButton-sizeLarge):not(.MuiToggleButton-sizeSmall){height:", ";.dot-icon{width:", ";}}.dot-icon{
|
|
3548
|
+
}) => css(["&.", "{button:not(.MuiToggleButton-sizeLarge):not(.MuiToggleButton-sizeSmall){height:", ";.dot-icon{width:", ";}}.dot-icon{color:", ";+ p{margin-left:", ";}i{height:auto;}}.dot-typography{margin-bottom:0;}.MuiToggleButton-label{color:", ";p{margin-bottom:0;}}.MuiToggleButtonGroup-groupedHorizontal{border:1px solid ", ";border-radius:0;}.dot-tooltip{&:first-child .MuiToggleButtonGroup-groupedHorizontal{border-top-left-radius:4px;border-bottom-left-radius:4px;margin-left:0;}&:last-child .MuiToggleButtonGroup-groupedHorizontal{border-top-right-radius:4px;border-bottom-right-radius:4px;margin-right:0;}&:not(:first-child) .MuiToggleButtonGroup-groupedHorizontal{margin-left:-1px;}}& > .MuiToggleButtonGroup-groupedHorizontal{:first-child{border-top-left-radius:4px;border-bottom-left-radius:4px;margin-left:0;}:last-child{border-top-right-radius:4px;border-bottom-right-radius:4px;margin-right:0;}}}.MuiButtonBase-root{&.Mui-disabled p,&.Mui-disabled .dot-icon{color:", ";}&.Mui-selected{&.MuiToggleButton-standard{background:", ";}.dot-typography{color:inherit;}}}"], rootClassName$B, theme.spacing(5), theme.spacing(2), theme.palette.layer.n700, theme.spacing(1), theme.palette.layer.n700, theme.palette.layer.n300, theme.palette.grey[200], selectedGray));
|
|
3617
3549
|
|
|
3618
3550
|
const DotButtonToggle = ({
|
|
3619
3551
|
ariaLabel,
|
|
3620
3552
|
buttonOptions,
|
|
3621
3553
|
className,
|
|
3554
|
+
color,
|
|
3622
3555
|
'data-testid': dataTestId = 'dot-toggle',
|
|
3623
3556
|
disableFocusRipple: _disableFocusRipple = false,
|
|
3624
3557
|
disableRipple: _disableRipple = false,
|
|
@@ -3629,7 +3562,6 @@ const DotButtonToggle = ({
|
|
|
3629
3562
|
value
|
|
3630
3563
|
}) => {
|
|
3631
3564
|
const rootClasses = useStylesWithRootClass(rootClassName$B, className);
|
|
3632
|
-
|
|
3633
3565
|
const renderToggleButton = ({
|
|
3634
3566
|
ariaLabel: optionAriaLabel,
|
|
3635
3567
|
className: optionClassName,
|
|
@@ -3648,7 +3580,6 @@ const DotButtonToggle = ({
|
|
|
3648
3580
|
key,
|
|
3649
3581
|
value: optionValue
|
|
3650
3582
|
};
|
|
3651
|
-
|
|
3652
3583
|
const children = jsxs(Fragment$1, {
|
|
3653
3584
|
children: [optionIconId && jsx(DotIcon, {
|
|
3654
3585
|
className: "dot-toggle-icon",
|
|
@@ -3657,7 +3588,6 @@ const DotButtonToggle = ({
|
|
|
3657
3588
|
children: optionText
|
|
3658
3589
|
}, void 0)]
|
|
3659
3590
|
}, void 0);
|
|
3660
|
-
|
|
3661
3591
|
return optionTooltip ? jsx(TooltipToggleButton, Object.assign({}, commonProps, {
|
|
3662
3592
|
CustomTooltipProps: {
|
|
3663
3593
|
title: optionTooltip
|
|
@@ -3669,12 +3599,12 @@ const DotButtonToggle = ({
|
|
|
3669
3599
|
children: children
|
|
3670
3600
|
}), void 0);
|
|
3671
3601
|
};
|
|
3672
|
-
|
|
3673
3602
|
return jsx(StyledToggleButtonGroup, Object.assign({
|
|
3674
3603
|
"aria-label": ariaLabel,
|
|
3675
3604
|
classes: {
|
|
3676
3605
|
root: rootClasses
|
|
3677
3606
|
},
|
|
3607
|
+
color: color,
|
|
3678
3608
|
"data-testid": dataTestId,
|
|
3679
3609
|
exclusive: _exclusive,
|
|
3680
3610
|
onChange: onChange,
|
|
@@ -3688,13 +3618,11 @@ const DotButtonToggle = ({
|
|
|
3688
3618
|
}), void 0);
|
|
3689
3619
|
};
|
|
3690
3620
|
/** Catch props and forward to ToggleButton */
|
|
3691
|
-
|
|
3692
3621
|
const TooltipToggleButton = /*#__PURE__*/forwardRef((_a, ref) => {
|
|
3693
3622
|
var {
|
|
3694
|
-
|
|
3695
|
-
|
|
3696
|
-
|
|
3697
|
-
|
|
3623
|
+
CustomTooltipProps
|
|
3624
|
+
} = _a,
|
|
3625
|
+
props = __rest(_a, ["CustomTooltipProps"]);
|
|
3698
3626
|
return jsx(DotTooltip, Object.assign({}, CustomTooltipProps, {
|
|
3699
3627
|
children: jsx(ToggleButton, Object.assign({
|
|
3700
3628
|
ref: ref
|
|
@@ -3832,11 +3760,9 @@ function DotCheckbox({
|
|
|
3832
3760
|
value
|
|
3833
3761
|
}) {
|
|
3834
3762
|
const rootClasses = useStylesWithRootClass(rootClassName$z, className);
|
|
3835
|
-
|
|
3836
3763
|
const handleChange = event => {
|
|
3837
3764
|
onChange && onChange(event, event.target.value);
|
|
3838
3765
|
};
|
|
3839
|
-
|
|
3840
3766
|
const checkboxControl = jsx(StyledCheckbox, {
|
|
3841
3767
|
checked: checked,
|
|
3842
3768
|
classes: {
|
|
@@ -3859,7 +3785,6 @@ function DotCheckbox({
|
|
|
3859
3785
|
size: size,
|
|
3860
3786
|
value: value
|
|
3861
3787
|
}, void 0);
|
|
3862
|
-
|
|
3863
3788
|
return jsx(StyledFormControlLabel, {
|
|
3864
3789
|
className: rootClasses,
|
|
3865
3790
|
control: checkboxControl,
|
|
@@ -3919,9 +3844,9 @@ function DotFormGroup({
|
|
|
3919
3844
|
}), void 0);
|
|
3920
3845
|
}
|
|
3921
3846
|
|
|
3847
|
+
// Have this outside of component to avoid having different
|
|
3922
3848
|
// reference for the array and thus generate infinite loop
|
|
3923
3849
|
// in use effect hook
|
|
3924
|
-
|
|
3925
3850
|
const DEFAULT_VALUES = [];
|
|
3926
3851
|
function DotCheckboxGroup({
|
|
3927
3852
|
ariaLabel,
|
|
@@ -3949,29 +3874,24 @@ function DotCheckboxGroup({
|
|
|
3949
3874
|
const [selectedOptions, setSelectedOptions] = useState(defaultValues);
|
|
3950
3875
|
const [allChecked, setAllChecked] = useState(false);
|
|
3951
3876
|
/* This will ensure that state can be updated from the outside */
|
|
3952
|
-
|
|
3953
3877
|
useEffect(() => {
|
|
3954
3878
|
// Change only if new value is passed in
|
|
3955
3879
|
if (defaultValues !== DEFAULT_VALUES) {
|
|
3956
3880
|
setSelectedOptions(defaultValues);
|
|
3957
3881
|
}
|
|
3958
3882
|
}, [defaultValues]);
|
|
3959
|
-
|
|
3960
3883
|
const handleChange = (event, data) => {
|
|
3961
3884
|
const newOptions = event.target.checked ? [...selectedOptions, data] : selectedOptions.filter(option => option.value !== event.target.value);
|
|
3962
3885
|
setSelectedOptions(newOptions);
|
|
3963
3886
|
setAllChecked(newOptions.length === options.length);
|
|
3964
3887
|
onChange && onChange(event, newOptions);
|
|
3965
3888
|
};
|
|
3966
|
-
|
|
3967
3889
|
const handleSelectAll = event => {
|
|
3968
3890
|
const _selectedOptions = event.target.checked ? options : [];
|
|
3969
|
-
|
|
3970
3891
|
setSelectedOptions(_selectedOptions);
|
|
3971
3892
|
setAllChecked(event.target.checked);
|
|
3972
3893
|
onChange && onChange(event, _selectedOptions);
|
|
3973
3894
|
};
|
|
3974
|
-
|
|
3975
3895
|
const renderOptions = options ? options.map(({
|
|
3976
3896
|
label,
|
|
3977
3897
|
disabled,
|
|
@@ -4071,33 +3991,26 @@ const DotDialog = ({
|
|
|
4071
3991
|
useEffect(() => {
|
|
4072
3992
|
setIsOpen(open);
|
|
4073
3993
|
}, [open]);
|
|
4074
|
-
|
|
4075
3994
|
const handleCancel = event => {
|
|
4076
3995
|
if (onCancel) {
|
|
4077
3996
|
onCancel(event);
|
|
4078
3997
|
}
|
|
4079
|
-
|
|
4080
3998
|
handleClose();
|
|
4081
3999
|
};
|
|
4082
|
-
|
|
4083
4000
|
const handleClickAway = event => {
|
|
4084
4001
|
if (_closeOnClickAway) {
|
|
4085
4002
|
handleCancel(event);
|
|
4086
4003
|
}
|
|
4087
4004
|
};
|
|
4088
|
-
|
|
4089
4005
|
const handleClose = () => {
|
|
4090
4006
|
setIsOpen(false);
|
|
4091
4007
|
};
|
|
4092
|
-
|
|
4093
4008
|
const handleSubmit = event => {
|
|
4094
4009
|
if (onSubmit) {
|
|
4095
4010
|
onSubmit(event);
|
|
4096
4011
|
}
|
|
4097
|
-
|
|
4098
4012
|
handleClose();
|
|
4099
4013
|
};
|
|
4100
|
-
|
|
4101
4014
|
return jsxs(StyledDialog, Object.assign({
|
|
4102
4015
|
"aria-label": ariaLabel,
|
|
4103
4016
|
"aria-labelledby": "MuiDialogTitle-root",
|
|
@@ -4171,11 +4084,9 @@ const DotConfirmationDialog = ({
|
|
|
4171
4084
|
title: _title = ''
|
|
4172
4085
|
}) => {
|
|
4173
4086
|
const rootClasses = useStylesWithRootClass('dot-confirmation-dialog', className);
|
|
4174
|
-
|
|
4175
4087
|
if (_message === '' && _title === '') {
|
|
4176
4088
|
_title = 'Please confirm';
|
|
4177
4089
|
}
|
|
4178
|
-
|
|
4179
4090
|
return jsx(DotDialog, Object.assign({
|
|
4180
4091
|
ariaLabel: ariaLabel,
|
|
4181
4092
|
cancelButtonProps: cancelButtonProps,
|
|
@@ -4192,9 +4103,7 @@ const DotConfirmationDialog = ({
|
|
|
4192
4103
|
};
|
|
4193
4104
|
|
|
4194
4105
|
const rootClassName$t = 'dot-grid';
|
|
4195
|
-
|
|
4196
4106
|
const frGetter = value => typeof value === 'number' ? `repeat(${value}, 1fr)` : value;
|
|
4197
|
-
|
|
4198
4107
|
const breakpointsGetter$1 = (theme, columnsBreakpoints, columnGap, rowGap) => `${theme.breakpoints.up('xs')} {
|
|
4199
4108
|
column-gap: ${`${columnGap.xs}px`};
|
|
4200
4109
|
grid-template-columns: ${frGetter(columnsBreakpoints.xs)};
|
|
@@ -4220,7 +4129,6 @@ const breakpointsGetter$1 = (theme, columnsBreakpoints, columnGap, rowGap) => `$
|
|
|
4220
4129
|
grid-template-columns: ${frGetter(columnsBreakpoints.lg)};
|
|
4221
4130
|
row-gap: ${`${rowGap.xl}px`};
|
|
4222
4131
|
}`;
|
|
4223
|
-
|
|
4224
4132
|
const defaultGutter = {
|
|
4225
4133
|
xs: 16,
|
|
4226
4134
|
sm: 16,
|
|
@@ -4273,7 +4181,6 @@ const breakpointsGetter = (value, theme, breakpoint) => {
|
|
|
4273
4181
|
}
|
|
4274
4182
|
`;
|
|
4275
4183
|
};
|
|
4276
|
-
|
|
4277
4184
|
const Cell = ({
|
|
4278
4185
|
children,
|
|
4279
4186
|
className
|
|
@@ -4330,17 +4237,13 @@ const StyledDivContainer = styled.div.withConfig({
|
|
|
4330
4237
|
const CssGridDebug = ({
|
|
4331
4238
|
showInfo: _showInfo = false
|
|
4332
4239
|
}) => {
|
|
4333
|
-
const theme = useTheme();
|
|
4334
|
-
|
|
4240
|
+
const theme = useTheme$1();
|
|
4335
4241
|
const getWidth = () => window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;
|
|
4336
|
-
|
|
4337
4242
|
const [width, setWidth] = useState(getWidth());
|
|
4338
4243
|
const [columns, setColumns] = useState(12);
|
|
4339
|
-
|
|
4340
4244
|
const resizeListener = () => {
|
|
4341
4245
|
getColumns();
|
|
4342
4246
|
};
|
|
4343
|
-
|
|
4344
4247
|
useEffect(() => {
|
|
4345
4248
|
window.addEventListener('resize', resizeListener);
|
|
4346
4249
|
getColumns();
|
|
@@ -4349,31 +4252,24 @@ const CssGridDebug = ({
|
|
|
4349
4252
|
window.removeEventListener('resize', resizeListener);
|
|
4350
4253
|
};
|
|
4351
4254
|
}, []);
|
|
4352
|
-
|
|
4353
4255
|
const getColumns = () => {
|
|
4354
4256
|
setWidth(getWidth());
|
|
4355
|
-
|
|
4356
4257
|
if (getWidth() > theme.breakpoints.values.xs) {
|
|
4357
4258
|
setColumns(defaultColumns.sm);
|
|
4358
4259
|
}
|
|
4359
|
-
|
|
4360
4260
|
if (getWidth() > theme.breakpoints.values.md) {
|
|
4361
4261
|
setColumns(defaultColumns.md);
|
|
4362
4262
|
}
|
|
4363
|
-
|
|
4364
4263
|
if (getWidth() > theme.breakpoints.values.lg) {
|
|
4365
4264
|
setColumns(defaultColumns.lg);
|
|
4366
4265
|
}
|
|
4367
|
-
|
|
4368
4266
|
if (getWidth() > theme.breakpoints.values.xl) {
|
|
4369
4267
|
setColumns(defaultColumns.xl);
|
|
4370
4268
|
}
|
|
4371
|
-
|
|
4372
4269
|
if (getWidth() < theme.breakpoints.values.sm) {
|
|
4373
4270
|
setColumns(defaultColumns.xs);
|
|
4374
4271
|
}
|
|
4375
4272
|
};
|
|
4376
|
-
|
|
4377
4273
|
return jsxs(StyledDivContainer, Object.assign({
|
|
4378
4274
|
className: gridClassContainer
|
|
4379
4275
|
}, {
|
|
@@ -4490,7 +4386,7 @@ const StyledFormContainer = styled.div.withConfig({
|
|
|
4490
4386
|
componentId: "bbovqo-0"
|
|
4491
4387
|
})(["", ""], ({
|
|
4492
4388
|
theme
|
|
4493
|
-
}) => css(["&.", "{margin:", ";.", ",.", ",.", ",.", "{margin:", ";}.", ",.", "{.", "{margin:0;}}}"], rootClassName$r, theme.spacing(3, 0), rootClassName$x, rootClassName$z, rootClassName$
|
|
4389
|
+
}) => css(["&.", "{margin:", ";.", ",.", ",.", ",.", "{margin:", ";}.", ",.", "{.", "{margin:0;}}}"], rootClassName$r, theme.spacing(3, 0), rootClassName$x, rootClassName$z, rootClassName$Z, rootSelectClassName, theme.spacing(1, 0), rootClassName$w, groupClassName, rootClassName$z));
|
|
4494
4390
|
|
|
4495
4391
|
const DotForm = ({
|
|
4496
4392
|
ariaLabel,
|
|
@@ -4522,7 +4418,6 @@ const StyledDynamicForm = styled(DotForm).withConfig({
|
|
|
4522
4418
|
|
|
4523
4419
|
const DATA_CONTROLS = ['dot-autocomplete', 'dot-checkbox', 'dot-checkbox-group', 'dot-input-select', 'dot-input-text', 'dot-radio-group', 'dot-switch'];
|
|
4524
4420
|
/* Array of control types for which we don't have error state so validation doesn't make any sense */
|
|
4525
|
-
|
|
4526
4421
|
const DATA_CONTROLS_WITHOUT_VALIDATION = ['dot-checkbox', 'dot-switch'];
|
|
4527
4422
|
const INITIAL_STATE_ITEM = {
|
|
4528
4423
|
errorMessage: null,
|
|
@@ -4536,17 +4431,14 @@ const getControlValue = (controlName, data) => {
|
|
|
4536
4431
|
};
|
|
4537
4432
|
const getOutputFormData = formState => {
|
|
4538
4433
|
const outputData = {};
|
|
4539
|
-
|
|
4540
4434
|
for (const dataKey in formState.data) {
|
|
4541
4435
|
outputData[dataKey] = formState.data[dataKey].value;
|
|
4542
4436
|
}
|
|
4543
|
-
|
|
4544
4437
|
return outputData;
|
|
4545
4438
|
};
|
|
4546
4439
|
const checkIfHiddenControl = (hidden, formValues) => {
|
|
4547
4440
|
if (!hidden) return false;
|
|
4548
4441
|
if (typeof hidden === 'boolean') return hidden;
|
|
4549
|
-
|
|
4550
4442
|
try {
|
|
4551
4443
|
return hidden(formValues);
|
|
4552
4444
|
} catch (e) {
|
|
@@ -4556,14 +4448,12 @@ const checkIfHiddenControl = (hidden, formValues) => {
|
|
|
4556
4448
|
const checkIfDisabledControl = (disabled, formValues, isFormValid) => {
|
|
4557
4449
|
if (!disabled) return false;
|
|
4558
4450
|
if (typeof disabled === 'boolean') return disabled;
|
|
4559
|
-
|
|
4560
4451
|
try {
|
|
4561
4452
|
return disabled(formValues, isFormValid);
|
|
4562
4453
|
} catch (e) {
|
|
4563
4454
|
return false;
|
|
4564
4455
|
}
|
|
4565
4456
|
};
|
|
4566
|
-
|
|
4567
4457
|
const getInitialValueFromControl = ({
|
|
4568
4458
|
controlType,
|
|
4569
4459
|
initialValue
|
|
@@ -4573,7 +4463,6 @@ const getInitialValueFromControl = ({
|
|
|
4573
4463
|
if (!DATA_CONTROLS.includes(controlType)) return;
|
|
4574
4464
|
return initialValue ? initialValue : undefined;
|
|
4575
4465
|
};
|
|
4576
|
-
|
|
4577
4466
|
const getFormDataFromInitialValues = config => {
|
|
4578
4467
|
const formValues = {};
|
|
4579
4468
|
config.controls.forEach(control => {
|
|
@@ -4581,8 +4470,8 @@ const getFormDataFromInitialValues = config => {
|
|
|
4581
4470
|
controlName,
|
|
4582
4471
|
formSection,
|
|
4583
4472
|
controlType
|
|
4584
|
-
} = control;
|
|
4585
|
-
|
|
4473
|
+
} = control;
|
|
4474
|
+
// Check if there are section controls and grab initial values from those
|
|
4586
4475
|
if (formSection && formSection.sectionControls) {
|
|
4587
4476
|
formSection.sectionControls.forEach(formSectionControl => {
|
|
4588
4477
|
const {
|
|
@@ -4594,7 +4483,6 @@ const getFormDataFromInitialValues = config => {
|
|
|
4594
4483
|
formValues[sectionControlName] = sectionControlInitialValue ? sectionControlInitialValue : undefined;
|
|
4595
4484
|
});
|
|
4596
4485
|
}
|
|
4597
|
-
|
|
4598
4486
|
if (!DATA_CONTROLS.includes(controlType)) return;
|
|
4599
4487
|
const initialValue = getInitialValueFromControl(control);
|
|
4600
4488
|
formValues[controlName] = initialValue ? initialValue : undefined;
|
|
@@ -4605,7 +4493,6 @@ const getFormDataFromInitialValues = config => {
|
|
|
4605
4493
|
const checkIfValidationApplies = (validationField, formValues) => {
|
|
4606
4494
|
const condition = validationField.condition;
|
|
4607
4495
|
if (!condition) return true;
|
|
4608
|
-
|
|
4609
4496
|
try {
|
|
4610
4497
|
return condition(formValues);
|
|
4611
4498
|
} catch (e) {
|
|
@@ -4632,7 +4519,6 @@ const getEmptyValueValidationError = (validation, formValues) => {
|
|
|
4632
4519
|
if (validation.isRequired && checkIfValidationApplies(validation.isRequired, formValues)) {
|
|
4633
4520
|
return getRequiredFieldValidationError(validation);
|
|
4634
4521
|
}
|
|
4635
|
-
|
|
4636
4522
|
return null;
|
|
4637
4523
|
};
|
|
4638
4524
|
const getStringValidationError = (value, validation, formValues) => {
|
|
@@ -4649,73 +4535,63 @@ const getArrayValidationError = (array, validation, formValues) => {
|
|
|
4649
4535
|
};
|
|
4650
4536
|
const getCustomValidationError = (value, validation) => {
|
|
4651
4537
|
const customValidation = validation.customValidator(value);
|
|
4652
|
-
|
|
4653
4538
|
if (!customValidation.isValid) {
|
|
4654
4539
|
return {
|
|
4655
4540
|
isValid: false,
|
|
4656
4541
|
errorMessage: customValidation.errorMessage
|
|
4657
4542
|
};
|
|
4658
4543
|
}
|
|
4659
|
-
|
|
4660
4544
|
return null;
|
|
4661
4545
|
};
|
|
4662
4546
|
const getFieldValidation = (value, validation, formValues) => {
|
|
4663
4547
|
var _a;
|
|
4664
|
-
|
|
4665
4548
|
const fieldValidation = {
|
|
4666
4549
|
isValid: true,
|
|
4667
4550
|
errorMessage: null
|
|
4668
|
-
};
|
|
4669
|
-
|
|
4551
|
+
};
|
|
4552
|
+
// No validation checks are defined on the field
|
|
4670
4553
|
if (!validation) return fieldValidation;
|
|
4671
|
-
const isRequired = !!((_a = validation.isRequired) === null || _a === void 0 ? void 0 : _a.value);
|
|
4672
|
-
|
|
4554
|
+
const isRequired = !!((_a = validation.isRequired) === null || _a === void 0 ? void 0 : _a.value);
|
|
4555
|
+
// Check if required but with no value
|
|
4673
4556
|
if (isRequired && checkIfEmptyValue$1(value)) {
|
|
4674
4557
|
const emptyValueError = getEmptyValueValidationError(validation, formValues);
|
|
4675
4558
|
if (emptyValueError) return emptyValueError;
|
|
4676
|
-
}
|
|
4677
|
-
|
|
4678
|
-
|
|
4559
|
+
}
|
|
4560
|
+
// String validations
|
|
4679
4561
|
if (checkIfString(value)) {
|
|
4680
4562
|
const stringValidationError = getStringValidationError(value, validation, formValues);
|
|
4681
4563
|
if (stringValidationError) return stringValidationError;
|
|
4682
|
-
}
|
|
4683
|
-
|
|
4684
|
-
|
|
4564
|
+
}
|
|
4565
|
+
// Array validations
|
|
4685
4566
|
if (checkIfArray(value)) {
|
|
4686
4567
|
const arrayValidationError = getArrayValidationError(value, validation, formValues);
|
|
4687
4568
|
if (arrayValidationError) return arrayValidationError;
|
|
4688
4569
|
}
|
|
4689
|
-
|
|
4690
4570
|
if (validation.customValidator) {
|
|
4691
4571
|
const customValidatorError = getCustomValidationError(value, validation);
|
|
4692
4572
|
if (customValidatorError) return customValidatorError;
|
|
4693
4573
|
}
|
|
4694
|
-
|
|
4695
4574
|
return fieldValidation;
|
|
4696
4575
|
};
|
|
4697
4576
|
const getControlValidationFromConfig = (controlName, config) => {
|
|
4698
|
-
const formControl = config.controls.find(control => control.controlName === controlName);
|
|
4577
|
+
const formControl = config.controls.find(control => control.controlName === controlName);
|
|
4578
|
+
// Returned undefined if there is no such form control or is included in
|
|
4699
4579
|
// array of controls for which we don't do validation
|
|
4700
|
-
|
|
4701
4580
|
if (!formControl || DATA_CONTROLS_WITHOUT_VALIDATION.includes(formControl.controlType)) return;
|
|
4702
4581
|
return formControl.validation;
|
|
4703
4582
|
};
|
|
4704
4583
|
const checkIfFormDataValid = formState => {
|
|
4705
4584
|
if (!formState || !('data' in formState)) return false;
|
|
4706
4585
|
const formData = formState.data;
|
|
4707
|
-
|
|
4708
4586
|
for (const formDataKey in formData) {
|
|
4709
4587
|
const formValues = getOutputFormData(formState);
|
|
4710
4588
|
const isHidden = checkIfHiddenControl(formData[formDataKey].hidden, formValues);
|
|
4711
4589
|
if (!formData[formDataKey].isValid && !isHidden) return false;
|
|
4712
4590
|
}
|
|
4713
|
-
|
|
4714
4591
|
return true;
|
|
4715
4592
|
};
|
|
4716
4593
|
|
|
4717
4594
|
const DELAY_MS = 300;
|
|
4718
|
-
|
|
4719
4595
|
const EndAdornment = ({
|
|
4720
4596
|
endAdornmentTooltip,
|
|
4721
4597
|
error,
|
|
@@ -4728,30 +4604,25 @@ const EndAdornment = ({
|
|
|
4728
4604
|
"data-testid": dataTestId && `${dataTestId}-${iconType}-icon`,
|
|
4729
4605
|
iconId: `${iconType}-solid`
|
|
4730
4606
|
}, void 0);
|
|
4731
|
-
|
|
4732
4607
|
const errorIcon = error && renderIcon('error');
|
|
4733
4608
|
const successIcon = success && renderIcon('check');
|
|
4734
4609
|
const warningIcon = warning && renderIcon('warning');
|
|
4735
4610
|
const endAdornmentIcon = endIcon || errorIcon || warningIcon || successIcon;
|
|
4736
|
-
|
|
4737
4611
|
const styledAdornment = jsx(StyledAdornment, Object.assign({
|
|
4738
4612
|
className: `${adornmentIconClassName} end`,
|
|
4739
4613
|
position: "end"
|
|
4740
4614
|
}, {
|
|
4741
4615
|
children: endAdornmentIcon
|
|
4742
4616
|
}), void 0);
|
|
4743
|
-
|
|
4744
4617
|
return endAdornmentTooltip ? jsx(DotTooltip, Object.assign({
|
|
4745
4618
|
title: endAdornmentTooltip
|
|
4746
4619
|
}, {
|
|
4747
4620
|
children: styledAdornment
|
|
4748
4621
|
}), void 0) : styledAdornment;
|
|
4749
4622
|
};
|
|
4750
|
-
|
|
4751
4623
|
const getInitialState = value => ({
|
|
4752
4624
|
inputValue: value || ''
|
|
4753
4625
|
});
|
|
4754
|
-
|
|
4755
4626
|
const DotInputText = ({
|
|
4756
4627
|
autoComplete: _autoComplete = 'off',
|
|
4757
4628
|
autoFocus,
|
|
@@ -4792,19 +4663,19 @@ const DotInputText = ({
|
|
|
4792
4663
|
const hasError = _error && errorClassName;
|
|
4793
4664
|
const hasWarning = !_error && _warning && warningClassName;
|
|
4794
4665
|
const hasSuccess = !_error && !_warning && success && successClassName;
|
|
4795
|
-
const hasEndAdornmentIcon = endIcon || _error || hasWarning || hasSuccess;
|
|
4796
|
-
|
|
4666
|
+
const hasEndAdornmentIcon = endIcon || _error || hasWarning || hasSuccess;
|
|
4667
|
+
// This state is used only with debounce feature enabled
|
|
4797
4668
|
const [inputTextState, setInputTextState] = useState(hasDebounce && getInitialState(value));
|
|
4798
|
-
const rootStyles = useStylesWithRootClass(rootClassName$
|
|
4669
|
+
const rootStyles = useStylesWithRootClass(rootClassName$Z, hasError, hasWarning, hasSuccess, _readOnly ? 'read-only' : '');
|
|
4670
|
+
// Used to control text value from the consumer component
|
|
4799
4671
|
// when debounce feature is enabled
|
|
4800
|
-
|
|
4801
4672
|
useEffect(() => {
|
|
4802
4673
|
if (hasDebounce && value !== inputTextState.inputValue) {
|
|
4803
4674
|
setInputTextState(getInitialState(value));
|
|
4804
4675
|
}
|
|
4805
|
-
}, [value]);
|
|
4676
|
+
}, [value]);
|
|
4677
|
+
// Improve performance by avoiding callback execution
|
|
4806
4678
|
// on each keystroke (if debounce feature is active)
|
|
4807
|
-
|
|
4808
4679
|
useEffect(() => {
|
|
4809
4680
|
// Do not proceed if debounce feature is turned
|
|
4810
4681
|
// off or there is no event defined
|
|
@@ -4814,7 +4685,6 @@ const DotInputText = ({
|
|
|
4814
4685
|
}, DELAY_MS);
|
|
4815
4686
|
return () => clearTimeout(handler);
|
|
4816
4687
|
}, [inputTextState]);
|
|
4817
|
-
|
|
4818
4688
|
const handleChange = e => {
|
|
4819
4689
|
// We need to have control over change event and input value separately
|
|
4820
4690
|
// so that we can set initial state via 'value' prop (if needed)
|
|
@@ -4823,12 +4693,10 @@ const DotInputText = ({
|
|
|
4823
4693
|
inputValue: e.target.value
|
|
4824
4694
|
}) : onChange === null || onChange === void 0 ? void 0 : onChange(e);
|
|
4825
4695
|
};
|
|
4826
|
-
|
|
4827
|
-
|
|
4696
|
+
const inputTextValue = hasDebounce ? inputTextState.inputValue : value;
|
|
4697
|
+
// Don't use default value when debounce feature is enabled because
|
|
4828
4698
|
// in that case component is controlled
|
|
4829
|
-
|
|
4830
4699
|
const defaultInputValue = hasDebounce ? undefined : defaultValue;
|
|
4831
|
-
|
|
4832
4700
|
const startAdornmentIcon = () => {
|
|
4833
4701
|
if (!startIcon) return null;
|
|
4834
4702
|
return jsx(StyledAdornment, Object.assign({
|
|
@@ -4838,7 +4706,6 @@ const DotInputText = ({
|
|
|
4838
4706
|
children: startIcon
|
|
4839
4707
|
}), void 0);
|
|
4840
4708
|
};
|
|
4841
|
-
|
|
4842
4709
|
const endAdornmentIcon = () => {
|
|
4843
4710
|
if (!hasEndAdornmentIcon) return null;
|
|
4844
4711
|
return jsx(EndAdornment, Object.assign({}, {
|
|
@@ -4850,8 +4717,9 @@ const DotInputText = ({
|
|
|
4850
4717
|
warning: _warning
|
|
4851
4718
|
}), void 0);
|
|
4852
4719
|
};
|
|
4853
|
-
|
|
4854
|
-
|
|
4720
|
+
return jsxs("div", Object.assign({
|
|
4721
|
+
className: className
|
|
4722
|
+
}, {
|
|
4855
4723
|
children: [persistentLabel && jsx(DotInputLabel, Object.assign({}, {
|
|
4856
4724
|
disabled: _disabled,
|
|
4857
4725
|
error: _error,
|
|
@@ -4902,7 +4770,7 @@ const DotInputText = ({
|
|
|
4902
4770
|
value: inputTextValue,
|
|
4903
4771
|
variant: "outlined"
|
|
4904
4772
|
}, void 0)]
|
|
4905
|
-
}, void 0);
|
|
4773
|
+
}), void 0);
|
|
4906
4774
|
};
|
|
4907
4775
|
|
|
4908
4776
|
const DotInputSelect = ({
|
|
@@ -4937,17 +4805,16 @@ const DotInputSelect = ({
|
|
|
4937
4805
|
}) => {
|
|
4938
4806
|
const hasWarning = !_error && _warning && warningClassName;
|
|
4939
4807
|
const hasSuccess = !_error && !_warning && success && successClassName;
|
|
4940
|
-
const rootStyles = useStylesWithRootClass(rootSelectClassName,
|
|
4941
|
-
|
|
4808
|
+
const rootStyles = useStylesWithRootClass(rootSelectClassName, hasSuccess, hasWarning, _readOnly ? 'read-only' : '');
|
|
4942
4809
|
const getOption = option => {
|
|
4943
4810
|
return typeof option === 'string' ? option : option.option;
|
|
4944
4811
|
};
|
|
4945
|
-
|
|
4946
4812
|
const getValue = option => {
|
|
4947
4813
|
return typeof option === 'string' ? option : (option === null || option === void 0 ? void 0 : option.value) || option.option;
|
|
4948
4814
|
};
|
|
4949
|
-
|
|
4950
|
-
|
|
4815
|
+
return jsxs("div", Object.assign({
|
|
4816
|
+
className: className
|
|
4817
|
+
}, {
|
|
4951
4818
|
children: [persistentLabel && jsx(DotInputLabel, Object.assign({}, {
|
|
4952
4819
|
disabled: _disabled,
|
|
4953
4820
|
error: _error,
|
|
@@ -5013,7 +4880,7 @@ const DotInputSelect = ({
|
|
|
5013
4880
|
children: getOption(option)
|
|
5014
4881
|
}), getValue(option)))
|
|
5015
4882
|
}), void 0)]
|
|
5016
|
-
}, void 0);
|
|
4883
|
+
}), void 0);
|
|
5017
4884
|
};
|
|
5018
4885
|
|
|
5019
4886
|
const rootClassName$p = 'dot-progress-button';
|
|
@@ -5092,11 +4959,9 @@ function DotRadioButton({
|
|
|
5092
4959
|
value
|
|
5093
4960
|
}) {
|
|
5094
4961
|
const rootClasses = useStylesWithRootClass(rootClassName$z, className);
|
|
5095
|
-
|
|
5096
4962
|
const handleChange = event => {
|
|
5097
4963
|
onChange && onChange(event, event.target.value);
|
|
5098
4964
|
};
|
|
5099
|
-
|
|
5100
4965
|
const radioControl = jsx(StyledRadioButton, {
|
|
5101
4966
|
"aria-label": ariaLabel,
|
|
5102
4967
|
checked: checked,
|
|
@@ -5113,7 +4978,6 @@ function DotRadioButton({
|
|
|
5113
4978
|
required: required,
|
|
5114
4979
|
size: size
|
|
5115
4980
|
}, void 0);
|
|
5116
|
-
|
|
5117
4981
|
return jsx(StyledFormControlLabel, {
|
|
5118
4982
|
className: rootClasses,
|
|
5119
4983
|
control: radioControl,
|
|
@@ -5148,16 +5012,13 @@ const DotRadioGroup = ({
|
|
|
5148
5012
|
const radioValue = value || defaultValue;
|
|
5149
5013
|
const [selectedValue, setSelectedValue] = useState(radioValue);
|
|
5150
5014
|
/* This will ensure that value can be updated from the outside */
|
|
5151
|
-
|
|
5152
5015
|
useEffect(() => {
|
|
5153
5016
|
setSelectedValue(radioValue);
|
|
5154
5017
|
}, [radioValue]);
|
|
5155
|
-
|
|
5156
5018
|
const handleChange = event => {
|
|
5157
5019
|
setSelectedValue(event.target.value);
|
|
5158
5020
|
onChange && onChange(event, event.target.value);
|
|
5159
5021
|
};
|
|
5160
|
-
|
|
5161
5022
|
const renderOptions = options ? options.map(({
|
|
5162
5023
|
label: optionLabel,
|
|
5163
5024
|
value: optionValue,
|
|
@@ -5240,11 +5101,9 @@ const DotSwitch = ({
|
|
|
5240
5101
|
size: _size = 'medium'
|
|
5241
5102
|
}) => {
|
|
5242
5103
|
const rootClasses = useStylesWithRootClass(rootClassName$n, className);
|
|
5243
|
-
|
|
5244
5104
|
const handleChange = event => {
|
|
5245
5105
|
onChange && onChange(event);
|
|
5246
5106
|
};
|
|
5247
|
-
|
|
5248
5107
|
const switchControl = jsx(StyledSwitch, {
|
|
5249
5108
|
checked: checked,
|
|
5250
5109
|
classes: {
|
|
@@ -5261,11 +5120,10 @@ const DotSwitch = ({
|
|
|
5261
5120
|
onChange: handleChange,
|
|
5262
5121
|
size: _size
|
|
5263
5122
|
}, void 0);
|
|
5264
|
-
|
|
5265
5123
|
return jsx(StyledFormControlLabel, {
|
|
5266
5124
|
className: rootClassName$z,
|
|
5267
5125
|
control: switchControl,
|
|
5268
|
-
label: label
|
|
5126
|
+
label: label,
|
|
5269
5127
|
labelPlacement: _labelPlacement
|
|
5270
5128
|
}, void 0);
|
|
5271
5129
|
};
|
|
@@ -5281,15 +5139,13 @@ const getInitialStateFromControl = ({
|
|
|
5281
5139
|
if (!DATA_CONTROLS.includes(controlType)) return;
|
|
5282
5140
|
const formStateItem = Object.assign({}, INITIAL_STATE_ITEM);
|
|
5283
5141
|
if (hidden) formStateItem.hidden = hidden;
|
|
5284
|
-
|
|
5285
5142
|
if (initialValue !== null && initialValue !== undefined) {
|
|
5286
5143
|
formStateItem.value = initialValue;
|
|
5287
|
-
|
|
5288
5144
|
if (liveValidation) {
|
|
5289
5145
|
const isHidden = checkIfHiddenControl(hidden, formValues);
|
|
5290
|
-
formStateItem.isTouched = true;
|
|
5146
|
+
formStateItem.isTouched = true;
|
|
5147
|
+
// Since it is hidden field we will mark valid field to true so that is doesn't
|
|
5291
5148
|
// prevent form submission
|
|
5292
|
-
|
|
5293
5149
|
if (isHidden) {
|
|
5294
5150
|
formStateItem.isValid = true;
|
|
5295
5151
|
} else {
|
|
@@ -5298,14 +5154,12 @@ const getInitialStateFromControl = ({
|
|
|
5298
5154
|
formStateItem.errorMessage = fieldValidation.errorMessage;
|
|
5299
5155
|
}
|
|
5300
5156
|
}
|
|
5301
|
-
}
|
|
5302
|
-
|
|
5303
|
-
|
|
5157
|
+
}
|
|
5158
|
+
// If no validation always set valid to true
|
|
5304
5159
|
if (!validation || DATA_CONTROLS_WITHOUT_VALIDATION.includes(controlType)) {
|
|
5305
5160
|
// Set always to valid for now
|
|
5306
5161
|
formStateItem.isValid = true;
|
|
5307
5162
|
}
|
|
5308
|
-
|
|
5309
5163
|
return formStateItem;
|
|
5310
5164
|
};
|
|
5311
5165
|
const getInitialFormState = (config, liveValidation) => {
|
|
@@ -5317,8 +5171,8 @@ const getInitialFormState = (config, liveValidation) => {
|
|
|
5317
5171
|
config.controls.forEach(control => {
|
|
5318
5172
|
const {
|
|
5319
5173
|
formSection
|
|
5320
|
-
} = control;
|
|
5321
|
-
|
|
5174
|
+
} = control;
|
|
5175
|
+
// Check if there are form section controls and grab initial state from those
|
|
5322
5176
|
if (formSection && formSection.sectionControls) {
|
|
5323
5177
|
formSection.sectionControls.forEach(formSectionControl => {
|
|
5324
5178
|
const {
|
|
@@ -5329,7 +5183,6 @@ const getInitialFormState = (config, liveValidation) => {
|
|
|
5329
5183
|
initialState.data[formSectionControlName] = sectionFormStateItem;
|
|
5330
5184
|
});
|
|
5331
5185
|
}
|
|
5332
|
-
|
|
5333
5186
|
const {
|
|
5334
5187
|
controlName
|
|
5335
5188
|
} = control;
|
|
@@ -5488,7 +5341,6 @@ const buildButtonControl = ({
|
|
|
5488
5341
|
} = props;
|
|
5489
5342
|
const handleButtonClick = onClick || handleClick ? e => {
|
|
5490
5343
|
var _a;
|
|
5491
|
-
|
|
5492
5344
|
(_a = props.onClick) === null || _a === void 0 ? void 0 : _a.call(props, e);
|
|
5493
5345
|
handleClick === null || handleClick === void 0 ? void 0 : handleClick();
|
|
5494
5346
|
} : undefined;
|
|
@@ -5511,7 +5363,6 @@ const buildProgressButtonControl = ({
|
|
|
5511
5363
|
} = props;
|
|
5512
5364
|
const handleButtonClick = onClick || handleClick ? e => {
|
|
5513
5365
|
var _a;
|
|
5514
|
-
|
|
5515
5366
|
(_a = props.onClick) === null || _a === void 0 ? void 0 : _a.call(props, e);
|
|
5516
5367
|
handleClick === null || handleClick === void 0 ? void 0 : handleClick();
|
|
5517
5368
|
} : undefined;
|
|
@@ -5531,7 +5382,6 @@ const buildResetControl = ({
|
|
|
5531
5382
|
disabled: disabled,
|
|
5532
5383
|
onClick: e => {
|
|
5533
5384
|
var _a;
|
|
5534
|
-
|
|
5535
5385
|
(_a = props.onClick) === null || _a === void 0 ? void 0 : _a.call(props, e);
|
|
5536
5386
|
handleClick();
|
|
5537
5387
|
}
|
|
@@ -5580,16 +5430,16 @@ const DotDynamicForm = ({
|
|
|
5580
5430
|
onChange,
|
|
5581
5431
|
onSubmit
|
|
5582
5432
|
}) => {
|
|
5583
|
-
const rootClasses = useStylesWithRootClass(rootClassName$q, className);
|
|
5433
|
+
const rootClasses = useStylesWithRootClass(rootClassName$q, className);
|
|
5434
|
+
// Memoize this operation so that is doesn't get executed each time this
|
|
5584
5435
|
// component re-renders
|
|
5585
|
-
|
|
5586
5436
|
const initialFormState = useMemo(() => getInitialFormState(config, _liveValidation), [config, _liveValidation, getInitialFormState]);
|
|
5587
5437
|
const [formState, setFormState] = useState(initialFormState);
|
|
5588
5438
|
useEffect(() => {
|
|
5589
5439
|
// Skip if live validation is turned off
|
|
5590
5440
|
if (!_liveValidation) return;
|
|
5591
|
-
const currentIsFormValid = checkIfFormDataValid(formState);
|
|
5592
|
-
|
|
5441
|
+
const currentIsFormValid = checkIfFormDataValid(formState);
|
|
5442
|
+
// Check if validity state has changed
|
|
5593
5443
|
if (formState.isValid !== currentIsFormValid) {
|
|
5594
5444
|
setFormState(prevState => {
|
|
5595
5445
|
const newState = Object.assign(Object.assign({}, prevState), {
|
|
@@ -5602,7 +5452,6 @@ const DotDynamicForm = ({
|
|
|
5602
5452
|
onChange === null || onChange === void 0 ? void 0 : onChange(formState);
|
|
5603
5453
|
}
|
|
5604
5454
|
}, [formState]);
|
|
5605
|
-
|
|
5606
5455
|
const getControlValidation = (controlName, controlValue, formConfig) => {
|
|
5607
5456
|
const validation = getControlValidationFromConfig(controlName, formConfig);
|
|
5608
5457
|
const formValues = getOutputFormData(formState);
|
|
@@ -5612,7 +5461,6 @@ const DotDynamicForm = ({
|
|
|
5612
5461
|
errorMessage: fieldValidation.errorMessage
|
|
5613
5462
|
};
|
|
5614
5463
|
};
|
|
5615
|
-
|
|
5616
5464
|
const updateFormState = ({
|
|
5617
5465
|
controlName,
|
|
5618
5466
|
newValue,
|
|
@@ -5620,11 +5468,9 @@ const DotDynamicForm = ({
|
|
|
5620
5468
|
validate: _validate = true
|
|
5621
5469
|
}) => {
|
|
5622
5470
|
let fieldValidation = {};
|
|
5623
|
-
|
|
5624
5471
|
if (_validate && _liveValidation) {
|
|
5625
5472
|
fieldValidation = getControlValidation(controlName, newValue, formConfig);
|
|
5626
5473
|
}
|
|
5627
|
-
|
|
5628
5474
|
setFormState(prevFormState => Object.assign(Object.assign({}, prevFormState), {
|
|
5629
5475
|
data: Object.assign(Object.assign({}, prevFormState.data), {
|
|
5630
5476
|
[controlName]: Object.assign(Object.assign(Object.assign({}, prevFormState.data[controlName]), {
|
|
@@ -5634,12 +5480,10 @@ const DotDynamicForm = ({
|
|
|
5634
5480
|
})
|
|
5635
5481
|
}));
|
|
5636
5482
|
};
|
|
5637
|
-
|
|
5638
5483
|
const validateForm = () => {
|
|
5639
5484
|
const newFormData = {};
|
|
5640
5485
|
const formData = formState.data;
|
|
5641
5486
|
let isValid = true;
|
|
5642
|
-
|
|
5643
5487
|
for (const formDataKey in formData) {
|
|
5644
5488
|
const formControl = formData[formDataKey];
|
|
5645
5489
|
const fieldValidation = getControlValidation(formDataKey, formControl.value, config);
|
|
@@ -5648,18 +5492,15 @@ const DotDynamicForm = ({
|
|
|
5648
5492
|
isValid: isFieldValid,
|
|
5649
5493
|
errorMessage: fieldValidation.errorMessage
|
|
5650
5494
|
});
|
|
5651
|
-
|
|
5652
5495
|
if (!isFieldValid && isValid) {
|
|
5653
5496
|
isValid = false;
|
|
5654
5497
|
}
|
|
5655
5498
|
}
|
|
5656
|
-
|
|
5657
5499
|
setFormState(prevState => Object.assign(Object.assign({}, prevState), {
|
|
5658
5500
|
data: newFormData
|
|
5659
5501
|
}));
|
|
5660
5502
|
return isValid;
|
|
5661
5503
|
};
|
|
5662
|
-
|
|
5663
5504
|
const handleAutocompleteChange = controlName => (_event, value) => {
|
|
5664
5505
|
updateFormState({
|
|
5665
5506
|
controlName,
|
|
@@ -5667,7 +5508,6 @@ const DotDynamicForm = ({
|
|
|
5667
5508
|
newValue: value
|
|
5668
5509
|
});
|
|
5669
5510
|
};
|
|
5670
|
-
|
|
5671
5511
|
const handleCheckChange = controlName => e => {
|
|
5672
5512
|
const newValue = e.target.checked;
|
|
5673
5513
|
updateFormState({
|
|
@@ -5677,7 +5517,6 @@ const DotDynamicForm = ({
|
|
|
5677
5517
|
validate: false
|
|
5678
5518
|
});
|
|
5679
5519
|
};
|
|
5680
|
-
|
|
5681
5520
|
const handleCheckboxGroupChange = controlName => (e, value) => {
|
|
5682
5521
|
updateFormState({
|
|
5683
5522
|
controlName,
|
|
@@ -5685,20 +5524,17 @@ const DotDynamicForm = ({
|
|
|
5685
5524
|
newValue: value
|
|
5686
5525
|
});
|
|
5687
5526
|
};
|
|
5688
|
-
|
|
5689
5527
|
const handleFormSubmit = e => {
|
|
5690
5528
|
e.preventDefault();
|
|
5691
|
-
let isFormValid = true;
|
|
5692
|
-
|
|
5529
|
+
let isFormValid = true;
|
|
5530
|
+
// If live validation is turned off we have to validate form before submitting it
|
|
5693
5531
|
if (!_liveValidation) {
|
|
5694
5532
|
isFormValid = validateForm();
|
|
5695
5533
|
}
|
|
5696
|
-
|
|
5697
5534
|
if (!isFormValid) return;
|
|
5698
5535
|
const formOutputData = getOutputFormData(formState);
|
|
5699
5536
|
onSubmit === null || onSubmit === void 0 ? void 0 : onSubmit(formOutputData);
|
|
5700
5537
|
};
|
|
5701
|
-
|
|
5702
5538
|
const handleInputChange = controlName => e => {
|
|
5703
5539
|
const newValue = e.target.value;
|
|
5704
5540
|
updateFormState({
|
|
@@ -5707,9 +5543,7 @@ const DotDynamicForm = ({
|
|
|
5707
5543
|
newValue
|
|
5708
5544
|
});
|
|
5709
5545
|
};
|
|
5710
|
-
|
|
5711
5546
|
const handleReset = () => setFormState(initialFormState);
|
|
5712
|
-
|
|
5713
5547
|
const buildFormControls = (controls, startIndex = 0) => {
|
|
5714
5548
|
if (!controls || !controls.length) return;
|
|
5715
5549
|
return controls.map(({
|
|
@@ -5725,11 +5559,10 @@ const DotDynamicForm = ({
|
|
|
5725
5559
|
const elementIndex = startIndex + index;
|
|
5726
5560
|
const inputControlName = controlName || `control-${elementIndex}`;
|
|
5727
5561
|
const formValues = getOutputFormData(formState);
|
|
5728
|
-
if (checkIfHiddenControl(hidden, formValues)) return '';
|
|
5562
|
+
if (checkIfHiddenControl(hidden, formValues)) return '';
|
|
5563
|
+
// Control can be disabled when: 1) whole form is disabled, 2.) control is disabled via config prop
|
|
5729
5564
|
// 3.) control is disabled via its own `disable` control prop
|
|
5730
|
-
|
|
5731
5565
|
const isDisabled = isFormDisabled || checkIfDisabledControl(disabled, formValues, formState.isValid) || 'disabled' in _controlProps && _controlProps.disabled;
|
|
5732
|
-
|
|
5733
5566
|
const control = {
|
|
5734
5567
|
controlProps: _controlProps,
|
|
5735
5568
|
disabled: isDisabled,
|
|
@@ -5740,7 +5573,6 @@ const DotDynamicForm = ({
|
|
|
5740
5573
|
controlName: inputControlName,
|
|
5741
5574
|
formData: formState.data
|
|
5742
5575
|
});
|
|
5743
|
-
|
|
5744
5576
|
switch (controlType) {
|
|
5745
5577
|
case 'dot-input-text':
|
|
5746
5578
|
{
|
|
@@ -5748,49 +5580,42 @@ const DotDynamicForm = ({
|
|
|
5748
5580
|
handleChange: handleInputChange
|
|
5749
5581
|
}));
|
|
5750
5582
|
}
|
|
5751
|
-
|
|
5752
5583
|
case 'dot-input-select':
|
|
5753
5584
|
{
|
|
5754
5585
|
return buildInputSelectControl(Object.assign(Object.assign({}, commonControlledInputArgs), {
|
|
5755
5586
|
handleChange: handleInputChange
|
|
5756
5587
|
}));
|
|
5757
5588
|
}
|
|
5758
|
-
|
|
5759
5589
|
case 'dot-autocomplete':
|
|
5760
5590
|
{
|
|
5761
5591
|
return buildAutocompleteControl(Object.assign(Object.assign({}, commonControlledInputArgs), {
|
|
5762
5592
|
handleChange: handleAutocompleteChange
|
|
5763
5593
|
}));
|
|
5764
5594
|
}
|
|
5765
|
-
|
|
5766
5595
|
case 'dot-radio-group':
|
|
5767
5596
|
{
|
|
5768
5597
|
return buildRadioGroupControl(Object.assign(Object.assign({}, commonControlledInputArgs), {
|
|
5769
5598
|
handleChange: handleInputChange
|
|
5770
5599
|
}));
|
|
5771
5600
|
}
|
|
5772
|
-
|
|
5773
5601
|
case 'dot-checkbox':
|
|
5774
5602
|
{
|
|
5775
5603
|
return buildCheckboxControl(Object.assign(Object.assign({}, commonControlledInputArgs), {
|
|
5776
5604
|
handleChange: handleCheckChange
|
|
5777
5605
|
}));
|
|
5778
5606
|
}
|
|
5779
|
-
|
|
5780
5607
|
case 'dot-checkbox-group':
|
|
5781
5608
|
{
|
|
5782
5609
|
return buildCheckboxGroupControl(Object.assign(Object.assign({}, commonControlledInputArgs), {
|
|
5783
5610
|
handleChange: handleCheckboxGroupChange
|
|
5784
5611
|
}));
|
|
5785
5612
|
}
|
|
5786
|
-
|
|
5787
5613
|
case 'dot-switch':
|
|
5788
5614
|
{
|
|
5789
5615
|
return buildSwitchControl(Object.assign(Object.assign({}, commonControlledInputArgs), {
|
|
5790
5616
|
handleChange: handleCheckChange
|
|
5791
5617
|
}));
|
|
5792
5618
|
}
|
|
5793
|
-
|
|
5794
5619
|
case 'dot-button':
|
|
5795
5620
|
{
|
|
5796
5621
|
const handleClick = getControlClickHandler(formValues, onControlClick);
|
|
@@ -5798,7 +5623,6 @@ const DotDynamicForm = ({
|
|
|
5798
5623
|
handleClick
|
|
5799
5624
|
}));
|
|
5800
5625
|
}
|
|
5801
|
-
|
|
5802
5626
|
case 'dot-progress-button':
|
|
5803
5627
|
{
|
|
5804
5628
|
const handleClick = getControlClickHandler(formValues, onControlClick);
|
|
@@ -5806,35 +5630,30 @@ const DotDynamicForm = ({
|
|
|
5806
5630
|
handleClick
|
|
5807
5631
|
}));
|
|
5808
5632
|
}
|
|
5809
|
-
|
|
5810
5633
|
case 'dot-reset':
|
|
5811
5634
|
{
|
|
5812
5635
|
return buildResetControl(Object.assign(Object.assign({}, control), {
|
|
5813
5636
|
handleClick: handleReset
|
|
5814
5637
|
}));
|
|
5815
5638
|
}
|
|
5816
|
-
|
|
5817
5639
|
case 'dot-submit':
|
|
5818
5640
|
{
|
|
5819
5641
|
return buildSubmitControl(Object.assign(Object.assign({}, control), {
|
|
5820
5642
|
formState
|
|
5821
5643
|
}));
|
|
5822
5644
|
}
|
|
5823
|
-
|
|
5824
5645
|
case 'dot-progress-submit':
|
|
5825
5646
|
{
|
|
5826
5647
|
return buildProgressSubmitControl(Object.assign(Object.assign({}, control), {
|
|
5827
5648
|
formState
|
|
5828
5649
|
}));
|
|
5829
5650
|
}
|
|
5830
|
-
|
|
5831
5651
|
case 'custom-element':
|
|
5832
5652
|
{
|
|
5833
5653
|
return jsx(Fragment, {
|
|
5834
5654
|
children: customElement
|
|
5835
5655
|
}, elementIndex);
|
|
5836
5656
|
}
|
|
5837
|
-
|
|
5838
5657
|
case 'dot-form-section':
|
|
5839
5658
|
{
|
|
5840
5659
|
const {
|
|
@@ -5846,7 +5665,6 @@ const DotDynamicForm = ({
|
|
|
5846
5665
|
sectionControls: buildFormControls(sectionControls, sectionStartIndex)
|
|
5847
5666
|
}, elementIndex);
|
|
5848
5667
|
}
|
|
5849
|
-
|
|
5850
5668
|
default:
|
|
5851
5669
|
{
|
|
5852
5670
|
return '';
|
|
@@ -5854,7 +5672,6 @@ const DotDynamicForm = ({
|
|
|
5854
5672
|
}
|
|
5855
5673
|
});
|
|
5856
5674
|
};
|
|
5857
|
-
|
|
5858
5675
|
return jsx(StyledDynamicForm, Object.assign({
|
|
5859
5676
|
ariaLabel: ariaLabel,
|
|
5860
5677
|
className: rootClasses,
|
|
@@ -5877,7 +5694,7 @@ const StyledInlineEdit = styled.div.withConfig({
|
|
|
5877
5694
|
})(["", ""], ({
|
|
5878
5695
|
theme,
|
|
5879
5696
|
fullWidth
|
|
5880
|
-
}) => css(["&.
|
|
5697
|
+
}) => css(["&.", "{display:", ";align-items:center;color:", ";min-width:", ";&:not(.", "):focus-visible{border-radius:", ";background-color:", ";cursor:pointer;outline:0;.dot-edit-icon{display:block;}}.", "{display:flex;width:100%;position:relative;.dot-edit-icon{height:100%;position:absolute;right:0;width:40px;background-color:", ";border-radius:", ";display:none;.dot-i{margin:0;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);}}&:not(.", "):hover{border-radius:", ";background-color:", ";cursor:pointer;.dot-edit-icon{display:block;}}.dot-view-mode-typography{padding:", ";margin-bottom:0;}}.dot-empty-value fieldset{border-color:", ";}.dot-adornment-error{color:", ";}.MuiInputBase-input{height:auto;}.MuiInputBase-root{margin-bottom:", ";}", " .", " .dot-input{padding-left:", ";}.MuiOutlinedInput-input:focus{cursor:auto;}.dot-counter-adornment{.dot-counter-max-length{color:", ";}.dot-counter-length,.dot-counter-max-length{&.dot-counter-limit{color:", ";}&:hover{background:", ";}.editing-actions{display:flex;justify-content:flex-end;margin-top:", ";}.dot-icon-btn{background:", ";border:1px solid ", ";color:", ";margin-left:", ";padding:", ";}}}.dot-read-only-adornment{display:none;}.", "{display:flex;align-items:center;margin:", ";.dot-button{padding:", ";margin-top:", ";margin-bottom:", ";}}}"], rootClassName$m, fullWidth ? 'flex' : 'inline-flex', theme.palette.grey[700], theme.spacing(32), readOnlyClassName, theme.spacing(0.5), theme.palette.layer.n50, viewModeClassName, theme.palette.layer.n50, theme.spacing(0, 0.5, 0.5, 0), readOnlyClassName, theme.spacing(0.5), theme.palette.layer.n50, theme.spacing(1.3125, 1), theme.palette.error[500], theme.palette.error[500], theme.spacing(0), ({
|
|
5881
5698
|
typography
|
|
5882
5699
|
}) => typography && `
|
|
5883
5700
|
.MuiInputBase-root {
|
|
@@ -5939,7 +5756,6 @@ const applyBindings = (bindings, inlineEditText) => {
|
|
|
5939
5756
|
} = binding;
|
|
5940
5757
|
let bindingStringIndex = text.indexOf(stringBinding);
|
|
5941
5758
|
let key = 0;
|
|
5942
|
-
|
|
5943
5759
|
while (bindingStringIndex >= 0) {
|
|
5944
5760
|
// Since key is needed only for bindings with className,
|
|
5945
5761
|
// increment key value only if className value is defined
|
|
@@ -5947,16 +5763,16 @@ const applyBindings = (bindings, inlineEditText) => {
|
|
|
5947
5763
|
const nextStartingIndex = bindingStringIndex + stringBinding.length;
|
|
5948
5764
|
const previousText = text.substring(0, bindingStringIndex);
|
|
5949
5765
|
text = text.substring(nextStartingIndex, text.length);
|
|
5950
|
-
bindingStringIndex = text.indexOf(stringBinding);
|
|
5951
|
-
|
|
5766
|
+
bindingStringIndex = text.indexOf(stringBinding);
|
|
5767
|
+
// Add nodes to array
|
|
5952
5768
|
boundNode = [boundNode, previousText, className ? jsx("span", Object.assign({
|
|
5953
5769
|
className: className
|
|
5954
5770
|
}, {
|
|
5955
5771
|
children: value
|
|
5956
5772
|
}), `${index}-${key}`) : value];
|
|
5957
5773
|
}
|
|
5958
|
-
});
|
|
5959
|
-
|
|
5774
|
+
});
|
|
5775
|
+
// Add remainder of the text to the node
|
|
5960
5776
|
boundNode = [boundNode, text];
|
|
5961
5777
|
return boundNode;
|
|
5962
5778
|
};
|
|
@@ -5965,7 +5781,6 @@ const checkIfEmptyValue = inputValue => inputValue.trim() === '';
|
|
|
5965
5781
|
/**
|
|
5966
5782
|
* @experimental This component is still in development
|
|
5967
5783
|
*/
|
|
5968
|
-
|
|
5969
5784
|
const DotInlineEdit = ({
|
|
5970
5785
|
ariaLabel,
|
|
5971
5786
|
bindings,
|
|
@@ -5993,74 +5808,59 @@ const DotInlineEdit = ({
|
|
|
5993
5808
|
const inlineEditRef = useRef();
|
|
5994
5809
|
const isSaveDisabled = checkIfEmptyValue(inputValue);
|
|
5995
5810
|
const rootClasses = useStylesWithRootClass(rootClassName$m, className, editing ? editModeClassName : '');
|
|
5996
|
-
|
|
5997
5811
|
const handleShowTooltip = visible => {
|
|
5998
5812
|
if (isNotReadOnlyOrEditing) {
|
|
5999
5813
|
setShowTooltip(visible);
|
|
6000
5814
|
}
|
|
6001
5815
|
};
|
|
6002
|
-
|
|
6003
5816
|
const handleInlineEditClick = () => {
|
|
6004
5817
|
if (editing) return;
|
|
6005
5818
|
setOriginalValue(inputValue);
|
|
6006
5819
|
setEditing(true);
|
|
6007
|
-
|
|
6008
5820
|
if (onEditStateChange) {
|
|
6009
5821
|
onEditStateChange(true);
|
|
6010
5822
|
}
|
|
6011
5823
|
};
|
|
6012
|
-
|
|
6013
5824
|
const handleSave = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
6014
5825
|
var _a;
|
|
6015
|
-
|
|
6016
5826
|
setShowTooltip(false);
|
|
6017
5827
|
if (isSaveDisabled) return;
|
|
6018
|
-
|
|
6019
5828
|
if (onChange) {
|
|
6020
5829
|
const isSuccess = yield onChange(inputValue);
|
|
6021
|
-
|
|
6022
5830
|
if (!isSuccess) {
|
|
6023
5831
|
(_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.focus();
|
|
6024
5832
|
return;
|
|
6025
5833
|
}
|
|
6026
5834
|
}
|
|
6027
|
-
|
|
6028
5835
|
setEditing(false);
|
|
6029
|
-
|
|
6030
5836
|
if (onEditStateChange) {
|
|
6031
5837
|
onEditStateChange(false);
|
|
6032
5838
|
}
|
|
6033
5839
|
});
|
|
6034
|
-
|
|
6035
5840
|
const handleCancel = () => {
|
|
6036
5841
|
setShowTooltip(false);
|
|
6037
5842
|
setEditing(false);
|
|
6038
5843
|
setInputValue(originalValue);
|
|
6039
|
-
|
|
6040
5844
|
if (onEditStateChange) {
|
|
6041
5845
|
onEditStateChange(false);
|
|
6042
5846
|
}
|
|
6043
5847
|
};
|
|
6044
|
-
|
|
6045
5848
|
const handleKeyPress = event => __awaiter(void 0, void 0, void 0, function* () {
|
|
6046
5849
|
switch (event.key) {
|
|
6047
5850
|
case 'Enter':
|
|
6048
5851
|
if (!editing) {
|
|
6049
5852
|
handleInlineEditClick();
|
|
6050
5853
|
return;
|
|
6051
|
-
}
|
|
6052
|
-
|
|
6053
|
-
|
|
5854
|
+
}
|
|
5855
|
+
// Save only when Enter is pressed within input field
|
|
6054
5856
|
if (inputRef.current !== event.target) return;
|
|
6055
5857
|
yield handleSave();
|
|
6056
5858
|
break;
|
|
6057
|
-
|
|
6058
5859
|
case 'Escape':
|
|
6059
5860
|
handleCancel();
|
|
6060
5861
|
break;
|
|
6061
5862
|
}
|
|
6062
5863
|
});
|
|
6063
|
-
|
|
6064
5864
|
const handleBlur = event => __awaiter(void 0, void 0, void 0, function* () {
|
|
6065
5865
|
if (!editing) {
|
|
6066
5866
|
setShowTooltip(false);
|
|
@@ -6070,20 +5870,16 @@ const DotInlineEdit = ({
|
|
|
6070
5870
|
}
|
|
6071
5871
|
}
|
|
6072
5872
|
});
|
|
6073
|
-
|
|
6074
5873
|
const renderEndAdornment = () => {
|
|
6075
5874
|
if (isSaveDisabled) {
|
|
6076
5875
|
return getWarningAdornment();
|
|
6077
5876
|
}
|
|
6078
|
-
|
|
6079
5877
|
if (charactersLimit && !charactersLimit.hideCounter) {
|
|
6080
5878
|
return getCounterAdornment(inputValue.length, charactersLimit.maxLength, dataTestId);
|
|
6081
5879
|
}
|
|
6082
5880
|
};
|
|
6083
|
-
|
|
6084
5881
|
const renderViewMode = () => {
|
|
6085
5882
|
const viewModeClasses = useStylesWithRootClass(viewModeClassName, readOnly ? readOnlyClassName : '');
|
|
6086
|
-
|
|
6087
5883
|
const viewModeChildren = jsxs(Fragment$1, {
|
|
6088
5884
|
children: [jsx(DotTypography, Object.assign({
|
|
6089
5885
|
className: "dot-view-mode-typography",
|
|
@@ -6097,7 +5893,6 @@ const DotInlineEdit = ({
|
|
|
6097
5893
|
iconId: "edit"
|
|
6098
5894
|
}, void 0)]
|
|
6099
5895
|
}, void 0);
|
|
6100
|
-
|
|
6101
5896
|
return tooltip ? jsx(DotTooltip, Object.assign({
|
|
6102
5897
|
title: tooltip,
|
|
6103
5898
|
className: viewModeClasses,
|
|
@@ -6112,7 +5907,6 @@ const DotInlineEdit = ({
|
|
|
6112
5907
|
children: viewModeChildren
|
|
6113
5908
|
}), void 0);
|
|
6114
5909
|
};
|
|
6115
|
-
|
|
6116
5910
|
const renderEditMode = () => {
|
|
6117
5911
|
const textFieldClasses = useStylesWithRootClass(editTextFieldClassName, isSaveDisabled ? 'dot-empty-value' : '');
|
|
6118
5912
|
return jsxs(Fragment$1, {
|
|
@@ -6168,7 +5962,6 @@ const DotInlineEdit = ({
|
|
|
6168
5962
|
}), void 0)]
|
|
6169
5963
|
}, void 0);
|
|
6170
5964
|
};
|
|
6171
|
-
|
|
6172
5965
|
return jsx(StyledInlineEdit, Object.assign({
|
|
6173
5966
|
"aria-label": ariaLabel,
|
|
6174
5967
|
className: rootClasses,
|
|
@@ -6195,7 +5988,7 @@ const StyledNavigationRail = styled.div.withConfig({
|
|
|
6195
5988
|
})(["", ""], ({
|
|
6196
5989
|
theme,
|
|
6197
5990
|
railItemPosition
|
|
6198
|
-
}) => css(["&.", "{background-color:", ";border-left:1px solid ", ";display:flex;flex-direction:column;justify-content:", ";padding:", ";width:72px;.rail-item-button{border-radius:0;display:flex;flex-basis:72px;flex-direction:column;margin:0;padding:0;width:100%;white-space:normal
|
|
5991
|
+
}) => css(["&.", "{background-color:", ";border-left:1px solid ", ";display:flex;flex-direction:column;justify-content:", ";padding:", ";width:72px;.rail-item-button{border-radius:0;display:flex;flex-basis:72px;flex-direction:column;margin:0;padding:0;width:100%;white-space:normal;.dot-icon{color:", ";}&.selected{background-color:", ";}&:focus-visible{background-color:", ";}.rail-item-text{word-break:break-word;padding:", ";}}}"], rootClassName$l, theme.palette.layer.n50, theme.palette.layer.n100, railItemPosition, theme.spacing(1, 0, 0), theme.palette.grey[700], theme.palette.layer.n0, theme.palette.layer.n100, theme.spacing(0, 0.5)));
|
|
6199
5992
|
|
|
6200
5993
|
const MAX_ALLOWED_ITEMS = 7;
|
|
6201
5994
|
const DotNavigationRail = ({
|
|
@@ -6210,31 +6003,25 @@ const DotNavigationRail = ({
|
|
|
6210
6003
|
const rootClasses = useStylesWithRootClass(rootClassName$l, className);
|
|
6211
6004
|
const [selectedItemIndex, setSelectedItemIndex] = useState(_selectedIndex);
|
|
6212
6005
|
/* Used to change selected index programmatically from the consumer component */
|
|
6213
|
-
|
|
6214
6006
|
useEffect(() => {
|
|
6215
6007
|
setSelectedItemIndex(_selectedIndex);
|
|
6216
6008
|
}, [_selectedIndex]);
|
|
6217
|
-
|
|
6218
6009
|
const onItemSelect = index => () => {
|
|
6219
6010
|
setSelectedItemIndex(index);
|
|
6220
6011
|
onChange && onChange(index);
|
|
6221
6012
|
};
|
|
6222
|
-
|
|
6223
6013
|
const checkIfSelected = index => selectedItemIndex === index;
|
|
6224
|
-
|
|
6225
6014
|
const renderIcon = (iconId, railIconBadge) => {
|
|
6226
6015
|
const icon = jsx(DotIcon, {
|
|
6227
6016
|
className: "rail-item-button-icon",
|
|
6228
6017
|
iconId: iconId
|
|
6229
6018
|
}, void 0);
|
|
6230
|
-
|
|
6231
6019
|
if (!railIconBadge) return icon;
|
|
6232
6020
|
return jsx(DotBadge, Object.assign({}, railIconBadge, {
|
|
6233
6021
|
className: "rail-item-badge",
|
|
6234
6022
|
children: icon
|
|
6235
6023
|
}), void 0);
|
|
6236
6024
|
};
|
|
6237
|
-
|
|
6238
6025
|
const renderRailItems = () => {
|
|
6239
6026
|
return railItems === null || railItems === void 0 ? void 0 : railItems.slice(0, MAX_ALLOWED_ITEMS).map(({
|
|
6240
6027
|
ariaLabel: itemAriaLabel,
|
|
@@ -6257,7 +6044,6 @@ const DotNavigationRail = ({
|
|
|
6257
6044
|
}), void 0)]
|
|
6258
6045
|
}), index));
|
|
6259
6046
|
};
|
|
6260
|
-
|
|
6261
6047
|
return jsx(StyledNavigationRail, Object.assign({
|
|
6262
6048
|
"aria-label": ariaLabel,
|
|
6263
6049
|
className: rootClasses,
|
|
@@ -6372,7 +6158,6 @@ function checkForConflictingEventHandlers({
|
|
|
6372
6158
|
console.error('You have passed two event handlers for action buttons. Please pick one.');
|
|
6373
6159
|
}
|
|
6374
6160
|
}
|
|
6375
|
-
|
|
6376
6161
|
const DEFAULT_ANCHOR_ORIGIN = {
|
|
6377
6162
|
vertical: 'top',
|
|
6378
6163
|
horizontal: 'right'
|
|
@@ -6440,13 +6225,11 @@ const DotSnackbarContainer = () => {
|
|
|
6440
6225
|
alerts,
|
|
6441
6226
|
removeMessage
|
|
6442
6227
|
} = useDotSnackbarContext();
|
|
6443
|
-
|
|
6444
6228
|
function handleClose(id) {
|
|
6445
6229
|
return () => {
|
|
6446
6230
|
removeMessage(id);
|
|
6447
6231
|
};
|
|
6448
6232
|
}
|
|
6449
|
-
|
|
6450
6233
|
return jsx(StyledSnackbarContainer, Object.assign({
|
|
6451
6234
|
className: rootClassName$h
|
|
6452
6235
|
}, {
|
|
@@ -6470,7 +6253,6 @@ const DotSnackbarProvider = ({
|
|
|
6470
6253
|
children
|
|
6471
6254
|
}) => {
|
|
6472
6255
|
const [alerts, setAlerts] = useState([]);
|
|
6473
|
-
|
|
6474
6256
|
function enqueueMessage(message, severity) {
|
|
6475
6257
|
const id = CreateUUID();
|
|
6476
6258
|
const queue = {
|
|
@@ -6483,7 +6265,6 @@ const DotSnackbarProvider = ({
|
|
|
6483
6265
|
return [...prevState, Object.assign({}, queue)];
|
|
6484
6266
|
});
|
|
6485
6267
|
}
|
|
6486
|
-
|
|
6487
6268
|
const removeMessage = id => {
|
|
6488
6269
|
setAlerts(prev => {
|
|
6489
6270
|
return prev.map(a => {
|
|
@@ -6493,7 +6274,6 @@ const DotSnackbarProvider = ({
|
|
|
6493
6274
|
});
|
|
6494
6275
|
});
|
|
6495
6276
|
};
|
|
6496
|
-
|
|
6497
6277
|
const DotSnackbarValues = {
|
|
6498
6278
|
alerts,
|
|
6499
6279
|
enqueueMessage,
|
|
@@ -6551,9 +6331,7 @@ const DotSplitButton = ({
|
|
|
6551
6331
|
const hasEmptyOptions = _options.length === 0;
|
|
6552
6332
|
const mainOptionIndex = getMainOptionIndex(_options, defaultMainOptionKey);
|
|
6553
6333
|
const mainOption = _options[mainOptionIndex];
|
|
6554
|
-
|
|
6555
6334
|
const dropdownOptions = _options.filter((_option, index) => index !== mainOptionIndex);
|
|
6556
|
-
|
|
6557
6335
|
const {
|
|
6558
6336
|
children: mainOptionChildren = 'Empty button',
|
|
6559
6337
|
disabled: mainOptionDisabled = false,
|
|
@@ -6561,12 +6339,10 @@ const DotSplitButton = ({
|
|
|
6561
6339
|
} = mainOption || {};
|
|
6562
6340
|
const isMainOptionDisabled = _disabled || hasEmptyOptions || mainOptionDisabled;
|
|
6563
6341
|
const isMenuButtonDisabled = _disabled || hasEmptyOptions || _options.length === 1;
|
|
6564
|
-
|
|
6565
6342
|
const handleClick = (_event, _menuId, itemKey) => {
|
|
6566
6343
|
setOpen(false);
|
|
6567
6344
|
onOptionClick(itemKey);
|
|
6568
6345
|
};
|
|
6569
|
-
|
|
6570
6346
|
return jsxs(Fragment$1, {
|
|
6571
6347
|
children: [jsxs(StyledSplitButtonGroup, Object.assign({
|
|
6572
6348
|
"aria-label": ariaLabel,
|
|
@@ -6616,17 +6392,18 @@ const DotSplitButton = ({
|
|
|
6616
6392
|
};
|
|
6617
6393
|
|
|
6618
6394
|
const rootClassName$f = 'dot-table-pagination';
|
|
6395
|
+
// TO-DO: Determine how to apply styles to standard popper element
|
|
6396
|
+
const paginationItemClassName = 'dot-pagination-menu-item';
|
|
6619
6397
|
const StyledTablePagination = styled.div.withConfig({
|
|
6620
6398
|
displayName: "TablePaginationstyles__StyledTablePagination",
|
|
6621
6399
|
componentId: "bs7p0b-0"
|
|
6622
6400
|
})(["", ""], ({
|
|
6623
6401
|
theme,
|
|
6624
6402
|
typography
|
|
6625
|
-
}) => css([".", "{border-top:1px solid ", ";.dot-caption{font-size:", ";margin:0;}.dot-menu,.MuiInputBase-root{margin-bottom:0;}}"], rootClassName$f, theme.palette.grey[200], theme.typography[typography].fontSize));
|
|
6403
|
+
}) => css([".", "{border-top:1px solid ", ";.dot-caption,.MuiInputBase-root{font-family:", ";font-size:", "px;letter-spacing:", ";line-height:", ";}.dot-caption{margin:0;}.dot-menu,.MuiInputBase-root{margin-bottom:0;}}"], rootClassName$f, theme.palette.grey[200], theme.typography[typography].fontFamily, theme.typography[typography].fontSize, theme.typography[typography].letterSpacing, theme.typography[typography].lineHeight));
|
|
6626
6404
|
|
|
6627
6405
|
const ROWS_PER_PAGE_OPTIONS = [10, 25, 50, 100, 150, 200];
|
|
6628
6406
|
/** This component wraps the TablePagination component from @material-ui. */
|
|
6629
|
-
|
|
6630
6407
|
const DotTablePagination = ({
|
|
6631
6408
|
ariaLabel,
|
|
6632
6409
|
className,
|
|
@@ -6636,21 +6413,18 @@ const DotTablePagination = ({
|
|
|
6636
6413
|
onRowsPerPageChange,
|
|
6637
6414
|
page: _page = 0,
|
|
6638
6415
|
rowsPerPage: _rowsPerPage = 10,
|
|
6639
|
-
typography: _typography = '
|
|
6416
|
+
typography: _typography = 'subtitle2'
|
|
6640
6417
|
}) => {
|
|
6641
6418
|
const rootClasses = useStylesWithRootClass(rootClassName$f, className);
|
|
6642
|
-
|
|
6643
6419
|
const handlePageChange = (event, newPage) => {
|
|
6644
6420
|
onPageChange && onPageChange(newPage);
|
|
6645
6421
|
};
|
|
6646
|
-
|
|
6647
6422
|
const handleChangeRowsPerPage = evt => {
|
|
6648
6423
|
onRowsPerPageChange && onRowsPerPageChange(evt);
|
|
6649
6424
|
};
|
|
6650
|
-
|
|
6651
|
-
return (
|
|
6652
|
-
/* Container is used to pass 'typography' prop to a styled component */
|
|
6425
|
+
return (/* Container is used to pass 'typography' prop to a styled component */
|
|
6653
6426
|
jsx(StyledTablePagination, Object.assign({
|
|
6427
|
+
className: rootClassName$f,
|
|
6654
6428
|
typography: _typography
|
|
6655
6429
|
}, {
|
|
6656
6430
|
children: jsx(TablePagination, {
|
|
@@ -6660,7 +6434,7 @@ const DotTablePagination = ({
|
|
|
6660
6434
|
selectIcon: 'dot-icon',
|
|
6661
6435
|
selectLabel: 'dot-caption',
|
|
6662
6436
|
displayedRows: 'dot-caption',
|
|
6663
|
-
menuItem:
|
|
6437
|
+
menuItem: paginationItemClassName,
|
|
6664
6438
|
selectRoot: 'dot-menu'
|
|
6665
6439
|
},
|
|
6666
6440
|
component: "div",
|
|
@@ -6694,7 +6468,8 @@ const StyledMenu$1 = styled(DotMenu).withConfig({
|
|
|
6694
6468
|
componentId: "s95z6y-2"
|
|
6695
6469
|
})([".dot-ul > li{padding:0;> button{width:100%;margin:0;justify-content:flex-start;}}"]);
|
|
6696
6470
|
|
|
6697
|
-
const getFormattedTableCellValue = (
|
|
6471
|
+
const getFormattedTableCellValue = (
|
|
6472
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
6698
6473
|
value, typographyVariant) => {
|
|
6699
6474
|
if (isString(value) || isNumber(value)) {
|
|
6700
6475
|
return jsx(DotTypography, Object.assign({
|
|
@@ -6704,34 +6479,29 @@ value, typographyVariant) => {
|
|
|
6704
6479
|
children: value
|
|
6705
6480
|
}), void 0);
|
|
6706
6481
|
}
|
|
6707
|
-
|
|
6708
6482
|
return value;
|
|
6709
|
-
};
|
|
6483
|
+
};
|
|
6484
|
+
// If maxHeight is provided, make this the max height for the
|
|
6710
6485
|
// table container. If it is not provided but stickyHeader is true,
|
|
6711
6486
|
// calculate a max height based on screen size.
|
|
6712
|
-
|
|
6713
6487
|
const getContainerMaxHeightStyle = (stickyHeader, maxHeight) => {
|
|
6714
6488
|
const maxHeightStickyHeader = stickyHeader ? 'calc(100vh - 76px)' : '';
|
|
6715
6489
|
return maxHeight ? maxHeight : maxHeightStickyHeader;
|
|
6716
6490
|
};
|
|
6717
6491
|
const getSelectedRowIds = (id, isChecked, selectedIds) => {
|
|
6718
6492
|
const newIds = [...selectedIds];
|
|
6719
|
-
|
|
6720
6493
|
if (isChecked) {
|
|
6721
6494
|
!selectedIds.includes(id) && newIds.push(id);
|
|
6722
6495
|
} else {
|
|
6723
6496
|
const index = selectedIds.indexOf(id);
|
|
6724
|
-
|
|
6725
6497
|
if (index > -1) {
|
|
6726
6498
|
newIds.splice(index, 1);
|
|
6727
6499
|
}
|
|
6728
6500
|
}
|
|
6729
|
-
|
|
6730
6501
|
return newIds;
|
|
6731
6502
|
};
|
|
6732
6503
|
const getBulkSelectedRowIds = (isChecked, selectedIds, pageData) => {
|
|
6733
6504
|
const newIds = [...selectedIds];
|
|
6734
|
-
|
|
6735
6505
|
if (isChecked) {
|
|
6736
6506
|
pageData.forEach(({
|
|
6737
6507
|
id
|
|
@@ -6745,13 +6515,11 @@ const getBulkSelectedRowIds = (isChecked, selectedIds, pageData) => {
|
|
|
6745
6515
|
id
|
|
6746
6516
|
}) => {
|
|
6747
6517
|
const index = newIds.indexOf(id);
|
|
6748
|
-
|
|
6749
6518
|
if (index > -1) {
|
|
6750
6519
|
newIds.splice(index, 1);
|
|
6751
6520
|
}
|
|
6752
6521
|
});
|
|
6753
6522
|
}
|
|
6754
|
-
|
|
6755
6523
|
return newIds;
|
|
6756
6524
|
};
|
|
6757
6525
|
|
|
@@ -6764,7 +6532,6 @@ const StyledTableCell = styled(TableCell).withConfig({
|
|
|
6764
6532
|
/**
|
|
6765
6533
|
* A wrapper component around the TableCell component from @material-ui.
|
|
6766
6534
|
*/
|
|
6767
|
-
|
|
6768
6535
|
const DotBodyCell = ({
|
|
6769
6536
|
ariaLabel,
|
|
6770
6537
|
align,
|
|
@@ -6783,12 +6550,11 @@ const DotBodyCell = ({
|
|
|
6783
6550
|
const noWrapTableCell = document.getElementsByClassName('noWrap');
|
|
6784
6551
|
Array.from(noWrapTableCell).forEach(truncatedText => {
|
|
6785
6552
|
const isOverflowing = truncatedText.clientWidth < truncatedText.scrollWidth || truncatedText.clientHeight < truncatedText.scrollHeight;
|
|
6786
|
-
|
|
6787
6553
|
if (isOverflowing) {
|
|
6788
6554
|
truncatedText.setAttribute('title', truncatedText.innerText);
|
|
6789
6555
|
}
|
|
6790
|
-
});
|
|
6791
|
-
|
|
6556
|
+
});
|
|
6557
|
+
// on window resize, set action column to menu or icon button
|
|
6792
6558
|
if (Array.isArray(value)) {
|
|
6793
6559
|
getActionColumn();
|
|
6794
6560
|
window.addEventListener('resize', getActionColumn);
|
|
@@ -6796,8 +6562,8 @@ const DotBodyCell = ({
|
|
|
6796
6562
|
window.removeEventListener('resize', Array.isArray(value) && getActionColumn);
|
|
6797
6563
|
};
|
|
6798
6564
|
}
|
|
6799
|
-
}, []);
|
|
6800
|
-
|
|
6565
|
+
}, []);
|
|
6566
|
+
// Logic to determine action column as menu or icon button
|
|
6801
6567
|
const getActionColumn = () => {
|
|
6802
6568
|
const iconBtnWidth = document.getElementsByClassName('dot-table-action-icon');
|
|
6803
6569
|
const getTotalActionItem = Array.isArray(value) && value.length;
|
|
@@ -6805,9 +6571,7 @@ const DotBodyCell = ({
|
|
|
6805
6571
|
const isOverflowing = actionTableCellWidth > (wrapperRef === null || wrapperRef === void 0 ? void 0 : wrapperRef.current.clientWidth);
|
|
6806
6572
|
setShowMenu(isOverflowing);
|
|
6807
6573
|
};
|
|
6808
|
-
|
|
6809
6574
|
const rootClasses = useStylesWithRootClass(rootClassName$d, className, noWrap && 'noWrap', Array.isArray(value) && 'actionItems');
|
|
6810
|
-
|
|
6811
6575
|
const getTableCellValue = () => {
|
|
6812
6576
|
if (Array.isArray(value)) {
|
|
6813
6577
|
return jsx("div", Object.assign({
|
|
@@ -6832,10 +6596,8 @@ const DotBodyCell = ({
|
|
|
6832
6596
|
}, `${cellKey}-icon-${index}`))
|
|
6833
6597
|
}), void 0);
|
|
6834
6598
|
}
|
|
6835
|
-
|
|
6836
6599
|
return getFormattedTableCellValue(value, typography);
|
|
6837
6600
|
};
|
|
6838
|
-
|
|
6839
6601
|
return jsx(StyledTableCell, Object.assign({
|
|
6840
6602
|
align: align,
|
|
6841
6603
|
"aria-label": ariaLabel,
|
|
@@ -6868,17 +6630,14 @@ const DotBodyCheckboxCell = ({
|
|
|
6868
6630
|
const rootClasses = useStylesWithRootClass(rootClassName$c, className);
|
|
6869
6631
|
const [isCheckboxChecked, setIsCheckboxChecked] = useState(isChecked);
|
|
6870
6632
|
/** This effect is used when 'checked' status is changed from the outside */
|
|
6871
|
-
|
|
6872
6633
|
useEffect(() => {
|
|
6873
6634
|
setIsCheckboxChecked(isChecked);
|
|
6874
6635
|
}, [isChecked]);
|
|
6875
|
-
|
|
6876
6636
|
const handleChange = e => {
|
|
6877
6637
|
const checked = e.target.checked;
|
|
6878
6638
|
setIsCheckboxChecked(checked);
|
|
6879
6639
|
onChange(checked, rowId);
|
|
6880
6640
|
};
|
|
6881
|
-
|
|
6882
6641
|
return jsx(StyledTableBodyCheckboxCell, Object.assign({
|
|
6883
6642
|
align: "left",
|
|
6884
6643
|
className: rootClasses,
|
|
@@ -6906,7 +6665,6 @@ const StyledTableRowStyles = styled(TableRow).withConfig({
|
|
|
6906
6665
|
* A wrapper component around the TableRow component from @material-ui. This component can be used
|
|
6907
6666
|
* for manipulating data prior to displaying the data inside the table
|
|
6908
6667
|
*/
|
|
6909
|
-
|
|
6910
6668
|
const DotTableRow = ({
|
|
6911
6669
|
columns,
|
|
6912
6670
|
className,
|
|
@@ -6920,18 +6678,15 @@ const DotTableRow = ({
|
|
|
6920
6678
|
}) => {
|
|
6921
6679
|
const id = data.id;
|
|
6922
6680
|
const rowData = data.rowData;
|
|
6923
|
-
|
|
6924
6681
|
const handleOnClick = event => {
|
|
6925
6682
|
onClick && onClick(event, id.toString());
|
|
6926
6683
|
};
|
|
6927
|
-
|
|
6928
6684
|
const {
|
|
6929
6685
|
onCheckIndividualChange,
|
|
6930
6686
|
selectedTableRowIds
|
|
6931
6687
|
} = multiSelectBody || {};
|
|
6932
6688
|
const isCheckboxChecked = selectedTableRowIds && selectedTableRowIds.includes(id) || false;
|
|
6933
6689
|
const rootClasses = useStylesWithRootClass(rootClassName$b, isCheckboxChecked ? 'selected' : undefined, className);
|
|
6934
|
-
|
|
6935
6690
|
const renderCheckboxCell = () => {
|
|
6936
6691
|
return jsx(DotBodyCheckboxCell, {
|
|
6937
6692
|
ariaLabel: "Click to select this row",
|
|
@@ -6940,7 +6695,6 @@ const DotTableRow = ({
|
|
|
6940
6695
|
rowId: id
|
|
6941
6696
|
}, void 0);
|
|
6942
6697
|
};
|
|
6943
|
-
|
|
6944
6698
|
return jsxs(StyledTableRowStyles, Object.assign({
|
|
6945
6699
|
classes: {
|
|
6946
6700
|
root: rootClasses
|
|
@@ -6989,7 +6743,6 @@ const StyledTableBody = styled(TableBody).withConfig({
|
|
|
6989
6743
|
* A wrapper component around the TableBody component from @material-ui. This component can be used
|
|
6990
6744
|
* to determine the functionality of the table.
|
|
6991
6745
|
*/
|
|
6992
|
-
|
|
6993
6746
|
const DotTableBody = ({
|
|
6994
6747
|
columns,
|
|
6995
6748
|
data,
|
|
@@ -7001,20 +6754,16 @@ const DotTableBody = ({
|
|
|
7001
6754
|
const [anchorEl, setAnchorEl] = useState(null);
|
|
7002
6755
|
const [menuProps, setMenuProps] = useState([]);
|
|
7003
6756
|
const [open, setOpen] = useState(false);
|
|
7004
|
-
|
|
7005
6757
|
const handleActionMenuTrigger = (el, menuItem) => {
|
|
7006
6758
|
setAnchorEl(el);
|
|
7007
6759
|
setMenuProps(menuItem);
|
|
7008
6760
|
setOpen(!open);
|
|
7009
6761
|
};
|
|
7010
|
-
|
|
7011
6762
|
const menuId = CreateUUID();
|
|
7012
6763
|
const tableId = CreateUUID();
|
|
7013
|
-
|
|
7014
6764
|
const onLeave = () => {
|
|
7015
6765
|
setOpen(false);
|
|
7016
6766
|
};
|
|
7017
|
-
|
|
7018
6767
|
const getTableBodyRows = () => {
|
|
7019
6768
|
return data.length === 0 ? jsx(EmptyDotRow, {
|
|
7020
6769
|
cols: columns.length,
|
|
@@ -7034,7 +6783,6 @@ const DotTableBody = ({
|
|
|
7034
6783
|
}, index);
|
|
7035
6784
|
});
|
|
7036
6785
|
};
|
|
7037
|
-
|
|
7038
6786
|
return jsxs(Fragment$1, {
|
|
7039
6787
|
children: [jsx(StyledTableBody, Object.assign({
|
|
7040
6788
|
classes: {
|
|
@@ -7066,7 +6814,6 @@ const StyledTableHeaderCell = styled(TableCell).withConfig({
|
|
|
7066
6814
|
* A wrapper component around the TableCell component from @material-ui. This component should only
|
|
7067
6815
|
* be used inside DotHeaderRow.
|
|
7068
6816
|
*/
|
|
7069
|
-
|
|
7070
6817
|
const DotHeaderCell = ({
|
|
7071
6818
|
align,
|
|
7072
6819
|
typography,
|
|
@@ -7082,7 +6829,6 @@ const DotHeaderCell = ({
|
|
|
7082
6829
|
}) => {
|
|
7083
6830
|
const headerTitle = isString(value) ? value : null;
|
|
7084
6831
|
const formattedValue = getFormattedTableCellValue(value, typography);
|
|
7085
|
-
|
|
7086
6832
|
const getCellValue = () => {
|
|
7087
6833
|
if (_sortable) {
|
|
7088
6834
|
const orderById = orderBy === id;
|
|
@@ -7095,10 +6841,8 @@ const DotHeaderCell = ({
|
|
|
7095
6841
|
children: formattedValue
|
|
7096
6842
|
}), void 0);
|
|
7097
6843
|
}
|
|
7098
|
-
|
|
7099
6844
|
return formattedValue;
|
|
7100
6845
|
};
|
|
7101
|
-
|
|
7102
6846
|
const headerCellStyle = width ? {
|
|
7103
6847
|
width: width
|
|
7104
6848
|
} : undefined;
|
|
@@ -7135,21 +6879,17 @@ const DotHeaderCheckboxCell = ({
|
|
|
7135
6879
|
useEffect(() => {
|
|
7136
6880
|
setCheckboxState(multiSelectState);
|
|
7137
6881
|
}, [multiSelectState]);
|
|
7138
|
-
|
|
7139
6882
|
const getNextCheckboxState = currentCheckboxState => {
|
|
7140
6883
|
if (currentCheckboxState === 'indeterminate' || currentCheckboxState === 'checked') return 'unchecked';
|
|
7141
6884
|
return 'checked';
|
|
7142
6885
|
};
|
|
7143
|
-
|
|
7144
6886
|
const isIndeterminate = checkboxState === 'indeterminate';
|
|
7145
6887
|
const isCheckboxChecked = checkboxState === 'checked';
|
|
7146
|
-
|
|
7147
6888
|
const handleChange = () => {
|
|
7148
6889
|
const nextState = getNextCheckboxState(checkboxState);
|
|
7149
6890
|
setCheckboxState(nextState);
|
|
7150
6891
|
onCheckAllChange(nextState === 'checked', []);
|
|
7151
6892
|
};
|
|
7152
|
-
|
|
7153
6893
|
return jsx(StyledTableHeaderCheckboxCell, Object.assign({
|
|
7154
6894
|
align: "left",
|
|
7155
6895
|
className: rootClasses,
|
|
@@ -7170,7 +6910,6 @@ const DotHeaderCheckboxCell = ({
|
|
|
7170
6910
|
* A wrapper component around the TableHead component from @material-ui. This component can be used
|
|
7171
6911
|
* to determine the functionality of the table header.
|
|
7172
6912
|
*/
|
|
7173
|
-
|
|
7174
6913
|
const DotHeaderRow = ({
|
|
7175
6914
|
columns,
|
|
7176
6915
|
multiSelectHeader,
|
|
@@ -7183,7 +6922,6 @@ const DotHeaderRow = ({
|
|
|
7183
6922
|
const createSortHandler = property => _event => {
|
|
7184
6923
|
onRequestSort(property);
|
|
7185
6924
|
};
|
|
7186
|
-
|
|
7187
6925
|
const [multiSelectState, setMultiSelectState] = useState('unchecked');
|
|
7188
6926
|
const {
|
|
7189
6927
|
onCheckAllChange,
|
|
@@ -7192,25 +6930,20 @@ const DotHeaderRow = ({
|
|
|
7192
6930
|
} = multiSelectHeader || {};
|
|
7193
6931
|
useEffect(() => {
|
|
7194
6932
|
if (!multiSelectHeader) return;
|
|
7195
|
-
|
|
7196
6933
|
if (selectedTableRowIds && selectedTableRowIds.length > 0 && pageData) {
|
|
7197
6934
|
const itemsNumber = pageData.length;
|
|
7198
6935
|
const checkedItemsNumber = pageData.filter(row => selectedTableRowIds.includes(row.id)).length;
|
|
7199
|
-
|
|
7200
6936
|
if (itemsNumber === checkedItemsNumber) {
|
|
7201
6937
|
setMultiSelectState('checked');
|
|
7202
6938
|
return;
|
|
7203
6939
|
}
|
|
7204
|
-
|
|
7205
6940
|
if (checkedItemsNumber > 0) {
|
|
7206
6941
|
setMultiSelectState('indeterminate');
|
|
7207
6942
|
return;
|
|
7208
6943
|
}
|
|
7209
6944
|
}
|
|
7210
|
-
|
|
7211
6945
|
setMultiSelectState('unchecked');
|
|
7212
6946
|
}, [multiSelectHeader]);
|
|
7213
|
-
|
|
7214
6947
|
const renderMultiSelectCell = () => {
|
|
7215
6948
|
return jsx(DotHeaderCheckboxCell, {
|
|
7216
6949
|
ariaLabel: "Click to select all table page rows",
|
|
@@ -7218,7 +6951,6 @@ const DotHeaderRow = ({
|
|
|
7218
6951
|
onCheckAllChange: onCheckAllChange
|
|
7219
6952
|
}, void 0);
|
|
7220
6953
|
};
|
|
7221
|
-
|
|
7222
6954
|
return jsx(TableHead, Object.assign({
|
|
7223
6955
|
classes: {
|
|
7224
6956
|
root: 'dot-thead'
|
|
@@ -7306,11 +7038,9 @@ const sortComparator = (a, b, orderBy) => {
|
|
|
7306
7038
|
if (b.rowData[orderBy] < a.rowData[orderBy]) {
|
|
7307
7039
|
return -1;
|
|
7308
7040
|
}
|
|
7309
|
-
|
|
7310
7041
|
if (b.rowData[orderBy] > a.rowData[orderBy]) {
|
|
7311
7042
|
return 1;
|
|
7312
7043
|
}
|
|
7313
|
-
|
|
7314
7044
|
return 0;
|
|
7315
7045
|
};
|
|
7316
7046
|
const getComparator = (order, orderBy) => (a, b) => {
|
|
@@ -7324,13 +7054,12 @@ function stableSort(array, comparator) {
|
|
|
7324
7054
|
return newOrder !== 0 ? newOrder : order[1] - orderBy[1];
|
|
7325
7055
|
});
|
|
7326
7056
|
return stabilizedThis.map(el => el[0]);
|
|
7327
|
-
}
|
|
7328
|
-
|
|
7057
|
+
}
|
|
7058
|
+
// https://material-ui.com/components/tables/#custom-pagination-options
|
|
7329
7059
|
/**
|
|
7330
7060
|
* A wrapper component around the Table component from @material-ui. This component can be used for
|
|
7331
7061
|
* creating a common structure for tables in the system.
|
|
7332
7062
|
*/
|
|
7333
|
-
|
|
7334
7063
|
const DotTable = ({
|
|
7335
7064
|
ariaLabel,
|
|
7336
7065
|
bodyTypography: _bodyTypography = TABLE_TYPOGRAPHY_VARIANT,
|
|
@@ -7360,19 +7089,15 @@ const DotTable = ({
|
|
|
7360
7089
|
const [tablePage, setPage] = useState(_page);
|
|
7361
7090
|
const [tableRowsPerPage, setRowsPerPage] = useState(rowsPerPage);
|
|
7362
7091
|
const [selectedRowIds, setSelectedRowIds] = useState([]);
|
|
7363
|
-
|
|
7364
7092
|
const getSortedData = () => {
|
|
7365
7093
|
return onUpdateData ? data : stableSort(data, getComparator(_order, orderBy));
|
|
7366
7094
|
};
|
|
7367
|
-
|
|
7368
7095
|
const [pageData, setPageData] = useState(getSortedData().slice(0, rowsPerPage ? rowsPerPage : data.length));
|
|
7369
7096
|
const rootClasses = useStylesWithRootClass(rootClassName$e, className, _loading ? 'loading' : '');
|
|
7370
|
-
|
|
7371
7097
|
const updateData = (newOrder, newOrderBy, newPage, newRowsPerPage) => {
|
|
7372
7098
|
const newData = stableSort(data, getComparator(newOrder, newOrderBy));
|
|
7373
7099
|
setPageData(newRowsPerPage ? newData.slice(newPage * newRowsPerPage, newPage * newRowsPerPage + newRowsPerPage) : newData);
|
|
7374
7100
|
};
|
|
7375
|
-
|
|
7376
7101
|
const onSortRequest = property => {
|
|
7377
7102
|
const isAsc = tableOrderBy === property && tableOrder === 'asc';
|
|
7378
7103
|
const dataOrder = isAsc ? 'desc' : 'asc';
|
|
@@ -7381,19 +7106,16 @@ const DotTable = ({
|
|
|
7381
7106
|
setPage(0);
|
|
7382
7107
|
onUpdateData ? onUpdateData(dataOrder, property, 0, tableRowsPerPage) : updateData(dataOrder, property, 0, tableRowsPerPage);
|
|
7383
7108
|
};
|
|
7384
|
-
|
|
7385
7109
|
const onPageChange = newPage => {
|
|
7386
7110
|
setPage(newPage);
|
|
7387
7111
|
onUpdateData ? onUpdateData(tableOrder, tableOrderBy, newPage, tableRowsPerPage) : updateData(tableOrder, tableOrderBy, newPage, tableRowsPerPage);
|
|
7388
7112
|
};
|
|
7389
|
-
|
|
7390
7113
|
const onRowsPerPageChange = evt => {
|
|
7391
7114
|
const newRowsPerPage = parseInt(evt.target.value);
|
|
7392
7115
|
setRowsPerPage(newRowsPerPage);
|
|
7393
7116
|
setPage(0);
|
|
7394
7117
|
onUpdateData ? onUpdateData(tableOrder, tableOrderBy, 0, newRowsPerPage) : updateData(tableOrder, tableOrderBy, 0, newRowsPerPage);
|
|
7395
7118
|
};
|
|
7396
|
-
|
|
7397
7119
|
const getSkeletonData = () => {
|
|
7398
7120
|
const skeletonData = [];
|
|
7399
7121
|
const skeletonRow = {
|
|
@@ -7408,43 +7130,35 @@ const DotTable = ({
|
|
|
7408
7130
|
}, void 0)
|
|
7409
7131
|
}), void 0);
|
|
7410
7132
|
});
|
|
7411
|
-
|
|
7412
7133
|
for (let i = 0; i < (rowsPerPage ? rowsPerPage : skeletonRows); i++) {
|
|
7413
7134
|
skeletonData.push(skeletonRow);
|
|
7414
7135
|
}
|
|
7415
|
-
|
|
7416
7136
|
return skeletonData;
|
|
7417
7137
|
};
|
|
7418
|
-
|
|
7419
7138
|
const getData = () => {
|
|
7420
7139
|
const tableBodyData = onUpdateData ? data : pageData;
|
|
7421
7140
|
return _loading ? getSkeletonData() : tableBodyData;
|
|
7422
7141
|
};
|
|
7423
|
-
|
|
7424
|
-
|
|
7142
|
+
const tableData = getData();
|
|
7143
|
+
// If table is not paginated (rowsPerPage prop not provided), ignore 'count'.
|
|
7425
7144
|
// If paging is managed externally (onUpdateData callback provided) then use
|
|
7426
7145
|
// the 'count' prop for total row count if it is provided, otherwise use
|
|
7427
7146
|
// -1 (unknown). If paging is managed internally (onUpdateData not provided)
|
|
7428
7147
|
// ignore 'count' prop and use the length of the provided 'data' for the
|
|
7429
7148
|
// total row count.
|
|
7430
|
-
|
|
7431
7149
|
const getTotalCount = () => {
|
|
7432
7150
|
const validCount = count ? count : -1;
|
|
7433
7151
|
const totalCount = onUpdateData ? validCount : data.length;
|
|
7434
7152
|
return rowsPerPage ? totalCount : null;
|
|
7435
7153
|
};
|
|
7436
|
-
|
|
7437
7154
|
if (count && !rowsPerPage) {
|
|
7438
7155
|
console.warn("'count' prop is ignored as table is not paginated (no 'rowsPerPage' prop provided)");
|
|
7439
7156
|
}
|
|
7440
|
-
|
|
7441
7157
|
if (count && !onUpdateData) {
|
|
7442
7158
|
console.warn("'count' prop is ignored as it can be determined by 'data.length' for internally paginated table (no 'onUpdateData' callback provided)");
|
|
7443
7159
|
}
|
|
7444
|
-
|
|
7445
7160
|
const tableClasses = useStylesWithRootClass('dot-table', rowsPerPage ? 'dot-table-paginated' : '');
|
|
7446
7161
|
const maxHeightStyle = getContainerMaxHeightStyle(_stickyHeader, maxHeight);
|
|
7447
|
-
|
|
7448
7162
|
const handleCheckAllChange = isChecked => {
|
|
7449
7163
|
setSelectedRowIds(prevRowIds => {
|
|
7450
7164
|
const newIds = getBulkSelectedRowIds(isChecked, prevRowIds, onUpdateData ? data : pageData);
|
|
@@ -7452,7 +7166,6 @@ const DotTable = ({
|
|
|
7452
7166
|
return newIds;
|
|
7453
7167
|
});
|
|
7454
7168
|
};
|
|
7455
|
-
|
|
7456
7169
|
const handleRowSelectionChange = (isChecked, rowId) => {
|
|
7457
7170
|
setSelectedRowIds(prevRowIds => {
|
|
7458
7171
|
const newIds = getSelectedRowIds(rowId, isChecked, prevRowIds);
|
|
@@ -7460,12 +7173,10 @@ const DotTable = ({
|
|
|
7460
7173
|
return newIds;
|
|
7461
7174
|
});
|
|
7462
7175
|
};
|
|
7463
|
-
|
|
7464
7176
|
const handleClearAll = () => {
|
|
7465
7177
|
setSelectedRowIds([]);
|
|
7466
7178
|
multiSelect.onClearAllChange && multiSelect.onClearAllChange(false, []);
|
|
7467
7179
|
};
|
|
7468
|
-
|
|
7469
7180
|
const multiSelectBody = multiSelect && {
|
|
7470
7181
|
onCheckIndividualChange: handleRowSelectionChange,
|
|
7471
7182
|
selectedTableRowIds: selectedRowIds
|
|
@@ -7476,7 +7187,6 @@ const DotTable = ({
|
|
|
7476
7187
|
selectedTableRowIds: selectedRowIds
|
|
7477
7188
|
};
|
|
7478
7189
|
const selectedRowsNumber = selectedRowIds.length;
|
|
7479
|
-
|
|
7480
7190
|
const renderToolbar = () => {
|
|
7481
7191
|
const {
|
|
7482
7192
|
bulkActions
|
|
@@ -7488,7 +7198,6 @@ const DotTable = ({
|
|
|
7488
7198
|
bulkActions: bulkActions
|
|
7489
7199
|
}, void 0) : toolbar;
|
|
7490
7200
|
};
|
|
7491
|
-
|
|
7492
7201
|
return jsxs(StyledPaper, Object.assign({
|
|
7493
7202
|
className: rootClasses,
|
|
7494
7203
|
elevation: 0
|
|
@@ -7538,7 +7247,6 @@ const getMenuItem = action => {
|
|
|
7538
7247
|
const startIcon = action.iconId && jsx(DotIcon, {
|
|
7539
7248
|
iconId: action.iconId
|
|
7540
7249
|
}, void 0);
|
|
7541
|
-
|
|
7542
7250
|
return jsx(DotButton, Object.assign({
|
|
7543
7251
|
className: "table-menu-button",
|
|
7544
7252
|
"data-testid": action['data-testid'],
|
|
@@ -7610,7 +7318,6 @@ const DotTableActions = ({
|
|
|
7610
7318
|
window.removeEventListener('resize', checkForOverflowing);
|
|
7611
7319
|
};
|
|
7612
7320
|
}, []);
|
|
7613
|
-
|
|
7614
7321
|
const checkForOverflowing = () => {
|
|
7615
7322
|
if (actions.length > 1) {
|
|
7616
7323
|
const actionIcons = document.getElementsByClassName('dot-table-action-icon');
|
|
@@ -7619,20 +7326,16 @@ const DotTableActions = ({
|
|
|
7619
7326
|
setShowMenu(isOverflowing);
|
|
7620
7327
|
}
|
|
7621
7328
|
};
|
|
7622
|
-
|
|
7623
7329
|
const toggleMenu = event => {
|
|
7624
7330
|
setAnchorEl(event.currentTarget);
|
|
7625
7331
|
setMenuOpen(!menuOpen);
|
|
7626
7332
|
};
|
|
7627
|
-
|
|
7628
7333
|
const onSelect = (_event, _menuId, itemKey) => {
|
|
7629
7334
|
selectionMap[itemKey].onClick(null);
|
|
7630
7335
|
};
|
|
7631
|
-
|
|
7632
7336
|
const onLeave = () => {
|
|
7633
7337
|
setMenuOpen(false);
|
|
7634
7338
|
};
|
|
7635
|
-
|
|
7636
7339
|
const renderTableActions = () => {
|
|
7637
7340
|
return actions && actions.map((action, index) => index < 2 && jsx(DotTableAction, {
|
|
7638
7341
|
iconId: action.iconId,
|
|
@@ -7641,7 +7344,6 @@ const DotTableActions = ({
|
|
|
7641
7344
|
onClick: action.onClick
|
|
7642
7345
|
}, `action-${index}`));
|
|
7643
7346
|
};
|
|
7644
|
-
|
|
7645
7347
|
return jsxs(Fragment$1, {
|
|
7646
7348
|
children: [jsxs(TableActionsContainer, Object.assign({
|
|
7647
7349
|
className: rootClassName$6,
|
|
@@ -7673,12 +7375,12 @@ const StyledTabs = styled(Tabs).withConfig({
|
|
|
7673
7375
|
componentId: "sc-1pmrz8k-0"
|
|
7674
7376
|
})(["", ""], ({
|
|
7675
7377
|
theme
|
|
7676
|
-
}) => css(["&.", "{&.MuiTabs-root{width:100%;}.dot-tab-label-container{display:flex;.dot-tab-label{padding-top:", ";}}.MuiTab-root{max-width:360px;min-width:0;}.MuiIcon-root{display:inline;padding-right:", ";}}"], rootClassName$5, theme.spacing(0.5), theme.spacing(0.5)));
|
|
7378
|
+
}) => css(["&.", "{&.MuiTabs-root{width:100%;}.dot-tab-label-container{display:flex;.dot-tab-label{padding-top:", ";}}.MuiTab-root{box-shadow:inset 0px -1px 0px ", ";max-width:360px;min-width:0;}.MuiIcon-root{display:inline;padding-right:", ";}}"], rootClassName$5, theme.spacing(0.5), theme.palette.layer.n100, theme.spacing(0.5)));
|
|
7677
7379
|
|
|
7678
7380
|
const DotTabs = ({
|
|
7679
7381
|
centered: _centered = false,
|
|
7680
7382
|
className,
|
|
7681
|
-
color: _color = '
|
|
7383
|
+
color: _color = 'primary',
|
|
7682
7384
|
'data-testid': dataTestId,
|
|
7683
7385
|
initialValue: _initialValue = 0,
|
|
7684
7386
|
onChange,
|
|
@@ -7687,19 +7389,17 @@ const DotTabs = ({
|
|
|
7687
7389
|
variant: _variant = 'standard'
|
|
7688
7390
|
}) => {
|
|
7689
7391
|
const [value, setValue] = useState(_initialValue);
|
|
7690
|
-
const rootClasses = useStylesWithRootClass(rootClassName$5, className);
|
|
7691
|
-
|
|
7392
|
+
const rootClasses = useStylesWithRootClass(rootClassName$5, className);
|
|
7393
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
7692
7394
|
const handleChange = (_event, val) => {
|
|
7693
7395
|
setValue(val);
|
|
7694
7396
|
onChange && onChange(val);
|
|
7695
7397
|
};
|
|
7696
|
-
|
|
7697
7398
|
const tabArray = [];
|
|
7698
7399
|
tabs.forEach((tab, index) => {
|
|
7699
7400
|
const icon = tab.iconId ? jsx(DotIcon, {
|
|
7700
7401
|
iconId: tab.iconId
|
|
7701
7402
|
}, void 0) : null;
|
|
7702
|
-
|
|
7703
7403
|
const label = jsxs("div", Object.assign({
|
|
7704
7404
|
className: "dot-tab-label-container"
|
|
7705
7405
|
}, {
|
|
@@ -7711,7 +7411,6 @@ const DotTabs = ({
|
|
|
7711
7411
|
children: tab.label
|
|
7712
7412
|
}), void 0)]
|
|
7713
7413
|
}), void 0);
|
|
7714
|
-
|
|
7715
7414
|
const tabElement = jsx(Tab, {
|
|
7716
7415
|
"aria-label": tab.ariaLabel,
|
|
7717
7416
|
"data-testid": tab['data-testid'],
|
|
@@ -7720,7 +7419,6 @@ const DotTabs = ({
|
|
|
7720
7419
|
label: label,
|
|
7721
7420
|
value: tab.value
|
|
7722
7421
|
}, index);
|
|
7723
|
-
|
|
7724
7422
|
tabArray.push(tabElement);
|
|
7725
7423
|
});
|
|
7726
7424
|
return jsx(StyledTabs, Object.assign({
|
|
@@ -7781,14 +7479,11 @@ const DotFileListItem = ({
|
|
|
7781
7479
|
const rootClasses = useStylesWithRootClass(rootClassName$3, className, _error ? 'file-error' : 'file-success');
|
|
7782
7480
|
const defaultIcon = _error ? 'error-solid' : 'check-solid';
|
|
7783
7481
|
const [endIcon, setEndIcon] = useState(defaultIcon);
|
|
7784
|
-
|
|
7785
7482
|
const handleItemClick = clickedFile => _event => onClick === null || onClick === void 0 ? void 0 : onClick(clickedFile);
|
|
7786
|
-
|
|
7787
7483
|
const handleItemDelete = fileId => event => {
|
|
7788
7484
|
event.stopPropagation();
|
|
7789
7485
|
deleteFile(fileId);
|
|
7790
7486
|
};
|
|
7791
|
-
|
|
7792
7487
|
return jsxs(StyledFileListItem, Object.assign({
|
|
7793
7488
|
"aria-label": ariaLabel,
|
|
7794
7489
|
className: rootClasses,
|
|
@@ -7896,24 +7591,20 @@ const parseListItem = ({
|
|
|
7896
7591
|
const parsedFile = fileToBeParsed.file;
|
|
7897
7592
|
const hasErrors = fileErrors.length > 0;
|
|
7898
7593
|
let errorText;
|
|
7899
|
-
|
|
7900
7594
|
if (hasErrors) {
|
|
7901
7595
|
errorText = fileErrors.map(e => {
|
|
7902
7596
|
switch (e.code) {
|
|
7903
7597
|
case 'file-too-large':
|
|
7904
7598
|
return `File exceeds ${maxSize}MB`;
|
|
7905
|
-
|
|
7906
7599
|
case 'file-invalid-type':
|
|
7907
7600
|
case 'too-many-files':
|
|
7908
7601
|
return e.message;
|
|
7909
|
-
|
|
7910
7602
|
default:
|
|
7911
7603
|
console.log('Unknown error', e);
|
|
7912
7604
|
return e.message;
|
|
7913
7605
|
}
|
|
7914
7606
|
}).join(', ');
|
|
7915
7607
|
}
|
|
7916
|
-
|
|
7917
7608
|
return {
|
|
7918
7609
|
child: jsx(DotFileListItem, {
|
|
7919
7610
|
deleteFile: onFileDelete,
|
|
@@ -7953,28 +7644,23 @@ const DotFileUpload = ({
|
|
|
7953
7644
|
const rootClasses = useStylesWithRootClass(rootClassName$4, className, !_buttonOnly ? dropZoneClassName : '', isUploadDisabled ? 'disabled' : '');
|
|
7954
7645
|
const maxFilesClasses = useStylesWithRootClass('dot-max-files-message', hasMaxFilesError ? 'dot-max-files-reached' : '');
|
|
7955
7646
|
const allowMultiple = maxFiles === undefined || maxFiles > 1;
|
|
7956
|
-
|
|
7957
7647
|
const setNewlyUploadedFiles = (acceptedFiles, fileRejections) => {
|
|
7958
7648
|
const joinedFiles = joinAcceptedAndRejectedFiles(acceptedFiles, fileRejections);
|
|
7959
7649
|
setUploadedFiles(joinedFiles);
|
|
7960
7650
|
onChange(joinedFiles);
|
|
7961
7651
|
};
|
|
7962
|
-
|
|
7963
7652
|
const parseFiles = (acceptedFiles, fileRejections) => {
|
|
7964
7653
|
const totalFilesToUpload = uploadedFiles.length + acceptedFiles.length + fileRejections.length;
|
|
7965
7654
|
const isMaxFilesReached = maxFiles && totalFilesToUpload > maxFiles;
|
|
7966
|
-
|
|
7967
7655
|
if (isMaxFilesReached) {
|
|
7968
7656
|
setHasMaxFilesError(true);
|
|
7969
7657
|
return;
|
|
7970
7658
|
}
|
|
7971
|
-
|
|
7972
7659
|
setHasMaxFilesError(false);
|
|
7973
7660
|
const joinedUploadedFiles = joinAcceptedAndRejectedFiles(acceptedFiles, fileRejections);
|
|
7974
7661
|
setUploadedFiles(joinedUploadedFiles);
|
|
7975
7662
|
onChange(joinedUploadedFiles);
|
|
7976
7663
|
};
|
|
7977
|
-
|
|
7978
7664
|
const onDrop = useCallback((acceptedFiles, fileRejections) => {
|
|
7979
7665
|
hideFilesList ? setNewlyUploadedFiles(acceptedFiles, fileRejections) : parseFiles(acceptedFiles, fileRejections);
|
|
7980
7666
|
}, [hideFilesList, setNewlyUploadedFiles, parseFiles]);
|
|
@@ -7992,13 +7678,11 @@ const DotFileUpload = ({
|
|
|
7992
7678
|
onDragEnter,
|
|
7993
7679
|
onDrop
|
|
7994
7680
|
});
|
|
7995
|
-
|
|
7996
7681
|
const deleteFile = fileIndexToBeRemoved => {
|
|
7997
7682
|
uploadedFiles.splice(fileIndexToBeRemoved, 1);
|
|
7998
7683
|
setUploadedFiles([...uploadedFiles]);
|
|
7999
7684
|
onChange(uploadedFiles);
|
|
8000
7685
|
};
|
|
8001
|
-
|
|
8002
7686
|
const uploadedFilesList = getUploadedFilesList({
|
|
8003
7687
|
maxSize,
|
|
8004
7688
|
onFileClick,
|
|
@@ -8069,14 +7753,13 @@ const DotPopper = ({
|
|
|
8069
7753
|
open,
|
|
8070
7754
|
placement
|
|
8071
7755
|
}) => {
|
|
8072
|
-
const rootClasses = useStylesWithRootClass(rootClassName$Q, className);
|
|
8073
|
-
|
|
7756
|
+
const rootClasses = useStylesWithRootClass(rootClassName$Q, className);
|
|
7757
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
8074
7758
|
const handleClickAway = event => {
|
|
8075
7759
|
if (onClickAway && (!anchorEl || !anchorEl.contains(event.currentTarget))) {
|
|
8076
7760
|
onClickAway(event);
|
|
8077
7761
|
}
|
|
8078
7762
|
};
|
|
8079
|
-
|
|
8080
7763
|
return jsx(StyledPopper$1, Object.assign({
|
|
8081
7764
|
anchorEl: anchorEl,
|
|
8082
7765
|
"aria-label": ariaLabel,
|
|
@@ -8109,42 +7792,7 @@ const DotPopper = ({
|
|
|
8109
7792
|
}), void 0);
|
|
8110
7793
|
};
|
|
8111
7794
|
|
|
8112
|
-
const rootClassName$1 = 'dot-
|
|
8113
|
-
const StyledTruncateWithTooltip = styled(Tooltip).withConfig({
|
|
8114
|
-
displayName: "TruncateWithTooltipstyles__StyledTruncateWithTooltip",
|
|
8115
|
-
componentId: "sc-1o80lur-0"
|
|
8116
|
-
})(["", ""], () => css(["&.", "{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;}&.dot-characters-limit{display:inline;}"], rootClassName$1));
|
|
8117
|
-
|
|
8118
|
-
const getTruncatedLabel = (label, charactersLimit) => {
|
|
8119
|
-
if (!charactersLimit || charactersLimit <= 0 || label.length < charactersLimit) return label;
|
|
8120
|
-
return `${label.substr(0, charactersLimit)}...`;
|
|
8121
|
-
};
|
|
8122
|
-
|
|
8123
|
-
const DotTruncateWithTooltip = ({
|
|
8124
|
-
ariaLabel,
|
|
8125
|
-
charactersLimit,
|
|
8126
|
-
className,
|
|
8127
|
-
'data-testid': dataTestId,
|
|
8128
|
-
label,
|
|
8129
|
-
width
|
|
8130
|
-
}) => {
|
|
8131
|
-
const rootClasses = useStylesWithRootClass(rootClassName$1, className, charactersLimit ? 'dot-characters-limit' : '');
|
|
8132
|
-
return jsx(StyledTruncateWithTooltip, Object.assign({
|
|
8133
|
-
"aria-label": ariaLabel,
|
|
8134
|
-
className: rootClasses,
|
|
8135
|
-
"data-testid": dataTestId,
|
|
8136
|
-
title: label,
|
|
8137
|
-
style: {
|
|
8138
|
-
width: calculateWidth(width)
|
|
8139
|
-
}
|
|
8140
|
-
}, {
|
|
8141
|
-
children: jsx("span", {
|
|
8142
|
-
children: getTruncatedLabel(label, charactersLimit)
|
|
8143
|
-
}, void 0)
|
|
8144
|
-
}), void 0);
|
|
8145
|
-
};
|
|
8146
|
-
|
|
8147
|
-
const rootClassName = 'dot-draggable-list';
|
|
7795
|
+
const rootClassName$1 = 'dot-draggable-list';
|
|
8148
7796
|
const listItemClassName = 'dot-draggable-list-item';
|
|
8149
7797
|
const StyledDraggableList = styled.div.withConfig({
|
|
8150
7798
|
displayName: "DraggableListstyles__StyledDraggableList",
|
|
@@ -8153,7 +7801,7 @@ const StyledDraggableList = styled.div.withConfig({
|
|
|
8153
7801
|
theme,
|
|
8154
7802
|
width,
|
|
8155
7803
|
draggableHandle
|
|
8156
|
-
}) => css(["&.", " .", "{&.react-draggable-dragging{background-color:", ";}
|
|
7804
|
+
}) => css(["&.", " .", "{width:", " !important;.dot-icon{color:", ";}&.react-draggable-dragging{background-color:", ";}&.with-default-cursor{cursor:default;}&.with-handle-grab-cursor ", "{cursor:grab;}}"], rootClassName$1, listItemClassName, width, theme.palette.layer.n700, theme.palette.grey[50], draggableHandle));
|
|
8157
7805
|
|
|
8158
7806
|
const getOrderedListItems = (layout, listItems) => {
|
|
8159
7807
|
if (!listItems || !layout) return [];
|
|
@@ -8187,23 +7835,20 @@ const DotDraggableList = ({
|
|
|
8187
7835
|
rowHeight: _rowHeight = DEFAULT_LIST_ITEM_HEIGHT,
|
|
8188
7836
|
width: _width = DEFAULT_LIST_WIDTH
|
|
8189
7837
|
}) => {
|
|
8190
|
-
const rootClasses = useStylesWithRootClass(rootClassName, className, draggableHandle ? 'with-draggable-handle' : '');
|
|
7838
|
+
const rootClasses = useStylesWithRootClass(rootClassName$1, className, draggableHandle ? 'with-draggable-handle' : '');
|
|
8191
7839
|
const listItemClasses = useStylesWithRootClass(listItemClassName, draggableHandle && !disableDrag ? 'with-handle-grab-cursor' : '', draggableHandle || disableDrag ? 'with-default-cursor' : '');
|
|
8192
7840
|
const listWidth = isNumber(_width) ? `${_width}px` : _width;
|
|
8193
7841
|
const [orderedItems, setOrderedItems] = useState([]);
|
|
8194
7842
|
useEffect(() => {
|
|
8195
7843
|
setOrderedItems(items);
|
|
8196
7844
|
}, [items]);
|
|
8197
|
-
|
|
8198
7845
|
const handleLayoutChange = () => layout => {
|
|
8199
7846
|
const newList = getOrderedListItems(layout, orderedItems);
|
|
8200
|
-
|
|
8201
7847
|
if (!checkIfEqual(orderedItems, newList)) {
|
|
8202
7848
|
setOrderedItems(newList);
|
|
8203
7849
|
onChange(newList);
|
|
8204
7850
|
}
|
|
8205
7851
|
};
|
|
8206
|
-
|
|
8207
7852
|
return jsx(StyledDraggableList, Object.assign({
|
|
8208
7853
|
"aria-label": ariaLabel,
|
|
8209
7854
|
className: rootClasses,
|
|
@@ -8244,4 +7889,33 @@ const DotDraggableList = ({
|
|
|
8244
7889
|
}), void 0);
|
|
8245
7890
|
};
|
|
8246
7891
|
|
|
8247
|
-
|
|
7892
|
+
const rootClassName = 'dot-linear-progress';
|
|
7893
|
+
const StyledLinearProgress = styled(LinearProgress).withConfig({
|
|
7894
|
+
displayName: "LinearProgressstyles__StyledLinearProgress",
|
|
7895
|
+
componentId: "sc-1qhzxb3-0"
|
|
7896
|
+
})(["&.", "{}"], rootClassName);
|
|
7897
|
+
|
|
7898
|
+
const DotLinearProgress = ({
|
|
7899
|
+
ariaLabel,
|
|
7900
|
+
color,
|
|
7901
|
+
className,
|
|
7902
|
+
'data-testid': dataTestId,
|
|
7903
|
+
value,
|
|
7904
|
+
valueBuffer,
|
|
7905
|
+
variant: _variant = 'indeterminate'
|
|
7906
|
+
}) => {
|
|
7907
|
+
const rootClasses = useStylesWithRootClass(rootClassName, className);
|
|
7908
|
+
return jsx(StyledLinearProgress, {
|
|
7909
|
+
"aria-label": ariaLabel,
|
|
7910
|
+
classes: {
|
|
7911
|
+
root: rootClasses
|
|
7912
|
+
},
|
|
7913
|
+
color: color,
|
|
7914
|
+
"data-testid": dataTestId,
|
|
7915
|
+
value: value,
|
|
7916
|
+
valueBuffer: valueBuffer,
|
|
7917
|
+
variant: _variant
|
|
7918
|
+
}, void 0);
|
|
7919
|
+
};
|
|
7920
|
+
|
|
7921
|
+
export { Cell, CreateUUID, CssCell, CssGrid, CssGridDebug, DotAccordion, DotActionToolbar, DotAlertBanner, DotAppLogo, DotAppToolbar, DotAutoComplete, DotAvatar, DotAvatarGroup, DotBadge, DotBreadcrumbs, DotButton, DotButtonToggle, DotCard, DotCardContent, DotCardFooter, DotCardHeader, DotCheckbox, DotCheckboxGroup, DotChip, DotConfirmationDialog, DotDialog, DotDivider, DotDraggableList, DotDrawer, DotDynamicForm, DotEmptyState, DotFileListItem, DotFileUpload, DotForm, DotFormGroup, DotHeaderRow, DotIcon, DotIconButton, DotInlineEdit, DotInputSelect, DotInputText, DotLinearProgress, DotLink, DotList, DotMenu, DotNavigationRail, DotPill, DotPopper, DotProgress, DotProgressButton, DotRadioButton, DotRadioGroup, DotSidebar, DotSkeleton, DotSnackbar, DotSnackbarContainer, DotSnackbarProvider, DotSplitButton, DotSwitch, DotTable, DotTableAction, DotTableActions, DotTablePagination, DotTabs, DotThemeProvider, DotTooltip, DotTruncateWithTooltip, DotTypography, avatarColors, lightThemeColors as lightColors, parseAutoCompleteValue, variables as themeVariables, typographyOptions, useDotSnackbarContext };
|