@bygd/nc-report-ui 0.1.33 → 0.1.35
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/default/cjs/index.cjs +1 -1
- package/dist/default/esm/index.js +397 -183
- package/package.json +1 -1
|
@@ -7,12 +7,13 @@ import { Chart as Chart$1 } from 'react-google-charts';
|
|
|
7
7
|
import numeral from 'numeral';
|
|
8
8
|
import axios from 'axios';
|
|
9
9
|
import Typography from '@material-ui/core/Typography';
|
|
10
|
+
import Link from '@material-ui/core/Link';
|
|
10
11
|
import nunjucks from 'nunjucks';
|
|
11
12
|
import FormControl$2 from '@material-ui/core/FormControl';
|
|
12
13
|
import Select$1 from '@material-ui/core/Select';
|
|
13
14
|
import MenuItem$1 from '@material-ui/core/MenuItem';
|
|
14
15
|
import { useInView } from 'react-intersection-observer';
|
|
15
|
-
import { FormControl, Autocomplete, TextField, CircularProgress as CircularProgress$1, Chip, Checkbox, FormHelperText, Snackbar, Alert, Dialog, DialogTitle, DialogContent, DialogContentText, DialogActions, Button, Box as Box$
|
|
16
|
+
import { FormControl, Autocomplete, TextField, CircularProgress as CircularProgress$1, Chip, Checkbox, FormHelperText, Snackbar, Alert, Dialog, DialogTitle, DialogContent, DialogContentText, DialogActions, Button, Box as Box$2, Typography as Typography$1, Tooltip as Tooltip$1, IconButton as IconButton$1, Paper as Paper$1, Tabs, Tab, Badge } from '@mui/material';
|
|
16
17
|
import CheckBoxOutlineBlankIcon from '@mui/icons-material/CheckBoxOutlineBlank';
|
|
17
18
|
import CheckBoxIcon from '@mui/icons-material/CheckBox';
|
|
18
19
|
import Box from '@mui/material/Box';
|
|
@@ -21,7 +22,21 @@ import FormControl$1 from '@mui/material/FormControl';
|
|
|
21
22
|
import Select from '@mui/material/Select';
|
|
22
23
|
import EventEmitter from 'eventemitter3';
|
|
23
24
|
import Grid from '@material-ui/core/Grid';
|
|
25
|
+
import Box$1 from '@material-ui/core/Box';
|
|
26
|
+
import IconButton from '@material-ui/core/IconButton';
|
|
27
|
+
import Tooltip from '@material-ui/core/Tooltip';
|
|
24
28
|
import Container from '@material-ui/core/Container';
|
|
29
|
+
import InsertChartOutlinedIcon from '@mui/icons-material/InsertChartOutlined';
|
|
30
|
+
import FormatListBulletedIcon from '@mui/icons-material/FormatListBulleted';
|
|
31
|
+
import TableChartOutlinedIcon from '@mui/icons-material/TableChartOutlined';
|
|
32
|
+
import BarChartIcon from '@mui/icons-material/BarChart';
|
|
33
|
+
import PieChartOutlineIcon from '@mui/icons-material/PieChartOutline';
|
|
34
|
+
import DonutLargeIcon from '@mui/icons-material/DonutLarge';
|
|
35
|
+
import ShowChartIcon from '@mui/icons-material/ShowChart';
|
|
36
|
+
import StackedLineChartIcon from '@mui/icons-material/StackedLineChart';
|
|
37
|
+
import MapOutlinedIcon from '@mui/icons-material/MapOutlined';
|
|
38
|
+
import PinOutlinedIcon from '@mui/icons-material/PinOutlined';
|
|
39
|
+
import QueryStatsIcon from '@mui/icons-material/QueryStats';
|
|
25
40
|
import { DataGrid, GridAddIcon, GridDeleteIcon } from '@mui/x-data-grid';
|
|
26
41
|
import AddIcon from '@mui/icons-material/Add';
|
|
27
42
|
import EditIcon from '@mui/icons-material/Edit';
|
|
@@ -100,7 +115,7 @@ function ValuePicker(view, schema, outputFormat = 'array') {
|
|
|
100
115
|
const value = row[item.name];
|
|
101
116
|
const ref = mapped[item.name];
|
|
102
117
|
let formatted = value;
|
|
103
|
-
if (ref.type === 'timestamp') formatted = new Date(value);else if (!ref.format) formatted = value;else if (ref.format && ref.prefix) formatted = {
|
|
118
|
+
if (!ref) formatted = value;else if (ref.type === 'timestamp') formatted = new Date(value);else if (!ref.format) formatted = value;else if (ref.format && ref.prefix) formatted = {
|
|
104
119
|
v: +value,
|
|
105
120
|
f: ref.prefix + " " + numeral(value).format(ref.format)
|
|
106
121
|
};else if (ref.format) formatted = {
|
|
@@ -457,23 +472,51 @@ const Api = {
|
|
|
457
472
|
const useStyles = makeStyles(theme => ({
|
|
458
473
|
headerRow: {
|
|
459
474
|
fontFamily: theme.typography.fontFamily,
|
|
460
|
-
fontSize:
|
|
475
|
+
fontSize: 13
|
|
476
|
+
},
|
|
477
|
+
headerCell: {
|
|
478
|
+
backgroundColor: "#ffffff !important",
|
|
479
|
+
padding: "12px 16px !important",
|
|
480
|
+
borderBottom: "1px solid #e5e7eb !important",
|
|
481
|
+
borderRight: "none !important",
|
|
482
|
+
fontWeight: "600 !important",
|
|
483
|
+
color: "#6b7280 !important",
|
|
484
|
+
textAlign: "left !important",
|
|
485
|
+
whiteSpace: "nowrap"
|
|
461
486
|
},
|
|
462
487
|
tableRow: {
|
|
463
488
|
fontFamily: theme.typography.fontFamily,
|
|
464
|
-
fontSize:
|
|
489
|
+
fontSize: 14,
|
|
490
|
+
backgroundColor: "#ffffff",
|
|
491
|
+
"& a": {
|
|
492
|
+
color: "#468682",
|
|
493
|
+
textDecoration: "underline"
|
|
494
|
+
},
|
|
495
|
+
"& a:hover": {
|
|
496
|
+
color: "#305f5c"
|
|
497
|
+
}
|
|
465
498
|
},
|
|
466
499
|
oddTableRow: {
|
|
467
500
|
fontFamily: theme.typography.fontFamily,
|
|
468
|
-
fontSize:
|
|
501
|
+
fontSize: 14,
|
|
502
|
+
backgroundColor: "#ffffff",
|
|
503
|
+
"& a": {
|
|
504
|
+
color: "#468682",
|
|
505
|
+
textDecoration: "underline"
|
|
506
|
+
},
|
|
507
|
+
"& a:hover": {
|
|
508
|
+
color: "#305f5c"
|
|
509
|
+
}
|
|
469
510
|
},
|
|
470
|
-
|
|
471
|
-
backgroundColor: "
|
|
472
|
-
|
|
511
|
+
hoverTableRow: {
|
|
512
|
+
backgroundColor: "#f9fafb !important"
|
|
513
|
+
},
|
|
514
|
+
tableCell: {
|
|
515
|
+
padding: "12px 16px !important",
|
|
516
|
+
borderBottom: "1px solid #f1f2f4 !important",
|
|
517
|
+
borderRight: "none !important",
|
|
518
|
+
color: "#1f2937"
|
|
473
519
|
}
|
|
474
|
-
// tableCell:{
|
|
475
|
-
// // padding:"4px !important"
|
|
476
|
-
// },
|
|
477
520
|
}));
|
|
478
521
|
const dateRangeFormats = {
|
|
479
522
|
none: "YYYY-MM-dd",
|
|
@@ -489,7 +532,8 @@ function GoogleChart({
|
|
|
489
532
|
report,
|
|
490
533
|
schema,
|
|
491
534
|
dashboard,
|
|
492
|
-
query
|
|
535
|
+
query,
|
|
536
|
+
params
|
|
493
537
|
}) {
|
|
494
538
|
const [data, setData] = React__default.useState([]);
|
|
495
539
|
const classes = useStyles();
|
|
@@ -514,7 +558,8 @@ function GoogleChart({
|
|
|
514
558
|
if (chart?.doc.chart?.type === "Table") {
|
|
515
559
|
return {
|
|
516
560
|
...chart?.doc.chart?.options,
|
|
517
|
-
cssClassNames: classes
|
|
561
|
+
cssClassNames: classes,
|
|
562
|
+
allowHtml: true
|
|
518
563
|
};
|
|
519
564
|
} else if (chart?.doc.chart?.type === "AreaChart") {
|
|
520
565
|
const hAxisFromChart = chart?.doc.chart?.options?.hAxis || {};
|
|
@@ -550,16 +595,82 @@ function GoogleChart({
|
|
|
550
595
|
});
|
|
551
596
|
source?.length ? setData(result) : setData();
|
|
552
597
|
}, [chart, source, view, report, schema]);
|
|
598
|
+
const hidden = (view?.columns || []).filter(c => c.hidden).map(c => c.name);
|
|
599
|
+
const visibleIndexes = (view?.columns || []).map((col, i) => hidden.includes(col.name) ? -1 : i).filter(i => i !== -1);
|
|
600
|
+
const getRaw = cell => cell && typeof cell === "object" && "v" in cell ? cell.v : cell;
|
|
601
|
+
const getDisplay = cell => cell && typeof cell === "object" && "f" in cell ? cell.f : cell;
|
|
602
|
+
const escapeHtml = s => String(s ?? "").replace(/[&<>"']/g, c => ({
|
|
603
|
+
"&": "&",
|
|
604
|
+
"<": "<",
|
|
605
|
+
">": ">",
|
|
606
|
+
'"': """,
|
|
607
|
+
"'": "'"
|
|
608
|
+
})[c]);
|
|
609
|
+
const paramAliases = {
|
|
610
|
+
client_id: params?.client
|
|
611
|
+
};
|
|
612
|
+
const renderLink = (template, fullRow) => template.replace(/\{\{([\w.]+)\}\}/g, (_, key) => {
|
|
613
|
+
if (key.startsWith("params.")) {
|
|
614
|
+
const k = key.slice("params.".length);
|
|
615
|
+
return encodeURIComponent(params?.[k] ?? "");
|
|
616
|
+
}
|
|
617
|
+
const idx = (view?.columns || []).findIndex(c => c.name === key);
|
|
618
|
+
if (idx >= 0) return encodeURIComponent(getRaw(fullRow[idx]) ?? "");
|
|
619
|
+
if (key in paramAliases) return encodeURIComponent(paramAliases[key] ?? "");
|
|
620
|
+
if (params && key in params) return encodeURIComponent(params[key] ?? "");
|
|
621
|
+
return "";
|
|
622
|
+
});
|
|
623
|
+
const displayData = data?.length ? data.map((row, rowIdx) => {
|
|
624
|
+
if (rowIdx === 0) return visibleIndexes.map(i => row[i]);
|
|
625
|
+
return visibleIndexes.map(i => {
|
|
626
|
+
const col = view.columns[i];
|
|
627
|
+
const cell = row[i];
|
|
628
|
+
if (!col?.link) return cell;
|
|
629
|
+
const url = renderLink(col.link, row);
|
|
630
|
+
const display = escapeHtml(getDisplay(cell));
|
|
631
|
+
return {
|
|
632
|
+
v: getRaw(cell),
|
|
633
|
+
f: `<a href="${url}" target="blank">${display}</a>`
|
|
634
|
+
};
|
|
635
|
+
});
|
|
636
|
+
}) : data;
|
|
637
|
+
const maxHeight = chart?.doc?.chart?.options?.maxHeight;
|
|
638
|
+
const containerStyle = maxHeight ? {
|
|
639
|
+
maxHeight,
|
|
640
|
+
overflow: "auto"
|
|
641
|
+
} : {};
|
|
553
642
|
return data ? /*#__PURE__*/React__default.createElement("div", {
|
|
554
|
-
style:
|
|
643
|
+
style: containerStyle
|
|
555
644
|
}, /*#__PURE__*/React__default.createElement(Chart$1, _extends({
|
|
556
645
|
width: chart?.doc.size?.width || "100%"
|
|
557
646
|
//height={dashboard ? (chart?.doc.size?.height || '300px') : '100%'}
|
|
558
647
|
,
|
|
559
648
|
chartType: chart?.doc.chart?.type,
|
|
560
|
-
data:
|
|
649
|
+
data: displayData,
|
|
561
650
|
options: getOptions(data)
|
|
562
|
-
}, chart?.doc.chart?.props
|
|
651
|
+
}, chart?.doc.chart?.props, {
|
|
652
|
+
chartEvents: [{
|
|
653
|
+
eventName: "select",
|
|
654
|
+
callback: ({
|
|
655
|
+
chartWrapper
|
|
656
|
+
}) => {
|
|
657
|
+
const selection = chartWrapper.getChart().getSelection();
|
|
658
|
+
if (!selection.length) return;
|
|
659
|
+
const {
|
|
660
|
+
row
|
|
661
|
+
} = selection[0];
|
|
662
|
+
const values = data[row + 1];
|
|
663
|
+
const rowObject = (view?.columns || []).reduce((acc, col, i) => {
|
|
664
|
+
const v = values[i];
|
|
665
|
+
acc[col.name] = v && typeof v === "object" && "v" in v ? v.v : v;
|
|
666
|
+
return acc;
|
|
667
|
+
}, {});
|
|
668
|
+
|
|
669
|
+
//const url = https://dev.netcapital.pro/client/financing-order/applications/bdc1a65c-808a-425a-97d9-587b5f6bc003?clientId=7774bcad-05dc-48cf-a52b-9a8a56168818
|
|
670
|
+
console.log("clicked row:", row, rowObject);
|
|
671
|
+
}
|
|
672
|
+
}]
|
|
673
|
+
}))) : /*#__PURE__*/React__default.createElement("div", null);
|
|
563
674
|
}
|
|
564
675
|
|
|
565
676
|
function LabelChart({
|
|
@@ -567,7 +678,8 @@ function LabelChart({
|
|
|
567
678
|
source,
|
|
568
679
|
view,
|
|
569
680
|
report,
|
|
570
|
-
schema
|
|
681
|
+
schema,
|
|
682
|
+
onNavigate
|
|
571
683
|
}) {
|
|
572
684
|
const [data, setData] = React__default.useState([]);
|
|
573
685
|
const [value, setValue] = React__default.useState();
|
|
@@ -592,18 +704,34 @@ function LabelChart({
|
|
|
592
704
|
setSubText(subTextRendered);
|
|
593
705
|
}
|
|
594
706
|
}, [chart, source, view, report, schema]);
|
|
707
|
+
const nextView = chart?.doc?.chart?.options?.nextView;
|
|
708
|
+
const canNavigate = typeof nextView === "number" && typeof onNavigate === "function";
|
|
595
709
|
return /*#__PURE__*/React__default.createElement("div", {
|
|
596
710
|
style: {
|
|
597
711
|
display: "flex",
|
|
598
712
|
justifyContent: "center",
|
|
599
713
|
alignContent: "center",
|
|
600
|
-
//alignItems: "center",
|
|
714
|
+
//alignItems: "center",
|
|
601
715
|
height: "100%",
|
|
602
716
|
flexDirection: "column"
|
|
603
717
|
}
|
|
718
|
+
}, /*#__PURE__*/React__default.createElement("div", {
|
|
719
|
+
style: {
|
|
720
|
+
display: "flex",
|
|
721
|
+
alignItems: "center",
|
|
722
|
+
gap: 8
|
|
723
|
+
}
|
|
604
724
|
}, /*#__PURE__*/React__default.createElement(Typography, {
|
|
605
725
|
variant: "h6"
|
|
606
|
-
}, value?.f || value), /*#__PURE__*/React__default.createElement(
|
|
726
|
+
}, value?.f || value), canNavigate && /*#__PURE__*/React__default.createElement(Link, {
|
|
727
|
+
component: "button",
|
|
728
|
+
variant: "h6",
|
|
729
|
+
onClick: () => onNavigate(nextView),
|
|
730
|
+
style: {
|
|
731
|
+
lineHeight: 1,
|
|
732
|
+
fontSize: "2rem"
|
|
733
|
+
}
|
|
734
|
+
}, "\xBB")), /*#__PURE__*/React__default.createElement(Typography, {
|
|
607
735
|
variant: "caption"
|
|
608
736
|
}, subText));
|
|
609
737
|
}
|
|
@@ -1081,6 +1209,11 @@ var Chart = ({
|
|
|
1081
1209
|
value: props?.filter
|
|
1082
1210
|
});
|
|
1083
1211
|
const [currentQuery, setCurrentQuery] = React__default.useState({});
|
|
1212
|
+
useEffect(() => {
|
|
1213
|
+
console.log('CHART', {
|
|
1214
|
+
id
|
|
1215
|
+
});
|
|
1216
|
+
}, [id]);
|
|
1084
1217
|
|
|
1085
1218
|
// sample label
|
|
1086
1219
|
// if(id!=='financing_applications') return null;
|
|
@@ -1160,7 +1293,9 @@ var Chart = ({
|
|
|
1160
1293
|
report: report,
|
|
1161
1294
|
schema: schema,
|
|
1162
1295
|
dashboard: dashboard,
|
|
1163
|
-
query: currentQuery
|
|
1296
|
+
query: currentQuery,
|
|
1297
|
+
params: props.params,
|
|
1298
|
+
onNavigate: props.onNavigate
|
|
1164
1299
|
}));
|
|
1165
1300
|
};
|
|
1166
1301
|
const onViewChanged = React__default.useCallback(event => {
|
|
@@ -1288,19 +1423,24 @@ var Chart = ({
|
|
|
1288
1423
|
gap: "12px",
|
|
1289
1424
|
height: "100%"
|
|
1290
1425
|
}
|
|
1291
|
-
}, chart && /*#__PURE__*/React__default.createElement("div", {
|
|
1426
|
+
}, (chart || props?.headerActions) && /*#__PURE__*/React__default.createElement("div", {
|
|
1292
1427
|
style: {
|
|
1293
1428
|
display: "flex",
|
|
1294
1429
|
alignItems: "center",
|
|
1295
1430
|
lineHeight: 0
|
|
1296
1431
|
}
|
|
1297
|
-
}, /*#__PURE__*/React__default.createElement(Typography, {
|
|
1432
|
+
}, chart && /*#__PURE__*/React__default.createElement(Typography, {
|
|
1298
1433
|
variant: "subtitle2",
|
|
1299
1434
|
style: {
|
|
1300
1435
|
fontWeight: 600,
|
|
1301
1436
|
color: "#252525"
|
|
1302
1437
|
}
|
|
1303
|
-
}, props?.title || chart.doc.name, " ")
|
|
1438
|
+
}, props?.title || chart.doc.name, " "), props?.headerActions && /*#__PURE__*/React__default.createElement("div", {
|
|
1439
|
+
style: {
|
|
1440
|
+
marginLeft: "auto",
|
|
1441
|
+
lineHeight: "normal"
|
|
1442
|
+
}
|
|
1443
|
+
}, props.headerActions)), loading ? /*#__PURE__*/React__default.createElement(LinearIndeterminate, {
|
|
1304
1444
|
style: {
|
|
1305
1445
|
display: "flex",
|
|
1306
1446
|
justifyContent: "center",
|
|
@@ -1428,6 +1568,87 @@ const useReportingContextOptional = () => {
|
|
|
1428
1568
|
return useContext(ReportingContext);
|
|
1429
1569
|
};
|
|
1430
1570
|
|
|
1571
|
+
const VIEW_ICONS = {
|
|
1572
|
+
count: PinOutlinedIcon,
|
|
1573
|
+
list: FormatListBulletedIcon,
|
|
1574
|
+
table: TableChartOutlinedIcon,
|
|
1575
|
+
bar: BarChartIcon,
|
|
1576
|
+
pie: PieChartOutlineIcon,
|
|
1577
|
+
donut: DonutLargeIcon,
|
|
1578
|
+
line: ShowChartIcon,
|
|
1579
|
+
area: StackedLineChartIcon,
|
|
1580
|
+
map: MapOutlinedIcon,
|
|
1581
|
+
stats: QueryStatsIcon
|
|
1582
|
+
};
|
|
1583
|
+
const resolveViewIcon = icon => VIEW_ICONS[icon] || InsertChartOutlinedIcon;
|
|
1584
|
+
function ColumnItem({
|
|
1585
|
+
column,
|
|
1586
|
+
md,
|
|
1587
|
+
api,
|
|
1588
|
+
cache,
|
|
1589
|
+
dashboard,
|
|
1590
|
+
schema,
|
|
1591
|
+
params
|
|
1592
|
+
}) {
|
|
1593
|
+
const views = Array.isArray(column.views) ? column.views : null;
|
|
1594
|
+
const [activeIndex, setActiveIndex] = React__default.useState(0);
|
|
1595
|
+
if (views && views.length > 0) {
|
|
1596
|
+
const safeIndex = Math.min(activeIndex, views.length - 1);
|
|
1597
|
+
const active = views[safeIndex];
|
|
1598
|
+
const toolbar = /*#__PURE__*/React__default.createElement(Box$1, {
|
|
1599
|
+
display: "flex"
|
|
1600
|
+
}, views.map((v, i) => {
|
|
1601
|
+
const Icon = resolveViewIcon(v.icon);
|
|
1602
|
+
const selected = i === safeIndex;
|
|
1603
|
+
return /*#__PURE__*/React__default.createElement(Tooltip, {
|
|
1604
|
+
key: v.id || i,
|
|
1605
|
+
title: v.name || v.id || ""
|
|
1606
|
+
}, /*#__PURE__*/React__default.createElement(IconButton, {
|
|
1607
|
+
size: "small",
|
|
1608
|
+
onClick: () => setActiveIndex(i),
|
|
1609
|
+
"aria-label": v.name || v.id,
|
|
1610
|
+
"aria-pressed": selected,
|
|
1611
|
+
style: {
|
|
1612
|
+
color: selected ? "#468682" : "#9ca3af"
|
|
1613
|
+
}
|
|
1614
|
+
}, /*#__PURE__*/React__default.createElement(Icon, {
|
|
1615
|
+
fontSize: "small"
|
|
1616
|
+
})));
|
|
1617
|
+
}));
|
|
1618
|
+
return /*#__PURE__*/React__default.createElement(Grid, {
|
|
1619
|
+
item: true,
|
|
1620
|
+
xs: 12,
|
|
1621
|
+
md: md
|
|
1622
|
+
}, /*#__PURE__*/React__default.createElement(Chart, {
|
|
1623
|
+
api: api,
|
|
1624
|
+
cache: cache,
|
|
1625
|
+
id: active.id,
|
|
1626
|
+
dashboard: dashboard,
|
|
1627
|
+
schema: schema,
|
|
1628
|
+
title: column.name || active.title,
|
|
1629
|
+
filter: active.filter,
|
|
1630
|
+
params: params,
|
|
1631
|
+
headerActions: toolbar,
|
|
1632
|
+
onNavigate: i => {
|
|
1633
|
+
if (typeof i === "number" && i >= 0 && i < views.length) setActiveIndex(i);
|
|
1634
|
+
}
|
|
1635
|
+
}));
|
|
1636
|
+
}
|
|
1637
|
+
return /*#__PURE__*/React__default.createElement(Grid, {
|
|
1638
|
+
item: true,
|
|
1639
|
+
xs: 12,
|
|
1640
|
+
md: md
|
|
1641
|
+
}, /*#__PURE__*/React__default.createElement(Chart, {
|
|
1642
|
+
api: api,
|
|
1643
|
+
cache: cache,
|
|
1644
|
+
id: column.id,
|
|
1645
|
+
dashboard: dashboard,
|
|
1646
|
+
schema: schema,
|
|
1647
|
+
title: column.title,
|
|
1648
|
+
filter: column.filter,
|
|
1649
|
+
params: params
|
|
1650
|
+
}));
|
|
1651
|
+
}
|
|
1431
1652
|
function Dashboard({
|
|
1432
1653
|
id,
|
|
1433
1654
|
api,
|
|
@@ -1476,18 +1697,21 @@ function Dashboard({
|
|
|
1476
1697
|
const create_rows_and_columns = async entity => {
|
|
1477
1698
|
const srcRows = entity?.doc?.rows || [];
|
|
1478
1699
|
const targetRows = [];
|
|
1700
|
+
const resolveFilter = entity => {
|
|
1701
|
+
if (entity?.override?.filter?.length) {
|
|
1702
|
+
const filter = {};
|
|
1703
|
+
entity.override.filter.forEach(item => {
|
|
1704
|
+
if (item.hasOwnProperty("value")) filter[item.field] = [item.value];
|
|
1705
|
+
// else filter[item.field] = [sourceDataRow[item.field]];
|
|
1706
|
+
});
|
|
1707
|
+
entity.filter = filter;
|
|
1708
|
+
}
|
|
1709
|
+
};
|
|
1479
1710
|
for (let i = 0; i < srcRows.length; i++) {
|
|
1480
1711
|
const row = srcRows[i];
|
|
1481
1712
|
row.columns?.forEach(column => {
|
|
1482
|
-
|
|
1483
|
-
|
|
1484
|
-
const filter = {};
|
|
1485
|
-
column.override.filter.forEach(item => {
|
|
1486
|
-
if (item.hasOwnProperty("value")) filter[item.field] = [item.value];
|
|
1487
|
-
// else filter[item.field] = [sourceDataRow[item.field]];
|
|
1488
|
-
});
|
|
1489
|
-
column.filter = filter;
|
|
1490
|
-
}
|
|
1713
|
+
resolveFilter(column);
|
|
1714
|
+
column.views?.forEach(resolveFilter);
|
|
1491
1715
|
});
|
|
1492
1716
|
targetRows.push(row);
|
|
1493
1717
|
}
|
|
@@ -1551,37 +1775,27 @@ function Dashboard({
|
|
|
1551
1775
|
}, /*#__PURE__*/React__default.createElement(Grid, {
|
|
1552
1776
|
container: true,
|
|
1553
1777
|
spacing: 3
|
|
1554
|
-
}, row.columns.map((column, i) => /*#__PURE__*/React__default.createElement(
|
|
1778
|
+
}, row.columns.map((column, i) => /*#__PURE__*/React__default.createElement(ColumnItem, {
|
|
1555
1779
|
key: i,
|
|
1556
|
-
|
|
1557
|
-
|
|
1558
|
-
md: md
|
|
1559
|
-
}, /*#__PURE__*/React__default.createElement(Chart, {
|
|
1780
|
+
column: column,
|
|
1781
|
+
md: md,
|
|
1560
1782
|
api: finalApi,
|
|
1561
1783
|
cache: cache.current,
|
|
1562
|
-
id: column.id,
|
|
1563
1784
|
dashboard: dashboard,
|
|
1564
1785
|
schema: schema,
|
|
1565
|
-
title: column.title,
|
|
1566
|
-
filter: column.filter,
|
|
1567
1786
|
params: finalParams
|
|
1568
|
-
}))))
|
|
1787
|
+
})))) :
|
|
1569
1788
|
// All other rows behave normally
|
|
1570
|
-
row.columns.map((column, i) => /*#__PURE__*/React__default.createElement(
|
|
1789
|
+
row.columns.map((column, i) => /*#__PURE__*/React__default.createElement(ColumnItem, {
|
|
1571
1790
|
key: i,
|
|
1572
|
-
|
|
1573
|
-
|
|
1574
|
-
md: md
|
|
1575
|
-
}, /*#__PURE__*/React__default.createElement(Chart, {
|
|
1791
|
+
column: column,
|
|
1792
|
+
md: md,
|
|
1576
1793
|
api: finalApi,
|
|
1577
1794
|
cache: cache.current,
|
|
1578
|
-
id: column.id,
|
|
1579
1795
|
dashboard: dashboard,
|
|
1580
1796
|
schema: schema,
|
|
1581
|
-
title: column.title,
|
|
1582
|
-
filter: column.filter,
|
|
1583
1797
|
params: finalParams
|
|
1584
|
-
})))
|
|
1798
|
+
})));
|
|
1585
1799
|
})))
|
|
1586
1800
|
);
|
|
1587
1801
|
}
|
|
@@ -1849,45 +2063,45 @@ const ReportDefinitionsList = ({
|
|
|
1849
2063
|
disableColumnMenu: true,
|
|
1850
2064
|
renderCell: params => {
|
|
1851
2065
|
const isUserOverride = params.row.source === "user-override";
|
|
1852
|
-
return /*#__PURE__*/React__default.createElement(Box$
|
|
2066
|
+
return /*#__PURE__*/React__default.createElement(Box$2, {
|
|
1853
2067
|
sx: {
|
|
1854
2068
|
display: "flex",
|
|
1855
2069
|
gap: 1
|
|
1856
2070
|
}
|
|
1857
|
-
}, /*#__PURE__*/React__default.createElement(Tooltip, {
|
|
2071
|
+
}, /*#__PURE__*/React__default.createElement(Tooltip$1, {
|
|
1858
2072
|
title: "Run"
|
|
1859
|
-
}, /*#__PURE__*/React__default.createElement(IconButton, {
|
|
2073
|
+
}, /*#__PURE__*/React__default.createElement(IconButton$1, {
|
|
1860
2074
|
size: "small",
|
|
1861
2075
|
color: "success",
|
|
1862
2076
|
onClick: e => handleRun(params.row.id, e)
|
|
1863
2077
|
}, /*#__PURE__*/React__default.createElement(PlayArrowIcon, {
|
|
1864
2078
|
fontSize: "small"
|
|
1865
|
-
}))), /*#__PURE__*/React__default.createElement(Tooltip, {
|
|
2079
|
+
}))), /*#__PURE__*/React__default.createElement(Tooltip$1, {
|
|
1866
2080
|
title: "Edit"
|
|
1867
|
-
}, /*#__PURE__*/React__default.createElement(IconButton, {
|
|
2081
|
+
}, /*#__PURE__*/React__default.createElement(IconButton$1, {
|
|
1868
2082
|
size: "small",
|
|
1869
2083
|
color: "primary",
|
|
1870
2084
|
onClick: e => handleEdit(params.row.id, e)
|
|
1871
2085
|
}, /*#__PURE__*/React__default.createElement(EditIcon, {
|
|
1872
2086
|
fontSize: "small"
|
|
1873
|
-
}))), /*#__PURE__*/React__default.createElement(Tooltip, {
|
|
2087
|
+
}))), /*#__PURE__*/React__default.createElement(Tooltip$1, {
|
|
1874
2088
|
title: "Clone"
|
|
1875
|
-
}, /*#__PURE__*/React__default.createElement(IconButton, {
|
|
2089
|
+
}, /*#__PURE__*/React__default.createElement(IconButton$1, {
|
|
1876
2090
|
size: "small",
|
|
1877
2091
|
onClick: e => handleClone(params.row.id, e)
|
|
1878
2092
|
}, /*#__PURE__*/React__default.createElement(ContentCopyIcon, {
|
|
1879
2093
|
fontSize: "small"
|
|
1880
|
-
}))), isUserOverride ? /*#__PURE__*/React__default.createElement(Tooltip, {
|
|
2094
|
+
}))), isUserOverride ? /*#__PURE__*/React__default.createElement(Tooltip$1, {
|
|
1881
2095
|
title: "Revert to the system report"
|
|
1882
|
-
}, /*#__PURE__*/React__default.createElement(IconButton, {
|
|
2096
|
+
}, /*#__PURE__*/React__default.createElement(IconButton$1, {
|
|
1883
2097
|
size: "small",
|
|
1884
2098
|
color: "warning",
|
|
1885
2099
|
onClick: e => handleDelete(params.row.id, e)
|
|
1886
2100
|
}, /*#__PURE__*/React__default.createElement(RestoreIcon, {
|
|
1887
2101
|
fontSize: "small"
|
|
1888
|
-
}))) : /*#__PURE__*/React__default.createElement(Tooltip, {
|
|
2102
|
+
}))) : /*#__PURE__*/React__default.createElement(Tooltip$1, {
|
|
1889
2103
|
title: "Delete"
|
|
1890
|
-
}, /*#__PURE__*/React__default.createElement(IconButton, {
|
|
2104
|
+
}, /*#__PURE__*/React__default.createElement(IconButton$1, {
|
|
1891
2105
|
size: "small",
|
|
1892
2106
|
color: "error",
|
|
1893
2107
|
onClick: e => handleDelete(params.row.id, e)
|
|
@@ -1906,7 +2120,7 @@ const ReportDefinitionsList = ({
|
|
|
1906
2120
|
onSelectReport(params.row.id);
|
|
1907
2121
|
};
|
|
1908
2122
|
if (loading) {
|
|
1909
|
-
return /*#__PURE__*/React__default.createElement(Box$
|
|
2123
|
+
return /*#__PURE__*/React__default.createElement(Box$2, {
|
|
1910
2124
|
display: "flex",
|
|
1911
2125
|
justifyContent: "center",
|
|
1912
2126
|
alignItems: "center",
|
|
@@ -1914,7 +2128,7 @@ const ReportDefinitionsList = ({
|
|
|
1914
2128
|
}, /*#__PURE__*/React__default.createElement(CircularProgress$1, null));
|
|
1915
2129
|
}
|
|
1916
2130
|
if (error) {
|
|
1917
|
-
return /*#__PURE__*/React__default.createElement(Box$
|
|
2131
|
+
return /*#__PURE__*/React__default.createElement(Box$2, {
|
|
1918
2132
|
display: "flex",
|
|
1919
2133
|
flexDirection: "column",
|
|
1920
2134
|
justifyContent: "center",
|
|
@@ -1929,14 +2143,14 @@ const ReportDefinitionsList = ({
|
|
|
1929
2143
|
onClick: loadReportDefinitions
|
|
1930
2144
|
}, "Retry"));
|
|
1931
2145
|
}
|
|
1932
|
-
return /*#__PURE__*/React__default.createElement(Box$
|
|
2146
|
+
return /*#__PURE__*/React__default.createElement(Box$2, {
|
|
1933
2147
|
sx: {
|
|
1934
2148
|
p: 3,
|
|
1935
2149
|
display: "flex",
|
|
1936
2150
|
flexDirection: "column",
|
|
1937
2151
|
fontFamily: "system-ui"
|
|
1938
2152
|
}
|
|
1939
|
-
}, /*#__PURE__*/React__default.createElement(Box$
|
|
2153
|
+
}, /*#__PURE__*/React__default.createElement(Box$2, {
|
|
1940
2154
|
sx: {
|
|
1941
2155
|
display: "flex",
|
|
1942
2156
|
justifyContent: "flex-end",
|
|
@@ -1956,7 +2170,7 @@ const ReportDefinitionsList = ({
|
|
|
1956
2170
|
},
|
|
1957
2171
|
startIcon: /*#__PURE__*/React__default.createElement(AddIcon, null),
|
|
1958
2172
|
onClick: onAddNew
|
|
1959
|
-
}, "Add New Report")), /*#__PURE__*/React__default.createElement(Box$
|
|
2173
|
+
}, "Add New Report")), /*#__PURE__*/React__default.createElement(Box$2, {
|
|
1960
2174
|
sx: {
|
|
1961
2175
|
flex: 1,
|
|
1962
2176
|
width: "100%",
|
|
@@ -2105,7 +2319,7 @@ const ProviderSelection = ({
|
|
|
2105
2319
|
disabled: disabled,
|
|
2106
2320
|
disabledReason: disabledReason
|
|
2107
2321
|
};
|
|
2108
|
-
});
|
|
2322
|
+
}).sort((a, b) => a.value.localeCompare(b.value));
|
|
2109
2323
|
};
|
|
2110
2324
|
|
|
2111
2325
|
// Handle selection at a specific level
|
|
@@ -2198,11 +2412,11 @@ const ProviderSelection = ({
|
|
|
2198
2412
|
}
|
|
2199
2413
|
return dropdowns;
|
|
2200
2414
|
};
|
|
2201
|
-
return /*#__PURE__*/React__default.createElement(Box$
|
|
2415
|
+
return /*#__PURE__*/React__default.createElement(Box$2, null, selectionChain.length > 0 && /*#__PURE__*/React__default.createElement(Box$2, {
|
|
2202
2416
|
sx: {
|
|
2203
2417
|
marginBottom: 2
|
|
2204
2418
|
}
|
|
2205
|
-
}, /*#__PURE__*/React__default.createElement(Box$
|
|
2419
|
+
}, /*#__PURE__*/React__default.createElement(Box$2, {
|
|
2206
2420
|
sx: {
|
|
2207
2421
|
display: "flex",
|
|
2208
2422
|
alignItems: "center",
|
|
@@ -2385,7 +2599,7 @@ const SortableChip$1 = ({
|
|
|
2385
2599
|
return /*#__PURE__*/React__default.createElement("div", _extends({
|
|
2386
2600
|
ref: setNodeRef,
|
|
2387
2601
|
style: style
|
|
2388
|
-
}, attributes), /*#__PURE__*/React__default.createElement(Box$
|
|
2602
|
+
}, attributes), /*#__PURE__*/React__default.createElement(Box$2, {
|
|
2389
2603
|
ref: containerRef,
|
|
2390
2604
|
sx: {
|
|
2391
2605
|
display: "flex",
|
|
@@ -2402,7 +2616,7 @@ const SortableChip$1 = ({
|
|
|
2402
2616
|
opacity: 1 // show icons on hover
|
|
2403
2617
|
}
|
|
2404
2618
|
}
|
|
2405
|
-
}, /*#__PURE__*/React__default.createElement(Box$
|
|
2619
|
+
}, /*#__PURE__*/React__default.createElement(Box$2, _extends({}, listeners, {
|
|
2406
2620
|
sx: {
|
|
2407
2621
|
display: "flex",
|
|
2408
2622
|
alignItems: "center",
|
|
@@ -2416,11 +2630,11 @@ const SortableChip$1 = ({
|
|
|
2416
2630
|
cursor: "grab",
|
|
2417
2631
|
color: "rgba(110, 110, 110, 0.62)"
|
|
2418
2632
|
}
|
|
2419
|
-
})), !isEditing ? /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(Box$
|
|
2633
|
+
})), !isEditing ? /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(Box$2, {
|
|
2420
2634
|
sx: {
|
|
2421
2635
|
minWidth: 0
|
|
2422
2636
|
}
|
|
2423
|
-
}, /*#__PURE__*/React__default.createElement(Tooltip, {
|
|
2637
|
+
}, /*#__PURE__*/React__default.createElement(Tooltip$1, {
|
|
2424
2638
|
title: fullLabel || displayLabel,
|
|
2425
2639
|
arrow: true,
|
|
2426
2640
|
placement: "top"
|
|
@@ -2435,7 +2649,7 @@ const SortableChip$1 = ({
|
|
|
2435
2649
|
overflow: "hidden",
|
|
2436
2650
|
textOverflow: "ellipsis"
|
|
2437
2651
|
}
|
|
2438
|
-
}, displayLabel))), /*#__PURE__*/React__default.createElement(Box$
|
|
2652
|
+
}, displayLabel))), /*#__PURE__*/React__default.createElement(Box$2, {
|
|
2439
2653
|
className: "hover-icons",
|
|
2440
2654
|
sx: {
|
|
2441
2655
|
display: "flex",
|
|
@@ -2443,30 +2657,30 @@ const SortableChip$1 = ({
|
|
|
2443
2657
|
opacity: 0,
|
|
2444
2658
|
transition: "opacity 0.2s"
|
|
2445
2659
|
}
|
|
2446
|
-
}, /*#__PURE__*/React__default.createElement(Tooltip, {
|
|
2660
|
+
}, /*#__PURE__*/React__default.createElement(Tooltip$1, {
|
|
2447
2661
|
title: "Edit title",
|
|
2448
2662
|
arrow: true,
|
|
2449
2663
|
placement: "top"
|
|
2450
|
-
}, /*#__PURE__*/React__default.createElement(IconButton, {
|
|
2664
|
+
}, /*#__PURE__*/React__default.createElement(IconButton$1, {
|
|
2451
2665
|
size: "small",
|
|
2452
2666
|
onClick: handleEditClick,
|
|
2453
2667
|
"aria-label": "edit title"
|
|
2454
2668
|
}, /*#__PURE__*/React__default.createElement(EditIcon, {
|
|
2455
2669
|
fontSize: "small"
|
|
2456
|
-
}))), /*#__PURE__*/React__default.createElement(Tooltip, {
|
|
2670
|
+
}))), /*#__PURE__*/React__default.createElement(Tooltip$1, {
|
|
2457
2671
|
title: sortOrder === null ? "No sort" : sortOrder === "asc" ? "Ascending" : "Descending",
|
|
2458
2672
|
arrow: true,
|
|
2459
2673
|
placement: "top"
|
|
2460
|
-
}, /*#__PURE__*/React__default.createElement(IconButton, {
|
|
2674
|
+
}, /*#__PURE__*/React__default.createElement(IconButton$1, {
|
|
2461
2675
|
size: "small",
|
|
2462
2676
|
onClick: handleSortToggle,
|
|
2463
2677
|
"aria-label": "toggle sort order",
|
|
2464
2678
|
color: sortOrder ? "primary" : "default"
|
|
2465
|
-
}, getSortIcon())), /*#__PURE__*/React__default.createElement(Tooltip, {
|
|
2679
|
+
}, getSortIcon())), /*#__PURE__*/React__default.createElement(Tooltip$1, {
|
|
2466
2680
|
title: "Delete",
|
|
2467
2681
|
arrow: true,
|
|
2468
2682
|
placement: "top"
|
|
2469
|
-
}, /*#__PURE__*/React__default.createElement(IconButton, {
|
|
2683
|
+
}, /*#__PURE__*/React__default.createElement(IconButton$1, {
|
|
2470
2684
|
size: "small",
|
|
2471
2685
|
onClick: onDelete,
|
|
2472
2686
|
"aria-label": "delete",
|
|
@@ -2475,11 +2689,11 @@ const SortableChip$1 = ({
|
|
|
2475
2689
|
}
|
|
2476
2690
|
}, /*#__PURE__*/React__default.createElement(GridDeleteIcon, {
|
|
2477
2691
|
fontSize: "small"
|
|
2478
|
-
})))), /*#__PURE__*/React__default.createElement(Box$
|
|
2692
|
+
})))), /*#__PURE__*/React__default.createElement(Box$2, {
|
|
2479
2693
|
sx: {
|
|
2480
2694
|
flex: 1
|
|
2481
2695
|
}
|
|
2482
|
-
}), /*#__PURE__*/React__default.createElement(Box$
|
|
2696
|
+
}), /*#__PURE__*/React__default.createElement(Box$2, {
|
|
2483
2697
|
className: "hover-icons",
|
|
2484
2698
|
sx: {
|
|
2485
2699
|
display: "flex",
|
|
@@ -2487,14 +2701,14 @@ const SortableChip$1 = ({
|
|
|
2487
2701
|
opacity: 0,
|
|
2488
2702
|
transition: "opacity 0.2s"
|
|
2489
2703
|
}
|
|
2490
|
-
}, /*#__PURE__*/React__default.createElement(IconButton, {
|
|
2704
|
+
}, /*#__PURE__*/React__default.createElement(IconButton$1, {
|
|
2491
2705
|
size: "small",
|
|
2492
2706
|
onClick: onMoveUp,
|
|
2493
2707
|
disabled: isFirst,
|
|
2494
2708
|
"aria-label": "move up"
|
|
2495
2709
|
}, /*#__PURE__*/React__default.createElement(ArrowUpwardIcon, {
|
|
2496
2710
|
fontSize: "small"
|
|
2497
|
-
})), /*#__PURE__*/React__default.createElement(IconButton, {
|
|
2711
|
+
})), /*#__PURE__*/React__default.createElement(IconButton$1, {
|
|
2498
2712
|
size: "small",
|
|
2499
2713
|
onClick: onMoveDown,
|
|
2500
2714
|
disabled: isLast,
|
|
@@ -2511,46 +2725,46 @@ const SortableChip$1 = ({
|
|
|
2511
2725
|
minWidth: '200px',
|
|
2512
2726
|
maxWidth: '400px'
|
|
2513
2727
|
}
|
|
2514
|
-
}), /*#__PURE__*/React__default.createElement(Box$
|
|
2728
|
+
}), /*#__PURE__*/React__default.createElement(Box$2, {
|
|
2515
2729
|
className: "hover-icons",
|
|
2516
2730
|
sx: {
|
|
2517
2731
|
display: "flex",
|
|
2518
2732
|
gap: 0.5,
|
|
2519
2733
|
opacity: 1
|
|
2520
2734
|
}
|
|
2521
|
-
}, /*#__PURE__*/React__default.createElement(Tooltip, {
|
|
2735
|
+
}, /*#__PURE__*/React__default.createElement(Tooltip$1, {
|
|
2522
2736
|
title: "Save",
|
|
2523
2737
|
arrow: true,
|
|
2524
2738
|
placement: "top"
|
|
2525
|
-
}, /*#__PURE__*/React__default.createElement(IconButton, {
|
|
2739
|
+
}, /*#__PURE__*/React__default.createElement(IconButton$1, {
|
|
2526
2740
|
size: "small",
|
|
2527
2741
|
onClick: handleSave,
|
|
2528
2742
|
color: "primary",
|
|
2529
2743
|
"aria-label": "save title"
|
|
2530
2744
|
}, /*#__PURE__*/React__default.createElement(CheckIcon, {
|
|
2531
2745
|
fontSize: "small"
|
|
2532
|
-
}))), /*#__PURE__*/React__default.createElement(Tooltip, {
|
|
2746
|
+
}))), /*#__PURE__*/React__default.createElement(Tooltip$1, {
|
|
2533
2747
|
title: "Cancel",
|
|
2534
2748
|
arrow: true,
|
|
2535
2749
|
placement: "top"
|
|
2536
|
-
}, /*#__PURE__*/React__default.createElement(IconButton, {
|
|
2750
|
+
}, /*#__PURE__*/React__default.createElement(IconButton$1, {
|
|
2537
2751
|
size: "small",
|
|
2538
2752
|
onClick: handleCancel,
|
|
2539
2753
|
"aria-label": "cancel edit"
|
|
2540
2754
|
}, /*#__PURE__*/React__default.createElement(CloseIcon, {
|
|
2541
2755
|
fontSize: "small"
|
|
2542
|
-
}))), hasCustomTitle && /*#__PURE__*/React__default.createElement(Tooltip, {
|
|
2756
|
+
}))), hasCustomTitle && /*#__PURE__*/React__default.createElement(Tooltip$1, {
|
|
2543
2757
|
title: "Reset to default",
|
|
2544
2758
|
arrow: true,
|
|
2545
2759
|
placement: "top"
|
|
2546
|
-
}, /*#__PURE__*/React__default.createElement(IconButton, {
|
|
2760
|
+
}, /*#__PURE__*/React__default.createElement(IconButton$1, {
|
|
2547
2761
|
size: "small",
|
|
2548
2762
|
onClick: handleReset,
|
|
2549
2763
|
color: "warning",
|
|
2550
2764
|
"aria-label": "reset title"
|
|
2551
2765
|
}, /*#__PURE__*/React__default.createElement(RestartAltIcon, {
|
|
2552
2766
|
fontSize: "small"
|
|
2553
|
-
})))), /*#__PURE__*/React__default.createElement(Box$
|
|
2767
|
+
})))), /*#__PURE__*/React__default.createElement(Box$2, {
|
|
2554
2768
|
sx: {
|
|
2555
2769
|
flex: 1
|
|
2556
2770
|
}
|
|
@@ -2677,7 +2891,7 @@ const Dimensions = ({
|
|
|
2677
2891
|
});
|
|
2678
2892
|
});
|
|
2679
2893
|
});
|
|
2680
|
-
return items;
|
|
2894
|
+
return items.sort((a, b) => a.value.localeCompare(b.value));
|
|
2681
2895
|
};
|
|
2682
2896
|
const handleAddClick = () => {
|
|
2683
2897
|
setIsAdding(true);
|
|
@@ -2805,7 +3019,7 @@ const Dimensions = ({
|
|
|
2805
3019
|
}
|
|
2806
3020
|
return pathParts.join(" → ");
|
|
2807
3021
|
};
|
|
2808
|
-
return /*#__PURE__*/React__default.createElement("div", null, /*#__PURE__*/React__default.createElement(Box$
|
|
3022
|
+
return /*#__PURE__*/React__default.createElement("div", null, /*#__PURE__*/React__default.createElement(Box$2, {
|
|
2809
3023
|
sx: {
|
|
2810
3024
|
display: "flex",
|
|
2811
3025
|
justifyContent: "flex-start",
|
|
@@ -2847,7 +3061,7 @@ const Dimensions = ({
|
|
|
2847
3061
|
mb: 1.5,
|
|
2848
3062
|
color: "rgb(37, 37, 37)"
|
|
2849
3063
|
}
|
|
2850
|
-
}, "Select Provider Path"), /*#__PURE__*/React__default.createElement(Box$
|
|
3064
|
+
}, "Select Provider Path"), /*#__PURE__*/React__default.createElement(Box$2, {
|
|
2851
3065
|
sx: {
|
|
2852
3066
|
mb: 3
|
|
2853
3067
|
}
|
|
@@ -2865,7 +3079,7 @@ const Dimensions = ({
|
|
|
2865
3079
|
mb: 1.5,
|
|
2866
3080
|
color: "rgb(37, 37, 37)"
|
|
2867
3081
|
}
|
|
2868
|
-
}, "Select Dimension"), /*#__PURE__*/React__default.createElement(Box$
|
|
3082
|
+
}, "Select Dimension"), /*#__PURE__*/React__default.createElement(Box$2, {
|
|
2869
3083
|
sx: {
|
|
2870
3084
|
display: "flex",
|
|
2871
3085
|
alignItems: "center",
|
|
@@ -2881,11 +3095,11 @@ const Dimensions = ({
|
|
|
2881
3095
|
width: "400px",
|
|
2882
3096
|
fontFamily: "system-ui"
|
|
2883
3097
|
}
|
|
2884
|
-
}), /*#__PURE__*/React__default.createElement(Tooltip, {
|
|
3098
|
+
}), /*#__PURE__*/React__default.createElement(Tooltip$1, {
|
|
2885
3099
|
title: "Add all available dimensions",
|
|
2886
3100
|
arrow: true,
|
|
2887
3101
|
placement: "top"
|
|
2888
|
-
}, /*#__PURE__*/React__default.createElement("span", null, /*#__PURE__*/React__default.createElement(IconButton, {
|
|
3102
|
+
}, /*#__PURE__*/React__default.createElement("span", null, /*#__PURE__*/React__default.createElement(IconButton$1, {
|
|
2889
3103
|
onClick: handleAddAll,
|
|
2890
3104
|
disabled: getDimensionItems().filter(item => !item.disabled).length === 0,
|
|
2891
3105
|
"aria-label": "add all dimensions",
|
|
@@ -2901,7 +3115,7 @@ const Dimensions = ({
|
|
|
2901
3115
|
opacity: 0.5
|
|
2902
3116
|
}
|
|
2903
3117
|
}
|
|
2904
|
-
}, /*#__PURE__*/React__default.createElement(PlaylistAddIcon, null))))), /*#__PURE__*/React__default.createElement(Box$
|
|
3118
|
+
}, /*#__PURE__*/React__default.createElement(PlaylistAddIcon, null))))), /*#__PURE__*/React__default.createElement(Box$2, {
|
|
2905
3119
|
sx: {
|
|
2906
3120
|
display: "flex",
|
|
2907
3121
|
justifyContent: "flex-end",
|
|
@@ -2944,7 +3158,7 @@ const Dimensions = ({
|
|
|
2944
3158
|
boxShadow: "none"
|
|
2945
3159
|
}
|
|
2946
3160
|
}
|
|
2947
|
-
}, "Save Dimension"))), savedDimensions.length > 0 && /*#__PURE__*/React__default.createElement(Box$
|
|
3161
|
+
}, "Save Dimension"))), savedDimensions.length > 0 && /*#__PURE__*/React__default.createElement(Box$2, {
|
|
2948
3162
|
sx: {
|
|
2949
3163
|
marginTop: 0
|
|
2950
3164
|
}
|
|
@@ -2969,7 +3183,7 @@ const Dimensions = ({
|
|
|
2969
3183
|
}, /*#__PURE__*/React__default.createElement(SortableContext, {
|
|
2970
3184
|
items: savedDimensions.map((_, index) => index),
|
|
2971
3185
|
strategy: verticalListSortingStrategy
|
|
2972
|
-
}, /*#__PURE__*/React__default.createElement(Box$
|
|
3186
|
+
}, /*#__PURE__*/React__default.createElement(Box$2, {
|
|
2973
3187
|
sx: {
|
|
2974
3188
|
display: "flex",
|
|
2975
3189
|
flexDirection: "column",
|
|
@@ -3002,7 +3216,7 @@ const MetricSourceIcon = ({
|
|
|
3002
3216
|
fontSize: '15px'
|
|
3003
3217
|
};
|
|
3004
3218
|
if (source === 'kpi') {
|
|
3005
|
-
return /*#__PURE__*/React__default.createElement(Tooltip, {
|
|
3219
|
+
return /*#__PURE__*/React__default.createElement(Tooltip$1, {
|
|
3006
3220
|
title: "KPI Metric",
|
|
3007
3221
|
arrow: true,
|
|
3008
3222
|
placement: "top"
|
|
@@ -3014,7 +3228,7 @@ const MetricSourceIcon = ({
|
|
|
3014
3228
|
}));
|
|
3015
3229
|
}
|
|
3016
3230
|
if (source === 'dynamic') {
|
|
3017
|
-
return /*#__PURE__*/React__default.createElement(Tooltip, {
|
|
3231
|
+
return /*#__PURE__*/React__default.createElement(Tooltip$1, {
|
|
3018
3232
|
title: "Dynamic Metric",
|
|
3019
3233
|
arrow: true,
|
|
3020
3234
|
placement: "top"
|
|
@@ -3026,7 +3240,7 @@ const MetricSourceIcon = ({
|
|
|
3026
3240
|
}));
|
|
3027
3241
|
}
|
|
3028
3242
|
if (source === 'provider') {
|
|
3029
|
-
return /*#__PURE__*/React__default.createElement(Tooltip, {
|
|
3243
|
+
return /*#__PURE__*/React__default.createElement(Tooltip$1, {
|
|
3030
3244
|
title: "Provider Metric",
|
|
3031
3245
|
arrow: true,
|
|
3032
3246
|
placement: "top"
|
|
@@ -3137,7 +3351,7 @@ const SortableChip = ({
|
|
|
3137
3351
|
return /*#__PURE__*/React__default.createElement("div", _extends({
|
|
3138
3352
|
ref: setNodeRef,
|
|
3139
3353
|
style: style
|
|
3140
|
-
}, attributes), /*#__PURE__*/React__default.createElement(Box$
|
|
3354
|
+
}, attributes), /*#__PURE__*/React__default.createElement(Box$2, {
|
|
3141
3355
|
ref: containerRef,
|
|
3142
3356
|
sx: {
|
|
3143
3357
|
display: "flex",
|
|
@@ -3154,7 +3368,7 @@ const SortableChip = ({
|
|
|
3154
3368
|
opacity: 1 // show icons on hover
|
|
3155
3369
|
}
|
|
3156
3370
|
}
|
|
3157
|
-
}, /*#__PURE__*/React__default.createElement(Box$
|
|
3371
|
+
}, /*#__PURE__*/React__default.createElement(Box$2, _extends({}, listeners, {
|
|
3158
3372
|
sx: {
|
|
3159
3373
|
display: "flex",
|
|
3160
3374
|
alignItems: "center",
|
|
@@ -3168,7 +3382,7 @@ const SortableChip = ({
|
|
|
3168
3382
|
cursor: "grab",
|
|
3169
3383
|
color: "rgba(110, 110, 110, 0.62)"
|
|
3170
3384
|
}
|
|
3171
|
-
})), !isEditing ? /*#__PURE__*/React__default.createElement(React__default.Fragment, null, source && /*#__PURE__*/React__default.createElement(Box$
|
|
3385
|
+
})), !isEditing ? /*#__PURE__*/React__default.createElement(React__default.Fragment, null, source && /*#__PURE__*/React__default.createElement(Box$2, {
|
|
3172
3386
|
sx: {
|
|
3173
3387
|
display: 'flex',
|
|
3174
3388
|
alignItems: 'center',
|
|
@@ -3176,11 +3390,11 @@ const SortableChip = ({
|
|
|
3176
3390
|
}
|
|
3177
3391
|
}, /*#__PURE__*/React__default.createElement(MetricSourceIcon, {
|
|
3178
3392
|
source: source
|
|
3179
|
-
})), /*#__PURE__*/React__default.createElement(Box$
|
|
3393
|
+
})), /*#__PURE__*/React__default.createElement(Box$2, {
|
|
3180
3394
|
sx: {
|
|
3181
3395
|
minWidth: 0
|
|
3182
3396
|
}
|
|
3183
|
-
}, /*#__PURE__*/React__default.createElement(Tooltip, {
|
|
3397
|
+
}, /*#__PURE__*/React__default.createElement(Tooltip$1, {
|
|
3184
3398
|
title: fullLabel || displayLabel,
|
|
3185
3399
|
arrow: true,
|
|
3186
3400
|
placement: "top"
|
|
@@ -3195,7 +3409,7 @@ const SortableChip = ({
|
|
|
3195
3409
|
overflow: "hidden",
|
|
3196
3410
|
textOverflow: "ellipsis"
|
|
3197
3411
|
}
|
|
3198
|
-
}, displayLabel))), /*#__PURE__*/React__default.createElement(Box$
|
|
3412
|
+
}, displayLabel))), /*#__PURE__*/React__default.createElement(Box$2, {
|
|
3199
3413
|
className: "hover-icons",
|
|
3200
3414
|
sx: {
|
|
3201
3415
|
display: "flex",
|
|
@@ -3203,21 +3417,21 @@ const SortableChip = ({
|
|
|
3203
3417
|
opacity: 0,
|
|
3204
3418
|
transition: "opacity 0.2s"
|
|
3205
3419
|
}
|
|
3206
|
-
}, /*#__PURE__*/React__default.createElement(Tooltip, {
|
|
3420
|
+
}, /*#__PURE__*/React__default.createElement(Tooltip$1, {
|
|
3207
3421
|
title: "Edit title",
|
|
3208
3422
|
arrow: true,
|
|
3209
3423
|
placement: "top"
|
|
3210
|
-
}, /*#__PURE__*/React__default.createElement(IconButton, {
|
|
3424
|
+
}, /*#__PURE__*/React__default.createElement(IconButton$1, {
|
|
3211
3425
|
size: "small",
|
|
3212
3426
|
onClick: handleEditClick,
|
|
3213
3427
|
"aria-label": "edit title"
|
|
3214
3428
|
}, /*#__PURE__*/React__default.createElement(EditIcon, {
|
|
3215
3429
|
fontSize: "small"
|
|
3216
|
-
}))), /*#__PURE__*/React__default.createElement(Tooltip, {
|
|
3430
|
+
}))), /*#__PURE__*/React__default.createElement(Tooltip$1, {
|
|
3217
3431
|
title: "Delete",
|
|
3218
3432
|
arrow: true,
|
|
3219
3433
|
placement: "top"
|
|
3220
|
-
}, /*#__PURE__*/React__default.createElement(IconButton, {
|
|
3434
|
+
}, /*#__PURE__*/React__default.createElement(IconButton$1, {
|
|
3221
3435
|
size: "small",
|
|
3222
3436
|
onClick: onDelete,
|
|
3223
3437
|
"aria-label": "delete",
|
|
@@ -3226,11 +3440,11 @@ const SortableChip = ({
|
|
|
3226
3440
|
}
|
|
3227
3441
|
}, /*#__PURE__*/React__default.createElement(GridDeleteIcon, {
|
|
3228
3442
|
fontSize: "small"
|
|
3229
|
-
})))), /*#__PURE__*/React__default.createElement(Box$
|
|
3443
|
+
})))), /*#__PURE__*/React__default.createElement(Box$2, {
|
|
3230
3444
|
sx: {
|
|
3231
3445
|
flex: 1
|
|
3232
3446
|
}
|
|
3233
|
-
}), /*#__PURE__*/React__default.createElement(Box$
|
|
3447
|
+
}), /*#__PURE__*/React__default.createElement(Box$2, {
|
|
3234
3448
|
className: "hover-icons",
|
|
3235
3449
|
sx: {
|
|
3236
3450
|
display: "flex",
|
|
@@ -3238,14 +3452,14 @@ const SortableChip = ({
|
|
|
3238
3452
|
opacity: 0,
|
|
3239
3453
|
transition: "opacity 0.2s"
|
|
3240
3454
|
}
|
|
3241
|
-
}, /*#__PURE__*/React__default.createElement(IconButton, {
|
|
3455
|
+
}, /*#__PURE__*/React__default.createElement(IconButton$1, {
|
|
3242
3456
|
size: "small",
|
|
3243
3457
|
onClick: onMoveUp,
|
|
3244
3458
|
disabled: isFirst,
|
|
3245
3459
|
"aria-label": "move up"
|
|
3246
3460
|
}, /*#__PURE__*/React__default.createElement(ArrowUpwardIcon, {
|
|
3247
3461
|
fontSize: "small"
|
|
3248
|
-
})), /*#__PURE__*/React__default.createElement(IconButton, {
|
|
3462
|
+
})), /*#__PURE__*/React__default.createElement(IconButton$1, {
|
|
3249
3463
|
size: "small",
|
|
3250
3464
|
onClick: onMoveDown,
|
|
3251
3465
|
disabled: isLast,
|
|
@@ -3262,46 +3476,46 @@ const SortableChip = ({
|
|
|
3262
3476
|
minWidth: '200px',
|
|
3263
3477
|
maxWidth: '400px'
|
|
3264
3478
|
}
|
|
3265
|
-
}), /*#__PURE__*/React__default.createElement(Box$
|
|
3479
|
+
}), /*#__PURE__*/React__default.createElement(Box$2, {
|
|
3266
3480
|
className: "hover-icons",
|
|
3267
3481
|
sx: {
|
|
3268
3482
|
display: "flex",
|
|
3269
3483
|
gap: 0.5,
|
|
3270
3484
|
opacity: 1
|
|
3271
3485
|
}
|
|
3272
|
-
}, /*#__PURE__*/React__default.createElement(Tooltip, {
|
|
3486
|
+
}, /*#__PURE__*/React__default.createElement(Tooltip$1, {
|
|
3273
3487
|
title: "Save",
|
|
3274
3488
|
arrow: true,
|
|
3275
3489
|
placement: "top"
|
|
3276
|
-
}, /*#__PURE__*/React__default.createElement(IconButton, {
|
|
3490
|
+
}, /*#__PURE__*/React__default.createElement(IconButton$1, {
|
|
3277
3491
|
size: "small",
|
|
3278
3492
|
onClick: handleSave,
|
|
3279
3493
|
color: "primary",
|
|
3280
3494
|
"aria-label": "save title"
|
|
3281
3495
|
}, /*#__PURE__*/React__default.createElement(CheckIcon, {
|
|
3282
3496
|
fontSize: "small"
|
|
3283
|
-
}))), /*#__PURE__*/React__default.createElement(Tooltip, {
|
|
3497
|
+
}))), /*#__PURE__*/React__default.createElement(Tooltip$1, {
|
|
3284
3498
|
title: "Cancel",
|
|
3285
3499
|
arrow: true,
|
|
3286
3500
|
placement: "top"
|
|
3287
|
-
}, /*#__PURE__*/React__default.createElement(IconButton, {
|
|
3501
|
+
}, /*#__PURE__*/React__default.createElement(IconButton$1, {
|
|
3288
3502
|
size: "small",
|
|
3289
3503
|
onClick: handleCancel,
|
|
3290
3504
|
"aria-label": "cancel edit"
|
|
3291
3505
|
}, /*#__PURE__*/React__default.createElement(CloseIcon, {
|
|
3292
3506
|
fontSize: "small"
|
|
3293
|
-
}))), hasCustomTitle && /*#__PURE__*/React__default.createElement(Tooltip, {
|
|
3507
|
+
}))), hasCustomTitle && /*#__PURE__*/React__default.createElement(Tooltip$1, {
|
|
3294
3508
|
title: "Reset to default",
|
|
3295
3509
|
arrow: true,
|
|
3296
3510
|
placement: "top"
|
|
3297
|
-
}, /*#__PURE__*/React__default.createElement(IconButton, {
|
|
3511
|
+
}, /*#__PURE__*/React__default.createElement(IconButton$1, {
|
|
3298
3512
|
size: "small",
|
|
3299
3513
|
onClick: handleReset,
|
|
3300
3514
|
color: "warning",
|
|
3301
3515
|
"aria-label": "reset title"
|
|
3302
3516
|
}, /*#__PURE__*/React__default.createElement(RestartAltIcon, {
|
|
3303
3517
|
fontSize: "small"
|
|
3304
|
-
})))), /*#__PURE__*/React__default.createElement(Box$
|
|
3518
|
+
})))), /*#__PURE__*/React__default.createElement(Box$2, {
|
|
3305
3519
|
sx: {
|
|
3306
3520
|
flex: 1
|
|
3307
3521
|
}
|
|
@@ -3414,7 +3628,7 @@ const Metrics = ({
|
|
|
3414
3628
|
}) : undefined
|
|
3415
3629
|
};
|
|
3416
3630
|
});
|
|
3417
|
-
return items;
|
|
3631
|
+
return items.sort((a, b) => a.value.localeCompare(b.value));
|
|
3418
3632
|
};
|
|
3419
3633
|
const handleAddClick = () => {
|
|
3420
3634
|
setIsAdding(true);
|
|
@@ -3542,7 +3756,7 @@ const Metrics = ({
|
|
|
3542
3756
|
}
|
|
3543
3757
|
return pathParts.join(' → ');
|
|
3544
3758
|
};
|
|
3545
|
-
return /*#__PURE__*/React__default.createElement("div", null, /*#__PURE__*/React__default.createElement(Box$
|
|
3759
|
+
return /*#__PURE__*/React__default.createElement("div", null, /*#__PURE__*/React__default.createElement(Box$2, {
|
|
3546
3760
|
sx: {
|
|
3547
3761
|
display: "flex",
|
|
3548
3762
|
justifyContent: "flex-start",
|
|
@@ -3584,7 +3798,7 @@ const Metrics = ({
|
|
|
3584
3798
|
mb: 1.5,
|
|
3585
3799
|
color: "rgb(37, 37, 37)"
|
|
3586
3800
|
}
|
|
3587
|
-
}, "Select Provider Path"), /*#__PURE__*/React__default.createElement(Box$
|
|
3801
|
+
}, "Select Provider Path"), /*#__PURE__*/React__default.createElement(Box$2, {
|
|
3588
3802
|
sx: {
|
|
3589
3803
|
mb: 3
|
|
3590
3804
|
}
|
|
@@ -3602,7 +3816,7 @@ const Metrics = ({
|
|
|
3602
3816
|
mb: 1.5,
|
|
3603
3817
|
color: "rgb(37, 37, 37)"
|
|
3604
3818
|
}
|
|
3605
|
-
}, "Select Metric"), /*#__PURE__*/React__default.createElement(Box$
|
|
3819
|
+
}, "Select Metric"), /*#__PURE__*/React__default.createElement(Box$2, {
|
|
3606
3820
|
sx: {
|
|
3607
3821
|
display: 'flex',
|
|
3608
3822
|
alignItems: 'center',
|
|
@@ -3618,11 +3832,11 @@ const Metrics = ({
|
|
|
3618
3832
|
width: '400px',
|
|
3619
3833
|
fontFamily: "system-ui"
|
|
3620
3834
|
}
|
|
3621
|
-
}), /*#__PURE__*/React__default.createElement(Tooltip, {
|
|
3835
|
+
}), /*#__PURE__*/React__default.createElement(Tooltip$1, {
|
|
3622
3836
|
title: "Add all available metrics",
|
|
3623
3837
|
arrow: true,
|
|
3624
3838
|
placement: "top"
|
|
3625
|
-
}, /*#__PURE__*/React__default.createElement("span", null, /*#__PURE__*/React__default.createElement(IconButton, {
|
|
3839
|
+
}, /*#__PURE__*/React__default.createElement("span", null, /*#__PURE__*/React__default.createElement(IconButton$1, {
|
|
3626
3840
|
onClick: handleAddAll,
|
|
3627
3841
|
disabled: getMetricItems().filter(item => !item.disabled).length === 0,
|
|
3628
3842
|
"aria-label": "add all metrics",
|
|
@@ -3638,7 +3852,7 @@ const Metrics = ({
|
|
|
3638
3852
|
opacity: 0.5
|
|
3639
3853
|
}
|
|
3640
3854
|
}
|
|
3641
|
-
}, /*#__PURE__*/React__default.createElement(PlaylistAddIcon, null))))), /*#__PURE__*/React__default.createElement(Box$
|
|
3855
|
+
}, /*#__PURE__*/React__default.createElement(PlaylistAddIcon, null))))), /*#__PURE__*/React__default.createElement(Box$2, {
|
|
3642
3856
|
sx: {
|
|
3643
3857
|
display: "flex",
|
|
3644
3858
|
justifyContent: "flex-end",
|
|
@@ -3681,7 +3895,7 @@ const Metrics = ({
|
|
|
3681
3895
|
boxShadow: "none"
|
|
3682
3896
|
}
|
|
3683
3897
|
}
|
|
3684
|
-
}, "Save Metric"))), savedMetrics.length > 0 && /*#__PURE__*/React__default.createElement(Box$
|
|
3898
|
+
}, "Save Metric"))), savedMetrics.length > 0 && /*#__PURE__*/React__default.createElement(Box$2, {
|
|
3685
3899
|
sx: {
|
|
3686
3900
|
marginTop: 0
|
|
3687
3901
|
}
|
|
@@ -3700,7 +3914,7 @@ const Metrics = ({
|
|
|
3700
3914
|
}, /*#__PURE__*/React__default.createElement(SortableContext, {
|
|
3701
3915
|
items: savedMetrics.map((_, index) => index),
|
|
3702
3916
|
strategy: verticalListSortingStrategy
|
|
3703
|
-
}, /*#__PURE__*/React__default.createElement(Box$
|
|
3917
|
+
}, /*#__PURE__*/React__default.createElement(Box$2, {
|
|
3704
3918
|
sx: {
|
|
3705
3919
|
display: 'flex',
|
|
3706
3920
|
flexDirection: 'column',
|
|
@@ -3810,7 +4024,7 @@ const Filters = ({
|
|
|
3810
4024
|
}
|
|
3811
4025
|
});
|
|
3812
4026
|
});
|
|
3813
|
-
return items;
|
|
4027
|
+
return items.sort((a, b) => a.value.localeCompare(b.value));
|
|
3814
4028
|
};
|
|
3815
4029
|
const handleAddClick = () => {
|
|
3816
4030
|
setIsAdding(true);
|
|
@@ -4321,7 +4535,7 @@ const Filters = ({
|
|
|
4321
4535
|
|
|
4322
4536
|
// Convert savedFilters object to array for display
|
|
4323
4537
|
const filterEntries = Object.entries(savedFilters);
|
|
4324
|
-
return /*#__PURE__*/React__default.createElement("div", null, /*#__PURE__*/React__default.createElement(Box$
|
|
4538
|
+
return /*#__PURE__*/React__default.createElement("div", null, /*#__PURE__*/React__default.createElement(Box$2, {
|
|
4325
4539
|
sx: {
|
|
4326
4540
|
display: "flex",
|
|
4327
4541
|
justifyContent: "flex-start",
|
|
@@ -4384,7 +4598,7 @@ const Filters = ({
|
|
|
4384
4598
|
mb: 1.5,
|
|
4385
4599
|
color: "rgb(37, 37, 37)"
|
|
4386
4600
|
}
|
|
4387
|
-
}, "Select Provider Path"), /*#__PURE__*/React__default.createElement(Box$
|
|
4601
|
+
}, "Select Provider Path"), /*#__PURE__*/React__default.createElement(Box$2, {
|
|
4388
4602
|
sx: {
|
|
4389
4603
|
mb: 3
|
|
4390
4604
|
}
|
|
@@ -4402,7 +4616,7 @@ const Filters = ({
|
|
|
4402
4616
|
mb: 1.5,
|
|
4403
4617
|
color: "rgb(37, 37, 37)"
|
|
4404
4618
|
}
|
|
4405
|
-
}, "Select Dimension for Filter"), /*#__PURE__*/React__default.createElement(Box$
|
|
4619
|
+
}, "Select Dimension for Filter"), /*#__PURE__*/React__default.createElement(Box$2, {
|
|
4406
4620
|
sx: {
|
|
4407
4621
|
mb: 3
|
|
4408
4622
|
}
|
|
@@ -4429,7 +4643,7 @@ const Filters = ({
|
|
|
4429
4643
|
}
|
|
4430
4644
|
}, isDate ? 'Select Date Range' : 'Select Filter Values'), isDate ? /*#__PURE__*/React__default.createElement(LocalizationProvider, {
|
|
4431
4645
|
dateAdapter: AdapterDayjs
|
|
4432
|
-
}, /*#__PURE__*/React__default.createElement(Box$
|
|
4646
|
+
}, /*#__PURE__*/React__default.createElement(Box$2, {
|
|
4433
4647
|
sx: {
|
|
4434
4648
|
display: 'flex',
|
|
4435
4649
|
gap: 2,
|
|
@@ -4461,7 +4675,7 @@ const Filters = ({
|
|
|
4461
4675
|
clearable: true
|
|
4462
4676
|
}
|
|
4463
4677
|
}
|
|
4464
|
-
}))) : /*#__PURE__*/React__default.createElement(Box$
|
|
4678
|
+
}))) : /*#__PURE__*/React__default.createElement(Box$2, {
|
|
4465
4679
|
sx: {
|
|
4466
4680
|
width: '400px'
|
|
4467
4681
|
}
|
|
@@ -4478,7 +4692,7 @@ const Filters = ({
|
|
|
4478
4692
|
helperText: selectedFilterValues.length > 0 ? `${selectedFilterValues.length} value(s) selected` : 'Select at least one value',
|
|
4479
4693
|
debounceMs: 1000
|
|
4480
4694
|
})));
|
|
4481
|
-
})(), /*#__PURE__*/React__default.createElement(Box$
|
|
4695
|
+
})(), /*#__PURE__*/React__default.createElement(Box$2, {
|
|
4482
4696
|
sx: {
|
|
4483
4697
|
display: "flex",
|
|
4484
4698
|
justifyContent: "flex-end",
|
|
@@ -4546,7 +4760,7 @@ const Filters = ({
|
|
|
4546
4760
|
mb: 1.5,
|
|
4547
4761
|
color: "rgb(37, 37, 37)"
|
|
4548
4762
|
}
|
|
4549
|
-
}, "Select Dimension from Report"), /*#__PURE__*/React__default.createElement(Box$
|
|
4763
|
+
}, "Select Dimension from Report"), /*#__PURE__*/React__default.createElement(Box$2, {
|
|
4550
4764
|
sx: {
|
|
4551
4765
|
mb: 3
|
|
4552
4766
|
}
|
|
@@ -4554,7 +4768,7 @@ const Filters = ({
|
|
|
4554
4768
|
items: existingDimensions.map(dim => ({
|
|
4555
4769
|
key: dim.fullPath,
|
|
4556
4770
|
value: dimensionTitleOverrides[dim.fullPath] || dim.dimensionTitle
|
|
4557
|
-
})),
|
|
4771
|
+
})).sort((a, b) => a.value.localeCompare(b.value)),
|
|
4558
4772
|
value: selectedExistingDimension,
|
|
4559
4773
|
label: "Choose Dimension",
|
|
4560
4774
|
onChange: handleExistingDimensionChange,
|
|
@@ -4575,7 +4789,7 @@ const Filters = ({
|
|
|
4575
4789
|
}
|
|
4576
4790
|
}, isDate ? 'Select Date Range' : 'Select Filter Values'), isDate ? /*#__PURE__*/React__default.createElement(LocalizationProvider, {
|
|
4577
4791
|
dateAdapter: AdapterDayjs
|
|
4578
|
-
}, /*#__PURE__*/React__default.createElement(Box$
|
|
4792
|
+
}, /*#__PURE__*/React__default.createElement(Box$2, {
|
|
4579
4793
|
sx: {
|
|
4580
4794
|
display: 'flex',
|
|
4581
4795
|
gap: 2,
|
|
@@ -4607,7 +4821,7 @@ const Filters = ({
|
|
|
4607
4821
|
clearable: true
|
|
4608
4822
|
}
|
|
4609
4823
|
}
|
|
4610
|
-
}))) : /*#__PURE__*/React__default.createElement(Box$
|
|
4824
|
+
}))) : /*#__PURE__*/React__default.createElement(Box$2, {
|
|
4611
4825
|
sx: {
|
|
4612
4826
|
width: '400px'
|
|
4613
4827
|
}
|
|
@@ -4624,7 +4838,7 @@ const Filters = ({
|
|
|
4624
4838
|
helperText: selectedFilterValues.length > 0 ? `${selectedFilterValues.length} value(s) selected` : 'Select at least one value',
|
|
4625
4839
|
debounceMs: 1000
|
|
4626
4840
|
})));
|
|
4627
|
-
})(), /*#__PURE__*/React__default.createElement(Box$
|
|
4841
|
+
})(), /*#__PURE__*/React__default.createElement(Box$2, {
|
|
4628
4842
|
sx: {
|
|
4629
4843
|
display: "flex",
|
|
4630
4844
|
justifyContent: "flex-end",
|
|
@@ -4673,7 +4887,7 @@ const Filters = ({
|
|
|
4673
4887
|
boxShadow: "none"
|
|
4674
4888
|
}
|
|
4675
4889
|
}
|
|
4676
|
-
}, "Save Filter"))), filterEntries.length > 0 && /*#__PURE__*/React__default.createElement(Box$
|
|
4890
|
+
}, "Save Filter"))), filterEntries.length > 0 && /*#__PURE__*/React__default.createElement(Box$2, {
|
|
4677
4891
|
sx: {
|
|
4678
4892
|
marginTop: 0
|
|
4679
4893
|
}
|
|
@@ -4685,7 +4899,7 @@ const Filters = ({
|
|
|
4685
4899
|
marginBottom: 1,
|
|
4686
4900
|
color: "rgb(37, 37, 37)"
|
|
4687
4901
|
}
|
|
4688
|
-
}, "Saved Filters"), /*#__PURE__*/React__default.createElement(Box$
|
|
4902
|
+
}, "Saved Filters"), /*#__PURE__*/React__default.createElement(Box$2, {
|
|
4689
4903
|
sx: {
|
|
4690
4904
|
display: 'flex',
|
|
4691
4905
|
flexDirection: 'column',
|
|
@@ -4718,9 +4932,9 @@ const Filters = ({
|
|
|
4718
4932
|
// Use filter title override if exists, otherwise use dimension title override, otherwise use default dimension title
|
|
4719
4933
|
const displayLabel = titleOverrides[fullPath] || dimensionTitleOverrides[fullPath] || filter.dimensionTitle;
|
|
4720
4934
|
const hasCustomTitle = !!titleOverrides[fullPath];
|
|
4721
|
-
return /*#__PURE__*/React__default.createElement(Box$
|
|
4935
|
+
return /*#__PURE__*/React__default.createElement(Box$2, {
|
|
4722
4936
|
key: fullPath
|
|
4723
|
-
}, /*#__PURE__*/React__default.createElement(Box$
|
|
4937
|
+
}, /*#__PURE__*/React__default.createElement(Box$2, {
|
|
4724
4938
|
sx: {
|
|
4725
4939
|
display: "flex",
|
|
4726
4940
|
alignItems: "center",
|
|
@@ -4736,7 +4950,7 @@ const Filters = ({
|
|
|
4736
4950
|
opacity: 1
|
|
4737
4951
|
}
|
|
4738
4952
|
}
|
|
4739
|
-
}, !isEditingTitle ? /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(Box$
|
|
4953
|
+
}, !isEditingTitle ? /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(Box$2, {
|
|
4740
4954
|
sx: {
|
|
4741
4955
|
display: 'flex',
|
|
4742
4956
|
alignItems: 'center',
|
|
@@ -4752,7 +4966,7 @@ const Filters = ({
|
|
|
4752
4966
|
color: "#1a1a1a",
|
|
4753
4967
|
fontSize: "14px"
|
|
4754
4968
|
}
|
|
4755
|
-
}, displayLabel), /*#__PURE__*/React__default.createElement(Box$
|
|
4969
|
+
}, displayLabel), /*#__PURE__*/React__default.createElement(Box$2, {
|
|
4756
4970
|
className: "hover-icons",
|
|
4757
4971
|
sx: {
|
|
4758
4972
|
display: "flex",
|
|
@@ -4760,28 +4974,28 @@ const Filters = ({
|
|
|
4760
4974
|
opacity: 0,
|
|
4761
4975
|
transition: "opacity 0.2s"
|
|
4762
4976
|
}
|
|
4763
|
-
}, /*#__PURE__*/React__default.createElement(Tooltip, {
|
|
4977
|
+
}, /*#__PURE__*/React__default.createElement(Tooltip$1, {
|
|
4764
4978
|
title: "Rename filter",
|
|
4765
4979
|
arrow: true
|
|
4766
|
-
}, /*#__PURE__*/React__default.createElement(IconButton, {
|
|
4980
|
+
}, /*#__PURE__*/React__default.createElement(IconButton$1, {
|
|
4767
4981
|
size: "small",
|
|
4768
4982
|
onClick: () => handleStartEditTitle(fullPath, dimensionTitleOverrides[fullPath] || filter.dimensionTitle),
|
|
4769
4983
|
disabled: isEditing
|
|
4770
4984
|
}, /*#__PURE__*/React__default.createElement(EditIcon, {
|
|
4771
4985
|
fontSize: "small"
|
|
4772
|
-
}))), /*#__PURE__*/React__default.createElement(Tooltip, {
|
|
4986
|
+
}))), /*#__PURE__*/React__default.createElement(Tooltip$1, {
|
|
4773
4987
|
title: "Edit filter values",
|
|
4774
4988
|
arrow: true
|
|
4775
|
-
}, /*#__PURE__*/React__default.createElement(IconButton, {
|
|
4989
|
+
}, /*#__PURE__*/React__default.createElement(IconButton$1, {
|
|
4776
4990
|
size: "small",
|
|
4777
4991
|
onClick: () => handleEditFilter(fullPath, filter),
|
|
4778
4992
|
disabled: isEditing
|
|
4779
4993
|
}, /*#__PURE__*/React__default.createElement(FilterAltIcon, {
|
|
4780
4994
|
fontSize: "small"
|
|
4781
|
-
}))), /*#__PURE__*/React__default.createElement(Tooltip, {
|
|
4995
|
+
}))), /*#__PURE__*/React__default.createElement(Tooltip$1, {
|
|
4782
4996
|
title: "Remove filter",
|
|
4783
4997
|
arrow: true
|
|
4784
|
-
}, /*#__PURE__*/React__default.createElement(IconButton, {
|
|
4998
|
+
}, /*#__PURE__*/React__default.createElement(IconButton$1, {
|
|
4785
4999
|
size: "small",
|
|
4786
5000
|
onClick: () => onRemoveFilter(fullPath),
|
|
4787
5001
|
sx: {
|
|
@@ -4789,11 +5003,11 @@ const Filters = ({
|
|
|
4789
5003
|
}
|
|
4790
5004
|
}, /*#__PURE__*/React__default.createElement(GridDeleteIcon, {
|
|
4791
5005
|
fontSize: "small"
|
|
4792
|
-
}))), /*#__PURE__*/React__default.createElement(Tooltip, {
|
|
5006
|
+
}))), /*#__PURE__*/React__default.createElement(Tooltip$1, {
|
|
4793
5007
|
title: /*#__PURE__*/React__default.createElement("div", null, /*#__PURE__*/React__default.createElement("div", null, /*#__PURE__*/React__default.createElement("strong", null, "Path:"), " ", formatProviderPath(filter), " \u2192 ", dimensionTitleOverrides[fullPath] || filter.dimensionTitle), /*#__PURE__*/React__default.createElement("div", null, /*#__PURE__*/React__default.createElement("strong", null, "Full Path:"), " ", fullPath), /*#__PURE__*/React__default.createElement("div", null, /*#__PURE__*/React__default.createElement("strong", null, isDate ? 'Date Range' : `Values (${valueCount})`, ":"), " ", valuesList)),
|
|
4794
5008
|
arrow: true,
|
|
4795
5009
|
placement: "right"
|
|
4796
|
-
}, /*#__PURE__*/React__default.createElement(IconButton, {
|
|
5010
|
+
}, /*#__PURE__*/React__default.createElement(IconButton$1, {
|
|
4797
5011
|
size: "small",
|
|
4798
5012
|
disabled: isEditing
|
|
4799
5013
|
}, /*#__PURE__*/React__default.createElement(InfoOutlinedIcon, {
|
|
@@ -4811,32 +5025,32 @@ const Filters = ({
|
|
|
4811
5025
|
sx: {
|
|
4812
5026
|
flex: 1
|
|
4813
5027
|
}
|
|
4814
|
-
}), /*#__PURE__*/React__default.createElement(Box$
|
|
5028
|
+
}), /*#__PURE__*/React__default.createElement(Box$2, {
|
|
4815
5029
|
sx: {
|
|
4816
5030
|
display: "flex",
|
|
4817
5031
|
gap: 0.5
|
|
4818
5032
|
}
|
|
4819
|
-
}, /*#__PURE__*/React__default.createElement(Tooltip, {
|
|
5033
|
+
}, /*#__PURE__*/React__default.createElement(Tooltip$1, {
|
|
4820
5034
|
title: "Save",
|
|
4821
5035
|
arrow: true
|
|
4822
|
-
}, /*#__PURE__*/React__default.createElement(IconButton, {
|
|
5036
|
+
}, /*#__PURE__*/React__default.createElement(IconButton$1, {
|
|
4823
5037
|
size: "small",
|
|
4824
5038
|
onClick: () => handleSaveTitle(fullPath),
|
|
4825
5039
|
color: "primary"
|
|
4826
5040
|
}, /*#__PURE__*/React__default.createElement(CheckIcon, {
|
|
4827
5041
|
fontSize: "small"
|
|
4828
|
-
}))), /*#__PURE__*/React__default.createElement(Tooltip, {
|
|
5042
|
+
}))), /*#__PURE__*/React__default.createElement(Tooltip$1, {
|
|
4829
5043
|
title: "Cancel",
|
|
4830
5044
|
arrow: true
|
|
4831
|
-
}, /*#__PURE__*/React__default.createElement(IconButton, {
|
|
5045
|
+
}, /*#__PURE__*/React__default.createElement(IconButton$1, {
|
|
4832
5046
|
size: "small",
|
|
4833
5047
|
onClick: handleCancelEditTitle
|
|
4834
5048
|
}, /*#__PURE__*/React__default.createElement(CloseIcon, {
|
|
4835
5049
|
fontSize: "small"
|
|
4836
|
-
}))), hasCustomTitle && /*#__PURE__*/React__default.createElement(Tooltip, {
|
|
5050
|
+
}))), hasCustomTitle && /*#__PURE__*/React__default.createElement(Tooltip$1, {
|
|
4837
5051
|
title: "Reset to default",
|
|
4838
5052
|
arrow: true
|
|
4839
|
-
}, /*#__PURE__*/React__default.createElement(IconButton, {
|
|
5053
|
+
}, /*#__PURE__*/React__default.createElement(IconButton$1, {
|
|
4840
5054
|
size: "small",
|
|
4841
5055
|
onClick: () => handleResetTitle(fullPath),
|
|
4842
5056
|
color: "warning"
|
|
@@ -4860,7 +5074,7 @@ const Filters = ({
|
|
|
4860
5074
|
}
|
|
4861
5075
|
}, "Edit ", isDate ? 'Date Range' : 'Values', " for: ", dimensionTitleOverrides[fullPath] || filter.dimensionTitle), isDate ? /*#__PURE__*/React__default.createElement(LocalizationProvider, {
|
|
4862
5076
|
dateAdapter: AdapterDayjs
|
|
4863
|
-
}, /*#__PURE__*/React__default.createElement(Box$
|
|
5077
|
+
}, /*#__PURE__*/React__default.createElement(Box$2, {
|
|
4864
5078
|
sx: {
|
|
4865
5079
|
display: 'flex',
|
|
4866
5080
|
gap: 2,
|
|
@@ -4893,7 +5107,7 @@ const Filters = ({
|
|
|
4893
5107
|
clearable: true
|
|
4894
5108
|
}
|
|
4895
5109
|
}
|
|
4896
|
-
}))) : /*#__PURE__*/React__default.createElement(Box$
|
|
5110
|
+
}))) : /*#__PURE__*/React__default.createElement(Box$2, {
|
|
4897
5111
|
sx: {
|
|
4898
5112
|
width: '400px',
|
|
4899
5113
|
marginBottom: 2
|
|
@@ -4910,7 +5124,7 @@ const Filters = ({
|
|
|
4910
5124
|
loading: loadingFilterValues,
|
|
4911
5125
|
helperText: selectedFilterValues.length > 0 ? `${selectedFilterValues.length} value(s) selected` : 'Select at least one value',
|
|
4912
5126
|
debounceMs: 1000
|
|
4913
|
-
})), /*#__PURE__*/React__default.createElement(Box$
|
|
5127
|
+
})), /*#__PURE__*/React__default.createElement(Box$2, {
|
|
4914
5128
|
sx: {
|
|
4915
5129
|
display: 'flex',
|
|
4916
5130
|
gap: 1,
|
|
@@ -5047,7 +5261,7 @@ const ReportDataGrid = ({
|
|
|
5047
5261
|
flex: 1,
|
|
5048
5262
|
minWidth: 150,
|
|
5049
5263
|
type: metricDef?.type === 'integer' || metricDef?.type === 'currency' ? 'number' : 'string',
|
|
5050
|
-
renderHeader: () => /*#__PURE__*/React__default.createElement(Box$
|
|
5264
|
+
renderHeader: () => /*#__PURE__*/React__default.createElement(Box$2, {
|
|
5051
5265
|
sx: {
|
|
5052
5266
|
display: 'flex',
|
|
5053
5267
|
alignItems: 'center',
|
|
@@ -5102,7 +5316,7 @@ const ReportDataGrid = ({
|
|
|
5102
5316
|
}
|
|
5103
5317
|
};
|
|
5104
5318
|
if (loading) {
|
|
5105
|
-
return /*#__PURE__*/React__default.createElement(Box$
|
|
5319
|
+
return /*#__PURE__*/React__default.createElement(Box$2, {
|
|
5106
5320
|
display: "flex",
|
|
5107
5321
|
justifyContent: "center",
|
|
5108
5322
|
alignItems: "center",
|
|
@@ -5110,7 +5324,7 @@ const ReportDataGrid = ({
|
|
|
5110
5324
|
}, /*#__PURE__*/React__default.createElement(CircularProgress$1, null));
|
|
5111
5325
|
}
|
|
5112
5326
|
if (!reportData || reportData.length === 0) {
|
|
5113
|
-
return /*#__PURE__*/React__default.createElement(Box$
|
|
5327
|
+
return /*#__PURE__*/React__default.createElement(Box$2, {
|
|
5114
5328
|
display: "flex",
|
|
5115
5329
|
justifyContent: "center",
|
|
5116
5330
|
alignItems: "center",
|
|
@@ -5120,7 +5334,7 @@ const ReportDataGrid = ({
|
|
|
5120
5334
|
color: "textSecondary"
|
|
5121
5335
|
}, "No data available. Run a report to see results."));
|
|
5122
5336
|
}
|
|
5123
|
-
return /*#__PURE__*/React__default.createElement(Box$
|
|
5337
|
+
return /*#__PURE__*/React__default.createElement(Box$2, {
|
|
5124
5338
|
sx: {
|
|
5125
5339
|
height: 600,
|
|
5126
5340
|
width: '100%'
|
|
@@ -5158,7 +5372,7 @@ function TabPanel({
|
|
|
5158
5372
|
hidden: value !== index,
|
|
5159
5373
|
id: `report-tabpanel-${index}`,
|
|
5160
5374
|
"aria-labelledby": `report-tab-${index}`
|
|
5161
|
-
}, value === index && /*#__PURE__*/React__default.createElement(Box$
|
|
5375
|
+
}, value === index && /*#__PURE__*/React__default.createElement(Box$2, {
|
|
5162
5376
|
sx: {
|
|
5163
5377
|
py: 3
|
|
5164
5378
|
}
|
|
@@ -6015,12 +6229,12 @@ const ReportBuilder = ({
|
|
|
6015
6229
|
}
|
|
6016
6230
|
};
|
|
6017
6231
|
const canSaveReport = selectedProvider && reportTitle.trim() && (report.dimensions.length > 0 || report.metrics.length > 0);
|
|
6018
|
-
return /*#__PURE__*/React__default.createElement(Box$
|
|
6232
|
+
return /*#__PURE__*/React__default.createElement(Box$2, {
|
|
6019
6233
|
sx: {
|
|
6020
6234
|
p: 3,
|
|
6021
6235
|
fontFamily: "system-ui"
|
|
6022
6236
|
}
|
|
6023
|
-
}, /*#__PURE__*/React__default.createElement(Box$
|
|
6237
|
+
}, /*#__PURE__*/React__default.createElement(Box$2, {
|
|
6024
6238
|
sx: {
|
|
6025
6239
|
display: "flex",
|
|
6026
6240
|
justifyContent: "space-between",
|
|
@@ -6033,7 +6247,7 @@ const ReportBuilder = ({
|
|
|
6033
6247
|
variant: "outlined",
|
|
6034
6248
|
startIcon: /*#__PURE__*/React__default.createElement(ArrowBackIcon, null),
|
|
6035
6249
|
onClick: onBackToList
|
|
6036
|
-
}, "Back to List")), /*#__PURE__*/React__default.createElement(Box$
|
|
6250
|
+
}, "Back to List")), /*#__PURE__*/React__default.createElement(Box$2, {
|
|
6037
6251
|
sx: {
|
|
6038
6252
|
mt: 2,
|
|
6039
6253
|
p: 3,
|
|
@@ -6046,7 +6260,7 @@ const ReportBuilder = ({
|
|
|
6046
6260
|
gap: 3,
|
|
6047
6261
|
boxShadow: "0px 2px 4px rgba(0,0,0,0.02)"
|
|
6048
6262
|
}
|
|
6049
|
-
}, /*#__PURE__*/React__default.createElement(Box$
|
|
6263
|
+
}, /*#__PURE__*/React__default.createElement(Box$2, {
|
|
6050
6264
|
sx: {
|
|
6051
6265
|
display: "flex",
|
|
6052
6266
|
gap: 4,
|
|
@@ -6089,7 +6303,7 @@ const ReportBuilder = ({
|
|
|
6089
6303
|
fontFamily: "system-ui"
|
|
6090
6304
|
},
|
|
6091
6305
|
disabled: !!reportDefinitionId
|
|
6092
|
-
}))), /*#__PURE__*/React__default.createElement(Box$
|
|
6306
|
+
}))), /*#__PURE__*/React__default.createElement(Box$2, {
|
|
6093
6307
|
sx: {
|
|
6094
6308
|
display: "flex",
|
|
6095
6309
|
gap: 2,
|
|
@@ -6157,7 +6371,7 @@ const ReportBuilder = ({
|
|
|
6157
6371
|
backgroundColor: "rgba(46, 125, 50, 0.04)"
|
|
6158
6372
|
}
|
|
6159
6373
|
}
|
|
6160
|
-
}, saving ? "Saving..." : reportDefinitionId ? "Update Report" : "Save Report"))), selectedProvider && /*#__PURE__*/React__default.createElement(Box$
|
|
6374
|
+
}, saving ? "Saving..." : reportDefinitionId ? "Update Report" : "Save Report"))), selectedProvider && /*#__PURE__*/React__default.createElement(Box$2, {
|
|
6161
6375
|
sx: {
|
|
6162
6376
|
mt: 2,
|
|
6163
6377
|
fontFamily: "system-ui",
|
|
@@ -6166,7 +6380,7 @@ const ReportBuilder = ({
|
|
|
6166
6380
|
py: 2,
|
|
6167
6381
|
borderRadius: "8px"
|
|
6168
6382
|
}
|
|
6169
|
-
}, /*#__PURE__*/React__default.createElement(Box$
|
|
6383
|
+
}, /*#__PURE__*/React__default.createElement(Box$2, {
|
|
6170
6384
|
sx: {
|
|
6171
6385
|
borderBottom: 1,
|
|
6172
6386
|
borderColor: "rgba(70, 134, 127, 0.27)"
|