@digital-ai/dot-components 2.0.0 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGE_LOG.md +30 -4
- package/README.md +1 -1
- package/index.esm.js +414 -802
- package/index.umd.js +1809 -2342
- package/lib/components/menu/Menu.styles.d.ts +1 -1
- package/lib/components/popper/Popper.styles.d.ts +1 -1
- package/package.json +3 -2
package/index.esm.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
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, RadioGroup, Radio, Switch, Skeleton, Snackbar, ButtonGroup, TablePagination, TableContainer, TableCell, TableRow, TableBody, TableSortLabel, TableHead, Table, Tabs, Tab } from '@mui/material';
|
|
5
5
|
import styled, { css, createGlobalStyle, ThemeProvider as ThemeProvider$1, keyframes } from 'styled-components';
|
|
6
6
|
import { createTheme, ThemeProvider, alpha } from '@mui/material/styles';
|
|
7
7
|
import { StylesProvider } from '@mui/styles';
|
|
@@ -45,9 +45,7 @@ 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,
|
|
@@ -208,7 +206,7 @@ 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-inputSizeSmall:not(textarea){height:19px;}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:", ";}.MuiFormHelperText-root{font-family:", ";font-size:12px;font-weight:400;margin:", ";display:flex;align-items:flex-end;&:not(.Mui-error){color:", ";}}.MuiInputBase-inputAdornedStart{padding-left:12px;}.MuiInputBase-inputAdornedEnd{padding-right:12px;}.MuiFormHelperText-root{font-family:", ";font-size:", ";margin:", ";display:flex;align-items:flex-end;&:not(.Mui-error){color:", ";}&.read-only .MuiOutlinedInput-root:hover > fieldset{border-color:", ";}}}"], rootClassName$Y, InputProps.startAdornment ? `18px 12px 18px 0px` : `18px 12px`, rootSelectClassName, rootClassName$Y, 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.body2.fontFamily, theme.spacing(0.5, 0, 0, 1.5), theme.palette.grey[400], theme.typography.fontFamily, theme.typography.body2.fontSize, theme.spacing(0, 0, 0, 2), theme.palette.grey[400], theme.palette.layer.n200));
|
|
212
210
|
|
|
213
211
|
const rootClassName$X = 'dot-action-toolbar';
|
|
214
212
|
const StyledToolbar = styled(Toolbar).withConfig({
|
|
@@ -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';
|
|
@@ -683,8 +681,8 @@ const darkTheme = createTheme({
|
|
|
683
681
|
n700: '#21272D',
|
|
684
682
|
n800: '#171B22',
|
|
685
683
|
n900: '#0D1017' // level-0
|
|
686
|
-
|
|
687
684
|
},
|
|
685
|
+
|
|
688
686
|
text: {
|
|
689
687
|
primary: n0
|
|
690
688
|
}
|
|
@@ -866,7 +864,6 @@ const calculateNumberFromText = text => {
|
|
|
866
864
|
const charCodes = text.split('') // => ["A", "A"]
|
|
867
865
|
.map(char => char.charCodeAt(0)) // => [65, 65]
|
|
868
866
|
.join(''); // => "6565"
|
|
869
|
-
|
|
870
867
|
return parseInt(charCodes, 10);
|
|
871
868
|
};
|
|
872
869
|
const calculateWidth = width => {
|
|
@@ -905,7 +902,6 @@ const DotAlertBanner = ({
|
|
|
905
902
|
iconId: iconId
|
|
906
903
|
}, void 0);
|
|
907
904
|
};
|
|
908
|
-
|
|
909
905
|
const AlertBannerIconMapping = {
|
|
910
906
|
error: AlertBannerIcon('error-solid'),
|
|
911
907
|
info: AlertBannerIcon('info-solid'),
|
|
@@ -914,7 +910,6 @@ const DotAlertBanner = ({
|
|
|
914
910
|
};
|
|
915
911
|
const rootClasses = useStylesWithRootClass(rootClassName$W, severity, className);
|
|
916
912
|
/* For simple string use default component, for everything else use 'div' */
|
|
917
|
-
|
|
918
913
|
const typographyComponent = isString(children) ? undefined : 'div';
|
|
919
914
|
return jsx(StyledAlertBanner, Object.assign({
|
|
920
915
|
action: action,
|
|
@@ -1026,14 +1021,12 @@ const DotLink = ({
|
|
|
1026
1021
|
underline
|
|
1027
1022
|
}) => {
|
|
1028
1023
|
const rootClasses = useStylesWithRootClass(rootClassName$U, className);
|
|
1029
|
-
|
|
1030
1024
|
const handleKeyPress = event => {
|
|
1031
1025
|
if (onClick && event.key === 'Enter') {
|
|
1032
1026
|
event.preventDefault();
|
|
1033
1027
|
onClick(event);
|
|
1034
1028
|
}
|
|
1035
1029
|
};
|
|
1036
|
-
|
|
1037
1030
|
return jsx(DotTooltip, Object.assign({
|
|
1038
1031
|
title: tooltip
|
|
1039
1032
|
}, {
|
|
@@ -1089,7 +1082,6 @@ const AvatarContent = ({
|
|
|
1089
1082
|
}) => {
|
|
1090
1083
|
const parsedText = () => {
|
|
1091
1084
|
const textArray = text.split(' ');
|
|
1092
|
-
|
|
1093
1085
|
if (textArray.length > 1) {
|
|
1094
1086
|
const firstInitial = textArray[0].slice(0, 1);
|
|
1095
1087
|
const secondInitial = textArray[1].slice(0, 1);
|
|
@@ -1098,11 +1090,8 @@ const AvatarContent = ({
|
|
|
1098
1090
|
return text ? text.slice(0, 1) : '';
|
|
1099
1091
|
}
|
|
1100
1092
|
};
|
|
1101
|
-
|
|
1102
1093
|
const getHeadingFromAvatarSize = () => size === 'large' ? 'h1' : 'h3';
|
|
1103
|
-
|
|
1104
1094
|
const getIconFontSizeFromAvatarSize = () => size === 'small' ? size : 'medium';
|
|
1105
|
-
|
|
1106
1095
|
if (type === 'icon' || type === 'image' && !imageSrc) {
|
|
1107
1096
|
return jsx(DotIcon, {
|
|
1108
1097
|
"data-testid": `${dataTestId}-icon`,
|
|
@@ -1110,7 +1099,6 @@ const AvatarContent = ({
|
|
|
1110
1099
|
iconId: iconId || 'user'
|
|
1111
1100
|
}, void 0);
|
|
1112
1101
|
}
|
|
1113
|
-
|
|
1114
1102
|
if (type === 'text') {
|
|
1115
1103
|
return jsx(DotTypography, Object.assign({
|
|
1116
1104
|
variant: size === 'small' ? 'caption' : getHeadingFromAvatarSize()
|
|
@@ -1118,10 +1106,8 @@ const AvatarContent = ({
|
|
|
1118
1106
|
children: parsedText()
|
|
1119
1107
|
}), void 0);
|
|
1120
1108
|
}
|
|
1121
|
-
|
|
1122
1109
|
return null;
|
|
1123
1110
|
};
|
|
1124
|
-
|
|
1125
1111
|
const DotAvatar = ({
|
|
1126
1112
|
alt,
|
|
1127
1113
|
ariaLabel,
|
|
@@ -1141,13 +1127,11 @@ const DotAvatar = ({
|
|
|
1141
1127
|
style
|
|
1142
1128
|
}) => {
|
|
1143
1129
|
const rootClasses = useStylesWithRootClass(rootClassName$T, className);
|
|
1144
|
-
|
|
1145
1130
|
const getAvatarColor = () => {
|
|
1146
1131
|
if (color) return color;
|
|
1147
1132
|
if (_text && _text !== alt) return getAvatarColorForInputText(_text);
|
|
1148
1133
|
return 'default';
|
|
1149
1134
|
};
|
|
1150
|
-
|
|
1151
1135
|
return jsx(DotTooltip, Object.assign({
|
|
1152
1136
|
title: tooltip
|
|
1153
1137
|
}, {
|
|
@@ -1180,7 +1164,81 @@ const DotAvatar = ({
|
|
|
1180
1164
|
}), void 0);
|
|
1181
1165
|
};
|
|
1182
1166
|
|
|
1183
|
-
const rootClassName$S = 'dot-
|
|
1167
|
+
const rootClassName$S = 'dot-button';
|
|
1168
|
+
const StyledButton = styled(Button).withConfig({
|
|
1169
|
+
displayName: "Buttonstyles__StyledButton",
|
|
1170
|
+
componentId: "sx99hh-0"
|
|
1171
|
+
})(["", ""], ({
|
|
1172
|
+
theme
|
|
1173
|
+
}) => 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$S, theme.spacing(0.5), theme.palette.grey[700], theme.spacing(5), theme.palette.error.main, darken(theme.palette.error.main, 0.2)));
|
|
1174
|
+
|
|
1175
|
+
/** This component wraps the Button component from @material-ui. */
|
|
1176
|
+
const DotButton = /*#__PURE__*/forwardRef(({
|
|
1177
|
+
ariaLabel,
|
|
1178
|
+
autoFocus: _autoFocus = false,
|
|
1179
|
+
children,
|
|
1180
|
+
className,
|
|
1181
|
+
'data-testid': dataTestId,
|
|
1182
|
+
disabled: _disabled = false,
|
|
1183
|
+
disableRipple: _disableRipple = false,
|
|
1184
|
+
endIcon,
|
|
1185
|
+
fullWidth: _fullWidth = false,
|
|
1186
|
+
isSubmit: _isSubmit = false,
|
|
1187
|
+
onClick,
|
|
1188
|
+
size: _size = 'medium',
|
|
1189
|
+
startIcon,
|
|
1190
|
+
tooltip,
|
|
1191
|
+
type: _type = 'primary'
|
|
1192
|
+
}, ref) => {
|
|
1193
|
+
const rootClasses = useStylesWithRootClass(rootClassName$S, className);
|
|
1194
|
+
let color;
|
|
1195
|
+
let variant;
|
|
1196
|
+
switch (_type) {
|
|
1197
|
+
case 'destructive':
|
|
1198
|
+
color = _disabled ? 'inherit' : 'secondary';
|
|
1199
|
+
variant = 'contained';
|
|
1200
|
+
break;
|
|
1201
|
+
case 'primary':
|
|
1202
|
+
color = 'primary';
|
|
1203
|
+
variant = 'contained';
|
|
1204
|
+
break;
|
|
1205
|
+
case 'outlined':
|
|
1206
|
+
color = 'inherit';
|
|
1207
|
+
variant = 'outlined';
|
|
1208
|
+
break;
|
|
1209
|
+
case 'text':
|
|
1210
|
+
color = 'inherit';
|
|
1211
|
+
variant = 'text';
|
|
1212
|
+
break;
|
|
1213
|
+
}
|
|
1214
|
+
return jsx(DotTooltip, Object.assign({
|
|
1215
|
+
title: tooltip
|
|
1216
|
+
}, {
|
|
1217
|
+
children: jsx(StyledButton, Object.assign({
|
|
1218
|
+
"aria-label": ariaLabel,
|
|
1219
|
+
autoFocus: _autoFocus,
|
|
1220
|
+
classes: {
|
|
1221
|
+
root: rootClasses
|
|
1222
|
+
},
|
|
1223
|
+
color: color,
|
|
1224
|
+
"data-testid": dataTestId,
|
|
1225
|
+
disableRipple: _disableRipple,
|
|
1226
|
+
disabled: _disabled,
|
|
1227
|
+
endIcon: endIcon,
|
|
1228
|
+
fullWidth: _fullWidth,
|
|
1229
|
+
onClick: event => onClick && onClick(event),
|
|
1230
|
+
ref: ref,
|
|
1231
|
+
size: _size,
|
|
1232
|
+
startIcon: startIcon,
|
|
1233
|
+
type: _isSubmit ? 'submit' : 'button',
|
|
1234
|
+
variant: variant
|
|
1235
|
+
}, {
|
|
1236
|
+
children: children
|
|
1237
|
+
}), void 0)
|
|
1238
|
+
}), void 0);
|
|
1239
|
+
});
|
|
1240
|
+
|
|
1241
|
+
const rootClassName$R = 'dot-list';
|
|
1184
1242
|
const listItemRootClass = 'dot-list-item';
|
|
1185
1243
|
const nestedListClassName = 'dot-nested-list';
|
|
1186
1244
|
const nestedDrawerClassName = 'dot-nested-drawer';
|
|
@@ -1189,17 +1247,15 @@ const StyledList = styled(List).withConfig({
|
|
|
1189
1247
|
componentId: "wxwqwr-0"
|
|
1190
1248
|
})(["", ""], ({
|
|
1191
1249
|
theme
|
|
1192
|
-
}) => css(["&.", "{background:", "
|
|
1250
|
+
}) => css(["&.", "{background:", ";.dot-icon{color:", ";}&.", " .", "{padding-left:", ";}.MuiListSubheader-root{padding:0;.MuiTypography-root{padding:", ";}}}"], rootClassName$R, theme.palette.layer.n0, theme.palette.layer.n700, nestedListClassName, listItemRootClass, theme.spacing(4), theme.spacing(1)));
|
|
1193
1251
|
|
|
1194
1252
|
const getChevronIcon = (nestedListType, isOpened) => {
|
|
1195
1253
|
if (nestedListType !== 'expandable') {
|
|
1196
1254
|
return 'chevron-right';
|
|
1197
1255
|
}
|
|
1198
|
-
|
|
1199
1256
|
if (isOpened) {
|
|
1200
1257
|
return 'chevron-up';
|
|
1201
1258
|
}
|
|
1202
|
-
|
|
1203
1259
|
return 'chevron-down';
|
|
1204
1260
|
};
|
|
1205
1261
|
|
|
@@ -1213,11 +1269,11 @@ const StyledListItem = styled(ListItem).withConfig({
|
|
|
1213
1269
|
theme
|
|
1214
1270
|
}) => css(["&.", "{&.", "{padding:0;}p.MuiTypography-root{margin-bottom:0;}.", "{align-items:center;display:flex;flex-grow:2;}.", " .MuiIcon-root{margin-right:", ";}.dot-icon i:before{color:", ";}}"], listItemRootClass, flyoutListItemClassName, listItemLinkClassName, flyoutItemLinkClassName, theme.spacing(4), theme.palette.text.primary));
|
|
1215
1271
|
|
|
1216
|
-
const rootClassName$
|
|
1272
|
+
const rootClassName$Q = 'dot-progress';
|
|
1217
1273
|
const StyledCircularProgress = styled(CircularProgress).withConfig({
|
|
1218
1274
|
displayName: "Progressstyles__StyledCircularProgress",
|
|
1219
1275
|
componentId: "sc-1gs77rb-0"
|
|
1220
|
-
})(["&.", "{&.MuiCircularProgress-colorSecondary{color:#649a3d;}}"], rootClassName$
|
|
1276
|
+
})(["&.", "{&.MuiCircularProgress-colorSecondary{color:#649a3d;}}"], rootClassName$Q);
|
|
1221
1277
|
|
|
1222
1278
|
const DotProgress = ({
|
|
1223
1279
|
ariaLabel,
|
|
@@ -1230,7 +1286,7 @@ const DotProgress = ({
|
|
|
1230
1286
|
value,
|
|
1231
1287
|
variant: _variant = 'indeterminate'
|
|
1232
1288
|
}) => {
|
|
1233
|
-
const rootClasses = useStylesWithRootClass(rootClassName$
|
|
1289
|
+
const rootClasses = useStylesWithRootClass(rootClassName$Q, className);
|
|
1234
1290
|
return jsx(DotTooltip, Object.assign({
|
|
1235
1291
|
title: _tooltip
|
|
1236
1292
|
}, {
|
|
@@ -1266,23 +1322,23 @@ var variables = /*#__PURE__*/Object.freeze({
|
|
|
1266
1322
|
levelTop: levelTop
|
|
1267
1323
|
});
|
|
1268
1324
|
|
|
1269
|
-
const rootClassName$
|
|
1325
|
+
const rootClassName$P = 'dot-popper';
|
|
1270
1326
|
const StyledPopper$1 = styled(Popper).withConfig({
|
|
1271
1327
|
displayName: "Popperstyles__StyledPopper",
|
|
1272
1328
|
componentId: "sd1h8p-0"
|
|
1273
1329
|
})(["", ""], ({
|
|
1274
1330
|
theme
|
|
1275
|
-
}) => css(["&.", "{font-family:", ";font-size:", "px;}"], rootClassName$
|
|
1331
|
+
}) => css(["&.", "{font-family:", ";font-size:", "px;}"], rootClassName$P, theme.typography.fontFamily, theme.typography.body1.fontSize));
|
|
1276
1332
|
|
|
1277
1333
|
const flyoutMenuClassName = 'dot-flyout-menu';
|
|
1278
|
-
const rootClassName$
|
|
1334
|
+
const rootClassName$O = 'dot-menu';
|
|
1279
1335
|
const getListMaxHeight = maxHeight => isString(maxHeight) ? maxHeight : `${maxHeight}px`;
|
|
1280
1336
|
const StyledPopper = styled(Popper).withConfig({
|
|
1281
1337
|
displayName: "Menustyles__StyledPopper",
|
|
1282
1338
|
componentId: "sc-134fmqu-0"
|
|
1283
1339
|
})(["", ""], ({
|
|
1284
1340
|
theme
|
|
1285
|
-
}) => css(["&.", "{font-family:", ";font-size:", "px;z-index:", ";}&.", ",&.", "{&.loading .MuiPaper-root{align-items:center;display:flex;justify-content:center;min-height:200px;min-width:200px;}ul,.dot-action-item{.dot-action-item-text{white-space:nowrap;overflow-x:hidden;text-overflow:ellipsis;}}ul{box-sizing:content-box;min-width:112px;overflow:auto;", " .dot-li{min-height:auto;}}.dot-action-item{height:", ";border-top:1px solid ", ";line-height:inherit;button.dot-button{border-radius:", ";justify-content:flex-start;height:100%;margin:0;&:focus-visible{background-color:", ";}.MuiButton-label{gap:", ";.MuiButton-startIcon{margin-left:0;.dot-icon{flex-shrink:0;}}}}}}"], rootClassName$
|
|
1341
|
+
}) => css(["&.", "{font-family:", ";font-size:", "px;z-index:", ";}&.", ",&.", "{&.loading .MuiPaper-root{align-items:center;display:flex;justify-content:center;min-height:200px;min-width:200px;}ul,.dot-action-item{.dot-action-item-text{white-space:nowrap;overflow-x:hidden;text-overflow:ellipsis;}}ul{box-sizing:content-box;min-width:112px;overflow:auto;", " .dot-li{min-height:auto;}}.dot-action-item{height:", ";border-top:1px solid ", ";line-height:inherit;button.dot-button{border-radius:", ";justify-content:flex-start;height:100%;margin:0;&:focus-visible{background-color:", ";}.MuiButton-label{gap:", ";.MuiButton-startIcon{margin-left:0;.dot-icon{flex-shrink:0;}}}}}}"], rootClassName$P, theme.typography.fontFamily, theme.typography.body1.fontSize, levelSecond, rootClassName$O, rootClassName$P, ({
|
|
1286
1342
|
$maxHeight
|
|
1287
1343
|
}) => $maxHeight !== undefined && `
|
|
1288
1344
|
max-height: ${getListMaxHeight($maxHeight)};
|
|
@@ -1292,7 +1348,7 @@ const MENU_ITEM_HEIGHT_NORMAL = 33;
|
|
|
1292
1348
|
const MENU_ITEM_HEIGHT_DENSE = 28;
|
|
1293
1349
|
const DEFAULT_MAX_VISIBLE_ITEMS = 7;
|
|
1294
1350
|
|
|
1295
|
-
const rootClassName$
|
|
1351
|
+
const rootClassName$N = 'dot-ul';
|
|
1296
1352
|
const listItemClassName$1 = 'dot-li';
|
|
1297
1353
|
const listItemWithSubmenuClassName = 'dot-li-with-submenu';
|
|
1298
1354
|
const StyledMenuList = styled(MenuList).withConfig({
|
|
@@ -1300,7 +1356,7 @@ const StyledMenuList = styled(MenuList).withConfig({
|
|
|
1300
1356
|
componentId: "yqdwwg-0"
|
|
1301
1357
|
})(["", ""], ({
|
|
1302
1358
|
theme
|
|
1303
|
-
}) => css(["&.", "{.dot-li{justify-content:space-between;gap:", ";&:hover{background:", ";}&.Mui-selected,&.Mui-selected:hover{background:", ";}&.", "{padding-right:", ";}}}"], rootClassName$
|
|
1359
|
+
}) => css(["&.", "{.dot-li{justify-content:space-between;gap:", ";&:hover{background:", ";}&.Mui-selected,&.Mui-selected:hover{background:", ";}&.", "{padding-right:", ";}}}"], rootClassName$N, theme.spacing(3), hoverGray, lightSelectedGray, listItemWithSubmenuClassName, theme.spacing(0.5)));
|
|
1304
1360
|
|
|
1305
1361
|
const getDefaultItemHeight = isDense => isDense ? MENU_ITEM_HEIGHT_DENSE : MENU_ITEM_HEIGHT_NORMAL;
|
|
1306
1362
|
const calculateItemHeight = (isDense, customItemHeight, menuItemHeight) => {
|
|
@@ -1308,9 +1364,7 @@ const calculateItemHeight = (isDense, customItemHeight, menuItemHeight) => {
|
|
|
1308
1364
|
if (customItemHeight && customItemHeight >= MENU_ITEM_HEIGHT_DENSE) {
|
|
1309
1365
|
return customItemHeight;
|
|
1310
1366
|
}
|
|
1311
|
-
|
|
1312
1367
|
const itemHeightType = typeof menuItemHeight;
|
|
1313
|
-
|
|
1314
1368
|
if (itemHeightType === 'number' || itemHeightType === 'string') {
|
|
1315
1369
|
return menuItemHeight;
|
|
1316
1370
|
} else {
|
|
@@ -1321,7 +1375,6 @@ const getNumberOfVisibleItems = (numberOfItems, maxVisibleItems) => {
|
|
|
1321
1375
|
if (maxVisibleItems && maxVisibleItems > 0) {
|
|
1322
1376
|
return maxVisibleItems <= numberOfItems ? maxVisibleItems : numberOfItems;
|
|
1323
1377
|
}
|
|
1324
|
-
|
|
1325
1378
|
return DEFAULT_MAX_VISIBLE_ITEMS;
|
|
1326
1379
|
};
|
|
1327
1380
|
const calculateMaxHeight = ({
|
|
@@ -1333,9 +1386,8 @@ const calculateMaxHeight = ({
|
|
|
1333
1386
|
// if menuItemHeight is "auto" set maxHeight as same
|
|
1334
1387
|
if (typeof menuItemHeight === 'string') {
|
|
1335
1388
|
return menuItemHeight;
|
|
1336
|
-
}
|
|
1337
|
-
|
|
1338
|
-
|
|
1389
|
+
}
|
|
1390
|
+
// If 'menuItemHeight' is set it will take precedence here
|
|
1339
1391
|
const itemHeight = menuItemHeight ? menuItemHeight : getDefaultItemHeight(isDense);
|
|
1340
1392
|
let maxHeight = 0;
|
|
1341
1393
|
const numberOfVisibleItems = getNumberOfVisibleItems(menuItems.length, maxVisibleItems);
|
|
@@ -1343,8 +1395,8 @@ const calculateMaxHeight = ({
|
|
|
1343
1395
|
visibleItems.forEach(({
|
|
1344
1396
|
height
|
|
1345
1397
|
}) => {
|
|
1346
|
-
const customItemHeight = height ? height : itemHeight;
|
|
1347
|
-
|
|
1398
|
+
const customItemHeight = height ? height : itemHeight;
|
|
1399
|
+
// + 3 is for bottom margin of menuItem
|
|
1348
1400
|
maxHeight += customItemHeight + 3;
|
|
1349
1401
|
});
|
|
1350
1402
|
return maxHeight;
|
|
@@ -1363,7 +1415,6 @@ const checkForAutoFocus = (autoFocusItem, isFirstItem) => !!(autoFocusItem && is
|
|
|
1363
1415
|
* Since this component is used inside 'ClickAwayListener',
|
|
1364
1416
|
* it needs to be contained within 'forwardRef' function
|
|
1365
1417
|
*/
|
|
1366
|
-
|
|
1367
1418
|
const DotMenuList = /*#__PURE__*/forwardRef(({
|
|
1368
1419
|
autoFocusItem,
|
|
1369
1420
|
className,
|
|
@@ -1378,28 +1429,24 @@ const DotMenuList = /*#__PURE__*/forwardRef(({
|
|
|
1378
1429
|
onSubMenuCreate,
|
|
1379
1430
|
selectedKey
|
|
1380
1431
|
}, ref) => {
|
|
1381
|
-
const rootClasses = useStylesWithRootClass(rootClassName$
|
|
1432
|
+
const rootClasses = useStylesWithRootClass(rootClassName$N, className);
|
|
1382
1433
|
const [activeSubmenu, setActiveSubmenu] = useState(null);
|
|
1383
1434
|
const [subItemAnchorEl, setSubItemAnchorEl] = useState(null);
|
|
1384
|
-
|
|
1385
1435
|
const openSubmenu = (target, itemKey) => {
|
|
1386
1436
|
// Set new anchor for submenu and active submenu key
|
|
1387
1437
|
// so that new submenu can be opened
|
|
1388
1438
|
setSubItemAnchorEl(target);
|
|
1389
1439
|
setActiveSubmenu(itemKey);
|
|
1390
1440
|
};
|
|
1391
|
-
|
|
1392
1441
|
const closeActiveSubmenu = () => {
|
|
1393
1442
|
// We want to clean active submenu state if it exists.
|
|
1394
1443
|
// This will make previous submenu disappear when
|
|
1395
1444
|
// hovering to item with no submenu items
|
|
1396
1445
|
activeSubmenu && setActiveSubmenu(null);
|
|
1397
1446
|
};
|
|
1398
|
-
|
|
1399
1447
|
const getMouseEnterHandler = (itemKey, hasSubmenu) => event => {
|
|
1400
1448
|
hasSubmenu ? openSubmenu(event.currentTarget, itemKey) : closeActiveSubmenu();
|
|
1401
1449
|
};
|
|
1402
|
-
|
|
1403
1450
|
return jsx(StyledMenuList, Object.assign({
|
|
1404
1451
|
classes: {
|
|
1405
1452
|
root: rootClasses
|
|
@@ -1434,7 +1481,6 @@ const DotMenuList = /*#__PURE__*/forwardRef(({
|
|
|
1434
1481
|
const hasSubmenu = !!subItems;
|
|
1435
1482
|
const hasAutoFocus = checkForAutoFocus(autoFocusItem, isFirstItem);
|
|
1436
1483
|
const menuItemClasses = useStylesWithRootClass(listItemClassName$1, hasSubmenu ? listItemWithSubmenuClassName : '', classes ? classes : '');
|
|
1437
|
-
|
|
1438
1484
|
const handleClick = event => {
|
|
1439
1485
|
// Execute select callback only for items which does not have
|
|
1440
1486
|
// submenu defined. If there is no menu or handler - prevent
|
|
@@ -1446,8 +1492,6 @@ const DotMenuList = /*#__PURE__*/forwardRef(({
|
|
|
1446
1492
|
* If there is submenu, right arrow icon will be added
|
|
1447
1493
|
* and sub-menu will be rendered
|
|
1448
1494
|
*/
|
|
1449
|
-
|
|
1450
|
-
|
|
1451
1495
|
return jsxs(MenuItem, Object.assign({
|
|
1452
1496
|
autoFocus: hasAutoFocus,
|
|
1453
1497
|
"aria-label": itemAriaLabel,
|
|
@@ -1495,39 +1539,35 @@ const DotMenu = ({
|
|
|
1495
1539
|
open: _open = false,
|
|
1496
1540
|
selectedKey
|
|
1497
1541
|
}) => {
|
|
1498
|
-
const rootClasses = useStylesWithRootClass(rootClassName$
|
|
1542
|
+
const rootClasses = useStylesWithRootClass(rootClassName$O, className, _loading ? 'loading' : '');
|
|
1499
1543
|
const isSubmenu = checkIfSubmenu(anchorEl);
|
|
1500
|
-
const hasSubItems = checkForSubItems(_menuItems);
|
|
1544
|
+
const hasSubItems = checkForSubItems(_menuItems);
|
|
1545
|
+
// Timeout object is customizable when Menu component is either submenu
|
|
1501
1546
|
// (it is opened within parent menu) or it contains at least one item which
|
|
1502
1547
|
// has sub-items. This is done because when multi-level menu is closing it
|
|
1503
1548
|
// will first close the parent and only then child menus - which looks
|
|
1504
1549
|
// a bit weird - so here I'm giving it exit value of 0 so that it looks like
|
|
1505
1550
|
// they all close at the same time. For "normal" menus, timeout is unnecessary.
|
|
1506
|
-
|
|
1507
1551
|
const timeout = isSubmenu || hasSubItems ? {
|
|
1508
1552
|
exit: 0,
|
|
1509
1553
|
enter: 300
|
|
1510
1554
|
} : undefined;
|
|
1511
|
-
|
|
1512
1555
|
const handleSelect = (event, itemKey) => {
|
|
1513
1556
|
onLeave && onLeave(event);
|
|
1514
1557
|
onSelect && onSelect(event, id, itemKey);
|
|
1515
1558
|
};
|
|
1516
|
-
|
|
1517
1559
|
const handleListKeyDown = event => {
|
|
1518
1560
|
if (onLeave && event.key === 'Tab') {
|
|
1519
1561
|
event.preventDefault();
|
|
1520
1562
|
onLeave(event);
|
|
1521
1563
|
}
|
|
1522
|
-
};
|
|
1523
|
-
|
|
1524
|
-
|
|
1564
|
+
};
|
|
1565
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
1525
1566
|
const handleClickAway = event => {
|
|
1526
1567
|
if (onLeave && (!anchorEl || !anchorEl.contains(event.currentTarget))) {
|
|
1527
1568
|
onLeave(event);
|
|
1528
1569
|
}
|
|
1529
1570
|
};
|
|
1530
|
-
|
|
1531
1571
|
return jsx(StyledPopper, Object.assign({
|
|
1532
1572
|
anchorEl: anchorEl,
|
|
1533
1573
|
"aria-label": ariaLabel,
|
|
@@ -1592,18 +1632,18 @@ const DotMenu = ({
|
|
|
1592
1632
|
const CreateUUID = () => {
|
|
1593
1633
|
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
|
|
1594
1634
|
const r = Math.random() * 16 | 0,
|
|
1595
|
-
|
|
1635
|
+
v = c === 'x' ? r : r & 0x3 | 0x8;
|
|
1596
1636
|
return v.toString(16);
|
|
1597
1637
|
});
|
|
1598
1638
|
};
|
|
1599
1639
|
|
|
1600
|
-
const rootClassName$
|
|
1640
|
+
const rootClassName$M = 'dot-drawer';
|
|
1601
1641
|
const StyledDrawer = styled(Drawer).withConfig({
|
|
1602
1642
|
displayName: "Drawerstyles__StyledDrawer",
|
|
1603
1643
|
componentId: "sc-1uiowy0-0"
|
|
1604
1644
|
})(["", ""], ({
|
|
1605
1645
|
theme
|
|
1606
|
-
}) => css(["&.", " .MuiBackdrop-root{background-color:", ";}.dot-drawer-paper{height:", ";padding:", ";width:", ";}"], rootClassName$
|
|
1646
|
+
}) => css(["&.", " .MuiBackdrop-root{background-color:", ";}.dot-drawer-paper{height:", ";padding:", ";width:", ";}"], rootClassName$M, alpha(theme.palette.grey[900], 0.7), ({
|
|
1607
1647
|
height,
|
|
1608
1648
|
anchor
|
|
1609
1649
|
}) => anchor === 'left' || anchor === 'right' ? '100%' : height, theme.spacing(2), ({
|
|
@@ -1611,13 +1651,13 @@ const StyledDrawer = styled(Drawer).withConfig({
|
|
|
1611
1651
|
anchor
|
|
1612
1652
|
}) => anchor === 'bottom' || anchor === 'top' ? 'auto' : width));
|
|
1613
1653
|
|
|
1614
|
-
const rootClassName$
|
|
1654
|
+
const rootClassName$L = 'dot-drawer-header';
|
|
1615
1655
|
const StyleDrawerHeader = styled.div.withConfig({
|
|
1616
1656
|
displayName: "DrawerHeaderstyles__StyleDrawerHeader",
|
|
1617
1657
|
componentId: "sc-2d2xd3-0"
|
|
1618
1658
|
})(["", ""], ({
|
|
1619
1659
|
theme
|
|
1620
|
-
}) => css(["&.", "{padding:", ";display:flex;align-items:center;.close-button{margin-left:auto;}}"], rootClassName$
|
|
1660
|
+
}) => css(["&.", "{padding:", ";display:flex;align-items:center;.close-button{margin-left:auto;}}"], rootClassName$L, theme.spacing(0, 0, 2)));
|
|
1621
1661
|
|
|
1622
1662
|
const DotDrawerHeader = ({
|
|
1623
1663
|
ariaLabel,
|
|
@@ -1627,7 +1667,7 @@ const DotDrawerHeader = ({
|
|
|
1627
1667
|
onClose,
|
|
1628
1668
|
variant
|
|
1629
1669
|
}) => {
|
|
1630
|
-
const rootClasses = useStylesWithRootClass(rootClassName$
|
|
1670
|
+
const rootClasses = useStylesWithRootClass(rootClassName$L, className);
|
|
1631
1671
|
return jsxs(StyleDrawerHeader, Object.assign({
|
|
1632
1672
|
"aria-label": ariaLabel,
|
|
1633
1673
|
className: rootClasses,
|
|
@@ -1641,11 +1681,11 @@ const DotDrawerHeader = ({
|
|
|
1641
1681
|
}), void 0);
|
|
1642
1682
|
};
|
|
1643
1683
|
|
|
1644
|
-
const rootClassName$
|
|
1684
|
+
const rootClassName$K = 'dot-drawer-body';
|
|
1645
1685
|
const StyleDrawerBody = styled.div.withConfig({
|
|
1646
1686
|
displayName: "DrawerBodystyles__StyleDrawerBody",
|
|
1647
1687
|
componentId: "sc-1mpmjdk-0"
|
|
1648
|
-
})(["", ""], () => css(["&.", "{display:flex;.dot-drawer-close-button{align-self:self-start;padding:0;margin-left:auto;}}"], rootClassName$
|
|
1688
|
+
})(["", ""], () => css(["&.", "{display:flex;.dot-drawer-close-button{align-self:self-start;padding:0;margin-left:auto;}}"], rootClassName$K));
|
|
1649
1689
|
|
|
1650
1690
|
const DotDrawerBody = ({
|
|
1651
1691
|
ariaLabel,
|
|
@@ -1656,7 +1696,7 @@ const DotDrawerBody = ({
|
|
|
1656
1696
|
onClose,
|
|
1657
1697
|
variant
|
|
1658
1698
|
}) => {
|
|
1659
|
-
const rootClasses = useStylesWithRootClass(rootClassName$
|
|
1699
|
+
const rootClasses = useStylesWithRootClass(rootClassName$K, className);
|
|
1660
1700
|
return jsxs(StyleDrawerBody, Object.assign({
|
|
1661
1701
|
"aria-label": ariaLabel,
|
|
1662
1702
|
className: rootClasses,
|
|
@@ -1670,13 +1710,13 @@ const DotDrawerBody = ({
|
|
|
1670
1710
|
}), void 0);
|
|
1671
1711
|
};
|
|
1672
1712
|
|
|
1673
|
-
const rootClassName$
|
|
1713
|
+
const rootClassName$J = 'dot-drawer-footer';
|
|
1674
1714
|
const StyleDrawerFooter = styled.div.withConfig({
|
|
1675
1715
|
displayName: "DrawerFooterstyles__StyleDrawerFooter",
|
|
1676
1716
|
componentId: "sc-1ki05ze-0"
|
|
1677
1717
|
})(["", ""], ({
|
|
1678
1718
|
theme
|
|
1679
|
-
}) => css(["&.", "{padding:", ";}"], rootClassName$
|
|
1719
|
+
}) => css(["&.", "{padding:", ";}"], rootClassName$J, theme.spacing(2, 0, 0)));
|
|
1680
1720
|
|
|
1681
1721
|
const DotDrawerFooter = ({
|
|
1682
1722
|
ariaLabel,
|
|
@@ -1684,7 +1724,7 @@ const DotDrawerFooter = ({
|
|
|
1684
1724
|
className,
|
|
1685
1725
|
'data-testid': dataTestId
|
|
1686
1726
|
}) => {
|
|
1687
|
-
const rootClasses = useStylesWithRootClass(rootClassName$
|
|
1727
|
+
const rootClasses = useStylesWithRootClass(rootClassName$J, className);
|
|
1688
1728
|
return jsx(StyleDrawerFooter, Object.assign({
|
|
1689
1729
|
"aria-label": ariaLabel,
|
|
1690
1730
|
className: rootClasses,
|
|
@@ -1716,7 +1756,7 @@ const DotDrawer = ({
|
|
|
1716
1756
|
console.warn('Please use `children` or `drawerBodyProps`. If both are used, `children` is ignored.');
|
|
1717
1757
|
}
|
|
1718
1758
|
}, []);
|
|
1719
|
-
const rootClasses = useStylesWithRootClass(rootClassName$
|
|
1759
|
+
const rootClasses = useStylesWithRootClass(rootClassName$M, className);
|
|
1720
1760
|
const headerExists = !!drawerHeaderProps;
|
|
1721
1761
|
const bodyTestId = drawerBodyProps ? drawerBodyProps[`data-testid`] : 'drawer-body';
|
|
1722
1762
|
return jsxs(StyledDrawer, Object.assign({
|
|
@@ -1768,7 +1808,6 @@ const StyledDotDrawer = styled(DotDrawer).withConfig({
|
|
|
1768
1808
|
}) => css(["&.", "{.dot-drawer-paper{z-index:", ";animation:", ";}}"], nestedDrawerClassName, open ? levelFirst : levelBottom, open && css(["", " 0.2s cubic-bezier(1,0,1,.01);"], fadeIn)));
|
|
1769
1809
|
|
|
1770
1810
|
const DEFAULT_TOOLTIP_PLACEMENT = 'top-start';
|
|
1771
|
-
|
|
1772
1811
|
const DotListDivider = ({
|
|
1773
1812
|
item,
|
|
1774
1813
|
index
|
|
@@ -1784,13 +1823,11 @@ const DotListDivider = ({
|
|
|
1784
1823
|
}), void 0)
|
|
1785
1824
|
}), void 0);
|
|
1786
1825
|
}
|
|
1787
|
-
|
|
1788
1826
|
return jsx(Divider, {
|
|
1789
1827
|
"aria-hidden": true,
|
|
1790
1828
|
"data-testid": `divider-${index}`
|
|
1791
1829
|
}, void 0);
|
|
1792
1830
|
};
|
|
1793
|
-
|
|
1794
1831
|
const DotList = ({
|
|
1795
1832
|
ariaLabel,
|
|
1796
1833
|
children,
|
|
@@ -1805,15 +1842,13 @@ const DotList = ({
|
|
|
1805
1842
|
nestedListType: _nestedListType = 'expandable',
|
|
1806
1843
|
width: _width = 240
|
|
1807
1844
|
}) => {
|
|
1808
|
-
const rootClasses = useStylesWithRootClass(rootClassName$
|
|
1845
|
+
const rootClasses = useStylesWithRootClass(rootClassName$R, className);
|
|
1809
1846
|
const listWidth = typeof _width === 'number' ? `${_width}px` : _width;
|
|
1810
1847
|
const listRef = useRef();
|
|
1811
1848
|
const [listItemIndex, setListItemIndex] = useState(null);
|
|
1812
|
-
|
|
1813
1849
|
const updateSelectedListItem = currentIndex => {
|
|
1814
1850
|
currentIndex === listItemIndex ? setListItemIndex(null) : setListItemIndex(currentIndex);
|
|
1815
1851
|
};
|
|
1816
|
-
|
|
1817
1852
|
return jsxs(StyledList, Object.assign({
|
|
1818
1853
|
"aria-label": ariaLabel,
|
|
1819
1854
|
classes: {
|
|
@@ -1831,34 +1866,28 @@ const DotList = ({
|
|
|
1831
1866
|
children: [_items.map((item, index) => {
|
|
1832
1867
|
const handleListItemClick = e => {
|
|
1833
1868
|
var _a;
|
|
1834
|
-
|
|
1835
1869
|
updateSelectedListItem(index);
|
|
1836
1870
|
(_a = item.onClick) === null || _a === void 0 ? void 0 : _a.call(item, e);
|
|
1837
1871
|
};
|
|
1838
|
-
|
|
1839
1872
|
const handleMenuLeave = event => {
|
|
1840
|
-
var _a, _b;
|
|
1841
|
-
|
|
1842
|
-
|
|
1873
|
+
var _a, _b;
|
|
1874
|
+
// Remove index only if clicked element is not found within the list
|
|
1843
1875
|
if (!((_a = listRef.current) === null || _a === void 0 ? void 0 : _a.contains(event.target))) {
|
|
1844
1876
|
setListItemIndex(null);
|
|
1845
1877
|
(_b = item.onMenuLeave) === null || _b === void 0 ? void 0 : _b.call(item, event);
|
|
1846
1878
|
}
|
|
1847
1879
|
};
|
|
1848
|
-
|
|
1849
1880
|
if (item.child) {
|
|
1850
1881
|
return jsx(Fragment, {
|
|
1851
1882
|
children: item.child
|
|
1852
1883
|
}, `item-child-${index}`);
|
|
1853
1884
|
}
|
|
1854
|
-
|
|
1855
1885
|
if (item.divider) {
|
|
1856
1886
|
return jsx(DotListDivider, {
|
|
1857
1887
|
index: index,
|
|
1858
1888
|
item: item
|
|
1859
1889
|
}, `divider-${index}`);
|
|
1860
1890
|
}
|
|
1861
|
-
|
|
1862
1891
|
return jsx(DotListItem, {
|
|
1863
1892
|
className: item.className,
|
|
1864
1893
|
component: item.component,
|
|
@@ -1913,16 +1942,12 @@ const DotListItem = ({
|
|
|
1913
1942
|
const [anchorEl, setAnchorEl] = useState(null);
|
|
1914
1943
|
const showEndIcon = endIcon || hasChildren;
|
|
1915
1944
|
const rootClasses = useStylesWithRootClass(listItemRootClass, className, isOpened ? 'open' : '');
|
|
1916
|
-
|
|
1917
1945
|
const toggleOpen = event => setAnchorEl(event.currentTarget);
|
|
1918
|
-
|
|
1919
1946
|
const handleClick = event => {
|
|
1920
1947
|
onClick === null || onClick === void 0 ? void 0 : onClick(event);
|
|
1921
1948
|
toggleOpen(event);
|
|
1922
1949
|
};
|
|
1923
|
-
|
|
1924
1950
|
const handleMenuLeave = event => onMenuLeave(event);
|
|
1925
|
-
|
|
1926
1951
|
const renderListItemText = () => primaryText && secondaryText ? jsx(ListItemText, {
|
|
1927
1952
|
primary: primaryText,
|
|
1928
1953
|
secondary: secondaryText
|
|
@@ -1931,17 +1956,14 @@ const DotListItem = ({
|
|
|
1931
1956
|
}, {
|
|
1932
1957
|
children: text
|
|
1933
1958
|
}), void 0);
|
|
1934
|
-
|
|
1935
1959
|
const renderListItemEndIcon = () => {
|
|
1936
1960
|
if (hasChildren || !endIcon) {
|
|
1937
1961
|
return jsx(DotIcon, {
|
|
1938
1962
|
iconId: hasChildren && getChevronIcon(nestedListType, isOpened)
|
|
1939
1963
|
}, void 0);
|
|
1940
1964
|
}
|
|
1941
|
-
|
|
1942
1965
|
return endIcon;
|
|
1943
1966
|
};
|
|
1944
|
-
|
|
1945
1967
|
return jsxs(Fragment$1, {
|
|
1946
1968
|
children: [jsx(DotTooltip, Object.assign({
|
|
1947
1969
|
"data-testid": `${dataTestId}-tooltip`,
|
|
@@ -1997,7 +2019,6 @@ const NestedList = ({
|
|
|
1997
2019
|
}) => {
|
|
1998
2020
|
const flyoutItemClasses = useStylesWithRootClass(listItemRootClass, flyoutListItemClassName);
|
|
1999
2021
|
const flyoutSpanClasses = useStylesWithRootClass(listItemLinkClassName, flyoutItemLinkClassName);
|
|
2000
|
-
|
|
2001
2022
|
if (type === 'expandable') {
|
|
2002
2023
|
return jsx(Collapse, Object.assign({
|
|
2003
2024
|
in: open,
|
|
@@ -2014,7 +2035,6 @@ const NestedList = ({
|
|
|
2014
2035
|
}, parentItemIndex)
|
|
2015
2036
|
}), void 0);
|
|
2016
2037
|
}
|
|
2017
|
-
|
|
2018
2038
|
if (type === 'menu') {
|
|
2019
2039
|
const menuItems = items.map((item, index) => {
|
|
2020
2040
|
const {
|
|
@@ -2066,7 +2086,6 @@ const NestedList = ({
|
|
|
2066
2086
|
open: open
|
|
2067
2087
|
}, parentItemIndex);
|
|
2068
2088
|
}
|
|
2069
|
-
|
|
2070
2089
|
if (type === 'drawer') {
|
|
2071
2090
|
return jsx(StyledDotDrawer, Object.assign({
|
|
2072
2091
|
PaperProps: {
|
|
@@ -2094,20 +2113,14 @@ const NestedList = ({
|
|
|
2094
2113
|
};
|
|
2095
2114
|
|
|
2096
2115
|
var _path$2, _path2$2, _path3, _path4;
|
|
2097
|
-
|
|
2098
2116
|
var _excluded$2 = ["title", "titleId"];
|
|
2099
|
-
|
|
2100
2117
|
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
2118
|
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
2119
|
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
2120
|
function SvgLogoD(_ref, svgRef) {
|
|
2107
2121
|
var title = _ref.title,
|
|
2108
|
-
|
|
2109
|
-
|
|
2110
|
-
|
|
2122
|
+
titleId = _ref.titleId,
|
|
2123
|
+
props = _objectWithoutProperties$2(_ref, _excluded$2);
|
|
2111
2124
|
return /*#__PURE__*/React.createElement("svg", _extends$2({
|
|
2112
2125
|
width: 26,
|
|
2113
2126
|
height: 27,
|
|
@@ -2134,24 +2147,17 @@ function SvgLogoD(_ref, svgRef) {
|
|
|
2134
2147
|
fill: "#649A3D"
|
|
2135
2148
|
})));
|
|
2136
2149
|
}
|
|
2137
|
-
|
|
2138
2150
|
var ForwardRef$2 = /*#__PURE__*/React.forwardRef(SvgLogoD);
|
|
2139
2151
|
|
|
2140
2152
|
var _path$1, _path2$1;
|
|
2141
|
-
|
|
2142
2153
|
var _excluded$1 = ["title", "titleId"];
|
|
2143
|
-
|
|
2144
2154
|
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
2155
|
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
2156
|
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
2157
|
function SvgLogoDigitalAi(_ref, svgRef) {
|
|
2151
2158
|
var title = _ref.title,
|
|
2152
|
-
|
|
2153
|
-
|
|
2154
|
-
|
|
2159
|
+
titleId = _ref.titleId,
|
|
2160
|
+
props = _objectWithoutProperties$1(_ref, _excluded$1);
|
|
2155
2161
|
return /*#__PURE__*/React.createElement("svg", _extends$1({
|
|
2156
2162
|
width: 93,
|
|
2157
2163
|
height: 23,
|
|
@@ -2170,16 +2176,50 @@ function SvgLogoDigitalAi(_ref, svgRef) {
|
|
|
2170
2176
|
fill: "#649A3D"
|
|
2171
2177
|
})));
|
|
2172
2178
|
}
|
|
2173
|
-
|
|
2174
2179
|
var ForwardRef$1 = /*#__PURE__*/React.forwardRef(SvgLogoDigitalAi);
|
|
2175
2180
|
|
|
2176
|
-
const rootClassName$
|
|
2181
|
+
const rootClassName$I = 'dot-sidebar';
|
|
2177
2182
|
const StyledSidebar = styled.aside.withConfig({
|
|
2178
2183
|
displayName: "Sidebarstyles__StyledSidebar",
|
|
2179
2184
|
componentId: "l3atb4-0"
|
|
2180
2185
|
})(["", ""], ({
|
|
2181
2186
|
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$
|
|
2187
|
+
}) => 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$I, 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)));
|
|
2188
|
+
|
|
2189
|
+
const rootClassName$H = 'dot-truncate-with-tooltip';
|
|
2190
|
+
const StyledTruncateWithTooltip = styled(Tooltip).withConfig({
|
|
2191
|
+
displayName: "TruncateWithTooltipstyles__StyledTruncateWithTooltip",
|
|
2192
|
+
componentId: "sc-1o80lur-0"
|
|
2193
|
+
})(["", ""], () => css(["&.", "{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;}&.dot-characters-limit{display:inline;}"], rootClassName$H));
|
|
2194
|
+
|
|
2195
|
+
const getTruncatedLabel = (label, charactersLimit) => {
|
|
2196
|
+
if (!charactersLimit || charactersLimit <= 0 || label.length < charactersLimit) return label;
|
|
2197
|
+
return `${label.substr(0, charactersLimit)}...`;
|
|
2198
|
+
};
|
|
2199
|
+
|
|
2200
|
+
const DotTruncateWithTooltip = ({
|
|
2201
|
+
ariaLabel,
|
|
2202
|
+
charactersLimit,
|
|
2203
|
+
className,
|
|
2204
|
+
'data-testid': dataTestId,
|
|
2205
|
+
label,
|
|
2206
|
+
width
|
|
2207
|
+
}) => {
|
|
2208
|
+
const rootClasses = useStylesWithRootClass(rootClassName$H, className, charactersLimit ? 'dot-characters-limit' : '');
|
|
2209
|
+
return jsx(StyledTruncateWithTooltip, Object.assign({
|
|
2210
|
+
"aria-label": ariaLabel,
|
|
2211
|
+
className: rootClasses,
|
|
2212
|
+
"data-testid": dataTestId,
|
|
2213
|
+
title: label,
|
|
2214
|
+
style: {
|
|
2215
|
+
width: calculateWidth(width)
|
|
2216
|
+
}
|
|
2217
|
+
}, {
|
|
2218
|
+
children: jsx("span", {
|
|
2219
|
+
children: getTruncatedLabel(label, charactersLimit)
|
|
2220
|
+
}, void 0)
|
|
2221
|
+
}), void 0);
|
|
2222
|
+
};
|
|
2183
2223
|
|
|
2184
2224
|
const Brand = ({
|
|
2185
2225
|
brandDesc
|
|
@@ -2207,7 +2247,6 @@ const Brand = ({
|
|
|
2207
2247
|
}), void 0)]
|
|
2208
2248
|
}), void 0);
|
|
2209
2249
|
};
|
|
2210
|
-
|
|
2211
2250
|
const Header = ({
|
|
2212
2251
|
appLogo,
|
|
2213
2252
|
appLogoSmall,
|
|
@@ -2234,7 +2273,6 @@ const Header = ({
|
|
|
2234
2273
|
}, void 0)
|
|
2235
2274
|
}), void 0);
|
|
2236
2275
|
};
|
|
2237
|
-
|
|
2238
2276
|
const DotSidebar = ({
|
|
2239
2277
|
appLogo,
|
|
2240
2278
|
appLogoSmall,
|
|
@@ -2262,9 +2300,7 @@ const DotSidebar = ({
|
|
|
2262
2300
|
const hasBackItem = _goBack && backItem;
|
|
2263
2301
|
const displayHeader = title || hasAppLogo;
|
|
2264
2302
|
const openClass = isOpen ? 'open' : 'collapsed';
|
|
2265
|
-
|
|
2266
2303
|
const checkPrimaryNavMissingIcons = () => _navItems.some(item => !item.divider && !item.startIcon);
|
|
2267
|
-
|
|
2268
2304
|
useEffect(() => {
|
|
2269
2305
|
// Incorrect usage warning
|
|
2270
2306
|
if (_collapsable && checkPrimaryNavMissingIcons()) {
|
|
@@ -2277,14 +2313,12 @@ const DotSidebar = ({
|
|
|
2277
2313
|
useEffect(() => {
|
|
2278
2314
|
setSidebarWidth(isOpen ? _width : 58);
|
|
2279
2315
|
}, [isOpen]);
|
|
2280
|
-
|
|
2281
2316
|
const collapseNav = () => {
|
|
2282
2317
|
onCollapseChange && onCollapseChange(isOpen);
|
|
2283
2318
|
setIsOpen(!isOpen);
|
|
2284
2319
|
};
|
|
2285
|
-
|
|
2286
2320
|
const sidebarClasses = useStylesWithRootClass('side-nav', openClass);
|
|
2287
|
-
const rootClasses = useStylesWithRootClass(rootClassName$
|
|
2321
|
+
const rootClasses = useStylesWithRootClass(rootClassName$I, openClass, className);
|
|
2288
2322
|
return jsxs(StyledSidebar, Object.assign({
|
|
2289
2323
|
"aria-label": ariaLabel,
|
|
2290
2324
|
className: rootClasses,
|
|
@@ -2311,9 +2345,14 @@ const DotSidebar = ({
|
|
|
2311
2345
|
onClick: backItem.onClick,
|
|
2312
2346
|
tooltip: backItem.title || backItem.text
|
|
2313
2347
|
}, void 0), jsx(DotTypography, Object.assign({
|
|
2314
|
-
|
|
2348
|
+
className: "back-button-text",
|
|
2349
|
+
variant: "h4",
|
|
2350
|
+
noWrap: true
|
|
2315
2351
|
}, {
|
|
2316
|
-
children:
|
|
2352
|
+
children: jsx(DotTruncateWithTooltip, {
|
|
2353
|
+
"data-testid": dataTestId && `${dataTestId}-go-back-truncate-tooltip`,
|
|
2354
|
+
label: backItem.text
|
|
2355
|
+
}, void 0)
|
|
2317
2356
|
}), void 0)]
|
|
2318
2357
|
}), void 0), _navItems.length > 0 && jsx(DotList, {
|
|
2319
2358
|
ariaLabel: "left navigation",
|
|
@@ -2350,13 +2389,13 @@ const DotSidebar = ({
|
|
|
2350
2389
|
}), void 0);
|
|
2351
2390
|
};
|
|
2352
2391
|
|
|
2353
|
-
const rootClassName$
|
|
2392
|
+
const rootClassName$G = 'dot-badge';
|
|
2354
2393
|
const StyledBadge = styled(Badge).withConfig({
|
|
2355
2394
|
displayName: "Badgestyles__StyledBadge",
|
|
2356
2395
|
componentId: "sc-1brv3h5-0"
|
|
2357
2396
|
})(["", ""], ({
|
|
2358
2397
|
theme
|
|
2359
|
-
}) => css(["&.", "{
|
|
2398
|
+
}) => css(["&.", "{color:", ";.MuiBadge-badge{background-color:", ";&.MuiBadge-standard{font-size:10px;height:", ";min-width:", ";padding:", ";}}}"], rootClassName$G, theme.palette.text.primary, ({
|
|
2360
2399
|
$badgeColor
|
|
2361
2400
|
}) => {
|
|
2362
2401
|
return $badgeColor;
|
|
@@ -2374,7 +2413,7 @@ const DotBadge = ({
|
|
|
2374
2413
|
overlap,
|
|
2375
2414
|
variant: _variant = 'dot'
|
|
2376
2415
|
}) => {
|
|
2377
|
-
const rootClasses = useStylesWithRootClass(rootClassName$
|
|
2416
|
+
const rootClasses = useStylesWithRootClass(rootClassName$G, className);
|
|
2378
2417
|
return jsx(StyledBadge, Object.assign({
|
|
2379
2418
|
"$badgeColor": badgeColor,
|
|
2380
2419
|
anchorOrigin: {
|
|
@@ -2398,20 +2437,14 @@ const DotBadge = ({
|
|
|
2398
2437
|
};
|
|
2399
2438
|
|
|
2400
2439
|
var _path, _path2;
|
|
2401
|
-
|
|
2402
2440
|
var _excluded = ["title", "titleId"];
|
|
2403
|
-
|
|
2404
2441
|
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
2442
|
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
2443
|
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
2444
|
function SvgLogoDigitalAiWhite(_ref, svgRef) {
|
|
2411
2445
|
var title = _ref.title,
|
|
2412
|
-
|
|
2413
|
-
|
|
2414
|
-
|
|
2446
|
+
titleId = _ref.titleId,
|
|
2447
|
+
props = _objectWithoutProperties(_ref, _excluded);
|
|
2415
2448
|
return /*#__PURE__*/React.createElement("svg", _extends({
|
|
2416
2449
|
width: 100,
|
|
2417
2450
|
height: 26,
|
|
@@ -2430,10 +2463,9 @@ function SvgLogoDigitalAiWhite(_ref, svgRef) {
|
|
|
2430
2463
|
fill: "#649A3D"
|
|
2431
2464
|
})));
|
|
2432
2465
|
}
|
|
2433
|
-
|
|
2434
2466
|
var ForwardRef = /*#__PURE__*/React.forwardRef(SvgLogoDigitalAiWhite);
|
|
2435
2467
|
|
|
2436
|
-
const rootClassName$
|
|
2468
|
+
const rootClassName$F = 'dot-app-toolbar';
|
|
2437
2469
|
const denseClassName = 'dense';
|
|
2438
2470
|
const StyledMainMenu = styled(DotDrawer).withConfig({
|
|
2439
2471
|
displayName: "AppToolbarstyles__StyledMainMenu",
|
|
@@ -2446,7 +2478,7 @@ const StyledAppToolbar = styled.header.withConfig({
|
|
|
2446
2478
|
componentId: "sc-3kokby-1"
|
|
2447
2479
|
})(["", ""], ({
|
|
2448
2480
|
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$
|
|
2481
|
+
}) => 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$F, 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
2482
|
|
|
2451
2483
|
const DotAppToolbar = ({
|
|
2452
2484
|
ariaLabel,
|
|
@@ -2474,33 +2506,29 @@ const DotAppToolbar = ({
|
|
|
2474
2506
|
const displayAppLogo = appLogo || appLogoSmall;
|
|
2475
2507
|
const mainMenuRef = useRef(null);
|
|
2476
2508
|
const denseClass = _dense ? denseClassName : '';
|
|
2477
|
-
const rootClasses = useStylesWithRootClass(rootClassName$
|
|
2509
|
+
const rootClasses = useStylesWithRootClass(rootClassName$F, className, denseClass, showMainMenu ? '' : 'without-menu-icon');
|
|
2478
2510
|
const mainMenuClasses = useStylesWithRootClass('dot-main-menu', denseClass, menuOpen ? 'open' : '');
|
|
2479
2511
|
const targetBreakpoint = useMediaQuery(theme => theme.breakpoints.up('md'));
|
|
2480
2512
|
useEffect(() => {
|
|
2481
2513
|
const handleInsideMenuClick = event => {
|
|
2482
2514
|
var _a, _b;
|
|
2483
|
-
|
|
2484
2515
|
const targetEl = event.target;
|
|
2485
2516
|
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');
|
|
2517
|
+
const hasLink = (_b = targetEl.closest('a')) === null || _b === void 0 ? void 0 : _b.hasAttribute('href');
|
|
2518
|
+
// Close menu on click only in two cases:
|
|
2487
2519
|
// 1. 'closeMenuOnItemClick' is set to true
|
|
2488
2520
|
// 2. item has a link and 'closeMenuOnItemClick' is NOT explicitly set to false
|
|
2489
|
-
|
|
2490
2521
|
const shouldCloseMenu = clickInsideMenu && (closeMenuOnItemClick || hasLink && closeMenuOnItemClick !== false);
|
|
2491
2522
|
shouldCloseMenu && updateMenuOpen(false);
|
|
2492
2523
|
};
|
|
2493
|
-
|
|
2494
2524
|
if (mainMenuRef === null || mainMenuRef === void 0 ? void 0 : mainMenuRef.current) {
|
|
2495
2525
|
mainMenuRef.current.addEventListener('click', handleInsideMenuClick);
|
|
2496
2526
|
return () => {
|
|
2497
2527
|
var _a;
|
|
2498
|
-
|
|
2499
2528
|
(_a = mainMenuRef.current) === null || _a === void 0 ? void 0 : _a.removeEventListener('click', handleInsideMenuClick);
|
|
2500
2529
|
};
|
|
2501
2530
|
}
|
|
2502
2531
|
}, []);
|
|
2503
|
-
|
|
2504
2532
|
const renderNavItems = _navItems.map((item, index) => {
|
|
2505
2533
|
return jsx(DotBadge, Object.assign({
|
|
2506
2534
|
badgeColor: item.badgeColor,
|
|
@@ -2520,7 +2548,6 @@ const DotAppToolbar = ({
|
|
|
2520
2548
|
}, index)
|
|
2521
2549
|
}), index);
|
|
2522
2550
|
});
|
|
2523
|
-
|
|
2524
2551
|
const appToolbar = jsxs(StyledAppToolbar, Object.assign({
|
|
2525
2552
|
"aria-label": ariaLabel,
|
|
2526
2553
|
className: rootClasses,
|
|
@@ -2603,16 +2630,14 @@ const DotAppToolbar = ({
|
|
|
2603
2630
|
children: avatar
|
|
2604
2631
|
}), void 0)]
|
|
2605
2632
|
}), void 0)]
|
|
2606
|
-
}), void 0);
|
|
2607
|
-
|
|
2608
|
-
|
|
2633
|
+
}), void 0);
|
|
2634
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
2609
2635
|
const handleClickAway = event => {
|
|
2610
2636
|
if (_menuCloseOnClickAway && onClickAway) {
|
|
2611
2637
|
updateMenuOpen(false);
|
|
2612
2638
|
onClickAway(event);
|
|
2613
2639
|
}
|
|
2614
2640
|
};
|
|
2615
|
-
|
|
2616
2641
|
return _menuCloseOnClickAway ? jsx(ClickAwayListener, Object.assign({
|
|
2617
2642
|
onClickAway: handleClickAway
|
|
2618
2643
|
}, {
|
|
@@ -2622,7 +2647,7 @@ const DotAppToolbar = ({
|
|
|
2622
2647
|
}), void 0) : appToolbar;
|
|
2623
2648
|
};
|
|
2624
2649
|
|
|
2625
|
-
const rootClassName$
|
|
2650
|
+
const rootClassName$E = 'dot-autocomplete';
|
|
2626
2651
|
const inputRootClassName = 'dot-input-root';
|
|
2627
2652
|
const inputMediumClassName = 'dot-input-medium';
|
|
2628
2653
|
const StyledAutocomplete = styled(Autocomplete).withConfig({
|
|
@@ -2630,95 +2655,15 @@ const StyledAutocomplete = styled(Autocomplete).withConfig({
|
|
|
2630
2655
|
componentId: "j2sgjy-0"
|
|
2631
2656
|
})(["", ""], ({
|
|
2632
2657
|
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));
|
|
2658
|
+
}) => 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$E, inputRootClassName, theme.spacing(0), theme.spacing(0), theme.spacing(0), theme.spacing(5), theme.palette.warning.main, theme.palette.error.main));
|
|
2642
2659
|
|
|
2643
|
-
|
|
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
|
-
});
|
|
2714
|
-
|
|
2715
|
-
const rootClassName$E = 'dot-chip';
|
|
2660
|
+
const rootClassName$D = 'dot-chip';
|
|
2716
2661
|
const StyledChip = styled(Chip).withConfig({
|
|
2717
2662
|
displayName: "Chipstyles__StyledChip",
|
|
2718
2663
|
componentId: "f1tsra-0"
|
|
2719
2664
|
})(["", ""], ({
|
|
2720
2665
|
theme
|
|
2721
|
-
}) => css(["&.", "{border-color:", ";.dot-icon i{height:auto;}&.MuiChip-sizeSmall{.dot-icon,.dot-avatar{width:18px;height:18px;}}&.Mui-error{background-color:", ";border-color:", ";.MuiChip-deleteIcon{color:", ";}}&:not(.Mui-error){&:hover{background-color:", ";}.MuiChip-deleteIcon{&:hover{color:", ";}}}.MuiChip-deleteIcon{width:18px;height:18px;color:", ";}}"], rootClassName$
|
|
2666
|
+
}) => css(["&.", "{border-color:", ";.dot-icon i{height:auto;}&.MuiChip-sizeSmall{.dot-icon,.dot-avatar{width:18px;height:18px;}}&.Mui-error{background-color:", ";border-color:", ";.MuiChip-deleteIcon{color:", ";}}&:not(.Mui-error){&:hover{background-color:", ";}.MuiChip-deleteIcon{&:hover{color:", ";}}}.MuiChip-deleteIcon{width:18px;height:18px;color:", ";}}"], rootClassName$D, theme.palette.grey[300], theme.palette.error[50], theme.palette.error.main, theme.palette.error.main, theme.palette.grey[50], theme.palette.grey[400], theme.palette.grey[300]));
|
|
2722
2667
|
|
|
2723
2668
|
const DEFAULT_CHARACTERS_LIMIT = 32;
|
|
2724
2669
|
const DotChip = ({
|
|
@@ -2738,8 +2683,7 @@ const DotChip = ({
|
|
|
2738
2683
|
startIcon
|
|
2739
2684
|
}) => {
|
|
2740
2685
|
const errorClass = _error ? 'Mui-error' : '';
|
|
2741
|
-
const rootClasses = useStylesWithRootClass(rootClassName$
|
|
2742
|
-
|
|
2686
|
+
const rootClasses = useStylesWithRootClass(rootClassName$D, className, errorClass);
|
|
2743
2687
|
const getChipLabel = () => {
|
|
2744
2688
|
if (_charactersLimit <= 0 || children.length < _charactersLimit) return children;
|
|
2745
2689
|
const label = `${children.substring(0, _charactersLimit)}...`;
|
|
@@ -2751,7 +2695,6 @@ const DotChip = ({
|
|
|
2751
2695
|
}, void 0)
|
|
2752
2696
|
}), void 0);
|
|
2753
2697
|
};
|
|
2754
|
-
|
|
2755
2698
|
return jsx(StyledChip, {
|
|
2756
2699
|
"aria-label": ariaLabel,
|
|
2757
2700
|
avatar: avatar,
|
|
@@ -2771,8 +2714,8 @@ const DotChip = ({
|
|
|
2771
2714
|
}, void 0);
|
|
2772
2715
|
};
|
|
2773
2716
|
|
|
2717
|
+
// takes multiple types of data from autocomplete selection
|
|
2774
2718
|
// parses value and returns a string which is saved to state
|
|
2775
|
-
|
|
2776
2719
|
const parseAutoCompleteValue = value => {
|
|
2777
2720
|
if (typeof value === 'string') {
|
|
2778
2721
|
return value;
|
|
@@ -2782,7 +2725,6 @@ const parseAutoCompleteValue = value => {
|
|
|
2782
2725
|
if (index !== 0) {
|
|
2783
2726
|
titles += ',';
|
|
2784
2727
|
}
|
|
2785
|
-
|
|
2786
2728
|
if (typeof val === 'string') {
|
|
2787
2729
|
titles += val;
|
|
2788
2730
|
} else {
|
|
@@ -2793,7 +2735,6 @@ const parseAutoCompleteValue = value => {
|
|
|
2793
2735
|
} else if (value && value.title) {
|
|
2794
2736
|
return value.title;
|
|
2795
2737
|
}
|
|
2796
|
-
|
|
2797
2738
|
return '';
|
|
2798
2739
|
};
|
|
2799
2740
|
const getChipsFromAutocomplete = ({
|
|
@@ -2901,17 +2842,16 @@ const DotAutoComplete = ({
|
|
|
2901
2842
|
const [isOpened, setIsOpened] = useState(false);
|
|
2902
2843
|
const [inputText, setInputText] = useState('');
|
|
2903
2844
|
const textFieldWarningClassName = !_error && _warning && warningClassName;
|
|
2904
|
-
const rootClasses = useStylesWithRootClass(rootClassName$
|
|
2845
|
+
const rootClasses = useStylesWithRootClass(rootClassName$E, className);
|
|
2905
2846
|
const textFieldRootClasses = useStylesWithRootClass(rootClassName$Y, className, _readOnly ? 'read-only' : '', textFieldWarningClassName);
|
|
2906
2847
|
const inputRootClasses = useStylesWithRootClass(inputRootClassName, _dense ? '' : inputMediumClassName);
|
|
2907
|
-
let textFieldInput;
|
|
2908
|
-
|
|
2848
|
+
let textFieldInput;
|
|
2849
|
+
// Used for focus management while popper is opened
|
|
2909
2850
|
const actionItemRef = useRef();
|
|
2910
|
-
|
|
2911
2851
|
const textFieldRef = element => {
|
|
2912
2852
|
// We want to use this element in callback function
|
|
2913
|
-
textFieldInput = element;
|
|
2914
|
-
|
|
2853
|
+
textFieldInput = element;
|
|
2854
|
+
// Check if ref is defined via props
|
|
2915
2855
|
if (inputRef) {
|
|
2916
2856
|
// Check if callback ref
|
|
2917
2857
|
if (typeof inputRef === 'function') {
|
|
@@ -2922,7 +2862,6 @@ const DotAutoComplete = ({
|
|
|
2922
2862
|
}
|
|
2923
2863
|
}
|
|
2924
2864
|
};
|
|
2925
|
-
|
|
2926
2865
|
const valuesChanged = ({
|
|
2927
2866
|
event,
|
|
2928
2867
|
val,
|
|
@@ -2931,7 +2870,6 @@ const DotAutoComplete = ({
|
|
|
2931
2870
|
onChange && onChange(event, val, reason);
|
|
2932
2871
|
setShowPlaceholder(parseAutoCompleteValue(val) === '');
|
|
2933
2872
|
};
|
|
2934
|
-
|
|
2935
2873
|
const sortOptions = () => {
|
|
2936
2874
|
return _group ? options.sort((a, b) => {
|
|
2937
2875
|
const aGroup = a.group ? a.group : '';
|
|
@@ -2939,37 +2877,34 @@ const DotAutoComplete = ({
|
|
|
2939
2877
|
return -bGroup.localeCompare(aGroup);
|
|
2940
2878
|
}) : options;
|
|
2941
2879
|
};
|
|
2942
|
-
|
|
2943
2880
|
const handleBlur = event => {
|
|
2944
2881
|
event.relatedTarget !== actionItemRef.current && setIsOpened(false);
|
|
2945
2882
|
onBlur === null || onBlur === void 0 ? void 0 : onBlur(event);
|
|
2946
2883
|
};
|
|
2947
|
-
|
|
2948
2884
|
const onActionButtonClick = () => {
|
|
2949
2885
|
setIsOpened(false);
|
|
2950
2886
|
textFieldInput.focus();
|
|
2951
2887
|
onActionItemClick(inputText);
|
|
2952
|
-
};
|
|
2953
|
-
|
|
2954
|
-
|
|
2888
|
+
};
|
|
2889
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
2955
2890
|
const DotPopper = props => {
|
|
2956
2891
|
if (!isActionItemDefined) return jsx(StyledPopper, Object.assign({}, props, {
|
|
2957
|
-
className: rootClassName$
|
|
2892
|
+
className: rootClassName$P,
|
|
2958
2893
|
disablePortal: _disablePortal,
|
|
2959
2894
|
"$maxHeight": maxHeight
|
|
2960
|
-
}), void 0);
|
|
2895
|
+
}), void 0);
|
|
2896
|
+
// Disable action if customer explicitly enabled duplicate
|
|
2961
2897
|
// item insertion and input text is found inside the 'options'
|
|
2962
|
-
|
|
2963
|
-
|
|
2964
|
-
|
|
2898
|
+
const isActionDisabled = preventDuplicateInsertion && checkIfDuplicateItem(inputText, options);
|
|
2899
|
+
// Display warning icon if disabled
|
|
2965
2900
|
const actionStartIconId = isActionDisabled ? 'warning-solid' : actionIconId;
|
|
2966
2901
|
const defaultText = inputText ? `Add "${inputText}"` : DEFAULT_ACTION_ITEM_TEXT;
|
|
2967
2902
|
const nonDisabledText = actionItemText ? actionItemText : defaultText;
|
|
2968
|
-
const itemText = isActionDisabled ? 'Value already exists' : nonDisabledText;
|
|
2903
|
+
const itemText = isActionDisabled ? 'Value already exists' : nonDisabledText;
|
|
2904
|
+
// If simple text, we need to give it a class so that
|
|
2969
2905
|
// styling for displaying ellipsis on a long text
|
|
2970
2906
|
// can be applied. If it is custom node coming from the
|
|
2971
2907
|
// consumer, then leave it as it is.
|
|
2972
|
-
|
|
2973
2908
|
const itemTextNode = isString(itemText) ? jsx("span", Object.assign({
|
|
2974
2909
|
className: "dot-action-item-text"
|
|
2975
2910
|
}, {
|
|
@@ -2978,14 +2913,13 @@ const DotAutoComplete = ({
|
|
|
2978
2913
|
const paperProps = props.children.props;
|
|
2979
2914
|
const paperChildren = paperProps.children;
|
|
2980
2915
|
return jsx(StyledPopper, Object.assign({}, props, {
|
|
2981
|
-
className: rootClassName$
|
|
2916
|
+
className: rootClassName$P,
|
|
2982
2917
|
disablePortal: _disablePortal,
|
|
2983
2918
|
"$maxHeight": maxHeight
|
|
2984
2919
|
}, {
|
|
2985
2920
|
children: jsxs(Paper, Object.assign({}, paperProps, {
|
|
2986
2921
|
children: [paperChildren, jsx("div", Object.assign({
|
|
2987
2922
|
className: "dot-action-item",
|
|
2988
|
-
|
|
2989
2923
|
/* Add this to short circuit blur event (otherwise button click will not work):
|
|
2990
2924
|
* https://github.com/mui-org/material-ui/issues/19038 */
|
|
2991
2925
|
onBlur: handleBlur,
|
|
@@ -3019,27 +2953,23 @@ const DotAutoComplete = ({
|
|
|
3019
2953
|
}), void 0)]
|
|
3020
2954
|
}), void 0)
|
|
3021
2955
|
}), void 0);
|
|
3022
|
-
};
|
|
3023
|
-
|
|
3024
|
-
|
|
3025
|
-
|
|
3026
|
-
|
|
3027
|
-
|
|
2956
|
+
};
|
|
2957
|
+
// Use passed in onOpen callback (if exists), otherwise create custom function
|
|
2958
|
+
const handleOpen = onOpen || (() => setIsOpened(true));
|
|
2959
|
+
// Use passed in onClose callback (if exists), otherwise create custom function
|
|
3028
2960
|
const handleClose = onClose || (event => {
|
|
3029
2961
|
// We want to close popper in each occasion where focus isn't set to action item
|
|
3030
2962
|
if (!('relatedTarget' in event) || event.relatedTarget !== actionItemRef.current) {
|
|
3031
2963
|
setIsOpened(false);
|
|
3032
2964
|
}
|
|
3033
|
-
});
|
|
3034
|
-
|
|
3035
|
-
|
|
2965
|
+
});
|
|
2966
|
+
// Create handler only if 'onInputChange' or 'actionItem' prop is defined
|
|
3036
2967
|
const handleInputChange = (onInputChange || isActionItemDefined) && ((event, inputValue, reason) => {
|
|
3037
2968
|
isActionItemDefined && setInputText(inputValue);
|
|
3038
2969
|
onInputChange === null || onInputChange === void 0 ? void 0 : onInputChange(event, inputValue, reason);
|
|
3039
|
-
}) || undefined;
|
|
2970
|
+
}) || undefined;
|
|
2971
|
+
// Create callback when action item click event handler is defined,
|
|
3040
2972
|
// free-solo mode is NOT set and 'Enter' key has been pressed
|
|
3041
|
-
|
|
3042
|
-
|
|
3043
2973
|
const handleKeyDown = !_freesolo && onActionItemClick && (event => {
|
|
3044
2974
|
if (event.key === 'Enter') {
|
|
3045
2975
|
// Do NOT execute callback if duplicate item or have selected an option from the dropdown
|
|
@@ -3047,19 +2977,16 @@ const DotAutoComplete = ({
|
|
|
3047
2977
|
onActionButtonClick();
|
|
3048
2978
|
}
|
|
3049
2979
|
}) || undefined;
|
|
3050
|
-
|
|
3051
2980
|
const handleRenderChips = (values, getTagProps) => getChipsFromAutocomplete({
|
|
3052
2981
|
chipSize: _dense ? 'small' : 'medium',
|
|
3053
2982
|
getTagProps,
|
|
3054
2983
|
isReadOnly: _readOnly,
|
|
3055
2984
|
values
|
|
3056
2985
|
});
|
|
3057
|
-
|
|
3058
2986
|
const handleTagsRender = () => {
|
|
3059
2987
|
if (!_multiple) return;
|
|
3060
2988
|
return renderTags || handleRenderChips;
|
|
3061
2989
|
};
|
|
3062
|
-
|
|
3063
2990
|
const renderErrorOrWarningIcon = () => {
|
|
3064
2991
|
if (!_error && !_warning) return;
|
|
3065
2992
|
const iconType = _error ? 'error' : 'warning';
|
|
@@ -3069,7 +2996,6 @@ const DotAutoComplete = ({
|
|
|
3069
2996
|
iconId: `${iconType}-solid`
|
|
3070
2997
|
}, void 0);
|
|
3071
2998
|
};
|
|
3072
|
-
|
|
3073
2999
|
const renderEndAdornment = nativeEndAdornment => {
|
|
3074
3000
|
const getInputAdornment = () => {
|
|
3075
3001
|
const icon = renderErrorOrWarningIcon();
|
|
@@ -3080,7 +3006,6 @@ const DotAutoComplete = ({
|
|
|
3080
3006
|
children: icon
|
|
3081
3007
|
}), void 0) : icon;
|
|
3082
3008
|
};
|
|
3083
|
-
|
|
3084
3009
|
return jsxs(Fragment$1, {
|
|
3085
3010
|
children: [loading && jsx(DotProgress, {
|
|
3086
3011
|
color: "inherit",
|
|
@@ -3088,7 +3013,6 @@ const DotAutoComplete = ({
|
|
|
3088
3013
|
}, void 0), getInputAdornment(), nativeEndAdornment]
|
|
3089
3014
|
}, void 0);
|
|
3090
3015
|
};
|
|
3091
|
-
|
|
3092
3016
|
return jsx(StyledAutocomplete, {
|
|
3093
3017
|
PopperComponent: DotPopper,
|
|
3094
3018
|
"aria-label": ariaLabel,
|
|
@@ -3129,7 +3053,8 @@ const DotAutoComplete = ({
|
|
|
3129
3053
|
// 'inputProps' as 'object' type and will complain when accessing
|
|
3130
3054
|
// className without casting to proper type
|
|
3131
3055
|
const inputProps = params.inputProps;
|
|
3132
|
-
return (
|
|
3056
|
+
return (
|
|
3057
|
+
// We are not using DotInputText here because the {...params} spread
|
|
3133
3058
|
// passed to renderInput includes inputProps and InputProps properties
|
|
3134
3059
|
// that must be passed to TextField in order for Autocomplete to work
|
|
3135
3060
|
// correctly. We decided that at this time exposing those props in
|
|
@@ -3167,9 +3092,8 @@ const DotAutoComplete = ({
|
|
|
3167
3092
|
label: persistentLabel ? null : label,
|
|
3168
3093
|
name: label,
|
|
3169
3094
|
onKeyDown: event => {
|
|
3170
|
-
var _a;
|
|
3171
|
-
|
|
3172
|
-
|
|
3095
|
+
var _a;
|
|
3096
|
+
// Intercept 'tab' key press while action item element exists
|
|
3173
3097
|
if (event.key === 'Tab' && actionItemRef.current) {
|
|
3174
3098
|
event.preventDefault();
|
|
3175
3099
|
(_a = actionItemRef === null || actionItemRef === void 0 ? void 0 : actionItemRef.current) === null || _a === void 0 ? void 0 : _a.focus();
|
|
@@ -3190,11 +3114,11 @@ const DotAutoComplete = ({
|
|
|
3190
3114
|
}, void 0);
|
|
3191
3115
|
};
|
|
3192
3116
|
|
|
3193
|
-
const rootClassName$
|
|
3117
|
+
const rootClassName$C = 'dot-avatar-group';
|
|
3194
3118
|
const StyledAvatarGroup = styled(AvatarGroup).withConfig({
|
|
3195
3119
|
displayName: "AvatarGroupstyles__StyledAvatarGroup",
|
|
3196
3120
|
componentId: "sc-25by6z-0"
|
|
3197
|
-
})(["", ""], () => css(["&.", "{justify-content:flex-end;.MuiAvatar-root{border:none;}}}"], rootClassName$
|
|
3121
|
+
})(["", ""], () => css(["&.", "{justify-content:flex-end;.MuiAvatar-root{border:none;}}}"], rootClassName$C));
|
|
3198
3122
|
|
|
3199
3123
|
const DotAvatarGroup = ({
|
|
3200
3124
|
ariaLabel,
|
|
@@ -3204,7 +3128,7 @@ const DotAvatarGroup = ({
|
|
|
3204
3128
|
max: _max = 3,
|
|
3205
3129
|
spacing: _spacing = 'medium'
|
|
3206
3130
|
}) => {
|
|
3207
|
-
const rootClasses = useStylesWithRootClass(rootClassName$
|
|
3131
|
+
const rootClasses = useStylesWithRootClass(rootClassName$C, className);
|
|
3208
3132
|
return jsx(StyledAvatarGroup, Object.assign({
|
|
3209
3133
|
"aria-label": ariaLabel,
|
|
3210
3134
|
classes: {
|
|
@@ -3220,20 +3144,20 @@ const DotAvatarGroup = ({
|
|
|
3220
3144
|
}), void 0);
|
|
3221
3145
|
};
|
|
3222
3146
|
|
|
3223
|
-
const rootClassName$
|
|
3147
|
+
const rootClassName$B = 'dot-breadcrumbs';
|
|
3224
3148
|
const breadcrumbsWrapperClass = 'dot-breadcrumbs-wrapper';
|
|
3225
3149
|
const StyledBreadcrumbsWrapper = styled.div.withConfig({
|
|
3226
3150
|
displayName: "Breadcrumbsstyles__StyledBreadcrumbsWrapper",
|
|
3227
3151
|
componentId: "sc-7cg374-0"
|
|
3228
3152
|
})(["", ""], ({
|
|
3229
3153
|
theme
|
|
3230
|
-
}) => css(["&.", "{overflow:hidden;.dot-breadcrumbs-menu{.MuiMenuItem-root{padding:0;}a.breadcrumb{width:100%;padding:", ";}}}"], rootClassName$
|
|
3154
|
+
}) => css(["&.", "{overflow:hidden;.dot-breadcrumbs-menu{.MuiMenuItem-root{padding:0;}a.breadcrumb{width:100%;padding:", ";}}}"], rootClassName$B, theme.spacing(0.5, 2)));
|
|
3231
3155
|
const StyledBreadcrumbs = styled(Breadcrumbs).withConfig({
|
|
3232
3156
|
displayName: "Breadcrumbsstyles__StyledBreadcrumbs",
|
|
3233
3157
|
componentId: "sc-7cg374-1"
|
|
3234
3158
|
})(["", ""], ({
|
|
3235
3159
|
theme
|
|
3236
|
-
}) => css(["&.", "{margin-bottom:0;.MuiBreadcrumbs-ol{flex-wrap:nowrap;}.MuiBreadcrumbs-li,.separator{color:", ";margin:0;white-space:nowrap;}.separator{font-size:12px;width:20px;height:20px;padding:0;}.MuiBreadcrumbs-separator{margin:0;}.MuiLink-underlineHover{cursor:pointer;}.MuiBreadcrumbs-li:last-child{overflow:hidden;text-overflow:ellipsis;}.breadcrumb{padding:", ";}.current-page{color:", ";cursor:default;}}"], rootClassName$
|
|
3160
|
+
}) => css(["&.", "{margin-bottom:0;.MuiBreadcrumbs-ol{flex-wrap:nowrap;}.MuiBreadcrumbs-li,.separator{color:", ";margin:0;white-space:nowrap;}.separator{font-size:12px;width:20px;height:20px;padding:0;}.MuiBreadcrumbs-separator{margin:0;}.MuiLink-underlineHover{cursor:pointer;}.MuiBreadcrumbs-li:last-child{overflow:hidden;text-overflow:ellipsis;}.breadcrumb{padding:", ";}.current-page{color:", ";cursor:default;}}"], rootClassName$B, theme.palette.grey[300], theme.spacing(0.5, 2), theme.palette.grey[700]));
|
|
3237
3161
|
|
|
3238
3162
|
const compareWidth = (parentEl, childEl) => {
|
|
3239
3163
|
return parentEl.getBoundingClientRect().width < childEl.getBoundingClientRect().width;
|
|
@@ -3244,7 +3168,6 @@ const getItemsAfterCollapse = (adjustMaxItems, visibleItemsNumber, maxItems) =>
|
|
|
3244
3168
|
if (maxItems) {
|
|
3245
3169
|
return adjustMaxItems ? 1 : 2;
|
|
3246
3170
|
}
|
|
3247
|
-
|
|
3248
3171
|
if (visibleItemsNumber > 1) return visibleItemsNumber - 1;
|
|
3249
3172
|
if (visibleItemsNumber === 1) return visibleItemsNumber;
|
|
3250
3173
|
return undefined;
|
|
@@ -3254,12 +3177,10 @@ const getMaxItems = (adjustMaxItems, visibleItemsNumber, maxItems) => {
|
|
|
3254
3177
|
if (maxItems) {
|
|
3255
3178
|
return adjustMaxItems ? 2 : maxItems;
|
|
3256
3179
|
}
|
|
3257
|
-
|
|
3258
3180
|
return visibleItemsNumber > 1 ? visibleItemsNumber : undefined;
|
|
3259
3181
|
};
|
|
3260
3182
|
const getWidthFromRef = ref => {
|
|
3261
3183
|
var _a;
|
|
3262
|
-
|
|
3263
3184
|
return (_a = ref === null || ref === void 0 ? void 0 : ref.current) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect().width;
|
|
3264
3185
|
};
|
|
3265
3186
|
const checkIfFirstItemAfterCollapse = (currentIndex, items, itemsAfterCollapse) => currentIndex === items.length - itemsAfterCollapse;
|
|
@@ -3286,7 +3207,6 @@ const getMenuItems = (items, itemsAfterCollapse) => {
|
|
|
3286
3207
|
}, {
|
|
3287
3208
|
children: item.text
|
|
3288
3209
|
}), index);
|
|
3289
|
-
|
|
3290
3210
|
return {
|
|
3291
3211
|
children: itemChildren,
|
|
3292
3212
|
key: index.toString()
|
|
@@ -3331,12 +3251,10 @@ const mapBreadcrumbItems = (items, refs, {
|
|
|
3331
3251
|
underline
|
|
3332
3252
|
} = item;
|
|
3333
3253
|
let truncatedText = '';
|
|
3334
|
-
|
|
3335
3254
|
if (text.length > characterLimit) {
|
|
3336
3255
|
truncatedText = text.slice(0, characterLimit) + '...';
|
|
3337
|
-
}
|
|
3338
|
-
|
|
3339
|
-
|
|
3256
|
+
}
|
|
3257
|
+
// Check if last element
|
|
3340
3258
|
if (index === items.length - 1) {
|
|
3341
3259
|
// Add tooltip if item is not fully visible
|
|
3342
3260
|
return isLastItemFullyVisible ? getLastItemElement(item, lastItemRef, index) : jsx(DotTooltip, Object.assign({
|
|
@@ -3394,16 +3312,15 @@ const useBreadcrumbsResizer = (breadcrumbsRightCoord, breadcrumbItemsProps, refs
|
|
|
3394
3312
|
};
|
|
3395
3313
|
const [breadcrumbsSettings, setBreadcrumbsSettings] = useState(initialMaxVisibleItems);
|
|
3396
3314
|
/* Adjust number of visible items after collapse */
|
|
3397
|
-
|
|
3398
3315
|
useEffect(() => {
|
|
3399
3316
|
// 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);
|
|
3317
|
+
if (maxItems !== undefined || !(lastItemRef === null || lastItemRef === void 0 ? void 0 : lastItemRef.current) || !breadcrumbsRightCoord) return;
|
|
3318
|
+
// Get width of breadcrumb's last item
|
|
3319
|
+
const lastItemWidth = getWidthFromRef(lastItemRef);
|
|
3320
|
+
// Get width of breadcrumb's first item after collapse
|
|
3403
3321
|
// Sometimes first item can also be last item
|
|
3404
|
-
|
|
3405
|
-
|
|
3406
|
-
|
|
3322
|
+
const firstItemWidth = getWidthFromRef(firstItemRef) || lastItemWidth;
|
|
3323
|
+
// Get left coordinate of the last item
|
|
3407
3324
|
const lastItemLeftCoord = lastItemRef.current.getBoundingClientRect().left;
|
|
3408
3325
|
const {
|
|
3409
3326
|
lastRemovedItemWidth,
|
|
@@ -3412,7 +3329,6 @@ const useBreadcrumbsResizer = (breadcrumbsRightCoord, breadcrumbItemsProps, refs
|
|
|
3412
3329
|
const availableSpace = breadcrumbsRightCoord - lastItemLeftCoord;
|
|
3413
3330
|
const hasHiddenItems = maxVisibleItems < items.length;
|
|
3414
3331
|
const isLastRemovedItemSuitable = lastRemovedItemWidth !== undefined ? availableSpace - lastRemovedItemWidth > MIN_AVAILABLE_SPACE : false;
|
|
3415
|
-
|
|
3416
3332
|
if (availableSpace < MIN_AVAILABLE_SPACE && maxVisibleItems > 2) {
|
|
3417
3333
|
setBreadcrumbsSettings(prevValue => ({
|
|
3418
3334
|
maxVisibleItems: prevValue.maxVisibleItems - 1,
|
|
@@ -3426,16 +3342,14 @@ const useBreadcrumbsResizer = (breadcrumbsRightCoord, breadcrumbItemsProps, refs
|
|
|
3426
3342
|
}
|
|
3427
3343
|
}, [maxItems, breadcrumbsRightCoord, lastItemRef === null || lastItemRef === void 0 ? void 0 : lastItemRef.current, firstItemRef === null || firstItemRef === void 0 ? void 0 : firstItemRef.current, breadcrumbsSettings]);
|
|
3428
3344
|
/* Set new initial state after array of items has been changed */
|
|
3429
|
-
|
|
3430
3345
|
useEffect(() => {
|
|
3431
3346
|
// Run this effect only when 'items' array change
|
|
3432
3347
|
// Ignore it on initial render
|
|
3433
3348
|
if (!isMountedRef.current) {
|
|
3434
3349
|
isMountedRef.current = true;
|
|
3435
3350
|
return;
|
|
3436
|
-
}
|
|
3437
|
-
|
|
3438
|
-
|
|
3351
|
+
}
|
|
3352
|
+
// Set new state only if object values are different
|
|
3439
3353
|
setBreadcrumbsSettings(initialMaxVisibleItems);
|
|
3440
3354
|
}, [items]);
|
|
3441
3355
|
return [breadcrumbsSettings];
|
|
@@ -3454,7 +3368,6 @@ const useBreadcrumbsObserver = (items, maxItems) => {
|
|
|
3454
3368
|
lastItemRef
|
|
3455
3369
|
});
|
|
3456
3370
|
/* Observe breadcrumbs width change and store it in state */
|
|
3457
|
-
|
|
3458
3371
|
useEffect(() => {
|
|
3459
3372
|
// Automatic resizing is performed only when 'maxItem' is NOT set
|
|
3460
3373
|
if (maxItems !== undefined) return;
|
|
@@ -3499,7 +3412,6 @@ const DotBreadcrumbs = ({
|
|
|
3499
3412
|
firstItemRef,
|
|
3500
3413
|
lastItemRef
|
|
3501
3414
|
};
|
|
3502
|
-
|
|
3503
3415
|
const clickListener = event => {
|
|
3504
3416
|
if (event instanceof KeyboardEvent && event.key !== 'Enter') return;
|
|
3505
3417
|
event.stopPropagation();
|
|
@@ -3507,7 +3419,6 @@ const DotBreadcrumbs = ({
|
|
|
3507
3419
|
return !currentMenuOpen;
|
|
3508
3420
|
});
|
|
3509
3421
|
};
|
|
3510
|
-
|
|
3511
3422
|
const onMenuLeave = _event => {
|
|
3512
3423
|
setMenuOpen(false);
|
|
3513
3424
|
};
|
|
@@ -3515,12 +3426,9 @@ const DotBreadcrumbs = ({
|
|
|
3515
3426
|
In order for this to be functioning properly we need to set 'items' in
|
|
3516
3427
|
the dependencies list as it will re-trigger hook if items array change.
|
|
3517
3428
|
*/
|
|
3518
|
-
|
|
3519
|
-
|
|
3520
3429
|
useEffect(() => {
|
|
3521
3430
|
if (!_expansionMenu || !breadcrumbRef || !breadcrumbRef.current) return;
|
|
3522
3431
|
const expandElement = getExpandElement(breadcrumbRef.current);
|
|
3523
|
-
|
|
3524
3432
|
if (expandElement) {
|
|
3525
3433
|
setAnchorEl(expandElement);
|
|
3526
3434
|
addListenersToMenu(expandElement, clickListener);
|
|
@@ -3540,7 +3448,7 @@ const DotBreadcrumbs = ({
|
|
|
3540
3448
|
children: [jsx(StyledBreadcrumbs, Object.assign({
|
|
3541
3449
|
"aria-label": "breadcrumb",
|
|
3542
3450
|
classes: {
|
|
3543
|
-
root: rootClassName$
|
|
3451
|
+
root: rootClassName$B,
|
|
3544
3452
|
ol: 'dot-ol',
|
|
3545
3453
|
li: 'dot-li'
|
|
3546
3454
|
},
|
|
@@ -3607,13 +3515,13 @@ function __awaiter(thisArg, _arguments, P, generator) {
|
|
|
3607
3515
|
});
|
|
3608
3516
|
}
|
|
3609
3517
|
|
|
3610
|
-
const rootClassName$
|
|
3518
|
+
const rootClassName$A = 'dot-button-toggle';
|
|
3611
3519
|
const StyledToggleButtonGroup = styled(ToggleButtonGroup).withConfig({
|
|
3612
3520
|
displayName: "ButtonTogglestyles__StyledToggleButtonGroup",
|
|
3613
3521
|
componentId: "sc-1oh4ljv-0"
|
|
3614
3522
|
})(["", ""], ({
|
|
3615
3523
|
theme
|
|
3616
|
-
}) => css(["&.", "{button:not(.MuiToggleButton-sizeLarge):not(.MuiToggleButton-sizeSmall){height:", ";.dot-icon{width:", ";}}.dot-icon{
|
|
3524
|
+
}) => 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{background:", ";}}"], rootClassName$A, 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
3525
|
|
|
3618
3526
|
const DotButtonToggle = ({
|
|
3619
3527
|
ariaLabel,
|
|
@@ -3628,8 +3536,7 @@ const DotButtonToggle = ({
|
|
|
3628
3536
|
size: _size = 'medium',
|
|
3629
3537
|
value
|
|
3630
3538
|
}) => {
|
|
3631
|
-
const rootClasses = useStylesWithRootClass(rootClassName$
|
|
3632
|
-
|
|
3539
|
+
const rootClasses = useStylesWithRootClass(rootClassName$A, className);
|
|
3633
3540
|
const renderToggleButton = ({
|
|
3634
3541
|
ariaLabel: optionAriaLabel,
|
|
3635
3542
|
className: optionClassName,
|
|
@@ -3648,7 +3555,6 @@ const DotButtonToggle = ({
|
|
|
3648
3555
|
key,
|
|
3649
3556
|
value: optionValue
|
|
3650
3557
|
};
|
|
3651
|
-
|
|
3652
3558
|
const children = jsxs(Fragment$1, {
|
|
3653
3559
|
children: [optionIconId && jsx(DotIcon, {
|
|
3654
3560
|
className: "dot-toggle-icon",
|
|
@@ -3657,7 +3563,6 @@ const DotButtonToggle = ({
|
|
|
3657
3563
|
children: optionText
|
|
3658
3564
|
}, void 0)]
|
|
3659
3565
|
}, void 0);
|
|
3660
|
-
|
|
3661
3566
|
return optionTooltip ? jsx(TooltipToggleButton, Object.assign({}, commonProps, {
|
|
3662
3567
|
CustomTooltipProps: {
|
|
3663
3568
|
title: optionTooltip
|
|
@@ -3669,7 +3574,6 @@ const DotButtonToggle = ({
|
|
|
3669
3574
|
children: children
|
|
3670
3575
|
}), void 0);
|
|
3671
3576
|
};
|
|
3672
|
-
|
|
3673
3577
|
return jsx(StyledToggleButtonGroup, Object.assign({
|
|
3674
3578
|
"aria-label": ariaLabel,
|
|
3675
3579
|
classes: {
|
|
@@ -3688,13 +3592,11 @@ const DotButtonToggle = ({
|
|
|
3688
3592
|
}), void 0);
|
|
3689
3593
|
};
|
|
3690
3594
|
/** Catch props and forward to ToggleButton */
|
|
3691
|
-
|
|
3692
3595
|
const TooltipToggleButton = /*#__PURE__*/forwardRef((_a, ref) => {
|
|
3693
3596
|
var {
|
|
3694
|
-
|
|
3695
|
-
|
|
3696
|
-
|
|
3697
|
-
|
|
3597
|
+
CustomTooltipProps
|
|
3598
|
+
} = _a,
|
|
3599
|
+
props = __rest(_a, ["CustomTooltipProps"]);
|
|
3698
3600
|
return jsx(DotTooltip, Object.assign({}, CustomTooltipProps, {
|
|
3699
3601
|
children: jsx(ToggleButton, Object.assign({
|
|
3700
3602
|
ref: ref
|
|
@@ -3739,13 +3641,13 @@ const DotCardContent = ({
|
|
|
3739
3641
|
}), void 0);
|
|
3740
3642
|
};
|
|
3741
3643
|
|
|
3742
|
-
const rootClassName$
|
|
3644
|
+
const rootClassName$z = 'dot-card-footer';
|
|
3743
3645
|
const StyledDiv = styled.div.withConfig({
|
|
3744
3646
|
displayName: "CardFooterstyles__StyledDiv",
|
|
3745
3647
|
componentId: "koblh6-0"
|
|
3746
3648
|
})(["", ""], ({
|
|
3747
3649
|
theme
|
|
3748
|
-
}) => css(["&.", "{padding:", ";}"], rootClassName$
|
|
3650
|
+
}) => css(["&.", "{padding:", ";}"], rootClassName$z, theme.spacing(2)));
|
|
3749
3651
|
|
|
3750
3652
|
const DotCardFooter = ({
|
|
3751
3653
|
ariaLabel,
|
|
@@ -3753,7 +3655,7 @@ const DotCardFooter = ({
|
|
|
3753
3655
|
className,
|
|
3754
3656
|
'data-testid': dataTestId
|
|
3755
3657
|
}) => {
|
|
3756
|
-
const rootClasses = useStylesWithRootClass(rootClassName$
|
|
3658
|
+
const rootClasses = useStylesWithRootClass(rootClassName$z, className);
|
|
3757
3659
|
return jsx(StyledDiv, Object.assign({
|
|
3758
3660
|
"aria-label": ariaLabel,
|
|
3759
3661
|
className: rootClasses,
|
|
@@ -3798,19 +3700,19 @@ const DotCardHeader = ({
|
|
|
3798
3700
|
}, void 0);
|
|
3799
3701
|
};
|
|
3800
3702
|
|
|
3801
|
-
const rootClassName$
|
|
3703
|
+
const rootClassName$y = 'dot-form-control-label';
|
|
3802
3704
|
const StyledFormControlLabel = styled(FormControlLabel).withConfig({
|
|
3803
3705
|
displayName: "FormControlLabelstyles__StyledFormControlLabel",
|
|
3804
3706
|
componentId: "sc-1vt0om4-0"
|
|
3805
|
-
})(["&.", "{.MuiFormControlLabel-label{margin-bottom:0;padding:0 0 0 4px;}&.MuiFormControlLabel-labelPlacementBottom{.MuiFormControlLabel-label{padding:4px 0 0 0;}}&.MuiFormControlLabel-labelPlacementTop{.MuiFormControlLabel-label{padding:0 0 4px 0;}}&.MuiFormControlLabel-labelPlacementStart{.MuiFormControlLabel-label{padding:0 4px 0;}}}"], rootClassName$
|
|
3707
|
+
})(["&.", "{.MuiFormControlLabel-label{margin-bottom:0;padding:0 0 0 4px;}&.MuiFormControlLabel-labelPlacementBottom{.MuiFormControlLabel-label{padding:4px 0 0 0;}}&.MuiFormControlLabel-labelPlacementTop{.MuiFormControlLabel-label{padding:0 0 4px 0;}}&.MuiFormControlLabel-labelPlacementStart{.MuiFormControlLabel-label{padding:0 4px 0;}}}"], rootClassName$y);
|
|
3806
3708
|
|
|
3807
|
-
const rootClassName$
|
|
3709
|
+
const rootClassName$x = 'dot-checkbox';
|
|
3808
3710
|
const StyledCheckbox = styled(Checkbox).withConfig({
|
|
3809
3711
|
displayName: "Checkboxstyles__StyledCheckbox",
|
|
3810
3712
|
componentId: "sc-1ubsn6i-0"
|
|
3811
3713
|
})(["", ""], ({
|
|
3812
3714
|
theme
|
|
3813
|
-
}) => css(["&.", "{padding:", ";&.MuiCheckbox-indeterminate{color:rgba(0,0,0,0.6);}}"], rootClassName$
|
|
3715
|
+
}) => css(["&.", "{padding:", ";&.MuiCheckbox-indeterminate{color:rgba(0,0,0,0.6);}}"], rootClassName$x, theme.spacing(1)));
|
|
3814
3716
|
|
|
3815
3717
|
function DotCheckbox({
|
|
3816
3718
|
ariaLabel,
|
|
@@ -3831,16 +3733,14 @@ function DotCheckbox({
|
|
|
3831
3733
|
size = 'medium',
|
|
3832
3734
|
value
|
|
3833
3735
|
}) {
|
|
3834
|
-
const rootClasses = useStylesWithRootClass(rootClassName$
|
|
3835
|
-
|
|
3736
|
+
const rootClasses = useStylesWithRootClass(rootClassName$y, className);
|
|
3836
3737
|
const handleChange = event => {
|
|
3837
3738
|
onChange && onChange(event, event.target.value);
|
|
3838
3739
|
};
|
|
3839
|
-
|
|
3840
3740
|
const checkboxControl = jsx(StyledCheckbox, {
|
|
3841
3741
|
checked: checked,
|
|
3842
3742
|
classes: {
|
|
3843
|
-
root: rootClassName$
|
|
3743
|
+
root: rootClassName$x
|
|
3844
3744
|
},
|
|
3845
3745
|
color: "primary",
|
|
3846
3746
|
"data-testid": dataTestId,
|
|
@@ -3859,7 +3759,6 @@ function DotCheckbox({
|
|
|
3859
3759
|
size: size,
|
|
3860
3760
|
value: value
|
|
3861
3761
|
}, void 0);
|
|
3862
|
-
|
|
3863
3762
|
return jsx(StyledFormControlLabel, {
|
|
3864
3763
|
className: rootClasses,
|
|
3865
3764
|
control: checkboxControl,
|
|
@@ -3868,7 +3767,7 @@ function DotCheckbox({
|
|
|
3868
3767
|
}, void 0);
|
|
3869
3768
|
}
|
|
3870
3769
|
|
|
3871
|
-
const rootClassName$
|
|
3770
|
+
const rootClassName$w = 'dot-form-group';
|
|
3872
3771
|
const groupLabelClassName = 'dot-form-group-label';
|
|
3873
3772
|
const startAdornmentClassName = 'dot-start-adornment';
|
|
3874
3773
|
const endAdornmentClassName = 'dot-end-adornment';
|
|
@@ -3876,9 +3775,9 @@ const placementClassName = 'dot-';
|
|
|
3876
3775
|
const StyledFormControl = styled(FormControl).withConfig({
|
|
3877
3776
|
displayName: "FormControlstyles__StyledFormControl",
|
|
3878
3777
|
componentId: "sc-532kip-0"
|
|
3879
|
-
})(["&.", "{.MuiFormLabel-root{width:100%;line-height:24px;margin-bottom:4px;display:flex;align-items:center;.", "{padding-left:4px;}.", "{padding-right:4px;}}&.", "{.MuiFormHelperText-root,.MuiFormLabel-root{display:flex;flex-direction:row-reverse;}}&.", "{.MuiFormHelperText-root,.MuiFormLabel-root{display:flex;justify-content:center;}}}"], rootClassName$
|
|
3778
|
+
})(["&.", "{.MuiFormLabel-root{width:100%;line-height:24px;margin-bottom:4px;display:flex;align-items:center;.", "{padding-left:4px;}.", "{padding-right:4px;}}&.", "{.MuiFormHelperText-root,.MuiFormLabel-root{display:flex;flex-direction:row-reverse;}}&.", "{.MuiFormHelperText-root,.MuiFormLabel-root{display:flex;justify-content:center;}}}"], rootClassName$w, endAdornmentClassName, startAdornmentClassName, `${placementClassName}start`, `${placementClassName}bottom`);
|
|
3880
3779
|
|
|
3881
|
-
const rootClassName$
|
|
3780
|
+
const rootClassName$v = 'dot-checkbox-group';
|
|
3882
3781
|
const wrapperClassName$1 = 'dot-checkbox-group-wrapper';
|
|
3883
3782
|
const checkboxListClassName = 'dot-checkbox-list';
|
|
3884
3783
|
const checkboxListItemClassName = 'dot-checkbox-list-item';
|
|
@@ -3887,16 +3786,16 @@ const StyledCheckboxGroup = styled.div.withConfig({
|
|
|
3887
3786
|
componentId: "bhb21v-0"
|
|
3888
3787
|
})(["", ""], ({
|
|
3889
3788
|
theme
|
|
3890
|
-
}) => css(["{&.", "{.", "{width:100%;}.MuiFormLabel-root{display:inline;width:100%;}.MuiFormHelperText-root{font-family:", ";font-size:", "px;font-weight:", ";&:not(.Mui-error){color:", ";}}.", "{list-style:none;margin-top:0;padding-left:", ";.", "{margin:0;}}}"], wrapperClassName$1, rootClassName$
|
|
3789
|
+
}) => css(["{&.", "{.", "{width:100%;}.MuiFormLabel-root{display:inline;width:100%;}.MuiFormHelperText-root{font-family:", ";font-size:", "px;font-weight:", ";&:not(.Mui-error){color:", ";}}.", "{list-style:none;margin-top:0;padding-left:", ";.", "{margin:0;}}}"], wrapperClassName$1, rootClassName$v, theme.typography.body2.fontFamily, theme.typography.body2.fontSize, theme.typography.body2.fontWeight, theme.palette.grey[400], checkboxListClassName, theme.spacing(2.5), rootClassName$y));
|
|
3891
3790
|
|
|
3892
|
-
const rootClassName$
|
|
3791
|
+
const rootClassName$u = 'dot-form-group';
|
|
3893
3792
|
const StyledFormGroup = styled(FormGroup).withConfig({
|
|
3894
3793
|
displayName: "FormGroupstyles__StyledFormGroup",
|
|
3895
3794
|
componentId: "sc-1dlipcr-0"
|
|
3896
3795
|
})(["", ""], ({
|
|
3897
3796
|
theme,
|
|
3898
3797
|
row
|
|
3899
|
-
}) => css(["&.", "{& > *{margin:", ";}}"], rootClassName$
|
|
3798
|
+
}) => css(["&.", "{& > *{margin:", ";}}"], rootClassName$u, row ? `${theme.spacing(0.5)}` : 0));
|
|
3900
3799
|
|
|
3901
3800
|
function DotFormGroup({
|
|
3902
3801
|
ariaLabel,
|
|
@@ -3905,7 +3804,7 @@ function DotFormGroup({
|
|
|
3905
3804
|
'data-testid': dataTestId,
|
|
3906
3805
|
row
|
|
3907
3806
|
}) {
|
|
3908
|
-
const rootClasses = useStylesWithRootClass(rootClassName$
|
|
3807
|
+
const rootClasses = useStylesWithRootClass(rootClassName$w, className);
|
|
3909
3808
|
return jsx(StyledFormGroup, Object.assign({
|
|
3910
3809
|
"aria-label": ariaLabel,
|
|
3911
3810
|
classes: {
|
|
@@ -3919,9 +3818,9 @@ function DotFormGroup({
|
|
|
3919
3818
|
}), void 0);
|
|
3920
3819
|
}
|
|
3921
3820
|
|
|
3821
|
+
// Have this outside of component to avoid having different
|
|
3922
3822
|
// reference for the array and thus generate infinite loop
|
|
3923
3823
|
// in use effect hook
|
|
3924
|
-
|
|
3925
3824
|
const DEFAULT_VALUES = [];
|
|
3926
3825
|
function DotCheckboxGroup({
|
|
3927
3826
|
ariaLabel,
|
|
@@ -3945,33 +3844,28 @@ function DotCheckboxGroup({
|
|
|
3945
3844
|
size = 'medium'
|
|
3946
3845
|
}) {
|
|
3947
3846
|
const placement = `${placementClassName}${labelPlacement}`;
|
|
3948
|
-
const rootClasses = useStylesWithRootClass(rootClassName$
|
|
3847
|
+
const rootClasses = useStylesWithRootClass(rootClassName$w, rootClassName$v, className, placement);
|
|
3949
3848
|
const [selectedOptions, setSelectedOptions] = useState(defaultValues);
|
|
3950
3849
|
const [allChecked, setAllChecked] = useState(false);
|
|
3951
3850
|
/* This will ensure that state can be updated from the outside */
|
|
3952
|
-
|
|
3953
3851
|
useEffect(() => {
|
|
3954
3852
|
// Change only if new value is passed in
|
|
3955
3853
|
if (defaultValues !== DEFAULT_VALUES) {
|
|
3956
3854
|
setSelectedOptions(defaultValues);
|
|
3957
3855
|
}
|
|
3958
3856
|
}, [defaultValues]);
|
|
3959
|
-
|
|
3960
3857
|
const handleChange = (event, data) => {
|
|
3961
3858
|
const newOptions = event.target.checked ? [...selectedOptions, data] : selectedOptions.filter(option => option.value !== event.target.value);
|
|
3962
3859
|
setSelectedOptions(newOptions);
|
|
3963
3860
|
setAllChecked(newOptions.length === options.length);
|
|
3964
3861
|
onChange && onChange(event, newOptions);
|
|
3965
3862
|
};
|
|
3966
|
-
|
|
3967
3863
|
const handleSelectAll = event => {
|
|
3968
3864
|
const _selectedOptions = event.target.checked ? options : [];
|
|
3969
|
-
|
|
3970
3865
|
setSelectedOptions(_selectedOptions);
|
|
3971
3866
|
setAllChecked(event.target.checked);
|
|
3972
3867
|
onChange && onChange(event, _selectedOptions);
|
|
3973
3868
|
};
|
|
3974
|
-
|
|
3975
3869
|
const renderOptions = options ? options.map(({
|
|
3976
3870
|
label,
|
|
3977
3871
|
disabled,
|
|
@@ -4042,13 +3936,13 @@ function DotCheckboxGroup({
|
|
|
4042
3936
|
}), void 0);
|
|
4043
3937
|
}
|
|
4044
3938
|
|
|
4045
|
-
const rootClassName$
|
|
3939
|
+
const rootClassName$t = 'dot-dialog';
|
|
4046
3940
|
const StyledDialog = styled(Dialog).withConfig({
|
|
4047
3941
|
displayName: "Dialogstyles__StyledDialog",
|
|
4048
3942
|
componentId: "sc-1tkr4ex-0"
|
|
4049
3943
|
})(["", ""], ({
|
|
4050
3944
|
theme
|
|
4051
|
-
}) => css(["&.", "{.MuiDialog-paper{min-width:280px;max-height:80vh;max-width:80vw;}.MuiDialogTitle-root,.dot-dialog-title{align-items:center;display:flex;flex-wrap:nowrap;padding:", ";h2{flex-grow:1;}.dot-icon-button{margin-left:", ";}}.dot-dialog-content{padding:", ";overflow-y:auto;}.dot-dialog-actions{padding:", ";.cancel-button{color:inherit;}}}"], rootClassName$
|
|
3945
|
+
}) => css(["&.", "{.MuiDialog-paper{min-width:280px;max-height:80vh;max-width:80vw;}.MuiDialogTitle-root,.dot-dialog-title{align-items:center;display:flex;flex-wrap:nowrap;padding:", ";h2{flex-grow:1;}.dot-icon-button{margin-left:", ";}}.dot-dialog-content{padding:", ";overflow-y:auto;}.dot-dialog-actions{padding:", ";.cancel-button{color:inherit;}}}"], rootClassName$t, theme.spacing(1, 2), theme.spacing(1), theme.spacing(1, 2), theme.spacing(1)));
|
|
4052
3946
|
|
|
4053
3947
|
const DotDialog = ({
|
|
4054
3948
|
ariaLabel,
|
|
@@ -4065,39 +3959,32 @@ const DotDialog = ({
|
|
|
4065
3959
|
submitButtonProps,
|
|
4066
3960
|
title
|
|
4067
3961
|
}) => {
|
|
4068
|
-
const rootClasses = useStylesWithRootClass(rootClassName$
|
|
3962
|
+
const rootClasses = useStylesWithRootClass(rootClassName$t, className);
|
|
4069
3963
|
const cancelClasses = useStylesWithRootClass(cancelButtonProps === null || cancelButtonProps === void 0 ? void 0 : cancelButtonProps.className, 'cancel-button');
|
|
4070
3964
|
const [isOpen, setIsOpen] = useState(open);
|
|
4071
3965
|
useEffect(() => {
|
|
4072
3966
|
setIsOpen(open);
|
|
4073
3967
|
}, [open]);
|
|
4074
|
-
|
|
4075
3968
|
const handleCancel = event => {
|
|
4076
3969
|
if (onCancel) {
|
|
4077
3970
|
onCancel(event);
|
|
4078
3971
|
}
|
|
4079
|
-
|
|
4080
3972
|
handleClose();
|
|
4081
3973
|
};
|
|
4082
|
-
|
|
4083
3974
|
const handleClickAway = event => {
|
|
4084
3975
|
if (_closeOnClickAway) {
|
|
4085
3976
|
handleCancel(event);
|
|
4086
3977
|
}
|
|
4087
3978
|
};
|
|
4088
|
-
|
|
4089
3979
|
const handleClose = () => {
|
|
4090
3980
|
setIsOpen(false);
|
|
4091
3981
|
};
|
|
4092
|
-
|
|
4093
3982
|
const handleSubmit = event => {
|
|
4094
3983
|
if (onSubmit) {
|
|
4095
3984
|
onSubmit(event);
|
|
4096
3985
|
}
|
|
4097
|
-
|
|
4098
3986
|
handleClose();
|
|
4099
3987
|
};
|
|
4100
|
-
|
|
4101
3988
|
return jsxs(StyledDialog, Object.assign({
|
|
4102
3989
|
"aria-label": ariaLabel,
|
|
4103
3990
|
"aria-labelledby": "MuiDialogTitle-root",
|
|
@@ -4171,11 +4058,9 @@ const DotConfirmationDialog = ({
|
|
|
4171
4058
|
title: _title = ''
|
|
4172
4059
|
}) => {
|
|
4173
4060
|
const rootClasses = useStylesWithRootClass('dot-confirmation-dialog', className);
|
|
4174
|
-
|
|
4175
4061
|
if (_message === '' && _title === '') {
|
|
4176
4062
|
_title = 'Please confirm';
|
|
4177
4063
|
}
|
|
4178
|
-
|
|
4179
4064
|
return jsx(DotDialog, Object.assign({
|
|
4180
4065
|
ariaLabel: ariaLabel,
|
|
4181
4066
|
cancelButtonProps: cancelButtonProps,
|
|
@@ -4191,10 +4076,8 @@ const DotConfirmationDialog = ({
|
|
|
4191
4076
|
}), void 0);
|
|
4192
4077
|
};
|
|
4193
4078
|
|
|
4194
|
-
const rootClassName$
|
|
4195
|
-
|
|
4079
|
+
const rootClassName$s = 'dot-grid';
|
|
4196
4080
|
const frGetter = value => typeof value === 'number' ? `repeat(${value}, 1fr)` : value;
|
|
4197
|
-
|
|
4198
4081
|
const breakpointsGetter$1 = (theme, columnsBreakpoints, columnGap, rowGap) => `${theme.breakpoints.up('xs')} {
|
|
4199
4082
|
column-gap: ${`${columnGap.xs}px`};
|
|
4200
4083
|
grid-template-columns: ${frGetter(columnsBreakpoints.xs)};
|
|
@@ -4220,7 +4103,6 @@ const breakpointsGetter$1 = (theme, columnsBreakpoints, columnGap, rowGap) => `$
|
|
|
4220
4103
|
grid-template-columns: ${frGetter(columnsBreakpoints.lg)};
|
|
4221
4104
|
row-gap: ${`${rowGap.xl}px`};
|
|
4222
4105
|
}`;
|
|
4223
|
-
|
|
4224
4106
|
const defaultGutter = {
|
|
4225
4107
|
xs: 16,
|
|
4226
4108
|
sm: 16,
|
|
@@ -4239,7 +4121,7 @@ const Grid = ({
|
|
|
4239
4121
|
className,
|
|
4240
4122
|
children
|
|
4241
4123
|
}) => {
|
|
4242
|
-
const rootClasses = useStylesWithRootClass(rootClassName$
|
|
4124
|
+
const rootClasses = useStylesWithRootClass(rootClassName$s, className);
|
|
4243
4125
|
return jsx("div", Object.assign({
|
|
4244
4126
|
className: rootClasses
|
|
4245
4127
|
}, {
|
|
@@ -4260,7 +4142,7 @@ const StyledGrid = styled(Grid).withConfig({
|
|
|
4260
4142
|
rows,
|
|
4261
4143
|
theme,
|
|
4262
4144
|
width
|
|
4263
|
-
}) => css(["&.", "{display:grid;grid-template-rows:", ";", " ", " ", " ", " ", ""], rootClassName$
|
|
4145
|
+
}) => css(["&.", "{display:grid;grid-template-rows:", ";", " ", " ", " ", " ", ""], rootClassName$s, frGetter(rows), columns ? `${columns && `grid-template-columns: ${frGetter(columns)}`};` : breakpointsGetter$1(theme, _columnsBreakpoints, _columnGap, _rowGap), gridTemplateAreas && `grid-template-areas: ${gridTemplateAreas};`, gap && `grid-gap: ${gap};`, width && `width: ${width};`, height && `height: ${height};`));
|
|
4264
4146
|
const CssGrid = props => {
|
|
4265
4147
|
return jsx(StyledGrid, Object.assign({}, props), void 0);
|
|
4266
4148
|
};
|
|
@@ -4273,7 +4155,6 @@ const breakpointsGetter = (value, theme, breakpoint) => {
|
|
|
4273
4155
|
}
|
|
4274
4156
|
`;
|
|
4275
4157
|
};
|
|
4276
|
-
|
|
4277
4158
|
const Cell = ({
|
|
4278
4159
|
children,
|
|
4279
4160
|
className
|
|
@@ -4331,16 +4212,12 @@ const CssGridDebug = ({
|
|
|
4331
4212
|
showInfo: _showInfo = false
|
|
4332
4213
|
}) => {
|
|
4333
4214
|
const theme = useTheme();
|
|
4334
|
-
|
|
4335
4215
|
const getWidth = () => window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;
|
|
4336
|
-
|
|
4337
4216
|
const [width, setWidth] = useState(getWidth());
|
|
4338
4217
|
const [columns, setColumns] = useState(12);
|
|
4339
|
-
|
|
4340
4218
|
const resizeListener = () => {
|
|
4341
4219
|
getColumns();
|
|
4342
4220
|
};
|
|
4343
|
-
|
|
4344
4221
|
useEffect(() => {
|
|
4345
4222
|
window.addEventListener('resize', resizeListener);
|
|
4346
4223
|
getColumns();
|
|
@@ -4349,31 +4226,24 @@ const CssGridDebug = ({
|
|
|
4349
4226
|
window.removeEventListener('resize', resizeListener);
|
|
4350
4227
|
};
|
|
4351
4228
|
}, []);
|
|
4352
|
-
|
|
4353
4229
|
const getColumns = () => {
|
|
4354
4230
|
setWidth(getWidth());
|
|
4355
|
-
|
|
4356
4231
|
if (getWidth() > theme.breakpoints.values.xs) {
|
|
4357
4232
|
setColumns(defaultColumns.sm);
|
|
4358
4233
|
}
|
|
4359
|
-
|
|
4360
4234
|
if (getWidth() > theme.breakpoints.values.md) {
|
|
4361
4235
|
setColumns(defaultColumns.md);
|
|
4362
4236
|
}
|
|
4363
|
-
|
|
4364
4237
|
if (getWidth() > theme.breakpoints.values.lg) {
|
|
4365
4238
|
setColumns(defaultColumns.lg);
|
|
4366
4239
|
}
|
|
4367
|
-
|
|
4368
4240
|
if (getWidth() > theme.breakpoints.values.xl) {
|
|
4369
4241
|
setColumns(defaultColumns.xl);
|
|
4370
4242
|
}
|
|
4371
|
-
|
|
4372
4243
|
if (getWidth() < theme.breakpoints.values.sm) {
|
|
4373
4244
|
setColumns(defaultColumns.xs);
|
|
4374
4245
|
}
|
|
4375
4246
|
};
|
|
4376
|
-
|
|
4377
4247
|
return jsxs(StyledDivContainer, Object.assign({
|
|
4378
4248
|
className: gridClassContainer
|
|
4379
4249
|
}, {
|
|
@@ -4428,7 +4298,7 @@ const CssGridDebug = ({
|
|
|
4428
4298
|
}), void 0);
|
|
4429
4299
|
};
|
|
4430
4300
|
|
|
4431
|
-
const rootClassName$
|
|
4301
|
+
const rootClassName$r = 'dot-empty-state';
|
|
4432
4302
|
const StyledEmptyState = styled.div.withConfig({
|
|
4433
4303
|
displayName: "EmptyStatestyles__StyledEmptyState",
|
|
4434
4304
|
componentId: "sc-1sftmht-0"
|
|
@@ -4446,7 +4316,7 @@ const DotEmptyState = ({
|
|
|
4446
4316
|
subtitle,
|
|
4447
4317
|
title
|
|
4448
4318
|
}) => {
|
|
4449
|
-
const rootClasses = useStylesWithRootClass(rootClassName$
|
|
4319
|
+
const rootClasses = useStylesWithRootClass(rootClassName$r, className);
|
|
4450
4320
|
return jsxs(StyledEmptyState, Object.assign({
|
|
4451
4321
|
"aria-label": ariaLabel,
|
|
4452
4322
|
className: rootClasses,
|
|
@@ -4482,15 +4352,15 @@ const StyledRadioGroup = styled(RadioGroup).withConfig({
|
|
|
4482
4352
|
componentId: "sc-84g3mq-1"
|
|
4483
4353
|
})(["", ""], ({
|
|
4484
4354
|
theme
|
|
4485
|
-
}) => css(["{&.", "{padding-left:", ";.", "{margin:0;}}"], groupClassName, theme.spacing(2.5), rootClassName$
|
|
4355
|
+
}) => css(["{&.", "{padding-left:", ";.", "{margin:0;}}"], groupClassName, theme.spacing(2.5), rootClassName$y));
|
|
4486
4356
|
|
|
4487
|
-
const rootClassName$
|
|
4357
|
+
const rootClassName$q = 'dot-form';
|
|
4488
4358
|
const StyledFormContainer = styled.div.withConfig({
|
|
4489
4359
|
displayName: "Formstyles__StyledFormContainer",
|
|
4490
4360
|
componentId: "bbovqo-0"
|
|
4491
4361
|
})(["", ""], ({
|
|
4492
4362
|
theme
|
|
4493
|
-
}) => css(["&.", "{margin:", ";.", ",.", ",.", ",.", "{margin:", ";}.", ",.", "{.", "{margin:0;}}}"], rootClassName$
|
|
4363
|
+
}) => css(["&.", "{margin:", ";.", ",.", ",.", ",.", "{margin:", ";}.", ",.", "{.", "{margin:0;}}}"], rootClassName$q, theme.spacing(3, 0), rootClassName$w, rootClassName$y, rootClassName$Y, rootSelectClassName, theme.spacing(1, 0), rootClassName$v, groupClassName, rootClassName$y));
|
|
4494
4364
|
|
|
4495
4365
|
const DotForm = ({
|
|
4496
4366
|
ariaLabel,
|
|
@@ -4499,7 +4369,7 @@ const DotForm = ({
|
|
|
4499
4369
|
'data-testid': dataTestId,
|
|
4500
4370
|
onSubmit
|
|
4501
4371
|
}) => {
|
|
4502
|
-
const rootClasses = useStylesWithRootClass(rootClassName$
|
|
4372
|
+
const rootClasses = useStylesWithRootClass(rootClassName$q, className);
|
|
4503
4373
|
return jsx("form", Object.assign({
|
|
4504
4374
|
"aria-label": ariaLabel,
|
|
4505
4375
|
"data-testid": dataTestId,
|
|
@@ -4514,15 +4384,14 @@ const DotForm = ({
|
|
|
4514
4384
|
}), void 0);
|
|
4515
4385
|
};
|
|
4516
4386
|
|
|
4517
|
-
const rootClassName$
|
|
4387
|
+
const rootClassName$p = 'dot-dynamic-form';
|
|
4518
4388
|
const StyledDynamicForm = styled(DotForm).withConfig({
|
|
4519
4389
|
displayName: "DynamicFormstyles__StyledDynamicForm",
|
|
4520
4390
|
componentId: "sc-1lnljcn-0"
|
|
4521
|
-
})(["", ""], () => css(["&.", "{}"], rootClassName$
|
|
4391
|
+
})(["", ""], () => css(["&.", "{}"], rootClassName$p));
|
|
4522
4392
|
|
|
4523
4393
|
const DATA_CONTROLS = ['dot-autocomplete', 'dot-checkbox', 'dot-checkbox-group', 'dot-input-select', 'dot-input-text', 'dot-radio-group', 'dot-switch'];
|
|
4524
4394
|
/* Array of control types for which we don't have error state so validation doesn't make any sense */
|
|
4525
|
-
|
|
4526
4395
|
const DATA_CONTROLS_WITHOUT_VALIDATION = ['dot-checkbox', 'dot-switch'];
|
|
4527
4396
|
const INITIAL_STATE_ITEM = {
|
|
4528
4397
|
errorMessage: null,
|
|
@@ -4536,17 +4405,14 @@ const getControlValue = (controlName, data) => {
|
|
|
4536
4405
|
};
|
|
4537
4406
|
const getOutputFormData = formState => {
|
|
4538
4407
|
const outputData = {};
|
|
4539
|
-
|
|
4540
4408
|
for (const dataKey in formState.data) {
|
|
4541
4409
|
outputData[dataKey] = formState.data[dataKey].value;
|
|
4542
4410
|
}
|
|
4543
|
-
|
|
4544
4411
|
return outputData;
|
|
4545
4412
|
};
|
|
4546
4413
|
const checkIfHiddenControl = (hidden, formValues) => {
|
|
4547
4414
|
if (!hidden) return false;
|
|
4548
4415
|
if (typeof hidden === 'boolean') return hidden;
|
|
4549
|
-
|
|
4550
4416
|
try {
|
|
4551
4417
|
return hidden(formValues);
|
|
4552
4418
|
} catch (e) {
|
|
@@ -4556,14 +4422,12 @@ const checkIfHiddenControl = (hidden, formValues) => {
|
|
|
4556
4422
|
const checkIfDisabledControl = (disabled, formValues, isFormValid) => {
|
|
4557
4423
|
if (!disabled) return false;
|
|
4558
4424
|
if (typeof disabled === 'boolean') return disabled;
|
|
4559
|
-
|
|
4560
4425
|
try {
|
|
4561
4426
|
return disabled(formValues, isFormValid);
|
|
4562
4427
|
} catch (e) {
|
|
4563
4428
|
return false;
|
|
4564
4429
|
}
|
|
4565
4430
|
};
|
|
4566
|
-
|
|
4567
4431
|
const getInitialValueFromControl = ({
|
|
4568
4432
|
controlType,
|
|
4569
4433
|
initialValue
|
|
@@ -4573,7 +4437,6 @@ const getInitialValueFromControl = ({
|
|
|
4573
4437
|
if (!DATA_CONTROLS.includes(controlType)) return;
|
|
4574
4438
|
return initialValue ? initialValue : undefined;
|
|
4575
4439
|
};
|
|
4576
|
-
|
|
4577
4440
|
const getFormDataFromInitialValues = config => {
|
|
4578
4441
|
const formValues = {};
|
|
4579
4442
|
config.controls.forEach(control => {
|
|
@@ -4581,8 +4444,8 @@ const getFormDataFromInitialValues = config => {
|
|
|
4581
4444
|
controlName,
|
|
4582
4445
|
formSection,
|
|
4583
4446
|
controlType
|
|
4584
|
-
} = control;
|
|
4585
|
-
|
|
4447
|
+
} = control;
|
|
4448
|
+
// Check if there are section controls and grab initial values from those
|
|
4586
4449
|
if (formSection && formSection.sectionControls) {
|
|
4587
4450
|
formSection.sectionControls.forEach(formSectionControl => {
|
|
4588
4451
|
const {
|
|
@@ -4594,7 +4457,6 @@ const getFormDataFromInitialValues = config => {
|
|
|
4594
4457
|
formValues[sectionControlName] = sectionControlInitialValue ? sectionControlInitialValue : undefined;
|
|
4595
4458
|
});
|
|
4596
4459
|
}
|
|
4597
|
-
|
|
4598
4460
|
if (!DATA_CONTROLS.includes(controlType)) return;
|
|
4599
4461
|
const initialValue = getInitialValueFromControl(control);
|
|
4600
4462
|
formValues[controlName] = initialValue ? initialValue : undefined;
|
|
@@ -4605,7 +4467,6 @@ const getFormDataFromInitialValues = config => {
|
|
|
4605
4467
|
const checkIfValidationApplies = (validationField, formValues) => {
|
|
4606
4468
|
const condition = validationField.condition;
|
|
4607
4469
|
if (!condition) return true;
|
|
4608
|
-
|
|
4609
4470
|
try {
|
|
4610
4471
|
return condition(formValues);
|
|
4611
4472
|
} catch (e) {
|
|
@@ -4632,7 +4493,6 @@ const getEmptyValueValidationError = (validation, formValues) => {
|
|
|
4632
4493
|
if (validation.isRequired && checkIfValidationApplies(validation.isRequired, formValues)) {
|
|
4633
4494
|
return getRequiredFieldValidationError(validation);
|
|
4634
4495
|
}
|
|
4635
|
-
|
|
4636
4496
|
return null;
|
|
4637
4497
|
};
|
|
4638
4498
|
const getStringValidationError = (value, validation, formValues) => {
|
|
@@ -4649,73 +4509,63 @@ const getArrayValidationError = (array, validation, formValues) => {
|
|
|
4649
4509
|
};
|
|
4650
4510
|
const getCustomValidationError = (value, validation) => {
|
|
4651
4511
|
const customValidation = validation.customValidator(value);
|
|
4652
|
-
|
|
4653
4512
|
if (!customValidation.isValid) {
|
|
4654
4513
|
return {
|
|
4655
4514
|
isValid: false,
|
|
4656
4515
|
errorMessage: customValidation.errorMessage
|
|
4657
4516
|
};
|
|
4658
4517
|
}
|
|
4659
|
-
|
|
4660
4518
|
return null;
|
|
4661
4519
|
};
|
|
4662
4520
|
const getFieldValidation = (value, validation, formValues) => {
|
|
4663
4521
|
var _a;
|
|
4664
|
-
|
|
4665
4522
|
const fieldValidation = {
|
|
4666
4523
|
isValid: true,
|
|
4667
4524
|
errorMessage: null
|
|
4668
|
-
};
|
|
4669
|
-
|
|
4525
|
+
};
|
|
4526
|
+
// No validation checks are defined on the field
|
|
4670
4527
|
if (!validation) return fieldValidation;
|
|
4671
|
-
const isRequired = !!((_a = validation.isRequired) === null || _a === void 0 ? void 0 : _a.value);
|
|
4672
|
-
|
|
4528
|
+
const isRequired = !!((_a = validation.isRequired) === null || _a === void 0 ? void 0 : _a.value);
|
|
4529
|
+
// Check if required but with no value
|
|
4673
4530
|
if (isRequired && checkIfEmptyValue$1(value)) {
|
|
4674
4531
|
const emptyValueError = getEmptyValueValidationError(validation, formValues);
|
|
4675
4532
|
if (emptyValueError) return emptyValueError;
|
|
4676
|
-
}
|
|
4677
|
-
|
|
4678
|
-
|
|
4533
|
+
}
|
|
4534
|
+
// String validations
|
|
4679
4535
|
if (checkIfString(value)) {
|
|
4680
4536
|
const stringValidationError = getStringValidationError(value, validation, formValues);
|
|
4681
4537
|
if (stringValidationError) return stringValidationError;
|
|
4682
|
-
}
|
|
4683
|
-
|
|
4684
|
-
|
|
4538
|
+
}
|
|
4539
|
+
// Array validations
|
|
4685
4540
|
if (checkIfArray(value)) {
|
|
4686
4541
|
const arrayValidationError = getArrayValidationError(value, validation, formValues);
|
|
4687
4542
|
if (arrayValidationError) return arrayValidationError;
|
|
4688
4543
|
}
|
|
4689
|
-
|
|
4690
4544
|
if (validation.customValidator) {
|
|
4691
4545
|
const customValidatorError = getCustomValidationError(value, validation);
|
|
4692
4546
|
if (customValidatorError) return customValidatorError;
|
|
4693
4547
|
}
|
|
4694
|
-
|
|
4695
4548
|
return fieldValidation;
|
|
4696
4549
|
};
|
|
4697
4550
|
const getControlValidationFromConfig = (controlName, config) => {
|
|
4698
|
-
const formControl = config.controls.find(control => control.controlName === controlName);
|
|
4551
|
+
const formControl = config.controls.find(control => control.controlName === controlName);
|
|
4552
|
+
// Returned undefined if there is no such form control or is included in
|
|
4699
4553
|
// array of controls for which we don't do validation
|
|
4700
|
-
|
|
4701
4554
|
if (!formControl || DATA_CONTROLS_WITHOUT_VALIDATION.includes(formControl.controlType)) return;
|
|
4702
4555
|
return formControl.validation;
|
|
4703
4556
|
};
|
|
4704
4557
|
const checkIfFormDataValid = formState => {
|
|
4705
4558
|
if (!formState || !('data' in formState)) return false;
|
|
4706
4559
|
const formData = formState.data;
|
|
4707
|
-
|
|
4708
4560
|
for (const formDataKey in formData) {
|
|
4709
4561
|
const formValues = getOutputFormData(formState);
|
|
4710
4562
|
const isHidden = checkIfHiddenControl(formData[formDataKey].hidden, formValues);
|
|
4711
4563
|
if (!formData[formDataKey].isValid && !isHidden) return false;
|
|
4712
4564
|
}
|
|
4713
|
-
|
|
4714
4565
|
return true;
|
|
4715
4566
|
};
|
|
4716
4567
|
|
|
4717
4568
|
const DELAY_MS = 300;
|
|
4718
|
-
|
|
4719
4569
|
const EndAdornment = ({
|
|
4720
4570
|
endAdornmentTooltip,
|
|
4721
4571
|
error,
|
|
@@ -4728,30 +4578,25 @@ const EndAdornment = ({
|
|
|
4728
4578
|
"data-testid": dataTestId && `${dataTestId}-${iconType}-icon`,
|
|
4729
4579
|
iconId: `${iconType}-solid`
|
|
4730
4580
|
}, void 0);
|
|
4731
|
-
|
|
4732
4581
|
const errorIcon = error && renderIcon('error');
|
|
4733
4582
|
const successIcon = success && renderIcon('check');
|
|
4734
4583
|
const warningIcon = warning && renderIcon('warning');
|
|
4735
4584
|
const endAdornmentIcon = endIcon || errorIcon || warningIcon || successIcon;
|
|
4736
|
-
|
|
4737
4585
|
const styledAdornment = jsx(StyledAdornment, Object.assign({
|
|
4738
4586
|
className: `${adornmentIconClassName} end`,
|
|
4739
4587
|
position: "end"
|
|
4740
4588
|
}, {
|
|
4741
4589
|
children: endAdornmentIcon
|
|
4742
4590
|
}), void 0);
|
|
4743
|
-
|
|
4744
4591
|
return endAdornmentTooltip ? jsx(DotTooltip, Object.assign({
|
|
4745
4592
|
title: endAdornmentTooltip
|
|
4746
4593
|
}, {
|
|
4747
4594
|
children: styledAdornment
|
|
4748
4595
|
}), void 0) : styledAdornment;
|
|
4749
4596
|
};
|
|
4750
|
-
|
|
4751
4597
|
const getInitialState = value => ({
|
|
4752
4598
|
inputValue: value || ''
|
|
4753
4599
|
});
|
|
4754
|
-
|
|
4755
4600
|
const DotInputText = ({
|
|
4756
4601
|
autoComplete: _autoComplete = 'off',
|
|
4757
4602
|
autoFocus,
|
|
@@ -4792,19 +4637,19 @@ const DotInputText = ({
|
|
|
4792
4637
|
const hasError = _error && errorClassName;
|
|
4793
4638
|
const hasWarning = !_error && _warning && warningClassName;
|
|
4794
4639
|
const hasSuccess = !_error && !_warning && success && successClassName;
|
|
4795
|
-
const hasEndAdornmentIcon = endIcon || _error || hasWarning || hasSuccess;
|
|
4796
|
-
|
|
4640
|
+
const hasEndAdornmentIcon = endIcon || _error || hasWarning || hasSuccess;
|
|
4641
|
+
// This state is used only with debounce feature enabled
|
|
4797
4642
|
const [inputTextState, setInputTextState] = useState(hasDebounce && getInitialState(value));
|
|
4798
|
-
const rootStyles = useStylesWithRootClass(rootClassName$Y, className, hasError, hasWarning, hasSuccess, _readOnly ? 'read-only' : '');
|
|
4643
|
+
const rootStyles = useStylesWithRootClass(rootClassName$Y, className, hasError, hasWarning, hasSuccess, _readOnly ? 'read-only' : '');
|
|
4644
|
+
// Used to control text value from the consumer component
|
|
4799
4645
|
// when debounce feature is enabled
|
|
4800
|
-
|
|
4801
4646
|
useEffect(() => {
|
|
4802
4647
|
if (hasDebounce && value !== inputTextState.inputValue) {
|
|
4803
4648
|
setInputTextState(getInitialState(value));
|
|
4804
4649
|
}
|
|
4805
|
-
}, [value]);
|
|
4650
|
+
}, [value]);
|
|
4651
|
+
// Improve performance by avoiding callback execution
|
|
4806
4652
|
// on each keystroke (if debounce feature is active)
|
|
4807
|
-
|
|
4808
4653
|
useEffect(() => {
|
|
4809
4654
|
// Do not proceed if debounce feature is turned
|
|
4810
4655
|
// off or there is no event defined
|
|
@@ -4814,7 +4659,6 @@ const DotInputText = ({
|
|
|
4814
4659
|
}, DELAY_MS);
|
|
4815
4660
|
return () => clearTimeout(handler);
|
|
4816
4661
|
}, [inputTextState]);
|
|
4817
|
-
|
|
4818
4662
|
const handleChange = e => {
|
|
4819
4663
|
// We need to have control over change event and input value separately
|
|
4820
4664
|
// so that we can set initial state via 'value' prop (if needed)
|
|
@@ -4823,12 +4667,10 @@ const DotInputText = ({
|
|
|
4823
4667
|
inputValue: e.target.value
|
|
4824
4668
|
}) : onChange === null || onChange === void 0 ? void 0 : onChange(e);
|
|
4825
4669
|
};
|
|
4826
|
-
|
|
4827
|
-
|
|
4670
|
+
const inputTextValue = hasDebounce ? inputTextState.inputValue : value;
|
|
4671
|
+
// Don't use default value when debounce feature is enabled because
|
|
4828
4672
|
// in that case component is controlled
|
|
4829
|
-
|
|
4830
4673
|
const defaultInputValue = hasDebounce ? undefined : defaultValue;
|
|
4831
|
-
|
|
4832
4674
|
const startAdornmentIcon = () => {
|
|
4833
4675
|
if (!startIcon) return null;
|
|
4834
4676
|
return jsx(StyledAdornment, Object.assign({
|
|
@@ -4838,7 +4680,6 @@ const DotInputText = ({
|
|
|
4838
4680
|
children: startIcon
|
|
4839
4681
|
}), void 0);
|
|
4840
4682
|
};
|
|
4841
|
-
|
|
4842
4683
|
const endAdornmentIcon = () => {
|
|
4843
4684
|
if (!hasEndAdornmentIcon) return null;
|
|
4844
4685
|
return jsx(EndAdornment, Object.assign({}, {
|
|
@@ -4850,7 +4691,6 @@ const DotInputText = ({
|
|
|
4850
4691
|
warning: _warning
|
|
4851
4692
|
}), void 0);
|
|
4852
4693
|
};
|
|
4853
|
-
|
|
4854
4694
|
return jsxs(Fragment$1, {
|
|
4855
4695
|
children: [persistentLabel && jsx(DotInputLabel, Object.assign({}, {
|
|
4856
4696
|
disabled: _disabled,
|
|
@@ -4938,15 +4778,12 @@ const DotInputSelect = ({
|
|
|
4938
4778
|
const hasWarning = !_error && _warning && warningClassName;
|
|
4939
4779
|
const hasSuccess = !_error && !_warning && success && successClassName;
|
|
4940
4780
|
const rootStyles = useStylesWithRootClass(rootSelectClassName, className, hasSuccess, hasWarning, _readOnly ? 'read-only' : '');
|
|
4941
|
-
|
|
4942
4781
|
const getOption = option => {
|
|
4943
4782
|
return typeof option === 'string' ? option : option.option;
|
|
4944
4783
|
};
|
|
4945
|
-
|
|
4946
4784
|
const getValue = option => {
|
|
4947
4785
|
return typeof option === 'string' ? option : (option === null || option === void 0 ? void 0 : option.value) || option.option;
|
|
4948
4786
|
};
|
|
4949
|
-
|
|
4950
4787
|
return jsxs(Fragment$1, {
|
|
4951
4788
|
children: [persistentLabel && jsx(DotInputLabel, Object.assign({}, {
|
|
4952
4789
|
disabled: _disabled,
|
|
@@ -5016,13 +4853,13 @@ const DotInputSelect = ({
|
|
|
5016
4853
|
}, void 0);
|
|
5017
4854
|
};
|
|
5018
4855
|
|
|
5019
|
-
const rootClassName$
|
|
4856
|
+
const rootClassName$o = 'dot-progress-button';
|
|
5020
4857
|
const StyledProgressButton = styled(DotButton).withConfig({
|
|
5021
4858
|
displayName: "ProgressButtonstyles__StyledProgressButton",
|
|
5022
4859
|
componentId: "sc-1fvgky0-0"
|
|
5023
4860
|
})(["", ""], ({
|
|
5024
4861
|
theme
|
|
5025
|
-
}) => css(["&.", "{.hidden{visibility:hidden;}.progress-circle{color:", ";position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;}}"], rootClassName$
|
|
4862
|
+
}) => css(["&.", "{.hidden{visibility:hidden;}.progress-circle{color:", ";position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;}}"], rootClassName$o, theme.palette.layer.n300));
|
|
5026
4863
|
|
|
5027
4864
|
const SPINNER_DEFAULT_SIZE = 20;
|
|
5028
4865
|
const SPINNER_LARGE_SIZE = 24;
|
|
@@ -5041,7 +4878,7 @@ const DotProgressButton = ({
|
|
|
5041
4878
|
tooltip,
|
|
5042
4879
|
type: _type = 'primary'
|
|
5043
4880
|
}) => {
|
|
5044
|
-
const rootClasses = useStylesWithRootClass(rootClassName$
|
|
4881
|
+
const rootClasses = useStylesWithRootClass(rootClassName$o, className);
|
|
5045
4882
|
const isButtonDisabled = _disabled || _isLoading;
|
|
5046
4883
|
const titleClasses = useStylesWithRootClass(_isLoading ? 'hidden' : '');
|
|
5047
4884
|
const progressCircleSize = _size === 'large' ? SPINNER_LARGE_SIZE : SPINNER_DEFAULT_SIZE;
|
|
@@ -5069,11 +4906,11 @@ const DotProgressButton = ({
|
|
|
5069
4906
|
}), void 0);
|
|
5070
4907
|
};
|
|
5071
4908
|
|
|
5072
|
-
const rootClassName$
|
|
4909
|
+
const rootClassName$n = 'dot-radio';
|
|
5073
4910
|
const StyledRadioButton = styled(Radio).withConfig({
|
|
5074
4911
|
displayName: "RadioButtonstyles__StyledRadioButton",
|
|
5075
4912
|
componentId: "brp0sc-0"
|
|
5076
|
-
})(["", ""], () => css(["{&.", "{padding:8px;}"], rootClassName$
|
|
4913
|
+
})(["", ""], () => css(["{&.", "{padding:8px;}"], rootClassName$n));
|
|
5077
4914
|
|
|
5078
4915
|
function DotRadioButton({
|
|
5079
4916
|
ariaLabel,
|
|
@@ -5091,17 +4928,15 @@ function DotRadioButton({
|
|
|
5091
4928
|
size = 'medium',
|
|
5092
4929
|
value
|
|
5093
4930
|
}) {
|
|
5094
|
-
const rootClasses = useStylesWithRootClass(rootClassName$
|
|
5095
|
-
|
|
4931
|
+
const rootClasses = useStylesWithRootClass(rootClassName$y, className);
|
|
5096
4932
|
const handleChange = event => {
|
|
5097
4933
|
onChange && onChange(event, event.target.value);
|
|
5098
4934
|
};
|
|
5099
|
-
|
|
5100
4935
|
const radioControl = jsx(StyledRadioButton, {
|
|
5101
4936
|
"aria-label": ariaLabel,
|
|
5102
4937
|
checked: checked,
|
|
5103
4938
|
classes: {
|
|
5104
|
-
root: rootClassName$
|
|
4939
|
+
root: rootClassName$n
|
|
5105
4940
|
},
|
|
5106
4941
|
color: "primary",
|
|
5107
4942
|
"data-testid": dataTestId,
|
|
@@ -5113,7 +4948,6 @@ function DotRadioButton({
|
|
|
5113
4948
|
required: required,
|
|
5114
4949
|
size: size
|
|
5115
4950
|
}, void 0);
|
|
5116
|
-
|
|
5117
4951
|
return jsx(StyledFormControlLabel, {
|
|
5118
4952
|
className: rootClasses,
|
|
5119
4953
|
control: radioControl,
|
|
@@ -5144,20 +4978,17 @@ const DotRadioGroup = ({
|
|
|
5144
4978
|
size: _size = 'medium'
|
|
5145
4979
|
}) => {
|
|
5146
4980
|
const placement = `${placementClassName}${_labelPlacement}`;
|
|
5147
|
-
const rootClasses = useStylesWithRootClass(rootClassName$
|
|
4981
|
+
const rootClasses = useStylesWithRootClass(rootClassName$w, className, placement);
|
|
5148
4982
|
const radioValue = value || defaultValue;
|
|
5149
4983
|
const [selectedValue, setSelectedValue] = useState(radioValue);
|
|
5150
4984
|
/* This will ensure that value can be updated from the outside */
|
|
5151
|
-
|
|
5152
4985
|
useEffect(() => {
|
|
5153
4986
|
setSelectedValue(radioValue);
|
|
5154
4987
|
}, [radioValue]);
|
|
5155
|
-
|
|
5156
4988
|
const handleChange = event => {
|
|
5157
4989
|
setSelectedValue(event.target.value);
|
|
5158
4990
|
onChange && onChange(event, event.target.value);
|
|
5159
4991
|
};
|
|
5160
|
-
|
|
5161
4992
|
const renderOptions = options ? options.map(({
|
|
5162
4993
|
label: optionLabel,
|
|
5163
4994
|
value: optionValue,
|
|
@@ -5217,7 +5048,7 @@ const DotRadioGroup = ({
|
|
|
5217
5048
|
}), void 0);
|
|
5218
5049
|
};
|
|
5219
5050
|
|
|
5220
|
-
const rootClassName$
|
|
5051
|
+
const rootClassName$m = 'dot-switch';
|
|
5221
5052
|
const StyledSwitch = styled(Switch).withConfig({
|
|
5222
5053
|
displayName: "Switchstyles__StyledSwitch",
|
|
5223
5054
|
componentId: "eign2a-0"
|
|
@@ -5239,12 +5070,10 @@ const DotSwitch = ({
|
|
|
5239
5070
|
onChange,
|
|
5240
5071
|
size: _size = 'medium'
|
|
5241
5072
|
}) => {
|
|
5242
|
-
const rootClasses = useStylesWithRootClass(rootClassName$
|
|
5243
|
-
|
|
5073
|
+
const rootClasses = useStylesWithRootClass(rootClassName$m, className);
|
|
5244
5074
|
const handleChange = event => {
|
|
5245
5075
|
onChange && onChange(event);
|
|
5246
5076
|
};
|
|
5247
|
-
|
|
5248
5077
|
const switchControl = jsx(StyledSwitch, {
|
|
5249
5078
|
checked: checked,
|
|
5250
5079
|
classes: {
|
|
@@ -5261,11 +5090,10 @@ const DotSwitch = ({
|
|
|
5261
5090
|
onChange: handleChange,
|
|
5262
5091
|
size: _size
|
|
5263
5092
|
}, void 0);
|
|
5264
|
-
|
|
5265
5093
|
return jsx(StyledFormControlLabel, {
|
|
5266
|
-
className: rootClassName$
|
|
5094
|
+
className: rootClassName$y,
|
|
5267
5095
|
control: switchControl,
|
|
5268
|
-
label: label
|
|
5096
|
+
label: label,
|
|
5269
5097
|
labelPlacement: _labelPlacement
|
|
5270
5098
|
}, void 0);
|
|
5271
5099
|
};
|
|
@@ -5281,15 +5109,13 @@ const getInitialStateFromControl = ({
|
|
|
5281
5109
|
if (!DATA_CONTROLS.includes(controlType)) return;
|
|
5282
5110
|
const formStateItem = Object.assign({}, INITIAL_STATE_ITEM);
|
|
5283
5111
|
if (hidden) formStateItem.hidden = hidden;
|
|
5284
|
-
|
|
5285
5112
|
if (initialValue !== null && initialValue !== undefined) {
|
|
5286
5113
|
formStateItem.value = initialValue;
|
|
5287
|
-
|
|
5288
5114
|
if (liveValidation) {
|
|
5289
5115
|
const isHidden = checkIfHiddenControl(hidden, formValues);
|
|
5290
|
-
formStateItem.isTouched = true;
|
|
5116
|
+
formStateItem.isTouched = true;
|
|
5117
|
+
// Since it is hidden field we will mark valid field to true so that is doesn't
|
|
5291
5118
|
// prevent form submission
|
|
5292
|
-
|
|
5293
5119
|
if (isHidden) {
|
|
5294
5120
|
formStateItem.isValid = true;
|
|
5295
5121
|
} else {
|
|
@@ -5298,14 +5124,12 @@ const getInitialStateFromControl = ({
|
|
|
5298
5124
|
formStateItem.errorMessage = fieldValidation.errorMessage;
|
|
5299
5125
|
}
|
|
5300
5126
|
}
|
|
5301
|
-
}
|
|
5302
|
-
|
|
5303
|
-
|
|
5127
|
+
}
|
|
5128
|
+
// If no validation always set valid to true
|
|
5304
5129
|
if (!validation || DATA_CONTROLS_WITHOUT_VALIDATION.includes(controlType)) {
|
|
5305
5130
|
// Set always to valid for now
|
|
5306
5131
|
formStateItem.isValid = true;
|
|
5307
5132
|
}
|
|
5308
|
-
|
|
5309
5133
|
return formStateItem;
|
|
5310
5134
|
};
|
|
5311
5135
|
const getInitialFormState = (config, liveValidation) => {
|
|
@@ -5317,8 +5141,8 @@ const getInitialFormState = (config, liveValidation) => {
|
|
|
5317
5141
|
config.controls.forEach(control => {
|
|
5318
5142
|
const {
|
|
5319
5143
|
formSection
|
|
5320
|
-
} = control;
|
|
5321
|
-
|
|
5144
|
+
} = control;
|
|
5145
|
+
// Check if there are form section controls and grab initial state from those
|
|
5322
5146
|
if (formSection && formSection.sectionControls) {
|
|
5323
5147
|
formSection.sectionControls.forEach(formSectionControl => {
|
|
5324
5148
|
const {
|
|
@@ -5329,7 +5153,6 @@ const getInitialFormState = (config, liveValidation) => {
|
|
|
5329
5153
|
initialState.data[formSectionControlName] = sectionFormStateItem;
|
|
5330
5154
|
});
|
|
5331
5155
|
}
|
|
5332
|
-
|
|
5333
5156
|
const {
|
|
5334
5157
|
controlName
|
|
5335
5158
|
} = control;
|
|
@@ -5488,7 +5311,6 @@ const buildButtonControl = ({
|
|
|
5488
5311
|
} = props;
|
|
5489
5312
|
const handleButtonClick = onClick || handleClick ? e => {
|
|
5490
5313
|
var _a;
|
|
5491
|
-
|
|
5492
5314
|
(_a = props.onClick) === null || _a === void 0 ? void 0 : _a.call(props, e);
|
|
5493
5315
|
handleClick === null || handleClick === void 0 ? void 0 : handleClick();
|
|
5494
5316
|
} : undefined;
|
|
@@ -5511,7 +5333,6 @@ const buildProgressButtonControl = ({
|
|
|
5511
5333
|
} = props;
|
|
5512
5334
|
const handleButtonClick = onClick || handleClick ? e => {
|
|
5513
5335
|
var _a;
|
|
5514
|
-
|
|
5515
5336
|
(_a = props.onClick) === null || _a === void 0 ? void 0 : _a.call(props, e);
|
|
5516
5337
|
handleClick === null || handleClick === void 0 ? void 0 : handleClick();
|
|
5517
5338
|
} : undefined;
|
|
@@ -5531,7 +5352,6 @@ const buildResetControl = ({
|
|
|
5531
5352
|
disabled: disabled,
|
|
5532
5353
|
onClick: e => {
|
|
5533
5354
|
var _a;
|
|
5534
|
-
|
|
5535
5355
|
(_a = props.onClick) === null || _a === void 0 ? void 0 : _a.call(props, e);
|
|
5536
5356
|
handleClick();
|
|
5537
5357
|
}
|
|
@@ -5580,16 +5400,16 @@ const DotDynamicForm = ({
|
|
|
5580
5400
|
onChange,
|
|
5581
5401
|
onSubmit
|
|
5582
5402
|
}) => {
|
|
5583
|
-
const rootClasses = useStylesWithRootClass(rootClassName$
|
|
5403
|
+
const rootClasses = useStylesWithRootClass(rootClassName$p, className);
|
|
5404
|
+
// Memoize this operation so that is doesn't get executed each time this
|
|
5584
5405
|
// component re-renders
|
|
5585
|
-
|
|
5586
5406
|
const initialFormState = useMemo(() => getInitialFormState(config, _liveValidation), [config, _liveValidation, getInitialFormState]);
|
|
5587
5407
|
const [formState, setFormState] = useState(initialFormState);
|
|
5588
5408
|
useEffect(() => {
|
|
5589
5409
|
// Skip if live validation is turned off
|
|
5590
5410
|
if (!_liveValidation) return;
|
|
5591
|
-
const currentIsFormValid = checkIfFormDataValid(formState);
|
|
5592
|
-
|
|
5411
|
+
const currentIsFormValid = checkIfFormDataValid(formState);
|
|
5412
|
+
// Check if validity state has changed
|
|
5593
5413
|
if (formState.isValid !== currentIsFormValid) {
|
|
5594
5414
|
setFormState(prevState => {
|
|
5595
5415
|
const newState = Object.assign(Object.assign({}, prevState), {
|
|
@@ -5602,7 +5422,6 @@ const DotDynamicForm = ({
|
|
|
5602
5422
|
onChange === null || onChange === void 0 ? void 0 : onChange(formState);
|
|
5603
5423
|
}
|
|
5604
5424
|
}, [formState]);
|
|
5605
|
-
|
|
5606
5425
|
const getControlValidation = (controlName, controlValue, formConfig) => {
|
|
5607
5426
|
const validation = getControlValidationFromConfig(controlName, formConfig);
|
|
5608
5427
|
const formValues = getOutputFormData(formState);
|
|
@@ -5612,7 +5431,6 @@ const DotDynamicForm = ({
|
|
|
5612
5431
|
errorMessage: fieldValidation.errorMessage
|
|
5613
5432
|
};
|
|
5614
5433
|
};
|
|
5615
|
-
|
|
5616
5434
|
const updateFormState = ({
|
|
5617
5435
|
controlName,
|
|
5618
5436
|
newValue,
|
|
@@ -5620,11 +5438,9 @@ const DotDynamicForm = ({
|
|
|
5620
5438
|
validate: _validate = true
|
|
5621
5439
|
}) => {
|
|
5622
5440
|
let fieldValidation = {};
|
|
5623
|
-
|
|
5624
5441
|
if (_validate && _liveValidation) {
|
|
5625
5442
|
fieldValidation = getControlValidation(controlName, newValue, formConfig);
|
|
5626
5443
|
}
|
|
5627
|
-
|
|
5628
5444
|
setFormState(prevFormState => Object.assign(Object.assign({}, prevFormState), {
|
|
5629
5445
|
data: Object.assign(Object.assign({}, prevFormState.data), {
|
|
5630
5446
|
[controlName]: Object.assign(Object.assign(Object.assign({}, prevFormState.data[controlName]), {
|
|
@@ -5634,12 +5450,10 @@ const DotDynamicForm = ({
|
|
|
5634
5450
|
})
|
|
5635
5451
|
}));
|
|
5636
5452
|
};
|
|
5637
|
-
|
|
5638
5453
|
const validateForm = () => {
|
|
5639
5454
|
const newFormData = {};
|
|
5640
5455
|
const formData = formState.data;
|
|
5641
5456
|
let isValid = true;
|
|
5642
|
-
|
|
5643
5457
|
for (const formDataKey in formData) {
|
|
5644
5458
|
const formControl = formData[formDataKey];
|
|
5645
5459
|
const fieldValidation = getControlValidation(formDataKey, formControl.value, config);
|
|
@@ -5648,18 +5462,15 @@ const DotDynamicForm = ({
|
|
|
5648
5462
|
isValid: isFieldValid,
|
|
5649
5463
|
errorMessage: fieldValidation.errorMessage
|
|
5650
5464
|
});
|
|
5651
|
-
|
|
5652
5465
|
if (!isFieldValid && isValid) {
|
|
5653
5466
|
isValid = false;
|
|
5654
5467
|
}
|
|
5655
5468
|
}
|
|
5656
|
-
|
|
5657
5469
|
setFormState(prevState => Object.assign(Object.assign({}, prevState), {
|
|
5658
5470
|
data: newFormData
|
|
5659
5471
|
}));
|
|
5660
5472
|
return isValid;
|
|
5661
5473
|
};
|
|
5662
|
-
|
|
5663
5474
|
const handleAutocompleteChange = controlName => (_event, value) => {
|
|
5664
5475
|
updateFormState({
|
|
5665
5476
|
controlName,
|
|
@@ -5667,7 +5478,6 @@ const DotDynamicForm = ({
|
|
|
5667
5478
|
newValue: value
|
|
5668
5479
|
});
|
|
5669
5480
|
};
|
|
5670
|
-
|
|
5671
5481
|
const handleCheckChange = controlName => e => {
|
|
5672
5482
|
const newValue = e.target.checked;
|
|
5673
5483
|
updateFormState({
|
|
@@ -5677,7 +5487,6 @@ const DotDynamicForm = ({
|
|
|
5677
5487
|
validate: false
|
|
5678
5488
|
});
|
|
5679
5489
|
};
|
|
5680
|
-
|
|
5681
5490
|
const handleCheckboxGroupChange = controlName => (e, value) => {
|
|
5682
5491
|
updateFormState({
|
|
5683
5492
|
controlName,
|
|
@@ -5685,20 +5494,17 @@ const DotDynamicForm = ({
|
|
|
5685
5494
|
newValue: value
|
|
5686
5495
|
});
|
|
5687
5496
|
};
|
|
5688
|
-
|
|
5689
5497
|
const handleFormSubmit = e => {
|
|
5690
5498
|
e.preventDefault();
|
|
5691
|
-
let isFormValid = true;
|
|
5692
|
-
|
|
5499
|
+
let isFormValid = true;
|
|
5500
|
+
// If live validation is turned off we have to validate form before submitting it
|
|
5693
5501
|
if (!_liveValidation) {
|
|
5694
5502
|
isFormValid = validateForm();
|
|
5695
5503
|
}
|
|
5696
|
-
|
|
5697
5504
|
if (!isFormValid) return;
|
|
5698
5505
|
const formOutputData = getOutputFormData(formState);
|
|
5699
5506
|
onSubmit === null || onSubmit === void 0 ? void 0 : onSubmit(formOutputData);
|
|
5700
5507
|
};
|
|
5701
|
-
|
|
5702
5508
|
const handleInputChange = controlName => e => {
|
|
5703
5509
|
const newValue = e.target.value;
|
|
5704
5510
|
updateFormState({
|
|
@@ -5707,9 +5513,7 @@ const DotDynamicForm = ({
|
|
|
5707
5513
|
newValue
|
|
5708
5514
|
});
|
|
5709
5515
|
};
|
|
5710
|
-
|
|
5711
5516
|
const handleReset = () => setFormState(initialFormState);
|
|
5712
|
-
|
|
5713
5517
|
const buildFormControls = (controls, startIndex = 0) => {
|
|
5714
5518
|
if (!controls || !controls.length) return;
|
|
5715
5519
|
return controls.map(({
|
|
@@ -5725,11 +5529,10 @@ const DotDynamicForm = ({
|
|
|
5725
5529
|
const elementIndex = startIndex + index;
|
|
5726
5530
|
const inputControlName = controlName || `control-${elementIndex}`;
|
|
5727
5531
|
const formValues = getOutputFormData(formState);
|
|
5728
|
-
if (checkIfHiddenControl(hidden, formValues)) return '';
|
|
5532
|
+
if (checkIfHiddenControl(hidden, formValues)) return '';
|
|
5533
|
+
// Control can be disabled when: 1) whole form is disabled, 2.) control is disabled via config prop
|
|
5729
5534
|
// 3.) control is disabled via its own `disable` control prop
|
|
5730
|
-
|
|
5731
5535
|
const isDisabled = isFormDisabled || checkIfDisabledControl(disabled, formValues, formState.isValid) || 'disabled' in _controlProps && _controlProps.disabled;
|
|
5732
|
-
|
|
5733
5536
|
const control = {
|
|
5734
5537
|
controlProps: _controlProps,
|
|
5735
5538
|
disabled: isDisabled,
|
|
@@ -5740,7 +5543,6 @@ const DotDynamicForm = ({
|
|
|
5740
5543
|
controlName: inputControlName,
|
|
5741
5544
|
formData: formState.data
|
|
5742
5545
|
});
|
|
5743
|
-
|
|
5744
5546
|
switch (controlType) {
|
|
5745
5547
|
case 'dot-input-text':
|
|
5746
5548
|
{
|
|
@@ -5748,49 +5550,42 @@ const DotDynamicForm = ({
|
|
|
5748
5550
|
handleChange: handleInputChange
|
|
5749
5551
|
}));
|
|
5750
5552
|
}
|
|
5751
|
-
|
|
5752
5553
|
case 'dot-input-select':
|
|
5753
5554
|
{
|
|
5754
5555
|
return buildInputSelectControl(Object.assign(Object.assign({}, commonControlledInputArgs), {
|
|
5755
5556
|
handleChange: handleInputChange
|
|
5756
5557
|
}));
|
|
5757
5558
|
}
|
|
5758
|
-
|
|
5759
5559
|
case 'dot-autocomplete':
|
|
5760
5560
|
{
|
|
5761
5561
|
return buildAutocompleteControl(Object.assign(Object.assign({}, commonControlledInputArgs), {
|
|
5762
5562
|
handleChange: handleAutocompleteChange
|
|
5763
5563
|
}));
|
|
5764
5564
|
}
|
|
5765
|
-
|
|
5766
5565
|
case 'dot-radio-group':
|
|
5767
5566
|
{
|
|
5768
5567
|
return buildRadioGroupControl(Object.assign(Object.assign({}, commonControlledInputArgs), {
|
|
5769
5568
|
handleChange: handleInputChange
|
|
5770
5569
|
}));
|
|
5771
5570
|
}
|
|
5772
|
-
|
|
5773
5571
|
case 'dot-checkbox':
|
|
5774
5572
|
{
|
|
5775
5573
|
return buildCheckboxControl(Object.assign(Object.assign({}, commonControlledInputArgs), {
|
|
5776
5574
|
handleChange: handleCheckChange
|
|
5777
5575
|
}));
|
|
5778
5576
|
}
|
|
5779
|
-
|
|
5780
5577
|
case 'dot-checkbox-group':
|
|
5781
5578
|
{
|
|
5782
5579
|
return buildCheckboxGroupControl(Object.assign(Object.assign({}, commonControlledInputArgs), {
|
|
5783
5580
|
handleChange: handleCheckboxGroupChange
|
|
5784
5581
|
}));
|
|
5785
5582
|
}
|
|
5786
|
-
|
|
5787
5583
|
case 'dot-switch':
|
|
5788
5584
|
{
|
|
5789
5585
|
return buildSwitchControl(Object.assign(Object.assign({}, commonControlledInputArgs), {
|
|
5790
5586
|
handleChange: handleCheckChange
|
|
5791
5587
|
}));
|
|
5792
5588
|
}
|
|
5793
|
-
|
|
5794
5589
|
case 'dot-button':
|
|
5795
5590
|
{
|
|
5796
5591
|
const handleClick = getControlClickHandler(formValues, onControlClick);
|
|
@@ -5798,7 +5593,6 @@ const DotDynamicForm = ({
|
|
|
5798
5593
|
handleClick
|
|
5799
5594
|
}));
|
|
5800
5595
|
}
|
|
5801
|
-
|
|
5802
5596
|
case 'dot-progress-button':
|
|
5803
5597
|
{
|
|
5804
5598
|
const handleClick = getControlClickHandler(formValues, onControlClick);
|
|
@@ -5806,35 +5600,30 @@ const DotDynamicForm = ({
|
|
|
5806
5600
|
handleClick
|
|
5807
5601
|
}));
|
|
5808
5602
|
}
|
|
5809
|
-
|
|
5810
5603
|
case 'dot-reset':
|
|
5811
5604
|
{
|
|
5812
5605
|
return buildResetControl(Object.assign(Object.assign({}, control), {
|
|
5813
5606
|
handleClick: handleReset
|
|
5814
5607
|
}));
|
|
5815
5608
|
}
|
|
5816
|
-
|
|
5817
5609
|
case 'dot-submit':
|
|
5818
5610
|
{
|
|
5819
5611
|
return buildSubmitControl(Object.assign(Object.assign({}, control), {
|
|
5820
5612
|
formState
|
|
5821
5613
|
}));
|
|
5822
5614
|
}
|
|
5823
|
-
|
|
5824
5615
|
case 'dot-progress-submit':
|
|
5825
5616
|
{
|
|
5826
5617
|
return buildProgressSubmitControl(Object.assign(Object.assign({}, control), {
|
|
5827
5618
|
formState
|
|
5828
5619
|
}));
|
|
5829
5620
|
}
|
|
5830
|
-
|
|
5831
5621
|
case 'custom-element':
|
|
5832
5622
|
{
|
|
5833
5623
|
return jsx(Fragment, {
|
|
5834
5624
|
children: customElement
|
|
5835
5625
|
}, elementIndex);
|
|
5836
5626
|
}
|
|
5837
|
-
|
|
5838
5627
|
case 'dot-form-section':
|
|
5839
5628
|
{
|
|
5840
5629
|
const {
|
|
@@ -5846,7 +5635,6 @@ const DotDynamicForm = ({
|
|
|
5846
5635
|
sectionControls: buildFormControls(sectionControls, sectionStartIndex)
|
|
5847
5636
|
}, elementIndex);
|
|
5848
5637
|
}
|
|
5849
|
-
|
|
5850
5638
|
default:
|
|
5851
5639
|
{
|
|
5852
5640
|
return '';
|
|
@@ -5854,7 +5642,6 @@ const DotDynamicForm = ({
|
|
|
5854
5642
|
}
|
|
5855
5643
|
});
|
|
5856
5644
|
};
|
|
5857
|
-
|
|
5858
5645
|
return jsx(StyledDynamicForm, Object.assign({
|
|
5859
5646
|
ariaLabel: ariaLabel,
|
|
5860
5647
|
className: rootClasses,
|
|
@@ -5865,7 +5652,7 @@ const DotDynamicForm = ({
|
|
|
5865
5652
|
}), void 0);
|
|
5866
5653
|
};
|
|
5867
5654
|
|
|
5868
|
-
const rootClassName$
|
|
5655
|
+
const rootClassName$l = 'dot-inline-edit';
|
|
5869
5656
|
const editModeClassName = 'dot-edit-mode';
|
|
5870
5657
|
const viewModeClassName = 'dot-view-mode';
|
|
5871
5658
|
const readOnlyClassName = 'dot-read-only';
|
|
@@ -5877,7 +5664,7 @@ const StyledInlineEdit = styled.div.withConfig({
|
|
|
5877
5664
|
})(["", ""], ({
|
|
5878
5665
|
theme,
|
|
5879
5666
|
fullWidth
|
|
5880
|
-
}) => css(["&.
|
|
5667
|
+
}) => 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$l, 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
5668
|
typography
|
|
5882
5669
|
}) => typography && `
|
|
5883
5670
|
.MuiInputBase-root {
|
|
@@ -5939,7 +5726,6 @@ const applyBindings = (bindings, inlineEditText) => {
|
|
|
5939
5726
|
} = binding;
|
|
5940
5727
|
let bindingStringIndex = text.indexOf(stringBinding);
|
|
5941
5728
|
let key = 0;
|
|
5942
|
-
|
|
5943
5729
|
while (bindingStringIndex >= 0) {
|
|
5944
5730
|
// Since key is needed only for bindings with className,
|
|
5945
5731
|
// increment key value only if className value is defined
|
|
@@ -5947,16 +5733,16 @@ const applyBindings = (bindings, inlineEditText) => {
|
|
|
5947
5733
|
const nextStartingIndex = bindingStringIndex + stringBinding.length;
|
|
5948
5734
|
const previousText = text.substring(0, bindingStringIndex);
|
|
5949
5735
|
text = text.substring(nextStartingIndex, text.length);
|
|
5950
|
-
bindingStringIndex = text.indexOf(stringBinding);
|
|
5951
|
-
|
|
5736
|
+
bindingStringIndex = text.indexOf(stringBinding);
|
|
5737
|
+
// Add nodes to array
|
|
5952
5738
|
boundNode = [boundNode, previousText, className ? jsx("span", Object.assign({
|
|
5953
5739
|
className: className
|
|
5954
5740
|
}, {
|
|
5955
5741
|
children: value
|
|
5956
5742
|
}), `${index}-${key}`) : value];
|
|
5957
5743
|
}
|
|
5958
|
-
});
|
|
5959
|
-
|
|
5744
|
+
});
|
|
5745
|
+
// Add remainder of the text to the node
|
|
5960
5746
|
boundNode = [boundNode, text];
|
|
5961
5747
|
return boundNode;
|
|
5962
5748
|
};
|
|
@@ -5965,7 +5751,6 @@ const checkIfEmptyValue = inputValue => inputValue.trim() === '';
|
|
|
5965
5751
|
/**
|
|
5966
5752
|
* @experimental This component is still in development
|
|
5967
5753
|
*/
|
|
5968
|
-
|
|
5969
5754
|
const DotInlineEdit = ({
|
|
5970
5755
|
ariaLabel,
|
|
5971
5756
|
bindings,
|
|
@@ -5992,75 +5777,60 @@ const DotInlineEdit = ({
|
|
|
5992
5777
|
const inputRef = useRef();
|
|
5993
5778
|
const inlineEditRef = useRef();
|
|
5994
5779
|
const isSaveDisabled = checkIfEmptyValue(inputValue);
|
|
5995
|
-
const rootClasses = useStylesWithRootClass(rootClassName$
|
|
5996
|
-
|
|
5780
|
+
const rootClasses = useStylesWithRootClass(rootClassName$l, className, editing ? editModeClassName : '');
|
|
5997
5781
|
const handleShowTooltip = visible => {
|
|
5998
5782
|
if (isNotReadOnlyOrEditing) {
|
|
5999
5783
|
setShowTooltip(visible);
|
|
6000
5784
|
}
|
|
6001
5785
|
};
|
|
6002
|
-
|
|
6003
5786
|
const handleInlineEditClick = () => {
|
|
6004
5787
|
if (editing) return;
|
|
6005
5788
|
setOriginalValue(inputValue);
|
|
6006
5789
|
setEditing(true);
|
|
6007
|
-
|
|
6008
5790
|
if (onEditStateChange) {
|
|
6009
5791
|
onEditStateChange(true);
|
|
6010
5792
|
}
|
|
6011
5793
|
};
|
|
6012
|
-
|
|
6013
5794
|
const handleSave = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
6014
5795
|
var _a;
|
|
6015
|
-
|
|
6016
5796
|
setShowTooltip(false);
|
|
6017
5797
|
if (isSaveDisabled) return;
|
|
6018
|
-
|
|
6019
5798
|
if (onChange) {
|
|
6020
5799
|
const isSuccess = yield onChange(inputValue);
|
|
6021
|
-
|
|
6022
5800
|
if (!isSuccess) {
|
|
6023
5801
|
(_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.focus();
|
|
6024
5802
|
return;
|
|
6025
5803
|
}
|
|
6026
5804
|
}
|
|
6027
|
-
|
|
6028
5805
|
setEditing(false);
|
|
6029
|
-
|
|
6030
5806
|
if (onEditStateChange) {
|
|
6031
5807
|
onEditStateChange(false);
|
|
6032
5808
|
}
|
|
6033
5809
|
});
|
|
6034
|
-
|
|
6035
5810
|
const handleCancel = () => {
|
|
6036
5811
|
setShowTooltip(false);
|
|
6037
5812
|
setEditing(false);
|
|
6038
5813
|
setInputValue(originalValue);
|
|
6039
|
-
|
|
6040
5814
|
if (onEditStateChange) {
|
|
6041
5815
|
onEditStateChange(false);
|
|
6042
5816
|
}
|
|
6043
5817
|
};
|
|
6044
|
-
|
|
6045
5818
|
const handleKeyPress = event => __awaiter(void 0, void 0, void 0, function* () {
|
|
6046
5819
|
switch (event.key) {
|
|
6047
5820
|
case 'Enter':
|
|
6048
5821
|
if (!editing) {
|
|
6049
5822
|
handleInlineEditClick();
|
|
6050
5823
|
return;
|
|
6051
|
-
}
|
|
6052
|
-
|
|
6053
|
-
|
|
5824
|
+
}
|
|
5825
|
+
// Save only when Enter is pressed within input field
|
|
6054
5826
|
if (inputRef.current !== event.target) return;
|
|
6055
5827
|
yield handleSave();
|
|
6056
5828
|
break;
|
|
6057
|
-
|
|
6058
5829
|
case 'Escape':
|
|
6059
5830
|
handleCancel();
|
|
6060
5831
|
break;
|
|
6061
5832
|
}
|
|
6062
5833
|
});
|
|
6063
|
-
|
|
6064
5834
|
const handleBlur = event => __awaiter(void 0, void 0, void 0, function* () {
|
|
6065
5835
|
if (!editing) {
|
|
6066
5836
|
setShowTooltip(false);
|
|
@@ -6070,20 +5840,16 @@ const DotInlineEdit = ({
|
|
|
6070
5840
|
}
|
|
6071
5841
|
}
|
|
6072
5842
|
});
|
|
6073
|
-
|
|
6074
5843
|
const renderEndAdornment = () => {
|
|
6075
5844
|
if (isSaveDisabled) {
|
|
6076
5845
|
return getWarningAdornment();
|
|
6077
5846
|
}
|
|
6078
|
-
|
|
6079
5847
|
if (charactersLimit && !charactersLimit.hideCounter) {
|
|
6080
5848
|
return getCounterAdornment(inputValue.length, charactersLimit.maxLength, dataTestId);
|
|
6081
5849
|
}
|
|
6082
5850
|
};
|
|
6083
|
-
|
|
6084
5851
|
const renderViewMode = () => {
|
|
6085
5852
|
const viewModeClasses = useStylesWithRootClass(viewModeClassName, readOnly ? readOnlyClassName : '');
|
|
6086
|
-
|
|
6087
5853
|
const viewModeChildren = jsxs(Fragment$1, {
|
|
6088
5854
|
children: [jsx(DotTypography, Object.assign({
|
|
6089
5855
|
className: "dot-view-mode-typography",
|
|
@@ -6097,7 +5863,6 @@ const DotInlineEdit = ({
|
|
|
6097
5863
|
iconId: "edit"
|
|
6098
5864
|
}, void 0)]
|
|
6099
5865
|
}, void 0);
|
|
6100
|
-
|
|
6101
5866
|
return tooltip ? jsx(DotTooltip, Object.assign({
|
|
6102
5867
|
title: tooltip,
|
|
6103
5868
|
className: viewModeClasses,
|
|
@@ -6112,7 +5877,6 @@ const DotInlineEdit = ({
|
|
|
6112
5877
|
children: viewModeChildren
|
|
6113
5878
|
}), void 0);
|
|
6114
5879
|
};
|
|
6115
|
-
|
|
6116
5880
|
const renderEditMode = () => {
|
|
6117
5881
|
const textFieldClasses = useStylesWithRootClass(editTextFieldClassName, isSaveDisabled ? 'dot-empty-value' : '');
|
|
6118
5882
|
return jsxs(Fragment$1, {
|
|
@@ -6168,7 +5932,6 @@ const DotInlineEdit = ({
|
|
|
6168
5932
|
}), void 0)]
|
|
6169
5933
|
}, void 0);
|
|
6170
5934
|
};
|
|
6171
|
-
|
|
6172
5935
|
return jsx(StyledInlineEdit, Object.assign({
|
|
6173
5936
|
"aria-label": ariaLabel,
|
|
6174
5937
|
className: rootClasses,
|
|
@@ -6188,14 +5951,14 @@ const DotInlineEdit = ({
|
|
|
6188
5951
|
}), void 0);
|
|
6189
5952
|
};
|
|
6190
5953
|
|
|
6191
|
-
const rootClassName$
|
|
5954
|
+
const rootClassName$k = 'dot-navigation-rail';
|
|
6192
5955
|
const StyledNavigationRail = styled.div.withConfig({
|
|
6193
5956
|
displayName: "NavigationRailstyles__StyledNavigationRail",
|
|
6194
5957
|
componentId: "sc-160kivd-0"
|
|
6195
5958
|
})(["", ""], ({
|
|
6196
5959
|
theme,
|
|
6197
5960
|
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;word-break:break-word;.dot-icon{color:", ";}&.selected{background-color:", ";}&:focus-visible{background-color:", ";}.MuiButton-label{display:flex;flex-direction:column;.rail-item-text{word-break:break-word;}}}}"], rootClassName$
|
|
5961
|
+
}) => 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;word-break:break-word;.dot-icon{color:", ";}&.selected{background-color:", ";}&:focus-visible{background-color:", ";}.MuiButton-label{display:flex;flex-direction:column;.rail-item-text{word-break:break-word;}}}}"], rootClassName$k, 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));
|
|
6199
5962
|
|
|
6200
5963
|
const MAX_ALLOWED_ITEMS = 7;
|
|
6201
5964
|
const DotNavigationRail = ({
|
|
@@ -6207,34 +5970,28 @@ const DotNavigationRail = ({
|
|
|
6207
5970
|
railItems,
|
|
6208
5971
|
selectedIndex: _selectedIndex = 0
|
|
6209
5972
|
}) => {
|
|
6210
|
-
const rootClasses = useStylesWithRootClass(rootClassName$
|
|
5973
|
+
const rootClasses = useStylesWithRootClass(rootClassName$k, className);
|
|
6211
5974
|
const [selectedItemIndex, setSelectedItemIndex] = useState(_selectedIndex);
|
|
6212
5975
|
/* Used to change selected index programmatically from the consumer component */
|
|
6213
|
-
|
|
6214
5976
|
useEffect(() => {
|
|
6215
5977
|
setSelectedItemIndex(_selectedIndex);
|
|
6216
5978
|
}, [_selectedIndex]);
|
|
6217
|
-
|
|
6218
5979
|
const onItemSelect = index => () => {
|
|
6219
5980
|
setSelectedItemIndex(index);
|
|
6220
5981
|
onChange && onChange(index);
|
|
6221
5982
|
};
|
|
6222
|
-
|
|
6223
5983
|
const checkIfSelected = index => selectedItemIndex === index;
|
|
6224
|
-
|
|
6225
5984
|
const renderIcon = (iconId, railIconBadge) => {
|
|
6226
5985
|
const icon = jsx(DotIcon, {
|
|
6227
5986
|
className: "rail-item-button-icon",
|
|
6228
5987
|
iconId: iconId
|
|
6229
5988
|
}, void 0);
|
|
6230
|
-
|
|
6231
5989
|
if (!railIconBadge) return icon;
|
|
6232
5990
|
return jsx(DotBadge, Object.assign({}, railIconBadge, {
|
|
6233
5991
|
className: "rail-item-badge",
|
|
6234
5992
|
children: icon
|
|
6235
5993
|
}), void 0);
|
|
6236
5994
|
};
|
|
6237
|
-
|
|
6238
5995
|
const renderRailItems = () => {
|
|
6239
5996
|
return railItems === null || railItems === void 0 ? void 0 : railItems.slice(0, MAX_ALLOWED_ITEMS).map(({
|
|
6240
5997
|
ariaLabel: itemAriaLabel,
|
|
@@ -6257,7 +6014,6 @@ const DotNavigationRail = ({
|
|
|
6257
6014
|
}), void 0)]
|
|
6258
6015
|
}), index));
|
|
6259
6016
|
};
|
|
6260
|
-
|
|
6261
6017
|
return jsx(StyledNavigationRail, Object.assign({
|
|
6262
6018
|
"aria-label": ariaLabel,
|
|
6263
6019
|
className: rootClasses,
|
|
@@ -6268,13 +6024,13 @@ const DotNavigationRail = ({
|
|
|
6268
6024
|
}), void 0);
|
|
6269
6025
|
};
|
|
6270
6026
|
|
|
6271
|
-
const rootClassName$
|
|
6027
|
+
const rootClassName$j = 'dot-pill';
|
|
6272
6028
|
const StyledPill = styled(Chip).withConfig({
|
|
6273
6029
|
displayName: "Pillstyles__StyledPill",
|
|
6274
6030
|
componentId: "l7oxi2-0"
|
|
6275
6031
|
})(["", ""], ({
|
|
6276
6032
|
theme
|
|
6277
|
-
}) => css(["&.", "{background-color:", ";color:", ";border-color:", ";&.error{background-color:", ";color:", ";}&.success{background-color:", ";color:", ";}&.warning{background-color:", ";color:", ";}&.in-progress{background-color:", ";color:", ";}"], rootClassName$
|
|
6033
|
+
}) => css(["&.", "{background-color:", ";color:", ";border-color:", ";&.error{background-color:", ";color:", ";}&.success{background-color:", ";color:", ";}&.warning{background-color:", ";color:", ";}&.in-progress{background-color:", ";color:", ";}"], rootClassName$j, ({
|
|
6278
6034
|
backgroundcolor
|
|
6279
6035
|
}) => {
|
|
6280
6036
|
return backgroundcolor || theme.palette.grey[200];
|
|
@@ -6301,7 +6057,7 @@ const DotPill = ({
|
|
|
6301
6057
|
status: _status = 'default',
|
|
6302
6058
|
variant: _variant = 'filled'
|
|
6303
6059
|
}) => {
|
|
6304
|
-
const rootClasses = useStylesWithRootClass(rootClassName$
|
|
6060
|
+
const rootClasses = useStylesWithRootClass(rootClassName$j, className, _status);
|
|
6305
6061
|
return jsx(StyledPill, {
|
|
6306
6062
|
"aria-label": ariaLabel,
|
|
6307
6063
|
bordercolor: bordercolor,
|
|
@@ -6319,13 +6075,13 @@ const DotPill = ({
|
|
|
6319
6075
|
}, void 0);
|
|
6320
6076
|
};
|
|
6321
6077
|
|
|
6322
|
-
const rootClassName$
|
|
6078
|
+
const rootClassName$i = 'dot-skeleton';
|
|
6323
6079
|
const StyledSkeleton = styled(Skeleton).withConfig({
|
|
6324
6080
|
displayName: "Skeletonstyles__StyledSkeleton",
|
|
6325
6081
|
componentId: "sc-17ayzv5-0"
|
|
6326
6082
|
})(["", ""], ({
|
|
6327
6083
|
theme
|
|
6328
|
-
}) => css(["&.", "{background-color:", ";}"], rootClassName$
|
|
6084
|
+
}) => css(["&.", "{background-color:", ";}"], rootClassName$i, theme.palette.grey[100]));
|
|
6329
6085
|
|
|
6330
6086
|
const DotSkeleton = ({
|
|
6331
6087
|
ariaLabel,
|
|
@@ -6336,7 +6092,7 @@ const DotSkeleton = ({
|
|
|
6336
6092
|
width,
|
|
6337
6093
|
variant
|
|
6338
6094
|
}) => {
|
|
6339
|
-
const rootClasses = useStylesWithRootClass(rootClassName$
|
|
6095
|
+
const rootClasses = useStylesWithRootClass(rootClassName$i, className);
|
|
6340
6096
|
return jsx(StyledSkeleton, Object.assign({
|
|
6341
6097
|
animation: "wave",
|
|
6342
6098
|
"aria-label": ariaLabel,
|
|
@@ -6352,13 +6108,13 @@ const DotSkeleton = ({
|
|
|
6352
6108
|
}), void 0);
|
|
6353
6109
|
};
|
|
6354
6110
|
|
|
6355
|
-
const rootClassName$
|
|
6111
|
+
const rootClassName$h = 'dot-snackbar';
|
|
6356
6112
|
const StyledSnackbar = styled(Snackbar).withConfig({
|
|
6357
6113
|
displayName: "Snackbarstyles__StyledSnackbar",
|
|
6358
6114
|
componentId: "sc-1huxoy3-0"
|
|
6359
6115
|
})(["", ""], ({
|
|
6360
6116
|
theme
|
|
6361
|
-
}) => css(["&.", "{.MuiSvgIcon-root{color:", ";}.MuiAlert-icon{padding:11px 0px;}.MuiAlert-message{padding:13px 0px;}&.MuiSnackbar-anchorOriginTopRight{top:0px;z-index:", ";}.MuiAlert-root{&.MuiAlert-standardInfo{background-color:", ";}&.MuiAlert-standardWarning{color:", ";.MuiSvgIcon-root{color:", ";}}max-width:500px;min-width:344px;color:", ";z-index:", ";position:relative;margin-top:108px;background-color:", ";@media (min-width:720px){.MuiAlert-root{top:112px;position:relative;}}}"], rootClassName$
|
|
6117
|
+
}) => css(["&.", "{.MuiSvgIcon-root{color:", ";}.MuiAlert-icon{padding:11px 0px;}.MuiAlert-message{padding:13px 0px;}&.MuiSnackbar-anchorOriginTopRight{top:0px;z-index:", ";}.MuiAlert-root{&.MuiAlert-standardInfo{background-color:", ";}&.MuiAlert-standardWarning{color:", ";.MuiSvgIcon-root{color:", ";}}max-width:500px;min-width:344px;color:", ";z-index:", ";position:relative;margin-top:108px;background-color:", ";@media (min-width:720px){.MuiAlert-root{top:112px;position:relative;}}}"], rootClassName$h, theme.palette.layer.n0, levelFourth, theme.palette.primary[500], theme.palette.grey[900], theme.palette.grey[900], theme.palette.layer.n0, levelFourth, props => theme.palette[props.severity].main));
|
|
6362
6118
|
|
|
6363
6119
|
function addAutoHideDuration(severity) {
|
|
6364
6120
|
return severity === 'error' ? null : 10000;
|
|
@@ -6372,7 +6128,6 @@ function checkForConflictingEventHandlers({
|
|
|
6372
6128
|
console.error('You have passed two event handlers for action buttons. Please pick one.');
|
|
6373
6129
|
}
|
|
6374
6130
|
}
|
|
6375
|
-
|
|
6376
6131
|
const DEFAULT_ANCHOR_ORIGIN = {
|
|
6377
6132
|
vertical: 'top',
|
|
6378
6133
|
horizontal: 'right'
|
|
@@ -6394,7 +6149,7 @@ const DotSnackbar = ({
|
|
|
6394
6149
|
onClose,
|
|
6395
6150
|
action
|
|
6396
6151
|
});
|
|
6397
|
-
const rootClasses = useStylesWithRootClass(rootClassName$
|
|
6152
|
+
const rootClasses = useStylesWithRootClass(rootClassName$h, className);
|
|
6398
6153
|
return jsx(StyledSnackbar, Object.assign({
|
|
6399
6154
|
anchorOrigin: _anchorOrigin,
|
|
6400
6155
|
"aria-label": ariaLabel,
|
|
@@ -6424,11 +6179,11 @@ const DotSnackbar = ({
|
|
|
6424
6179
|
}), void 0);
|
|
6425
6180
|
};
|
|
6426
6181
|
|
|
6427
|
-
const rootClassName$
|
|
6182
|
+
const rootClassName$g = 'dot-snackbar-container';
|
|
6428
6183
|
const StyledSnackbarContainer = styled.div.withConfig({
|
|
6429
6184
|
displayName: "SnackbarContainerstyles__StyledSnackbarContainer",
|
|
6430
6185
|
componentId: "sc-1ogwjuc-0"
|
|
6431
|
-
})(["", ""], () => css(["&.", "{position:absolute;top:0;width:250px;height:auto;right:0;& > div{position:relative;}}"], rootClassName$
|
|
6186
|
+
})(["", ""], () => css(["&.", "{position:absolute;top:0;width:250px;height:auto;right:0;& > div{position:relative;}}"], rootClassName$g));
|
|
6432
6187
|
|
|
6433
6188
|
const DotSnackbarContext = /*#__PURE__*/createContext({
|
|
6434
6189
|
alerts: [],
|
|
@@ -6440,19 +6195,17 @@ const DotSnackbarContainer = () => {
|
|
|
6440
6195
|
alerts,
|
|
6441
6196
|
removeMessage
|
|
6442
6197
|
} = useDotSnackbarContext();
|
|
6443
|
-
|
|
6444
6198
|
function handleClose(id) {
|
|
6445
6199
|
return () => {
|
|
6446
6200
|
removeMessage(id);
|
|
6447
6201
|
};
|
|
6448
6202
|
}
|
|
6449
|
-
|
|
6450
6203
|
return jsx(StyledSnackbarContainer, Object.assign({
|
|
6451
|
-
className: rootClassName$
|
|
6204
|
+
className: rootClassName$g
|
|
6452
6205
|
}, {
|
|
6453
6206
|
children: jsx("div", Object.assign({
|
|
6454
|
-
className: rootClassName$
|
|
6455
|
-
"data-testid": rootClassName$
|
|
6207
|
+
className: rootClassName$g,
|
|
6208
|
+
"data-testid": rootClassName$g
|
|
6456
6209
|
}, {
|
|
6457
6210
|
children: alerts.slice().reverse().map(alert => {
|
|
6458
6211
|
return jsx(DotSnackbar, Object.assign({
|
|
@@ -6470,7 +6223,6 @@ const DotSnackbarProvider = ({
|
|
|
6470
6223
|
children
|
|
6471
6224
|
}) => {
|
|
6472
6225
|
const [alerts, setAlerts] = useState([]);
|
|
6473
|
-
|
|
6474
6226
|
function enqueueMessage(message, severity) {
|
|
6475
6227
|
const id = CreateUUID();
|
|
6476
6228
|
const queue = {
|
|
@@ -6483,7 +6235,6 @@ const DotSnackbarProvider = ({
|
|
|
6483
6235
|
return [...prevState, Object.assign({}, queue)];
|
|
6484
6236
|
});
|
|
6485
6237
|
}
|
|
6486
|
-
|
|
6487
6238
|
const removeMessage = id => {
|
|
6488
6239
|
setAlerts(prev => {
|
|
6489
6240
|
return prev.map(a => {
|
|
@@ -6493,7 +6244,6 @@ const DotSnackbarProvider = ({
|
|
|
6493
6244
|
});
|
|
6494
6245
|
});
|
|
6495
6246
|
};
|
|
6496
|
-
|
|
6497
6247
|
const DotSnackbarValues = {
|
|
6498
6248
|
alerts,
|
|
6499
6249
|
enqueueMessage,
|
|
@@ -6510,13 +6260,13 @@ const useDotSnackbarContext = () => {
|
|
|
6510
6260
|
return useContext(DotSnackbarContext);
|
|
6511
6261
|
};
|
|
6512
6262
|
|
|
6513
|
-
const rootClassName$
|
|
6263
|
+
const rootClassName$f = 'dot-split-button-group';
|
|
6514
6264
|
const StyledSplitButtonGroup = styled(ButtonGroup).withConfig({
|
|
6515
6265
|
displayName: "SplitButtonstyles__StyledSplitButtonGroup",
|
|
6516
6266
|
componentId: "ild520-0"
|
|
6517
6267
|
})(["", ""], ({
|
|
6518
6268
|
theme
|
|
6519
|
-
}) => css(["&.", "{box-shadow:0px 3px 1px -2px rgb(0 0 0 / 20%),0px 2px 2px 0px rgb(0 0 0 / 14%),0px 1px 5px 0px rgb(0 0 0 / 12%);&.disabled{box-shadow:none;.dot-button{background:", ";border:1px solid ", ";}}&.outlined,&.text{box-shadow:none;.expand-button{border-left:none;}}&.outlined .dot-button{border-color:", ";}&.destructive .expand-button{border-left-color:", ";}.dot-button{box-shadow:none;margin:0;padding:", ";}.label-button{border-top-right-radius:0;border-bottom-right-radius:0;}.expand-button{border-left:1px solid ", ";border-top-left-radius:0;border-bottom-left-radius:0;&.Mui-disabled{border-left:0;}.MuiButton-label,.dot-icon{width:14px;height:14px;}}}"], rootClassName$
|
|
6269
|
+
}) => css(["&.", "{box-shadow:0px 3px 1px -2px rgb(0 0 0 / 20%),0px 2px 2px 0px rgb(0 0 0 / 14%),0px 1px 5px 0px rgb(0 0 0 / 12%);&.disabled{box-shadow:none;.dot-button{background:", ";border:1px solid ", ";}}&.outlined,&.text{box-shadow:none;.expand-button{border-left:none;}}&.outlined .dot-button{border-color:", ";}&.destructive .expand-button{border-left-color:", ";}.dot-button{box-shadow:none;margin:0;padding:", ";}.label-button{border-top-right-radius:0;border-bottom-right-radius:0;}.expand-button{border-left:1px solid ", ";border-top-left-radius:0;border-bottom-left-radius:0;&.Mui-disabled{border-left:0;}.MuiButton-label,.dot-icon{width:14px;height:14px;}}}"], rootClassName$f, theme.palette.grey['50'], theme.palette.grey['200'], theme.palette.grey['300'], theme.palette.error['800'], theme.spacing(0.75, 1.5), theme.palette.primary['800']));
|
|
6520
6270
|
const StyledMenu$2 = styled(DotMenu).withConfig({
|
|
6521
6271
|
displayName: "SplitButtonstyles__StyledMenu",
|
|
6522
6272
|
componentId: "ild520-1"
|
|
@@ -6545,15 +6295,13 @@ const DotSplitButton = ({
|
|
|
6545
6295
|
tooltip,
|
|
6546
6296
|
type: _type = 'primary'
|
|
6547
6297
|
}) => {
|
|
6548
|
-
const rootClasses = useStylesWithRootClass(rootClassName$
|
|
6298
|
+
const rootClasses = useStylesWithRootClass(rootClassName$f, className, _type, _disabled ? 'disabled' : '');
|
|
6549
6299
|
const [open, setOpen] = useState(false);
|
|
6550
6300
|
const anchorRef = useRef(null);
|
|
6551
6301
|
const hasEmptyOptions = _options.length === 0;
|
|
6552
6302
|
const mainOptionIndex = getMainOptionIndex(_options, defaultMainOptionKey);
|
|
6553
6303
|
const mainOption = _options[mainOptionIndex];
|
|
6554
|
-
|
|
6555
6304
|
const dropdownOptions = _options.filter((_option, index) => index !== mainOptionIndex);
|
|
6556
|
-
|
|
6557
6305
|
const {
|
|
6558
6306
|
children: mainOptionChildren = 'Empty button',
|
|
6559
6307
|
disabled: mainOptionDisabled = false,
|
|
@@ -6561,12 +6309,10 @@ const DotSplitButton = ({
|
|
|
6561
6309
|
} = mainOption || {};
|
|
6562
6310
|
const isMainOptionDisabled = _disabled || hasEmptyOptions || mainOptionDisabled;
|
|
6563
6311
|
const isMenuButtonDisabled = _disabled || hasEmptyOptions || _options.length === 1;
|
|
6564
|
-
|
|
6565
6312
|
const handleClick = (_event, _menuId, itemKey) => {
|
|
6566
6313
|
setOpen(false);
|
|
6567
6314
|
onOptionClick(itemKey);
|
|
6568
6315
|
};
|
|
6569
|
-
|
|
6570
6316
|
return jsxs(Fragment$1, {
|
|
6571
6317
|
children: [jsxs(StyledSplitButtonGroup, Object.assign({
|
|
6572
6318
|
"aria-label": ariaLabel,
|
|
@@ -6615,18 +6361,17 @@ const DotSplitButton = ({
|
|
|
6615
6361
|
}, void 0);
|
|
6616
6362
|
};
|
|
6617
6363
|
|
|
6618
|
-
const rootClassName$
|
|
6364
|
+
const rootClassName$e = 'dot-table-pagination';
|
|
6619
6365
|
const StyledTablePagination = styled.div.withConfig({
|
|
6620
6366
|
displayName: "TablePaginationstyles__StyledTablePagination",
|
|
6621
6367
|
componentId: "bs7p0b-0"
|
|
6622
6368
|
})(["", ""], ({
|
|
6623
6369
|
theme,
|
|
6624
6370
|
typography
|
|
6625
|
-
}) => css([".", "{border-top:1px solid ", ";.dot-caption{font-size:", ";margin:0;}.dot-menu,.MuiInputBase-root{margin-bottom:0;}}"], rootClassName$
|
|
6371
|
+
}) => css([".", "{border-top:1px solid ", ";.dot-caption{font-size:", ";margin:0;}.dot-menu,.MuiInputBase-root{margin-bottom:0;}}"], rootClassName$e, theme.palette.grey[200], theme.typography[typography].fontSize));
|
|
6626
6372
|
|
|
6627
6373
|
const ROWS_PER_PAGE_OPTIONS = [10, 25, 50, 100, 150, 200];
|
|
6628
6374
|
/** This component wraps the TablePagination component from @material-ui. */
|
|
6629
|
-
|
|
6630
6375
|
const DotTablePagination = ({
|
|
6631
6376
|
ariaLabel,
|
|
6632
6377
|
className,
|
|
@@ -6638,18 +6383,14 @@ const DotTablePagination = ({
|
|
|
6638
6383
|
rowsPerPage: _rowsPerPage = 10,
|
|
6639
6384
|
typography: _typography = 'body1'
|
|
6640
6385
|
}) => {
|
|
6641
|
-
const rootClasses = useStylesWithRootClass(rootClassName$
|
|
6642
|
-
|
|
6386
|
+
const rootClasses = useStylesWithRootClass(rootClassName$e, className);
|
|
6643
6387
|
const handlePageChange = (event, newPage) => {
|
|
6644
6388
|
onPageChange && onPageChange(newPage);
|
|
6645
6389
|
};
|
|
6646
|
-
|
|
6647
6390
|
const handleChangeRowsPerPage = evt => {
|
|
6648
6391
|
onRowsPerPageChange && onRowsPerPageChange(evt);
|
|
6649
6392
|
};
|
|
6650
|
-
|
|
6651
|
-
return (
|
|
6652
|
-
/* Container is used to pass 'typography' prop to a styled component */
|
|
6393
|
+
return (/* Container is used to pass 'typography' prop to a styled component */
|
|
6653
6394
|
jsx(StyledTablePagination, Object.assign({
|
|
6654
6395
|
typography: _typography
|
|
6655
6396
|
}, {
|
|
@@ -6676,13 +6417,13 @@ const DotTablePagination = ({
|
|
|
6676
6417
|
);
|
|
6677
6418
|
};
|
|
6678
6419
|
|
|
6679
|
-
const rootClassName$
|
|
6420
|
+
const rootClassName$d = 'dot-table';
|
|
6680
6421
|
const StyledPaper = styled(Paper).withConfig({
|
|
6681
6422
|
displayName: "Tablestyles__StyledPaper",
|
|
6682
6423
|
componentId: "s95z6y-0"
|
|
6683
6424
|
})(["", ""], ({
|
|
6684
6425
|
theme
|
|
6685
|
-
}) => css(["&.", "{overflow:hidden;border:1px solid ", ";&.loading{opacity:0.4;pointer-events:none;.dot-table-pagination{display:none;}}}"], rootClassName$
|
|
6426
|
+
}) => css(["&.", "{overflow:hidden;border:1px solid ", ";&.loading{opacity:0.4;pointer-events:none;.dot-table-pagination{display:none;}}}"], rootClassName$d, theme.palette.layer.n100));
|
|
6686
6427
|
const StyledTableContainer = styled(TableContainer).withConfig({
|
|
6687
6428
|
displayName: "Tablestyles__StyledTableContainer",
|
|
6688
6429
|
componentId: "s95z6y-1"
|
|
@@ -6694,7 +6435,8 @@ const StyledMenu$1 = styled(DotMenu).withConfig({
|
|
|
6694
6435
|
componentId: "s95z6y-2"
|
|
6695
6436
|
})([".dot-ul > li{padding:0;> button{width:100%;margin:0;justify-content:flex-start;}}"]);
|
|
6696
6437
|
|
|
6697
|
-
const getFormattedTableCellValue = (
|
|
6438
|
+
const getFormattedTableCellValue = (
|
|
6439
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
6698
6440
|
value, typographyVariant) => {
|
|
6699
6441
|
if (isString(value) || isNumber(value)) {
|
|
6700
6442
|
return jsx(DotTypography, Object.assign({
|
|
@@ -6704,34 +6446,29 @@ value, typographyVariant) => {
|
|
|
6704
6446
|
children: value
|
|
6705
6447
|
}), void 0);
|
|
6706
6448
|
}
|
|
6707
|
-
|
|
6708
6449
|
return value;
|
|
6709
|
-
};
|
|
6450
|
+
};
|
|
6451
|
+
// If maxHeight is provided, make this the max height for the
|
|
6710
6452
|
// table container. If it is not provided but stickyHeader is true,
|
|
6711
6453
|
// calculate a max height based on screen size.
|
|
6712
|
-
|
|
6713
6454
|
const getContainerMaxHeightStyle = (stickyHeader, maxHeight) => {
|
|
6714
6455
|
const maxHeightStickyHeader = stickyHeader ? 'calc(100vh - 76px)' : '';
|
|
6715
6456
|
return maxHeight ? maxHeight : maxHeightStickyHeader;
|
|
6716
6457
|
};
|
|
6717
6458
|
const getSelectedRowIds = (id, isChecked, selectedIds) => {
|
|
6718
6459
|
const newIds = [...selectedIds];
|
|
6719
|
-
|
|
6720
6460
|
if (isChecked) {
|
|
6721
6461
|
!selectedIds.includes(id) && newIds.push(id);
|
|
6722
6462
|
} else {
|
|
6723
6463
|
const index = selectedIds.indexOf(id);
|
|
6724
|
-
|
|
6725
6464
|
if (index > -1) {
|
|
6726
6465
|
newIds.splice(index, 1);
|
|
6727
6466
|
}
|
|
6728
6467
|
}
|
|
6729
|
-
|
|
6730
6468
|
return newIds;
|
|
6731
6469
|
};
|
|
6732
6470
|
const getBulkSelectedRowIds = (isChecked, selectedIds, pageData) => {
|
|
6733
6471
|
const newIds = [...selectedIds];
|
|
6734
|
-
|
|
6735
6472
|
if (isChecked) {
|
|
6736
6473
|
pageData.forEach(({
|
|
6737
6474
|
id
|
|
@@ -6745,26 +6482,23 @@ const getBulkSelectedRowIds = (isChecked, selectedIds, pageData) => {
|
|
|
6745
6482
|
id
|
|
6746
6483
|
}) => {
|
|
6747
6484
|
const index = newIds.indexOf(id);
|
|
6748
|
-
|
|
6749
6485
|
if (index > -1) {
|
|
6750
6486
|
newIds.splice(index, 1);
|
|
6751
6487
|
}
|
|
6752
6488
|
});
|
|
6753
6489
|
}
|
|
6754
|
-
|
|
6755
6490
|
return newIds;
|
|
6756
6491
|
};
|
|
6757
6492
|
|
|
6758
|
-
const rootClassName$
|
|
6493
|
+
const rootClassName$c = 'dot-td';
|
|
6759
6494
|
const StyledTableCell = styled(TableCell).withConfig({
|
|
6760
6495
|
displayName: "TableCellstyles__StyledTableCell",
|
|
6761
6496
|
componentId: "e84k25-0"
|
|
6762
|
-
})(["", ""], () => css(["&.", "{padding-top:0;padding-bottom:0;&.noWrap,&.actionItems{max-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}&.actionItems{text-overflow:clip;text-align:right;}.action-cell-wrapper{width:100%;}}"], rootClassName$
|
|
6497
|
+
})(["", ""], () => css(["&.", "{padding-top:0;padding-bottom:0;&.noWrap,&.actionItems{max-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}&.actionItems{text-overflow:clip;text-align:right;}.action-cell-wrapper{width:100%;}}"], rootClassName$c));
|
|
6763
6498
|
|
|
6764
6499
|
/**
|
|
6765
6500
|
* A wrapper component around the TableCell component from @material-ui.
|
|
6766
6501
|
*/
|
|
6767
|
-
|
|
6768
6502
|
const DotBodyCell = ({
|
|
6769
6503
|
ariaLabel,
|
|
6770
6504
|
align,
|
|
@@ -6783,12 +6517,11 @@ const DotBodyCell = ({
|
|
|
6783
6517
|
const noWrapTableCell = document.getElementsByClassName('noWrap');
|
|
6784
6518
|
Array.from(noWrapTableCell).forEach(truncatedText => {
|
|
6785
6519
|
const isOverflowing = truncatedText.clientWidth < truncatedText.scrollWidth || truncatedText.clientHeight < truncatedText.scrollHeight;
|
|
6786
|
-
|
|
6787
6520
|
if (isOverflowing) {
|
|
6788
6521
|
truncatedText.setAttribute('title', truncatedText.innerText);
|
|
6789
6522
|
}
|
|
6790
|
-
});
|
|
6791
|
-
|
|
6523
|
+
});
|
|
6524
|
+
// on window resize, set action column to menu or icon button
|
|
6792
6525
|
if (Array.isArray(value)) {
|
|
6793
6526
|
getActionColumn();
|
|
6794
6527
|
window.addEventListener('resize', getActionColumn);
|
|
@@ -6796,8 +6529,8 @@ const DotBodyCell = ({
|
|
|
6796
6529
|
window.removeEventListener('resize', Array.isArray(value) && getActionColumn);
|
|
6797
6530
|
};
|
|
6798
6531
|
}
|
|
6799
|
-
}, []);
|
|
6800
|
-
|
|
6532
|
+
}, []);
|
|
6533
|
+
// Logic to determine action column as menu or icon button
|
|
6801
6534
|
const getActionColumn = () => {
|
|
6802
6535
|
const iconBtnWidth = document.getElementsByClassName('dot-table-action-icon');
|
|
6803
6536
|
const getTotalActionItem = Array.isArray(value) && value.length;
|
|
@@ -6805,9 +6538,7 @@ const DotBodyCell = ({
|
|
|
6805
6538
|
const isOverflowing = actionTableCellWidth > (wrapperRef === null || wrapperRef === void 0 ? void 0 : wrapperRef.current.clientWidth);
|
|
6806
6539
|
setShowMenu(isOverflowing);
|
|
6807
6540
|
};
|
|
6808
|
-
|
|
6809
|
-
const rootClasses = useStylesWithRootClass(rootClassName$d, className, noWrap && 'noWrap', Array.isArray(value) && 'actionItems');
|
|
6810
|
-
|
|
6541
|
+
const rootClasses = useStylesWithRootClass(rootClassName$c, className, noWrap && 'noWrap', Array.isArray(value) && 'actionItems');
|
|
6811
6542
|
const getTableCellValue = () => {
|
|
6812
6543
|
if (Array.isArray(value)) {
|
|
6813
6544
|
return jsx("div", Object.assign({
|
|
@@ -6832,10 +6563,8 @@ const DotBodyCell = ({
|
|
|
6832
6563
|
}, `${cellKey}-icon-${index}`))
|
|
6833
6564
|
}), void 0);
|
|
6834
6565
|
}
|
|
6835
|
-
|
|
6836
6566
|
return getFormattedTableCellValue(value, typography);
|
|
6837
6567
|
};
|
|
6838
|
-
|
|
6839
6568
|
return jsx(StyledTableCell, Object.assign({
|
|
6840
6569
|
align: align,
|
|
6841
6570
|
"aria-label": ariaLabel,
|
|
@@ -6849,13 +6578,13 @@ const DotBodyCell = ({
|
|
|
6849
6578
|
}), void 0);
|
|
6850
6579
|
};
|
|
6851
6580
|
|
|
6852
|
-
const rootClassName$
|
|
6581
|
+
const rootClassName$b = 'dot-td-checkbox';
|
|
6853
6582
|
const StyledTableBodyCheckboxCell = styled(TableCell).withConfig({
|
|
6854
6583
|
displayName: "TableBodyCheckboxCellstyles__StyledTableBodyCheckboxCell",
|
|
6855
6584
|
componentId: "ebk3sz-0"
|
|
6856
6585
|
})(["", ""], ({
|
|
6857
6586
|
theme
|
|
6858
|
-
}) => css(["&.", "{.dot-form-control-label{margin:0;}width:", ";padding:", ";}"], rootClassName$
|
|
6587
|
+
}) => css(["&.", "{.dot-form-control-label{margin:0;}width:", ";padding:", ";}"], rootClassName$b, theme.spacing(5), theme.spacing(0, 1)));
|
|
6859
6588
|
|
|
6860
6589
|
const DotBodyCheckboxCell = ({
|
|
6861
6590
|
ariaLabel,
|
|
@@ -6865,20 +6594,17 @@ const DotBodyCheckboxCell = ({
|
|
|
6865
6594
|
onChange,
|
|
6866
6595
|
rowId
|
|
6867
6596
|
}) => {
|
|
6868
|
-
const rootClasses = useStylesWithRootClass(rootClassName$
|
|
6597
|
+
const rootClasses = useStylesWithRootClass(rootClassName$b, className);
|
|
6869
6598
|
const [isCheckboxChecked, setIsCheckboxChecked] = useState(isChecked);
|
|
6870
6599
|
/** This effect is used when 'checked' status is changed from the outside */
|
|
6871
|
-
|
|
6872
6600
|
useEffect(() => {
|
|
6873
6601
|
setIsCheckboxChecked(isChecked);
|
|
6874
6602
|
}, [isChecked]);
|
|
6875
|
-
|
|
6876
6603
|
const handleChange = e => {
|
|
6877
6604
|
const checked = e.target.checked;
|
|
6878
6605
|
setIsCheckboxChecked(checked);
|
|
6879
6606
|
onChange(checked, rowId);
|
|
6880
6607
|
};
|
|
6881
|
-
|
|
6882
6608
|
return jsx(StyledTableBodyCheckboxCell, Object.assign({
|
|
6883
6609
|
align: "left",
|
|
6884
6610
|
className: rootClasses,
|
|
@@ -6894,19 +6620,18 @@ const DotBodyCheckboxCell = ({
|
|
|
6894
6620
|
}), void 0);
|
|
6895
6621
|
};
|
|
6896
6622
|
|
|
6897
|
-
const rootClassName$
|
|
6623
|
+
const rootClassName$a = 'dot-tr';
|
|
6898
6624
|
const StyledTableRowStyles = styled(TableRow).withConfig({
|
|
6899
6625
|
displayName: "TableRowstyles__StyledTableRowStyles",
|
|
6900
6626
|
componentId: "a4fx2l-0"
|
|
6901
6627
|
})(["", ""], ({
|
|
6902
6628
|
theme
|
|
6903
|
-
}) => css(["&.", "{&.selected{background-color:", ";}}"], rootClassName$
|
|
6629
|
+
}) => css(["&.", "{&.selected{background-color:", ";}}"], rootClassName$a, theme.palette.primary[50]));
|
|
6904
6630
|
|
|
6905
6631
|
/**
|
|
6906
6632
|
* A wrapper component around the TableRow component from @material-ui. This component can be used
|
|
6907
6633
|
* for manipulating data prior to displaying the data inside the table
|
|
6908
6634
|
*/
|
|
6909
|
-
|
|
6910
6635
|
const DotTableRow = ({
|
|
6911
6636
|
columns,
|
|
6912
6637
|
className,
|
|
@@ -6920,18 +6645,15 @@ const DotTableRow = ({
|
|
|
6920
6645
|
}) => {
|
|
6921
6646
|
const id = data.id;
|
|
6922
6647
|
const rowData = data.rowData;
|
|
6923
|
-
|
|
6924
6648
|
const handleOnClick = event => {
|
|
6925
6649
|
onClick && onClick(event, id.toString());
|
|
6926
6650
|
};
|
|
6927
|
-
|
|
6928
6651
|
const {
|
|
6929
6652
|
onCheckIndividualChange,
|
|
6930
6653
|
selectedTableRowIds
|
|
6931
6654
|
} = multiSelectBody || {};
|
|
6932
6655
|
const isCheckboxChecked = selectedTableRowIds && selectedTableRowIds.includes(id) || false;
|
|
6933
|
-
const rootClasses = useStylesWithRootClass(rootClassName$
|
|
6934
|
-
|
|
6656
|
+
const rootClasses = useStylesWithRootClass(rootClassName$a, isCheckboxChecked ? 'selected' : undefined, className);
|
|
6935
6657
|
const renderCheckboxCell = () => {
|
|
6936
6658
|
return jsx(DotBodyCheckboxCell, {
|
|
6937
6659
|
ariaLabel: "Click to select this row",
|
|
@@ -6940,7 +6662,6 @@ const DotTableRow = ({
|
|
|
6940
6662
|
rowId: id
|
|
6941
6663
|
}, void 0);
|
|
6942
6664
|
};
|
|
6943
|
-
|
|
6944
6665
|
return jsxs(StyledTableRowStyles, Object.assign({
|
|
6945
6666
|
classes: {
|
|
6946
6667
|
root: rootClasses
|
|
@@ -6977,19 +6698,18 @@ const EmptyDotRow = ({
|
|
|
6977
6698
|
}), CreateUUID());
|
|
6978
6699
|
};
|
|
6979
6700
|
|
|
6980
|
-
const rootClassName$
|
|
6701
|
+
const rootClassName$9 = 'dot-tbody';
|
|
6981
6702
|
const StyledTableBody = styled(TableBody).withConfig({
|
|
6982
6703
|
displayName: "TableBodystyles__StyledTableBody",
|
|
6983
6704
|
componentId: "wszqgk-0"
|
|
6984
6705
|
})(["", ""], ({
|
|
6985
6706
|
theme
|
|
6986
|
-
}) => css(["&.", "{tr:hover{background-color:", ";}tr:last-child td{border-bottom:none;}.empty-row td{text-align:center;}}"], rootClassName$
|
|
6707
|
+
}) => css(["&.", "{tr:hover{background-color:", ";}tr:last-child td{border-bottom:none;}.empty-row td{text-align:center;}}"], rootClassName$9, theme.palette.grey[50]));
|
|
6987
6708
|
|
|
6988
6709
|
/**
|
|
6989
6710
|
* A wrapper component around the TableBody component from @material-ui. This component can be used
|
|
6990
6711
|
* to determine the functionality of the table.
|
|
6991
6712
|
*/
|
|
6992
|
-
|
|
6993
6713
|
const DotTableBody = ({
|
|
6994
6714
|
columns,
|
|
6995
6715
|
data,
|
|
@@ -7001,20 +6721,16 @@ const DotTableBody = ({
|
|
|
7001
6721
|
const [anchorEl, setAnchorEl] = useState(null);
|
|
7002
6722
|
const [menuProps, setMenuProps] = useState([]);
|
|
7003
6723
|
const [open, setOpen] = useState(false);
|
|
7004
|
-
|
|
7005
6724
|
const handleActionMenuTrigger = (el, menuItem) => {
|
|
7006
6725
|
setAnchorEl(el);
|
|
7007
6726
|
setMenuProps(menuItem);
|
|
7008
6727
|
setOpen(!open);
|
|
7009
6728
|
};
|
|
7010
|
-
|
|
7011
6729
|
const menuId = CreateUUID();
|
|
7012
6730
|
const tableId = CreateUUID();
|
|
7013
|
-
|
|
7014
6731
|
const onLeave = () => {
|
|
7015
6732
|
setOpen(false);
|
|
7016
6733
|
};
|
|
7017
|
-
|
|
7018
6734
|
const getTableBodyRows = () => {
|
|
7019
6735
|
return data.length === 0 ? jsx(EmptyDotRow, {
|
|
7020
6736
|
cols: columns.length,
|
|
@@ -7034,11 +6750,10 @@ const DotTableBody = ({
|
|
|
7034
6750
|
}, index);
|
|
7035
6751
|
});
|
|
7036
6752
|
};
|
|
7037
|
-
|
|
7038
6753
|
return jsxs(Fragment$1, {
|
|
7039
6754
|
children: [jsx(StyledTableBody, Object.assign({
|
|
7040
6755
|
classes: {
|
|
7041
|
-
root: rootClassName$
|
|
6756
|
+
root: rootClassName$9
|
|
7042
6757
|
}
|
|
7043
6758
|
}, {
|
|
7044
6759
|
children: getTableBodyRows()
|
|
@@ -7054,19 +6769,18 @@ const DotTableBody = ({
|
|
|
7054
6769
|
}, void 0);
|
|
7055
6770
|
};
|
|
7056
6771
|
|
|
7057
|
-
const rootClassName$
|
|
6772
|
+
const rootClassName$8 = 'dot-th';
|
|
7058
6773
|
const StyledTableHeaderCell = styled(TableCell).withConfig({
|
|
7059
6774
|
displayName: "TableHeaderCellstyles__StyledTableHeaderCell",
|
|
7060
6775
|
componentId: "nko9j-0"
|
|
7061
6776
|
})(["", ""], ({
|
|
7062
6777
|
theme
|
|
7063
|
-
}) => css(["&.", "{&.MuiTableCell-alignCenter > span.MuiTableSortLabel-root{padding-left:26px;}.dot-cell-typography{font-family:", ";}}"], rootClassName$
|
|
6778
|
+
}) => css(["&.", "{&.MuiTableCell-alignCenter > span.MuiTableSortLabel-root{padding-left:26px;}.dot-cell-typography{font-family:", ";}}"], rootClassName$8, theme.typography.h4.fontFamily));
|
|
7064
6779
|
|
|
7065
6780
|
/**
|
|
7066
6781
|
* A wrapper component around the TableCell component from @material-ui. This component should only
|
|
7067
6782
|
* be used inside DotHeaderRow.
|
|
7068
6783
|
*/
|
|
7069
|
-
|
|
7070
6784
|
const DotHeaderCell = ({
|
|
7071
6785
|
align,
|
|
7072
6786
|
typography,
|
|
@@ -7082,7 +6796,6 @@ const DotHeaderCell = ({
|
|
|
7082
6796
|
}) => {
|
|
7083
6797
|
const headerTitle = isString(value) ? value : null;
|
|
7084
6798
|
const formattedValue = getFormattedTableCellValue(value, typography);
|
|
7085
|
-
|
|
7086
6799
|
const getCellValue = () => {
|
|
7087
6800
|
if (_sortable) {
|
|
7088
6801
|
const orderById = orderBy === id;
|
|
@@ -7095,17 +6808,15 @@ const DotHeaderCell = ({
|
|
|
7095
6808
|
children: formattedValue
|
|
7096
6809
|
}), void 0);
|
|
7097
6810
|
}
|
|
7098
|
-
|
|
7099
6811
|
return formattedValue;
|
|
7100
6812
|
};
|
|
7101
|
-
|
|
7102
6813
|
const headerCellStyle = width ? {
|
|
7103
6814
|
width: width
|
|
7104
6815
|
} : undefined;
|
|
7105
6816
|
return jsx(StyledTableHeaderCell, Object.assign({
|
|
7106
6817
|
align: align,
|
|
7107
6818
|
classes: {
|
|
7108
|
-
root: rootClassName$
|
|
6819
|
+
root: rootClassName$8
|
|
7109
6820
|
},
|
|
7110
6821
|
sortDirection: _sortable ? sortDirection : undefined,
|
|
7111
6822
|
style: headerCellStyle,
|
|
@@ -7115,13 +6826,13 @@ const DotHeaderCell = ({
|
|
|
7115
6826
|
}), uid);
|
|
7116
6827
|
};
|
|
7117
6828
|
|
|
7118
|
-
const rootClassName$
|
|
6829
|
+
const rootClassName$7 = 'dot-th-checkbox';
|
|
7119
6830
|
const StyledTableHeaderCheckboxCell = styled(TableCell).withConfig({
|
|
7120
6831
|
displayName: "TableHeaderCheckboxCellstyles__StyledTableHeaderCheckboxCell",
|
|
7121
6832
|
componentId: "ymqg8x-0"
|
|
7122
6833
|
})(["", ""], ({
|
|
7123
6834
|
theme
|
|
7124
|
-
}) => css(["&.", "{.dot-form-control-label{margin:0;}width:", ";padding:", ";}"], rootClassName$
|
|
6835
|
+
}) => css(["&.", "{.dot-form-control-label{margin:0;}width:", ";padding:", ";}"], rootClassName$7, theme.spacing(5), theme.spacing(0, 1)));
|
|
7125
6836
|
|
|
7126
6837
|
const DotHeaderCheckboxCell = ({
|
|
7127
6838
|
ariaLabel,
|
|
@@ -7130,26 +6841,22 @@ const DotHeaderCheckboxCell = ({
|
|
|
7130
6841
|
multiSelectState,
|
|
7131
6842
|
onCheckAllChange
|
|
7132
6843
|
}) => {
|
|
7133
|
-
const rootClasses = useStylesWithRootClass(rootClassName$
|
|
6844
|
+
const rootClasses = useStylesWithRootClass(rootClassName$7, className);
|
|
7134
6845
|
const [checkboxState, setCheckboxState] = useState('unchecked');
|
|
7135
6846
|
useEffect(() => {
|
|
7136
6847
|
setCheckboxState(multiSelectState);
|
|
7137
6848
|
}, [multiSelectState]);
|
|
7138
|
-
|
|
7139
6849
|
const getNextCheckboxState = currentCheckboxState => {
|
|
7140
6850
|
if (currentCheckboxState === 'indeterminate' || currentCheckboxState === 'checked') return 'unchecked';
|
|
7141
6851
|
return 'checked';
|
|
7142
6852
|
};
|
|
7143
|
-
|
|
7144
6853
|
const isIndeterminate = checkboxState === 'indeterminate';
|
|
7145
6854
|
const isCheckboxChecked = checkboxState === 'checked';
|
|
7146
|
-
|
|
7147
6855
|
const handleChange = () => {
|
|
7148
6856
|
const nextState = getNextCheckboxState(checkboxState);
|
|
7149
6857
|
setCheckboxState(nextState);
|
|
7150
6858
|
onCheckAllChange(nextState === 'checked', []);
|
|
7151
6859
|
};
|
|
7152
|
-
|
|
7153
6860
|
return jsx(StyledTableHeaderCheckboxCell, Object.assign({
|
|
7154
6861
|
align: "left",
|
|
7155
6862
|
className: rootClasses,
|
|
@@ -7170,7 +6877,6 @@ const DotHeaderCheckboxCell = ({
|
|
|
7170
6877
|
* A wrapper component around the TableHead component from @material-ui. This component can be used
|
|
7171
6878
|
* to determine the functionality of the table header.
|
|
7172
6879
|
*/
|
|
7173
|
-
|
|
7174
6880
|
const DotHeaderRow = ({
|
|
7175
6881
|
columns,
|
|
7176
6882
|
multiSelectHeader,
|
|
@@ -7183,7 +6889,6 @@ const DotHeaderRow = ({
|
|
|
7183
6889
|
const createSortHandler = property => _event => {
|
|
7184
6890
|
onRequestSort(property);
|
|
7185
6891
|
};
|
|
7186
|
-
|
|
7187
6892
|
const [multiSelectState, setMultiSelectState] = useState('unchecked');
|
|
7188
6893
|
const {
|
|
7189
6894
|
onCheckAllChange,
|
|
@@ -7192,25 +6897,20 @@ const DotHeaderRow = ({
|
|
|
7192
6897
|
} = multiSelectHeader || {};
|
|
7193
6898
|
useEffect(() => {
|
|
7194
6899
|
if (!multiSelectHeader) return;
|
|
7195
|
-
|
|
7196
6900
|
if (selectedTableRowIds && selectedTableRowIds.length > 0 && pageData) {
|
|
7197
6901
|
const itemsNumber = pageData.length;
|
|
7198
6902
|
const checkedItemsNumber = pageData.filter(row => selectedTableRowIds.includes(row.id)).length;
|
|
7199
|
-
|
|
7200
6903
|
if (itemsNumber === checkedItemsNumber) {
|
|
7201
6904
|
setMultiSelectState('checked');
|
|
7202
6905
|
return;
|
|
7203
6906
|
}
|
|
7204
|
-
|
|
7205
6907
|
if (checkedItemsNumber > 0) {
|
|
7206
6908
|
setMultiSelectState('indeterminate');
|
|
7207
6909
|
return;
|
|
7208
6910
|
}
|
|
7209
6911
|
}
|
|
7210
|
-
|
|
7211
6912
|
setMultiSelectState('unchecked');
|
|
7212
6913
|
}, [multiSelectHeader]);
|
|
7213
|
-
|
|
7214
6914
|
const renderMultiSelectCell = () => {
|
|
7215
6915
|
return jsx(DotHeaderCheckboxCell, {
|
|
7216
6916
|
ariaLabel: "Click to select all table page rows",
|
|
@@ -7218,7 +6918,6 @@ const DotHeaderRow = ({
|
|
|
7218
6918
|
onCheckAllChange: onCheckAllChange
|
|
7219
6919
|
}, void 0);
|
|
7220
6920
|
};
|
|
7221
|
-
|
|
7222
6921
|
return jsx(TableHead, Object.assign({
|
|
7223
6922
|
classes: {
|
|
7224
6923
|
root: 'dot-thead'
|
|
@@ -7249,13 +6948,13 @@ const DotHeaderRow = ({
|
|
|
7249
6948
|
}), void 0);
|
|
7250
6949
|
};
|
|
7251
6950
|
|
|
7252
|
-
const rootClassName$
|
|
6951
|
+
const rootClassName$6 = 'dot-table-selection-toolbar';
|
|
7253
6952
|
const StyledTableSelectionToolbar = styled(DotActionToolbar).withConfig({
|
|
7254
6953
|
displayName: "TableSelectionToolbarstyles__StyledTableSelectionToolbar",
|
|
7255
6954
|
componentId: "qpx3y9-0"
|
|
7256
6955
|
})(["", ""], ({
|
|
7257
6956
|
theme
|
|
7258
|
-
}) => css(["&.", "{display:flex;align-items:center;justify-content:space-between;background-color:", ";.dot-selected-rows-container{display:flex;align-items:center;.dot-button{padding:", ";}}.dot-selected-rows-heading{font-weight:bold;}.dot-selected-rows-divider{padding:", ";}}"], rootClassName$
|
|
6957
|
+
}) => css(["&.", "{display:flex;align-items:center;justify-content:space-between;background-color:", ";.dot-selected-rows-container{display:flex;align-items:center;.dot-button{padding:", ";}}.dot-selected-rows-heading{font-weight:bold;}.dot-selected-rows-divider{padding:", ";}}"], rootClassName$6, theme.palette.primary[50], theme.spacing(0.25, 0.25, 0, 0.5), theme.spacing(0.25, 0, 0, 1)));
|
|
7259
6958
|
|
|
7260
6959
|
const DotTableSelectionToolbar = ({
|
|
7261
6960
|
ariaLabel,
|
|
@@ -7265,7 +6964,7 @@ const DotTableSelectionToolbar = ({
|
|
|
7265
6964
|
onClearAll,
|
|
7266
6965
|
selectedRowsNumber
|
|
7267
6966
|
}) => {
|
|
7268
|
-
const rootClasses = useStylesWithRootClass(rootClassName$
|
|
6967
|
+
const rootClasses = useStylesWithRootClass(rootClassName$6, className);
|
|
7269
6968
|
return jsxs(StyledTableSelectionToolbar, Object.assign({
|
|
7270
6969
|
ariaLabel: ariaLabel,
|
|
7271
6970
|
className: rootClasses,
|
|
@@ -7306,11 +7005,9 @@ const sortComparator = (a, b, orderBy) => {
|
|
|
7306
7005
|
if (b.rowData[orderBy] < a.rowData[orderBy]) {
|
|
7307
7006
|
return -1;
|
|
7308
7007
|
}
|
|
7309
|
-
|
|
7310
7008
|
if (b.rowData[orderBy] > a.rowData[orderBy]) {
|
|
7311
7009
|
return 1;
|
|
7312
7010
|
}
|
|
7313
|
-
|
|
7314
7011
|
return 0;
|
|
7315
7012
|
};
|
|
7316
7013
|
const getComparator = (order, orderBy) => (a, b) => {
|
|
@@ -7324,13 +7021,12 @@ function stableSort(array, comparator) {
|
|
|
7324
7021
|
return newOrder !== 0 ? newOrder : order[1] - orderBy[1];
|
|
7325
7022
|
});
|
|
7326
7023
|
return stabilizedThis.map(el => el[0]);
|
|
7327
|
-
}
|
|
7328
|
-
|
|
7024
|
+
}
|
|
7025
|
+
// https://material-ui.com/components/tables/#custom-pagination-options
|
|
7329
7026
|
/**
|
|
7330
7027
|
* A wrapper component around the Table component from @material-ui. This component can be used for
|
|
7331
7028
|
* creating a common structure for tables in the system.
|
|
7332
7029
|
*/
|
|
7333
|
-
|
|
7334
7030
|
const DotTable = ({
|
|
7335
7031
|
ariaLabel,
|
|
7336
7032
|
bodyTypography: _bodyTypography = TABLE_TYPOGRAPHY_VARIANT,
|
|
@@ -7360,19 +7056,15 @@ const DotTable = ({
|
|
|
7360
7056
|
const [tablePage, setPage] = useState(_page);
|
|
7361
7057
|
const [tableRowsPerPage, setRowsPerPage] = useState(rowsPerPage);
|
|
7362
7058
|
const [selectedRowIds, setSelectedRowIds] = useState([]);
|
|
7363
|
-
|
|
7364
7059
|
const getSortedData = () => {
|
|
7365
7060
|
return onUpdateData ? data : stableSort(data, getComparator(_order, orderBy));
|
|
7366
7061
|
};
|
|
7367
|
-
|
|
7368
7062
|
const [pageData, setPageData] = useState(getSortedData().slice(0, rowsPerPage ? rowsPerPage : data.length));
|
|
7369
|
-
const rootClasses = useStylesWithRootClass(rootClassName$
|
|
7370
|
-
|
|
7063
|
+
const rootClasses = useStylesWithRootClass(rootClassName$d, className, _loading ? 'loading' : '');
|
|
7371
7064
|
const updateData = (newOrder, newOrderBy, newPage, newRowsPerPage) => {
|
|
7372
7065
|
const newData = stableSort(data, getComparator(newOrder, newOrderBy));
|
|
7373
7066
|
setPageData(newRowsPerPage ? newData.slice(newPage * newRowsPerPage, newPage * newRowsPerPage + newRowsPerPage) : newData);
|
|
7374
7067
|
};
|
|
7375
|
-
|
|
7376
7068
|
const onSortRequest = property => {
|
|
7377
7069
|
const isAsc = tableOrderBy === property && tableOrder === 'asc';
|
|
7378
7070
|
const dataOrder = isAsc ? 'desc' : 'asc';
|
|
@@ -7381,19 +7073,16 @@ const DotTable = ({
|
|
|
7381
7073
|
setPage(0);
|
|
7382
7074
|
onUpdateData ? onUpdateData(dataOrder, property, 0, tableRowsPerPage) : updateData(dataOrder, property, 0, tableRowsPerPage);
|
|
7383
7075
|
};
|
|
7384
|
-
|
|
7385
7076
|
const onPageChange = newPage => {
|
|
7386
7077
|
setPage(newPage);
|
|
7387
7078
|
onUpdateData ? onUpdateData(tableOrder, tableOrderBy, newPage, tableRowsPerPage) : updateData(tableOrder, tableOrderBy, newPage, tableRowsPerPage);
|
|
7388
7079
|
};
|
|
7389
|
-
|
|
7390
7080
|
const onRowsPerPageChange = evt => {
|
|
7391
7081
|
const newRowsPerPage = parseInt(evt.target.value);
|
|
7392
7082
|
setRowsPerPage(newRowsPerPage);
|
|
7393
7083
|
setPage(0);
|
|
7394
7084
|
onUpdateData ? onUpdateData(tableOrder, tableOrderBy, 0, newRowsPerPage) : updateData(tableOrder, tableOrderBy, 0, newRowsPerPage);
|
|
7395
7085
|
};
|
|
7396
|
-
|
|
7397
7086
|
const getSkeletonData = () => {
|
|
7398
7087
|
const skeletonData = [];
|
|
7399
7088
|
const skeletonRow = {
|
|
@@ -7408,43 +7097,35 @@ const DotTable = ({
|
|
|
7408
7097
|
}, void 0)
|
|
7409
7098
|
}), void 0);
|
|
7410
7099
|
});
|
|
7411
|
-
|
|
7412
7100
|
for (let i = 0; i < (rowsPerPage ? rowsPerPage : skeletonRows); i++) {
|
|
7413
7101
|
skeletonData.push(skeletonRow);
|
|
7414
7102
|
}
|
|
7415
|
-
|
|
7416
7103
|
return skeletonData;
|
|
7417
7104
|
};
|
|
7418
|
-
|
|
7419
7105
|
const getData = () => {
|
|
7420
7106
|
const tableBodyData = onUpdateData ? data : pageData;
|
|
7421
7107
|
return _loading ? getSkeletonData() : tableBodyData;
|
|
7422
7108
|
};
|
|
7423
|
-
|
|
7424
|
-
|
|
7109
|
+
const tableData = getData();
|
|
7110
|
+
// If table is not paginated (rowsPerPage prop not provided), ignore 'count'.
|
|
7425
7111
|
// If paging is managed externally (onUpdateData callback provided) then use
|
|
7426
7112
|
// the 'count' prop for total row count if it is provided, otherwise use
|
|
7427
7113
|
// -1 (unknown). If paging is managed internally (onUpdateData not provided)
|
|
7428
7114
|
// ignore 'count' prop and use the length of the provided 'data' for the
|
|
7429
7115
|
// total row count.
|
|
7430
|
-
|
|
7431
7116
|
const getTotalCount = () => {
|
|
7432
7117
|
const validCount = count ? count : -1;
|
|
7433
7118
|
const totalCount = onUpdateData ? validCount : data.length;
|
|
7434
7119
|
return rowsPerPage ? totalCount : null;
|
|
7435
7120
|
};
|
|
7436
|
-
|
|
7437
7121
|
if (count && !rowsPerPage) {
|
|
7438
7122
|
console.warn("'count' prop is ignored as table is not paginated (no 'rowsPerPage' prop provided)");
|
|
7439
7123
|
}
|
|
7440
|
-
|
|
7441
7124
|
if (count && !onUpdateData) {
|
|
7442
7125
|
console.warn("'count' prop is ignored as it can be determined by 'data.length' for internally paginated table (no 'onUpdateData' callback provided)");
|
|
7443
7126
|
}
|
|
7444
|
-
|
|
7445
7127
|
const tableClasses = useStylesWithRootClass('dot-table', rowsPerPage ? 'dot-table-paginated' : '');
|
|
7446
7128
|
const maxHeightStyle = getContainerMaxHeightStyle(_stickyHeader, maxHeight);
|
|
7447
|
-
|
|
7448
7129
|
const handleCheckAllChange = isChecked => {
|
|
7449
7130
|
setSelectedRowIds(prevRowIds => {
|
|
7450
7131
|
const newIds = getBulkSelectedRowIds(isChecked, prevRowIds, onUpdateData ? data : pageData);
|
|
@@ -7452,7 +7133,6 @@ const DotTable = ({
|
|
|
7452
7133
|
return newIds;
|
|
7453
7134
|
});
|
|
7454
7135
|
};
|
|
7455
|
-
|
|
7456
7136
|
const handleRowSelectionChange = (isChecked, rowId) => {
|
|
7457
7137
|
setSelectedRowIds(prevRowIds => {
|
|
7458
7138
|
const newIds = getSelectedRowIds(rowId, isChecked, prevRowIds);
|
|
@@ -7460,12 +7140,10 @@ const DotTable = ({
|
|
|
7460
7140
|
return newIds;
|
|
7461
7141
|
});
|
|
7462
7142
|
};
|
|
7463
|
-
|
|
7464
7143
|
const handleClearAll = () => {
|
|
7465
7144
|
setSelectedRowIds([]);
|
|
7466
7145
|
multiSelect.onClearAllChange && multiSelect.onClearAllChange(false, []);
|
|
7467
7146
|
};
|
|
7468
|
-
|
|
7469
7147
|
const multiSelectBody = multiSelect && {
|
|
7470
7148
|
onCheckIndividualChange: handleRowSelectionChange,
|
|
7471
7149
|
selectedTableRowIds: selectedRowIds
|
|
@@ -7476,7 +7154,6 @@ const DotTable = ({
|
|
|
7476
7154
|
selectedTableRowIds: selectedRowIds
|
|
7477
7155
|
};
|
|
7478
7156
|
const selectedRowsNumber = selectedRowIds.length;
|
|
7479
|
-
|
|
7480
7157
|
const renderToolbar = () => {
|
|
7481
7158
|
const {
|
|
7482
7159
|
bulkActions
|
|
@@ -7488,7 +7165,6 @@ const DotTable = ({
|
|
|
7488
7165
|
bulkActions: bulkActions
|
|
7489
7166
|
}, void 0) : toolbar;
|
|
7490
7167
|
};
|
|
7491
|
-
|
|
7492
7168
|
return jsxs(StyledPaper, Object.assign({
|
|
7493
7169
|
className: rootClasses,
|
|
7494
7170
|
elevation: 0
|
|
@@ -7538,7 +7214,6 @@ const getMenuItem = action => {
|
|
|
7538
7214
|
const startIcon = action.iconId && jsx(DotIcon, {
|
|
7539
7215
|
iconId: action.iconId
|
|
7540
7216
|
}, void 0);
|
|
7541
|
-
|
|
7542
7217
|
return jsx(DotButton, Object.assign({
|
|
7543
7218
|
className: "table-menu-button",
|
|
7544
7219
|
"data-testid": action['data-testid'],
|
|
@@ -7569,7 +7244,7 @@ const DotTableAction = ({
|
|
|
7569
7244
|
}, void 0);
|
|
7570
7245
|
};
|
|
7571
7246
|
|
|
7572
|
-
const rootClassName$
|
|
7247
|
+
const rootClassName$5 = 'dot-table-actions';
|
|
7573
7248
|
const TableActionsContainer = styled.div.withConfig({
|
|
7574
7249
|
displayName: "TableActionsstyles__TableActionsContainer",
|
|
7575
7250
|
componentId: "sc-8lo813-0"
|
|
@@ -7610,7 +7285,6 @@ const DotTableActions = ({
|
|
|
7610
7285
|
window.removeEventListener('resize', checkForOverflowing);
|
|
7611
7286
|
};
|
|
7612
7287
|
}, []);
|
|
7613
|
-
|
|
7614
7288
|
const checkForOverflowing = () => {
|
|
7615
7289
|
if (actions.length > 1) {
|
|
7616
7290
|
const actionIcons = document.getElementsByClassName('dot-table-action-icon');
|
|
@@ -7619,20 +7293,16 @@ const DotTableActions = ({
|
|
|
7619
7293
|
setShowMenu(isOverflowing);
|
|
7620
7294
|
}
|
|
7621
7295
|
};
|
|
7622
|
-
|
|
7623
7296
|
const toggleMenu = event => {
|
|
7624
7297
|
setAnchorEl(event.currentTarget);
|
|
7625
7298
|
setMenuOpen(!menuOpen);
|
|
7626
7299
|
};
|
|
7627
|
-
|
|
7628
7300
|
const onSelect = (_event, _menuId, itemKey) => {
|
|
7629
7301
|
selectionMap[itemKey].onClick(null);
|
|
7630
7302
|
};
|
|
7631
|
-
|
|
7632
7303
|
const onLeave = () => {
|
|
7633
7304
|
setMenuOpen(false);
|
|
7634
7305
|
};
|
|
7635
|
-
|
|
7636
7306
|
const renderTableActions = () => {
|
|
7637
7307
|
return actions && actions.map((action, index) => index < 2 && jsx(DotTableAction, {
|
|
7638
7308
|
iconId: action.iconId,
|
|
@@ -7641,10 +7311,9 @@ const DotTableActions = ({
|
|
|
7641
7311
|
onClick: action.onClick
|
|
7642
7312
|
}, `action-${index}`));
|
|
7643
7313
|
};
|
|
7644
|
-
|
|
7645
7314
|
return jsxs(Fragment$1, {
|
|
7646
7315
|
children: [jsxs(TableActionsContainer, Object.assign({
|
|
7647
|
-
className: rootClassName$
|
|
7316
|
+
className: rootClassName$5,
|
|
7648
7317
|
ref: wrapperRef
|
|
7649
7318
|
}, {
|
|
7650
7319
|
children: [!showMenu && renderTableActions(), (showMenu || actions.length > 2) && jsx(DotIconButton, {
|
|
@@ -7667,18 +7336,18 @@ const DotTableActions = ({
|
|
|
7667
7336
|
}, void 0);
|
|
7668
7337
|
};
|
|
7669
7338
|
|
|
7670
|
-
const rootClassName$
|
|
7339
|
+
const rootClassName$4 = 'dot-tabs';
|
|
7671
7340
|
const StyledTabs = styled(Tabs).withConfig({
|
|
7672
7341
|
displayName: "Tabsstyles__StyledTabs",
|
|
7673
7342
|
componentId: "sc-1pmrz8k-0"
|
|
7674
7343
|
})(["", ""], ({
|
|
7675
7344
|
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$
|
|
7345
|
+
}) => 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$4, theme.spacing(0.5), theme.palette.layer.n100, theme.spacing(0.5)));
|
|
7677
7346
|
|
|
7678
7347
|
const DotTabs = ({
|
|
7679
7348
|
centered: _centered = false,
|
|
7680
7349
|
className,
|
|
7681
|
-
color: _color = '
|
|
7350
|
+
color: _color = 'primary',
|
|
7682
7351
|
'data-testid': dataTestId,
|
|
7683
7352
|
initialValue: _initialValue = 0,
|
|
7684
7353
|
onChange,
|
|
@@ -7687,19 +7356,17 @@ const DotTabs = ({
|
|
|
7687
7356
|
variant: _variant = 'standard'
|
|
7688
7357
|
}) => {
|
|
7689
7358
|
const [value, setValue] = useState(_initialValue);
|
|
7690
|
-
const rootClasses = useStylesWithRootClass(rootClassName$
|
|
7691
|
-
|
|
7359
|
+
const rootClasses = useStylesWithRootClass(rootClassName$4, className);
|
|
7360
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
7692
7361
|
const handleChange = (_event, val) => {
|
|
7693
7362
|
setValue(val);
|
|
7694
7363
|
onChange && onChange(val);
|
|
7695
7364
|
};
|
|
7696
|
-
|
|
7697
7365
|
const tabArray = [];
|
|
7698
7366
|
tabs.forEach((tab, index) => {
|
|
7699
7367
|
const icon = tab.iconId ? jsx(DotIcon, {
|
|
7700
7368
|
iconId: tab.iconId
|
|
7701
7369
|
}, void 0) : null;
|
|
7702
|
-
|
|
7703
7370
|
const label = jsxs("div", Object.assign({
|
|
7704
7371
|
className: "dot-tab-label-container"
|
|
7705
7372
|
}, {
|
|
@@ -7711,7 +7378,6 @@ const DotTabs = ({
|
|
|
7711
7378
|
children: tab.label
|
|
7712
7379
|
}), void 0)]
|
|
7713
7380
|
}), void 0);
|
|
7714
|
-
|
|
7715
7381
|
const tabElement = jsx(Tab, {
|
|
7716
7382
|
"aria-label": tab.ariaLabel,
|
|
7717
7383
|
"data-testid": tab['data-testid'],
|
|
@@ -7720,7 +7386,6 @@ const DotTabs = ({
|
|
|
7720
7386
|
label: label,
|
|
7721
7387
|
value: tab.value
|
|
7722
7388
|
}, index);
|
|
7723
|
-
|
|
7724
7389
|
tabArray.push(tabElement);
|
|
7725
7390
|
});
|
|
7726
7391
|
return jsx(StyledTabs, Object.assign({
|
|
@@ -7741,9 +7406,9 @@ const DotTabs = ({
|
|
|
7741
7406
|
}), void 0);
|
|
7742
7407
|
};
|
|
7743
7408
|
|
|
7744
|
-
const rootClassName$
|
|
7745
|
-
const containerClassName = `${rootClassName$
|
|
7746
|
-
const dropZoneClassName = `${rootClassName$
|
|
7409
|
+
const rootClassName$3 = 'dot-file-upload';
|
|
7410
|
+
const containerClassName = `${rootClassName$3}-container`;
|
|
7411
|
+
const dropZoneClassName = `${rootClassName$3}-drop-zone`;
|
|
7747
7412
|
const StyledFileUploadContainer = styled.div.withConfig({
|
|
7748
7413
|
displayName: "FileUploadstyles__StyledFileUploadContainer",
|
|
7749
7414
|
componentId: "sc-1q8bcxy-0"
|
|
@@ -7755,15 +7420,15 @@ const StyledFileUpload = styled.div.withConfig({
|
|
|
7755
7420
|
componentId: "sc-1q8bcxy-1"
|
|
7756
7421
|
})(["", ""], ({
|
|
7757
7422
|
theme
|
|
7758
|
-
}) => css(["&.", ".", "{align-items:center;background:", ";border:2px dashed ", ";border-radius:4px;color:", ";display:flex;flex-direction:column;flex-wrap:wrap;height:240px;justify-content:center;padding:", ";margin-bottom:", ";text-align:center;&.disabled .dot-typography{color:", ";}.dot-icon{color:", ";font-size:100px;i.dot-i{height:100px;}}}"], rootClassName$
|
|
7423
|
+
}) => css(["&.", ".", "{align-items:center;background:", ";border:2px dashed ", ";border-radius:4px;color:", ";display:flex;flex-direction:column;flex-wrap:wrap;height:240px;justify-content:center;padding:", ";margin-bottom:", ";text-align:center;&.disabled .dot-typography{color:", ";}.dot-icon{color:", ";font-size:100px;i.dot-i{height:100px;}}}"], rootClassName$3, dropZoneClassName, theme.palette.layer.n50, theme.palette.layer.n300, theme.palette.layer.n500, theme.spacing(3, 0), theme.spacing(1), theme.palette.layer.n300, theme.palette.layer.n100));
|
|
7759
7424
|
|
|
7760
|
-
const rootClassName$
|
|
7425
|
+
const rootClassName$2 = 'dot-file-list-item';
|
|
7761
7426
|
const StyledFileListItem = styled(StyledListItem).withConfig({
|
|
7762
7427
|
displayName: "FileListItemstyles__StyledFileListItem",
|
|
7763
7428
|
componentId: "sc-6mp1tz-0"
|
|
7764
7429
|
})(["", ""], ({
|
|
7765
7430
|
theme
|
|
7766
|
-
}) => css(["&.", "{border-bottom:1px solid ", ";&:hover{cursor:pointer;background:", ";}&:focus-visible{background-color:", ";outline:none;}&.file-success:not(:hover,:focus-visible) .", "-end-icon{i:before{color:", ";}&:focus-visible i:before{color:unset;}}&.file-error:not(:hover,:focus-visible) .", "-end-icon{i:before,.MuiListItemText-secondary{color:", ";}&:focus-visible i:before{color:unset;}}.dot-typography,.file-item-text{flex-grow:2;padding-left:", ";}.file-item-text{display:flex;flex-direction:column;.MuiTypography-body2{color:", ";}}}"], rootClassName$
|
|
7431
|
+
}) => css(["&.", "{border-bottom:1px solid ", ";&:hover{cursor:pointer;background:", ";}&:focus-visible{background-color:", ";outline:none;}&.file-success:not(:hover,:focus-visible) .", "-end-icon{i:before{color:", ";}&:focus-visible i:before{color:unset;}}&.file-error:not(:hover,:focus-visible) .", "-end-icon{i:before,.MuiListItemText-secondary{color:", ";}&:focus-visible i:before{color:unset;}}.dot-typography,.file-item-text{flex-grow:2;padding-left:", ";}.file-item-text{display:flex;flex-direction:column;.MuiTypography-body2{color:", ";}}}"], rootClassName$2, theme.palette.layer.n100, theme.palette.layer.n50, theme.palette.layer.n100, rootClassName$2, theme.palette.secondary.main, rootClassName$2, theme.palette.error.main, theme.spacing(1), theme.palette.error.main));
|
|
7767
7432
|
|
|
7768
7433
|
const DotFileListItem = ({
|
|
7769
7434
|
ariaLabel,
|
|
@@ -7778,17 +7443,14 @@ const DotFileListItem = ({
|
|
|
7778
7443
|
onKeyPress,
|
|
7779
7444
|
tabIndex: _tabIndex = 0
|
|
7780
7445
|
}) => {
|
|
7781
|
-
const rootClasses = useStylesWithRootClass(rootClassName$
|
|
7446
|
+
const rootClasses = useStylesWithRootClass(rootClassName$2, className, _error ? 'file-error' : 'file-success');
|
|
7782
7447
|
const defaultIcon = _error ? 'error-solid' : 'check-solid';
|
|
7783
7448
|
const [endIcon, setEndIcon] = useState(defaultIcon);
|
|
7784
|
-
|
|
7785
7449
|
const handleItemClick = clickedFile => _event => onClick === null || onClick === void 0 ? void 0 : onClick(clickedFile);
|
|
7786
|
-
|
|
7787
7450
|
const handleItemDelete = fileId => event => {
|
|
7788
7451
|
event.stopPropagation();
|
|
7789
7452
|
deleteFile(fileId);
|
|
7790
7453
|
};
|
|
7791
|
-
|
|
7792
7454
|
return jsxs(StyledFileListItem, Object.assign({
|
|
7793
7455
|
"aria-label": ariaLabel,
|
|
7794
7456
|
className: rootClasses,
|
|
@@ -7817,7 +7479,7 @@ const DotFileListItem = ({
|
|
|
7817
7479
|
children: errorText
|
|
7818
7480
|
}), void 0)]
|
|
7819
7481
|
}), void 0), jsx(DotIconButton, {
|
|
7820
|
-
className: `${rootClassName$
|
|
7482
|
+
className: `${rootClassName$2}-end-icon`,
|
|
7821
7483
|
"data-testid": dataTestId && `${dataTestId}-end-icon`,
|
|
7822
7484
|
disabled: disableDelete,
|
|
7823
7485
|
iconId: endIcon,
|
|
@@ -7896,24 +7558,20 @@ const parseListItem = ({
|
|
|
7896
7558
|
const parsedFile = fileToBeParsed.file;
|
|
7897
7559
|
const hasErrors = fileErrors.length > 0;
|
|
7898
7560
|
let errorText;
|
|
7899
|
-
|
|
7900
7561
|
if (hasErrors) {
|
|
7901
7562
|
errorText = fileErrors.map(e => {
|
|
7902
7563
|
switch (e.code) {
|
|
7903
7564
|
case 'file-too-large':
|
|
7904
7565
|
return `File exceeds ${maxSize}MB`;
|
|
7905
|
-
|
|
7906
7566
|
case 'file-invalid-type':
|
|
7907
7567
|
case 'too-many-files':
|
|
7908
7568
|
return e.message;
|
|
7909
|
-
|
|
7910
7569
|
default:
|
|
7911
7570
|
console.log('Unknown error', e);
|
|
7912
7571
|
return e.message;
|
|
7913
7572
|
}
|
|
7914
7573
|
}).join(', ');
|
|
7915
7574
|
}
|
|
7916
|
-
|
|
7917
7575
|
return {
|
|
7918
7576
|
child: jsx(DotFileListItem, {
|
|
7919
7577
|
deleteFile: onFileDelete,
|
|
@@ -7950,31 +7608,26 @@ const DotFileUpload = ({
|
|
|
7950
7608
|
const [uploadedFiles, setUploadedFiles] = useState([]);
|
|
7951
7609
|
const [hasMaxFilesError, setHasMaxFilesError] = useState(false);
|
|
7952
7610
|
const isUploadDisabled = disabled || maxFiles && uploadedFiles.length >= maxFiles;
|
|
7953
|
-
const rootClasses = useStylesWithRootClass(rootClassName$
|
|
7611
|
+
const rootClasses = useStylesWithRootClass(rootClassName$3, className, !_buttonOnly ? dropZoneClassName : '', isUploadDisabled ? 'disabled' : '');
|
|
7954
7612
|
const maxFilesClasses = useStylesWithRootClass('dot-max-files-message', hasMaxFilesError ? 'dot-max-files-reached' : '');
|
|
7955
7613
|
const allowMultiple = maxFiles === undefined || maxFiles > 1;
|
|
7956
|
-
|
|
7957
7614
|
const setNewlyUploadedFiles = (acceptedFiles, fileRejections) => {
|
|
7958
7615
|
const joinedFiles = joinAcceptedAndRejectedFiles(acceptedFiles, fileRejections);
|
|
7959
7616
|
setUploadedFiles(joinedFiles);
|
|
7960
7617
|
onChange(joinedFiles);
|
|
7961
7618
|
};
|
|
7962
|
-
|
|
7963
7619
|
const parseFiles = (acceptedFiles, fileRejections) => {
|
|
7964
7620
|
const totalFilesToUpload = uploadedFiles.length + acceptedFiles.length + fileRejections.length;
|
|
7965
7621
|
const isMaxFilesReached = maxFiles && totalFilesToUpload > maxFiles;
|
|
7966
|
-
|
|
7967
7622
|
if (isMaxFilesReached) {
|
|
7968
7623
|
setHasMaxFilesError(true);
|
|
7969
7624
|
return;
|
|
7970
7625
|
}
|
|
7971
|
-
|
|
7972
7626
|
setHasMaxFilesError(false);
|
|
7973
7627
|
const joinedUploadedFiles = joinAcceptedAndRejectedFiles(acceptedFiles, fileRejections);
|
|
7974
7628
|
setUploadedFiles(joinedUploadedFiles);
|
|
7975
7629
|
onChange(joinedUploadedFiles);
|
|
7976
7630
|
};
|
|
7977
|
-
|
|
7978
7631
|
const onDrop = useCallback((acceptedFiles, fileRejections) => {
|
|
7979
7632
|
hideFilesList ? setNewlyUploadedFiles(acceptedFiles, fileRejections) : parseFiles(acceptedFiles, fileRejections);
|
|
7980
7633
|
}, [hideFilesList, setNewlyUploadedFiles, parseFiles]);
|
|
@@ -7992,13 +7645,11 @@ const DotFileUpload = ({
|
|
|
7992
7645
|
onDragEnter,
|
|
7993
7646
|
onDrop
|
|
7994
7647
|
});
|
|
7995
|
-
|
|
7996
7648
|
const deleteFile = fileIndexToBeRemoved => {
|
|
7997
7649
|
uploadedFiles.splice(fileIndexToBeRemoved, 1);
|
|
7998
7650
|
setUploadedFiles([...uploadedFiles]);
|
|
7999
7651
|
onChange(uploadedFiles);
|
|
8000
7652
|
};
|
|
8001
|
-
|
|
8002
7653
|
const uploadedFilesList = getUploadedFilesList({
|
|
8003
7654
|
maxSize,
|
|
8004
7655
|
onFileClick,
|
|
@@ -8027,11 +7678,11 @@ const DotFileUpload = ({
|
|
|
8027
7678
|
}), void 0);
|
|
8028
7679
|
};
|
|
8029
7680
|
|
|
8030
|
-
const rootClassName$
|
|
7681
|
+
const rootClassName$1 = 'dot-divider';
|
|
8031
7682
|
const StyledDivider = styled(Divider).withConfig({
|
|
8032
7683
|
displayName: "Dividerstyles__StyledDivider",
|
|
8033
7684
|
componentId: "yu3sip-0"
|
|
8034
|
-
})(["", ""], () => css(["&.", "{}"], rootClassName$
|
|
7685
|
+
})(["", ""], () => css(["&.", "{}"], rootClassName$1));
|
|
8035
7686
|
|
|
8036
7687
|
const DotDivider = ({
|
|
8037
7688
|
absolute,
|
|
@@ -8043,7 +7694,7 @@ const DotDivider = ({
|
|
|
8043
7694
|
orientation,
|
|
8044
7695
|
variant
|
|
8045
7696
|
}) => {
|
|
8046
|
-
const rootClasses = useStylesWithRootClass(rootClassName$
|
|
7697
|
+
const rootClasses = useStylesWithRootClass(rootClassName$1, className);
|
|
8047
7698
|
return jsx(StyledDivider, {
|
|
8048
7699
|
absolute: absolute,
|
|
8049
7700
|
"aria-label": ariaLabel,
|
|
@@ -8069,14 +7720,13 @@ const DotPopper = ({
|
|
|
8069
7720
|
open,
|
|
8070
7721
|
placement
|
|
8071
7722
|
}) => {
|
|
8072
|
-
const rootClasses = useStylesWithRootClass(rootClassName$
|
|
8073
|
-
|
|
7723
|
+
const rootClasses = useStylesWithRootClass(rootClassName$P, className);
|
|
7724
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
8074
7725
|
const handleClickAway = event => {
|
|
8075
7726
|
if (onClickAway && (!anchorEl || !anchorEl.contains(event.currentTarget))) {
|
|
8076
7727
|
onClickAway(event);
|
|
8077
7728
|
}
|
|
8078
7729
|
};
|
|
8079
|
-
|
|
8080
7730
|
return jsx(StyledPopper$1, Object.assign({
|
|
8081
7731
|
anchorEl: anchorEl,
|
|
8082
7732
|
"aria-label": ariaLabel,
|
|
@@ -8109,41 +7759,6 @@ const DotPopper = ({
|
|
|
8109
7759
|
}), void 0);
|
|
8110
7760
|
};
|
|
8111
7761
|
|
|
8112
|
-
const rootClassName$1 = 'dot-truncate-with-tooltip';
|
|
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
7762
|
const rootClassName = 'dot-draggable-list';
|
|
8148
7763
|
const listItemClassName = 'dot-draggable-list-item';
|
|
8149
7764
|
const StyledDraggableList = styled.div.withConfig({
|
|
@@ -8153,7 +7768,7 @@ const StyledDraggableList = styled.div.withConfig({
|
|
|
8153
7768
|
theme,
|
|
8154
7769
|
width,
|
|
8155
7770
|
draggableHandle
|
|
8156
|
-
}) => css(["&.", " .", "{&.react-draggable-dragging{background-color:", ";}
|
|
7771
|
+
}) => css(["&.", " .", "{width:", " !important;.dot-icon{color:", ";}&.react-draggable-dragging{background-color:", ";}&.with-default-cursor{cursor:default;}&.with-handle-grab-cursor ", "{cursor:grab;}}"], rootClassName, listItemClassName, width, theme.palette.layer.n700, theme.palette.grey[50], draggableHandle));
|
|
8157
7772
|
|
|
8158
7773
|
const getOrderedListItems = (layout, listItems) => {
|
|
8159
7774
|
if (!listItems || !layout) return [];
|
|
@@ -8194,16 +7809,13 @@ const DotDraggableList = ({
|
|
|
8194
7809
|
useEffect(() => {
|
|
8195
7810
|
setOrderedItems(items);
|
|
8196
7811
|
}, [items]);
|
|
8197
|
-
|
|
8198
7812
|
const handleLayoutChange = () => layout => {
|
|
8199
7813
|
const newList = getOrderedListItems(layout, orderedItems);
|
|
8200
|
-
|
|
8201
7814
|
if (!checkIfEqual(orderedItems, newList)) {
|
|
8202
7815
|
setOrderedItems(newList);
|
|
8203
7816
|
onChange(newList);
|
|
8204
7817
|
}
|
|
8205
7818
|
};
|
|
8206
|
-
|
|
8207
7819
|
return jsx(StyledDraggableList, Object.assign({
|
|
8208
7820
|
"aria-label": ariaLabel,
|
|
8209
7821
|
className: rootClasses,
|