@quillsql/react 2.12.26 → 2.12.28
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/cjs/Chart.d.ts +17 -2
- package/dist/cjs/Chart.d.ts.map +1 -1
- package/dist/cjs/Chart.js +137 -90
- package/dist/cjs/ChartBuilder.d.ts +3 -3
- package/dist/cjs/ChartBuilder.d.ts.map +1 -1
- package/dist/cjs/ChartBuilder.js +30 -23
- package/dist/cjs/ChartEditor.d.ts.map +1 -1
- package/dist/cjs/ChartEditor.js +66 -26
- package/dist/cjs/Context.d.ts +1 -0
- package/dist/cjs/Context.d.ts.map +1 -1
- package/dist/cjs/Context.js +17 -2
- package/dist/cjs/Dashboard.d.ts +6 -1
- package/dist/cjs/Dashboard.d.ts.map +1 -1
- package/dist/cjs/Dashboard.js +3 -1
- package/dist/cjs/ReportBuilder.d.ts +1 -1
- package/dist/cjs/ReportBuilder.d.ts.map +1 -1
- package/dist/cjs/ReportBuilder.js +12 -10
- package/dist/cjs/SQLEditor.d.ts +10 -1
- package/dist/cjs/SQLEditor.d.ts.map +1 -1
- package/dist/cjs/SQLEditor.js +27 -3
- package/dist/cjs/Table.d.ts +15 -1
- package/dist/cjs/Table.d.ts.map +1 -1
- package/dist/cjs/Table.js +143 -59
- package/dist/cjs/components/Chart/ChartTooltip.d.ts.map +1 -1
- package/dist/cjs/components/Chart/ChartTooltip.js +5 -4
- package/dist/cjs/components/Dashboard/DashboardFilter.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/DashboardFilter.js +1 -1
- package/dist/cjs/components/Dashboard/DataLoader.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/DataLoader.js +52 -15
- package/dist/cjs/components/Dashboard/MetricComponent.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/MetricComponent.js +7 -1
- package/dist/cjs/components/Dashboard/TableComponent.d.ts +16 -2
- package/dist/cjs/components/Dashboard/TableComponent.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/TableComponent.js +2 -14
- package/dist/cjs/components/QuillTable.d.ts +2 -2
- package/dist/cjs/components/QuillTable.d.ts.map +1 -1
- package/dist/cjs/components/QuillTable.js +7 -5
- package/dist/cjs/components/UiComponents.d.ts +3 -3
- package/dist/cjs/components/UiComponents.d.ts.map +1 -1
- package/dist/cjs/components/UiComponents.js +4 -4
- package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts +16 -1
- package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
- package/dist/cjs/internals/ReportBuilder/PivotModal.js +155 -80
- package/dist/cjs/utils/constants.d.ts +2 -0
- package/dist/cjs/utils/constants.d.ts.map +1 -0
- package/dist/cjs/utils/constants.js +4 -0
- package/dist/cjs/utils/dashboard.d.ts +1 -0
- package/dist/cjs/utils/dashboard.d.ts.map +1 -1
- package/dist/cjs/utils/dashboard.js +46 -97
- package/dist/cjs/utils/dataFetcher.d.ts.map +1 -1
- package/dist/cjs/utils/dataFetcher.js +56 -13
- package/dist/cjs/utils/dates.d.ts +8 -0
- package/dist/cjs/utils/dates.d.ts.map +1 -1
- package/dist/cjs/utils/dates.js +34 -1
- package/dist/cjs/utils/filterProcessing.d.ts +2 -0
- package/dist/cjs/utils/filterProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/filterProcessing.js +129 -1
- package/dist/cjs/utils/logging.d.ts +2 -0
- package/dist/cjs/utils/logging.d.ts.map +1 -0
- package/dist/cjs/utils/logging.js +10 -0
- package/dist/cjs/utils/pivotConstructor.d.ts +6 -0
- package/dist/cjs/utils/pivotConstructor.d.ts.map +1 -0
- package/dist/cjs/utils/pivotConstructor.js +87 -0
- package/dist/cjs/utils/queryConstructor.d.ts +2 -1
- package/dist/cjs/utils/queryConstructor.d.ts.map +1 -1
- package/dist/cjs/utils/queryConstructor.js +46 -11
- package/dist/cjs/utils/tableProcessing.d.ts +22 -0
- package/dist/cjs/utils/tableProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/tableProcessing.js +87 -1
- package/dist/esm/Chart.d.ts +17 -2
- package/dist/esm/Chart.d.ts.map +1 -1
- package/dist/esm/Chart.js +140 -93
- package/dist/esm/ChartBuilder.d.ts +3 -3
- package/dist/esm/ChartBuilder.d.ts.map +1 -1
- package/dist/esm/ChartBuilder.js +30 -23
- package/dist/esm/ChartEditor.d.ts.map +1 -1
- package/dist/esm/ChartEditor.js +66 -26
- package/dist/esm/Context.d.ts +1 -0
- package/dist/esm/Context.d.ts.map +1 -1
- package/dist/esm/Context.js +16 -1
- package/dist/esm/Dashboard.d.ts +6 -1
- package/dist/esm/Dashboard.d.ts.map +1 -1
- package/dist/esm/Dashboard.js +3 -1
- package/dist/esm/ReportBuilder.d.ts +1 -1
- package/dist/esm/ReportBuilder.d.ts.map +1 -1
- package/dist/esm/ReportBuilder.js +13 -11
- package/dist/esm/SQLEditor.d.ts +10 -1
- package/dist/esm/SQLEditor.d.ts.map +1 -1
- package/dist/esm/SQLEditor.js +27 -3
- package/dist/esm/Table.d.ts +15 -1
- package/dist/esm/Table.d.ts.map +1 -1
- package/dist/esm/Table.js +146 -62
- package/dist/esm/components/Chart/ChartTooltip.d.ts.map +1 -1
- package/dist/esm/components/Chart/ChartTooltip.js +5 -4
- package/dist/esm/components/Dashboard/DashboardFilter.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/DashboardFilter.js +1 -1
- package/dist/esm/components/Dashboard/DataLoader.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/DataLoader.js +52 -15
- package/dist/esm/components/Dashboard/MetricComponent.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/MetricComponent.js +7 -1
- package/dist/esm/components/Dashboard/TableComponent.d.ts +16 -2
- package/dist/esm/components/Dashboard/TableComponent.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/TableComponent.js +2 -14
- package/dist/esm/components/QuillTable.d.ts +2 -2
- package/dist/esm/components/QuillTable.d.ts.map +1 -1
- package/dist/esm/components/QuillTable.js +7 -5
- package/dist/esm/components/UiComponents.d.ts +3 -3
- package/dist/esm/components/UiComponents.d.ts.map +1 -1
- package/dist/esm/components/UiComponents.js +4 -4
- package/dist/esm/internals/ReportBuilder/PivotModal.d.ts +16 -1
- package/dist/esm/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
- package/dist/esm/internals/ReportBuilder/PivotModal.js +153 -80
- package/dist/esm/utils/constants.d.ts +2 -0
- package/dist/esm/utils/constants.d.ts.map +1 -0
- package/dist/esm/utils/constants.js +1 -0
- package/dist/esm/utils/dashboard.d.ts +1 -0
- package/dist/esm/utils/dashboard.d.ts.map +1 -1
- package/dist/esm/utils/dashboard.js +45 -97
- package/dist/esm/utils/dataFetcher.d.ts.map +1 -1
- package/dist/esm/utils/dataFetcher.js +56 -13
- package/dist/esm/utils/dates.d.ts +8 -0
- package/dist/esm/utils/dates.d.ts.map +1 -1
- package/dist/esm/utils/dates.js +31 -0
- package/dist/esm/utils/filterProcessing.d.ts +2 -0
- package/dist/esm/utils/filterProcessing.d.ts.map +1 -1
- package/dist/esm/utils/filterProcessing.js +126 -0
- package/dist/esm/utils/logging.d.ts +2 -0
- package/dist/esm/utils/logging.d.ts.map +1 -0
- package/dist/esm/utils/logging.js +6 -0
- package/dist/esm/utils/pivotConstructor.d.ts +6 -0
- package/dist/esm/utils/pivotConstructor.d.ts.map +1 -0
- package/dist/esm/utils/pivotConstructor.js +83 -0
- package/dist/esm/utils/queryConstructor.d.ts +2 -1
- package/dist/esm/utils/queryConstructor.d.ts.map +1 -1
- package/dist/esm/utils/queryConstructor.js +44 -10
- package/dist/esm/utils/tableProcessing.d.ts +22 -0
- package/dist/esm/utils/tableProcessing.d.ts.map +1 -1
- package/dist/esm/utils/tableProcessing.js +85 -1
- package/package.json +1 -1
|
@@ -7,7 +7,7 @@ import ChartError from '../Chart/ChartError';
|
|
|
7
7
|
import { useTheme } from '../../hooks';
|
|
8
8
|
import { useExport } from '../../hooks/useExport';
|
|
9
9
|
import { usePivot } from '../../hooks/useQuill';
|
|
10
|
-
export default function QuillTableComponent({ report, onClick, isLoading, error, onPageChange, onSortChange, }) {
|
|
10
|
+
export default function QuillTableComponent({ report, onClick, isLoading, error, rowCount, onPageChange, onSortChange, }) {
|
|
11
11
|
const theme = useTheme();
|
|
12
12
|
const [initialLoad, setInitialLoad] = useState(true);
|
|
13
13
|
const { downloadCSV } = useExport(report?.id);
|
|
@@ -43,18 +43,6 @@ export default function QuillTableComponent({ report, onClick, isLoading, error,
|
|
|
43
43
|
return formattedRow;
|
|
44
44
|
}, {});
|
|
45
45
|
});
|
|
46
|
-
let numberOfRows = undefined;
|
|
47
|
-
if (report &&
|
|
48
|
-
report.compareRows &&
|
|
49
|
-
report.compareRows[0] &&
|
|
50
|
-
(report.compareRows[0].count || report.compareRows[0].COUNT)) {
|
|
51
|
-
if (report.compareRows[0].COUNT) {
|
|
52
|
-
numberOfRows = parseInt(report.compareRows[0].COUNT);
|
|
53
|
-
}
|
|
54
|
-
else if (report.compareRows[0].count) {
|
|
55
|
-
numberOfRows = parseInt(report.compareRows[0].count);
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
46
|
return (_jsxs("div", { style: { cursor: 'pointer' }, onClick: () => onClick && onClick(report), children: [_jsxs("div", { style: {
|
|
59
47
|
display: 'flex',
|
|
60
48
|
flexDirection: 'row',
|
|
@@ -90,7 +78,7 @@ export default function QuillTableComponent({ report, onClick, isLoading, error,
|
|
|
90
78
|
} })) : error ? (_jsx(ChartError, { containerStyle: {
|
|
91
79
|
width: '100%',
|
|
92
80
|
height: '400px',
|
|
93
|
-
} })) : (_jsx(QuillTable, { isLoading: isLoading, rows: formattedRows ?? [],
|
|
81
|
+
} })) : (_jsx(QuillTable, { isLoading: isLoading, rows: formattedRows ?? [], rowCount: rowCount, columns: columns, rowsPerPage: 10, containerStyle: {
|
|
94
82
|
width: '100%',
|
|
95
83
|
height: '400px',
|
|
96
84
|
}, downloadCSV: () => {
|
|
@@ -2,7 +2,7 @@ import React from 'react';
|
|
|
2
2
|
import { ButtonComponentProps } from './UiComponents';
|
|
3
3
|
export interface TableComponentProps {
|
|
4
4
|
rows: any[];
|
|
5
|
-
|
|
5
|
+
rowCount?: number;
|
|
6
6
|
columns: {
|
|
7
7
|
label: string;
|
|
8
8
|
field: string;
|
|
@@ -30,5 +30,5 @@ export interface TableComponentProps {
|
|
|
30
30
|
direction: string;
|
|
31
31
|
}) => void;
|
|
32
32
|
}
|
|
33
|
-
export default function QuillTable({ rows,
|
|
33
|
+
export default function QuillTable({ rows, rowCount, columns, isLoading, currentPage, sort, hideCSVDownloadButton, containerStyle, className, LoadingComponent, rowsPerPage, emptyStateLabel, downloadCSV, onPageChange, onSortChange, }: TableComponentProps): import("react/jsx-runtime").JSX.Element;
|
|
34
34
|
//# sourceMappingURL=QuillTable.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QuillTable.d.ts","sourceRoot":"","sources":["../../../src/components/QuillTable.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAIxE,OAAO,EAAE,oBAAoB,EAAyB,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"QuillTable.d.ts","sourceRoot":"","sources":["../../../src/components/QuillTable.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAIxE,OAAO,EAAE,oBAAoB,EAAyB,MAAM,gBAAgB,CAAC;AAK7E,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC5C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IACrC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,GAAG,CAAC,OAAO,CAAC;IACrC,0BAA0B,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,GAAG,CAAC,OAAO,CAAC;IAC1E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IAC5E,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;CACrE;AAED,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EACjC,IAAI,EACJ,QAAQ,EACR,OAAO,EACP,SAAS,EACT,WAAW,EACX,IAAI,EACJ,qBAA4B,EAC5B,cAAc,EACd,SAAS,EACT,gBAAwC,EACxC,WAAgB,EAChB,eAA8B,EAC9B,WAAW,EACX,YAAY,EACZ,YAAY,GACb,EAAE,mBAAmB,2CAscrB"}
|
|
@@ -3,7 +3,8 @@ import { useContext, useEffect, useState } from 'react';
|
|
|
3
3
|
import { compareValues } from '../utils/valueFormatter';
|
|
4
4
|
import { ThemeContext } from '../Context';
|
|
5
5
|
import { QuillLoadingComponent } from './UiComponents';
|
|
6
|
-
|
|
6
|
+
import { MAX_COLUMN_ROWS_LIMIT } from '../utils/constants';
|
|
7
|
+
export default function QuillTable({ rows, rowCount, columns, isLoading, currentPage, sort, hideCSVDownloadButton = true, containerStyle, className, LoadingComponent = QuillLoadingComponent, rowsPerPage = 10, emptyStateLabel = 'No results', downloadCSV, onPageChange, onSortChange, }) {
|
|
7
8
|
const [activeRows, setActiveRows] = useState([]);
|
|
8
9
|
const [pageIndex, setPageIndex] = useState(currentPage || 0);
|
|
9
10
|
const [maxPage, setMaxPage] = useState(1);
|
|
@@ -20,15 +21,16 @@ export default function QuillTable({ rows, numberOfRows, columns, isLoading, cur
|
|
|
20
21
|
useEffect(() => {
|
|
21
22
|
setIsPaginating(true);
|
|
22
23
|
const curInterval = pageIndex
|
|
23
|
-
? Math.floor(pageIndex / (
|
|
24
|
+
? Math.floor(pageIndex / (MAX_COLUMN_ROWS_LIMIT / rowsPerPage)) *
|
|
25
|
+
(MAX_COLUMN_ROWS_LIMIT / rowsPerPage)
|
|
24
26
|
: 0;
|
|
25
27
|
if (rows?.length === 0 && isLoading) {
|
|
26
28
|
return;
|
|
27
29
|
}
|
|
28
30
|
const start = (pageIndex - curInterval) * rowsPerPage;
|
|
29
31
|
const end = (pageIndex - curInterval + 1) * rowsPerPage;
|
|
30
|
-
if (
|
|
31
|
-
setMaxPage(Math.ceil(
|
|
32
|
+
if (rowCount && onSortChange) {
|
|
33
|
+
setMaxPage(Math.ceil(rowCount / rowsPerPage));
|
|
32
34
|
setActiveRows(rows.slice(start, end));
|
|
33
35
|
}
|
|
34
36
|
else {
|
|
@@ -44,7 +46,7 @@ export default function QuillTable({ rows, numberOfRows, columns, isLoading, cur
|
|
|
44
46
|
}
|
|
45
47
|
setIsPaginating(false);
|
|
46
48
|
setInitialLoad(false);
|
|
47
|
-
}, [pageIndex, rows, sortColumn, sortDirection, columns,
|
|
49
|
+
}, [pageIndex, rows, sortColumn, sortDirection, columns, rowCount]);
|
|
48
50
|
const increasePage = () => {
|
|
49
51
|
if (pageIndex + 1 === maxPage) {
|
|
50
52
|
return;
|
|
@@ -157,10 +157,10 @@ export interface TableComponentProps {
|
|
|
157
157
|
field: string;
|
|
158
158
|
direction: string;
|
|
159
159
|
}) => void;
|
|
160
|
-
|
|
160
|
+
rowCount?: number;
|
|
161
161
|
}
|
|
162
|
-
export declare const QuillTableSQLEditorComponent: ({ rows, columns, isLoading,
|
|
163
|
-
export declare const QuillTableComponent: ({ rows, columns, isLoading,
|
|
162
|
+
export declare const QuillTableSQLEditorComponent: ({ rows, columns, isLoading, rowCount, onPageChange, onSortChange, }: TableComponentProps) => import("react/jsx-runtime").JSX.Element;
|
|
163
|
+
export declare const QuillTableComponent: ({ rows, columns, isLoading, rowCount, onPageChange, onSortChange, }: TableComponentProps) => import("react/jsx-runtime").JSX.Element;
|
|
164
164
|
export declare const QuillEmptyDashboardComponent: () => import("react/jsx-runtime").JSX.Element;
|
|
165
165
|
export declare const QuillLoadingDashboardComponent: ({ containerStyle, chartContainerStyle, LoadingComponent, }: {
|
|
166
166
|
containerStyle?: React.CSSProperties | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UiComponents.d.ts","sourceRoot":"","sources":["../../../src/components/UiComponents.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EACZ,WAAW,EACX,aAAa,EACb,SAAS,EAOV,MAAM,OAAO,CAAC;AAQf,MAAM,WAAW,MAAM;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IACrC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,SAAS,CAAC;CAC5B;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAChC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB;AAED,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;CAChE;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,SAAS,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IACrC,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,KAAK,CAAC,EAAE,GAAG,CAAC;CACb;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,wDAOxB,uBAAuB,4CAgDzB,CAAC;AAEF,eAAO,MAAM,cAAc;WAKlB,MAAM;aACJ,MAAM,IAAI;WACZ,SAAS;6CAsCjB,CAAC;AAEF,eAAO,MAAM,uBAAuB;WAK3B,MAAM;aACJ,MAAM,IAAI;WACZ,SAAS;6CAqCjB,CAAC;AAEF,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;KACf,EAAE,CAAC;IACJ,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;CACjE;AAED,MAAM,WAAW,yBAAyB;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;KACf,EAAE,CAAC;IACJ,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;CACjE;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,cAAc,cAAe,oBAAoB,4CAkB7D,CAAC;AAEF,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,iBAAiB,cAAe,uBAAuB,4CAkBnE,CAAC;AAEF,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,aAAa,cAAe,mBAAmB,4CAiB3D,CAAC;AAEF,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;CAC1D;AAED,eAAO,MAAM,gBAAgB,oCAI1B,sBAAsB,4CAoCxB,CAAC;AAEF,eAAO,MAAM,mBAAmB;;;GAG/B,CAAC;AAEF,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;KACf,EAAE,CAAC;IACJ,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;CAC3D;AAED,eAAO,MAAM,SAAS,kCAInB,kBAAkB,4CAkDpB,CAAC;AAEF,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,YAAY,cAAe,kBAAkB,4CAoBzD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,wEAMzB,qBAAqB,4CA6DvB,CAAC;AAEF,wBAAgB,aAAa,CAAC,EAC5B,MAAM,EACN,SAAS,EACT,KAAK,EACL,QAAQ,EACR,KAAK,EACL,MAAM,GACP,EAAE;IACD,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,SAAS,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,GAAG,CAAC,OAAO,CA6Fd;AAED,eAAO,MAAM,oBAAoB,iBAE9B,0BAA0B,4CAyB5B,CAAC;AAEF,eAAO,MAAM,cAAc,+CAwD1B,CAAC;AAEF,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,EAAE,CAAC;IAC/B,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC5C,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IAC5E,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IACpE,
|
|
1
|
+
{"version":3,"file":"UiComponents.d.ts","sourceRoot":"","sources":["../../../src/components/UiComponents.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EACZ,WAAW,EACX,aAAa,EACb,SAAS,EAOV,MAAM,OAAO,CAAC;AAQf,MAAM,WAAW,MAAM;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IACrC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,SAAS,CAAC;CAC5B;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAChC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB;AAED,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;CAChE;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,SAAS,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IACrC,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,KAAK,CAAC,EAAE,GAAG,CAAC;CACb;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,wDAOxB,uBAAuB,4CAgDzB,CAAC;AAEF,eAAO,MAAM,cAAc;WAKlB,MAAM;aACJ,MAAM,IAAI;WACZ,SAAS;6CAsCjB,CAAC;AAEF,eAAO,MAAM,uBAAuB;WAK3B,MAAM;aACJ,MAAM,IAAI;WACZ,SAAS;6CAqCjB,CAAC;AAEF,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;KACf,EAAE,CAAC;IACJ,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;CACjE;AAED,MAAM,WAAW,yBAAyB;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;KACf,EAAE,CAAC;IACJ,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;CACjE;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,cAAc,cAAe,oBAAoB,4CAkB7D,CAAC;AAEF,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,iBAAiB,cAAe,uBAAuB,4CAkBnE,CAAC;AAEF,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,aAAa,cAAe,mBAAmB,4CAiB3D,CAAC;AAEF,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;CAC1D;AAED,eAAO,MAAM,gBAAgB,oCAI1B,sBAAsB,4CAoCxB,CAAC;AAEF,eAAO,MAAM,mBAAmB;;;GAG/B,CAAC;AAEF,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;KACf,EAAE,CAAC;IACJ,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;CAC3D;AAED,eAAO,MAAM,SAAS,kCAInB,kBAAkB,4CAkDpB,CAAC;AAEF,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,YAAY,cAAe,kBAAkB,4CAoBzD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,wEAMzB,qBAAqB,4CA6DvB,CAAC;AAEF,wBAAgB,aAAa,CAAC,EAC5B,MAAM,EACN,SAAS,EACT,KAAK,EACL,QAAQ,EACR,KAAK,EACL,MAAM,GACP,EAAE;IACD,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,SAAS,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,GAAG,CAAC,OAAO,CA6Fd;AAED,eAAO,MAAM,oBAAoB,iBAE9B,0BAA0B,4CAyB5B,CAAC;AAEF,eAAO,MAAM,cAAc,+CAwD1B,CAAC;AAEF,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,EAAE,CAAC;IAC/B,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC5C,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IAC5E,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IACpE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,eAAO,MAAM,4BAA4B,wEAOtC,mBAAmB,4CAsCrB,CAAC;AAEF,eAAO,MAAM,mBAAmB,wEAO7B,mBAAmB,4CA4CrB,CAAC;AAEF,eAAO,MAAM,4BAA4B,+CAAgB,CAAC;AAS1D,eAAO,MAAM,8BAA8B;;;8BAOhB,WAAW;6CAuBrC,CAAC;AAEF,eAAO,MAAM,kCAAkC;cAGnC,SAAS;6CAapB,CAAC;AAEF,eAAO,MAAM,qCAAqC;cAGtC,SAAS;6CAapB,CAAC;AAEF,eAAO,MAAM,sBAAsB;cAGvB,SAAS;6CAapB,CAAC;AAEF,eAAO,MAAM,yBAAyB;cAG1B,SAAS;6CAapB,CAAC;AAEF,eAAO,MAAM,6BAA6B;cAG9B,SAAS;6CAgBpB,CAAC;AAEF,eAAO,MAAM,8BAA8B;cAG/B,SAAS;6CAepB,CAAC;AAEF,eAAO,MAAM,0BAA0B;kBAGvB,MAAM;6CAuBrB,CAAC;AAEF,eAAO,MAAM,2BAA2B,+CAGvC,CAAC;AAEF,eAAO,MAAM,qBAAqB,+CA+DjC,CAAC"}
|
|
@@ -331,7 +331,7 @@ export const LoadingSpinner = () => (_jsx("div", { style: {
|
|
|
331
331
|
justifyContent: 'center',
|
|
332
332
|
alignItems: 'center',
|
|
333
333
|
}, children: _jsxs("svg", { width: "24", height: "24", children: [_jsx("circle", { cx: "12", cy: "12", r: "9.375", strokeWidth: "3.75", strokeDasharray: "calc(2 * 3.14 * 9.375 / 3) calc(2 * 3.14 * 9.375 * 2 / 3)", strokeDashoffset: "calc(2 * 3.14 * 9.375 / 6)", stroke: "#364153", fill: "none", transform: "rotate(-90 12 12)", children: _jsx("animateTransform", { attributeName: "transform", attributeType: "XML", type: "rotate", from: "-180 12 12", to: "180 12 12", dur: "0.8s", repeatCount: "indefinite" }) }), _jsx("circle", { cx: "12", cy: "12", r: "9.375", strokeWidth: "3.75", strokeDasharray: "calc(2 * 3.14 * 9.375 / 3) calc(2 * 3.14 * 9.375 * 1 / 3)", strokeDashoffset: "calc(2 * 3.14 * 9.375 / 3) calc(2 * 3.14 * 9.375 * 2 / 3)", stroke: '#ADB1B9', fill: "none", transform: "rotate(90 12 12)", children: _jsx("animateTransform", { attributeName: "transform", attributeType: "XML", type: "rotate", from: "0 12 12", to: "360 12 12", dur: "0.8s", repeatCount: "indefinite" }) })] }) }));
|
|
334
|
-
export const QuillTableSQLEditorComponent = ({ rows, columns, isLoading = false,
|
|
334
|
+
export const QuillTableSQLEditorComponent = ({ rows, columns, isLoading = false, rowCount, onPageChange, onSortChange, }) => {
|
|
335
335
|
const [sort, setSort] = useState({ field: '', direction: '' });
|
|
336
336
|
const [page, setPage] = useState(0);
|
|
337
337
|
if (isLoading) {
|
|
@@ -343,7 +343,7 @@ export const QuillTableSQLEditorComponent = ({ rows, columns, isLoading = false,
|
|
|
343
343
|
height: '100%',
|
|
344
344
|
}, children: _jsx(LoadingSpinner, {}) }));
|
|
345
345
|
}
|
|
346
|
-
return (_jsx(QuillTable, { rows: rows, columns: columns, rowsPerPage: 20,
|
|
346
|
+
return (_jsx(QuillTable, { rows: rows, columns: columns, rowsPerPage: 20, rowCount: rowCount, onPageChange: (page) => {
|
|
347
347
|
setPage(page.currentPage);
|
|
348
348
|
onPageChange && onPageChange(page);
|
|
349
349
|
}, onSortChange: (sort) => {
|
|
@@ -352,7 +352,7 @@ export const QuillTableSQLEditorComponent = ({ rows, columns, isLoading = false,
|
|
|
352
352
|
onSortChange && onSortChange(sort);
|
|
353
353
|
}, sort: sort, currentPage: page, isLoading: isLoading }));
|
|
354
354
|
};
|
|
355
|
-
export const QuillTableComponent = ({ rows, columns, isLoading = false,
|
|
355
|
+
export const QuillTableComponent = ({ rows, columns, isLoading = false, rowCount, onPageChange, onSortChange, }) => {
|
|
356
356
|
const [sort, setSort] = useState({ field: '', direction: '' });
|
|
357
357
|
const [page, setPage] = useState(0);
|
|
358
358
|
const [initialLoad, setInitialLoad] = useState(true);
|
|
@@ -370,7 +370,7 @@ export const QuillTableComponent = ({ rows, columns, isLoading = false, numberOf
|
|
|
370
370
|
height: '100%',
|
|
371
371
|
}, children: _jsx(ChartSkeleton, {}) }));
|
|
372
372
|
}
|
|
373
|
-
return (_jsx(QuillTable, { rows: rows, columns: columns, rowsPerPage: 20,
|
|
373
|
+
return (_jsx(QuillTable, { rows: rows, columns: columns, rowsPerPage: 20, rowCount: rowCount, onPageChange: (page) => {
|
|
374
374
|
setPage(page.currentPage);
|
|
375
375
|
onPageChange && onPageChange(page);
|
|
376
376
|
}, onSortChange: (sort) => {
|
|
@@ -87,8 +87,9 @@ export interface PivotModalProps {
|
|
|
87
87
|
initialSelectedPivotTable?: any;
|
|
88
88
|
disabled?: boolean;
|
|
89
89
|
pivotRecommendationsEnabled?: boolean;
|
|
90
|
+
report?: any;
|
|
90
91
|
}
|
|
91
|
-
export declare const PivotModal: ({ pivotRowField, setPivotRowField, pivotColumnField, setPivotColumnField, pivotValueField, setPivotValueField, pivotAggregation, setPivotAggregation, popUpTitle, setPopUpTitle, selectedTable, SelectComponent, ButtonComponent, SecondaryButtonComponent, PopoverComponent, ErrorMessageComponent, PivotRowContainer, PivotColumnContainer, LoadingComponent, CardComponent, HeaderComponent, LabelComponent, TextComponent, selectedPivotIndex, setSelectedPivotIndex, removePivot, selectPivot, showUpdatePivot, setShowUpdatePivot, data, columns, theme, isOpen, setIsOpen, dateRange, createdPivots, setCreatedPivots, recommendedPivots, setRecommendedPivots, triggerButtonText, showPivotEditButton, showEditOnPivotClick, selectPivotOnEdit, showTrigger, rightAlign, parentRef, pivotCountRequest, query, initialUniqueValues, initialSelectedPivotTable, disabled, pivotRecommendationsEnabled, }: PivotModalProps) => import("react/jsx-runtime").JSX.Element;
|
|
92
|
+
export declare const PivotModal: ({ pivotRowField, setPivotRowField, pivotColumnField, setPivotColumnField, pivotValueField, setPivotValueField, pivotAggregation, setPivotAggregation, popUpTitle, setPopUpTitle, selectedTable, SelectComponent, ButtonComponent, SecondaryButtonComponent, PopoverComponent, ErrorMessageComponent, PivotRowContainer, PivotColumnContainer, LoadingComponent, CardComponent, HeaderComponent, LabelComponent, TextComponent, selectedPivotIndex, setSelectedPivotIndex, removePivot, selectPivot, showUpdatePivot, setShowUpdatePivot, data, columns, theme, isOpen, setIsOpen, dateRange, createdPivots, setCreatedPivots, recommendedPivots, setRecommendedPivots, triggerButtonText, showPivotEditButton, showEditOnPivotClick, selectPivotOnEdit, showTrigger, rightAlign, parentRef, pivotCountRequest, query, initialUniqueValues, initialSelectedPivotTable, disabled, pivotRecommendationsEnabled, report, }: PivotModalProps) => import("react/jsx-runtime").JSX.Element;
|
|
92
93
|
export declare function generatePivotTableYAxis(pivot: Pivot, cols: {
|
|
93
94
|
label: string;
|
|
94
95
|
field: string;
|
|
@@ -109,6 +110,10 @@ export declare function getDateRange(dateRange: {
|
|
|
109
110
|
start: Date;
|
|
110
111
|
end: Date;
|
|
111
112
|
};
|
|
113
|
+
export declare function getDateBuckets(dateRange: {
|
|
114
|
+
start: Date;
|
|
115
|
+
end: Date;
|
|
116
|
+
} | undefined, column: string, data: any, dateBucket?: string): Date[];
|
|
112
117
|
export declare function getDateString(value: string, dateRange?: {
|
|
113
118
|
start: Date;
|
|
114
119
|
end: Date;
|
|
@@ -120,6 +125,16 @@ export declare function generatePivotTable(pivot: Pivot, data: any, dateRange: {
|
|
|
120
125
|
} | undefined, isComparison: boolean, rowLimit?: number, compRange?: {
|
|
121
126
|
start: Date;
|
|
122
127
|
end: Date;
|
|
128
|
+
} | undefined, dateBucket?: string, report?: any, client?: any, uniqueValues?: any): Promise<{
|
|
129
|
+
rows: any;
|
|
130
|
+
columns: any;
|
|
131
|
+
}>;
|
|
132
|
+
export declare function generatePivotTableInMemory(pivot: Pivot, data: any, dateRange: {
|
|
133
|
+
start: Date;
|
|
134
|
+
end: Date;
|
|
135
|
+
} | undefined, isComparison: boolean, rowLimit?: number, compRange?: {
|
|
136
|
+
start: Date;
|
|
137
|
+
end: Date;
|
|
123
138
|
} | undefined, dateBucket?: string): {
|
|
124
139
|
rows: any[];
|
|
125
140
|
columns: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PivotModal.d.ts","sourceRoot":"","sources":["../../../../src/internals/ReportBuilder/PivotModal.tsx"],"names":[],"mappings":"AAAA,OAAc,EAOZ,SAAS,EACV,MAAM,OAAO,CAAC;AAuBf,OAAO,EACL,oBAAoB,EAKrB,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"PivotModal.d.ts","sourceRoot":"","sources":["../../../../src/internals/ReportBuilder/PivotModal.tsx"],"names":[],"mappings":"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"}
|
|
@@ -12,7 +12,9 @@ import { isNumericColumnType, } from '../../components/ReportBuilder/ast';
|
|
|
12
12
|
import { QuillCard } from '../../components/QuillCard';
|
|
13
13
|
import { cleanPivot, getPossiblePivotFieldOptions, isValidPivot, } from '../../utils/pivotProcessing';
|
|
14
14
|
import { hashCode } from '../../utils/crypto';
|
|
15
|
-
import { getUniqueValuesByColumns } from '../../utils/tableProcessing';
|
|
15
|
+
import { getDateRangeByColumns, getUniqueValuesByColumns, } from '../../utils/tableProcessing';
|
|
16
|
+
import { generatePivotWithSQL } from '../../utils/pivotConstructor';
|
|
17
|
+
import { getDateBucketFromRange, } from '../../utils/dates';
|
|
16
18
|
const QuillHover = () => {
|
|
17
19
|
return (_jsx("style", { children: `
|
|
18
20
|
.quill-hover {
|
|
@@ -26,7 +28,7 @@ const QuillHover = () => {
|
|
|
26
28
|
}
|
|
27
29
|
` }));
|
|
28
30
|
};
|
|
29
|
-
export const PivotModal = ({ pivotRowField, setPivotRowField, pivotColumnField, setPivotColumnField, pivotValueField, setPivotValueField, pivotAggregation, setPivotAggregation, popUpTitle, setPopUpTitle, selectedTable, SelectComponent, ButtonComponent, SecondaryButtonComponent, PopoverComponent, ErrorMessageComponent = QuillErrorMessageComponent, PivotRowContainer = QuillPivotRowContainer, PivotColumnContainer = QuillPivotColumnContainer, LoadingComponent = QuillLoadingComponent, CardComponent = QuillCard, HeaderComponent, LabelComponent, TextComponent, selectedPivotIndex, setSelectedPivotIndex, removePivot, selectPivot, showUpdatePivot, setShowUpdatePivot, data, columns, theme, isOpen, setIsOpen, dateRange, createdPivots, setCreatedPivots, recommendedPivots, setRecommendedPivots, triggerButtonText = 'Pivot', showPivotEditButton = false, showEditOnPivotClick = true, selectPivotOnEdit = false, showTrigger = true, rightAlign = false, parentRef, pivotCountRequest = 6, query, initialUniqueValues, initialSelectedPivotTable, disabled = false, pivotRecommendationsEnabled = true, }) => {
|
|
31
|
+
export const PivotModal = ({ pivotRowField, setPivotRowField, pivotColumnField, setPivotColumnField, pivotValueField, setPivotValueField, pivotAggregation, setPivotAggregation, popUpTitle, setPopUpTitle, selectedTable, SelectComponent, ButtonComponent, SecondaryButtonComponent, PopoverComponent, ErrorMessageComponent = QuillErrorMessageComponent, PivotRowContainer = QuillPivotRowContainer, PivotColumnContainer = QuillPivotColumnContainer, LoadingComponent = QuillLoadingComponent, CardComponent = QuillCard, HeaderComponent, LabelComponent, TextComponent, selectedPivotIndex, setSelectedPivotIndex, removePivot, selectPivot, showUpdatePivot, setShowUpdatePivot, data, columns, theme, isOpen, setIsOpen, dateRange, createdPivots, setCreatedPivots, recommendedPivots, setRecommendedPivots, triggerButtonText = 'Pivot', showPivotEditButton = false, showEditOnPivotClick = true, selectPivotOnEdit = false, showTrigger = true, rightAlign = false, parentRef, pivotCountRequest = 6, query, initialUniqueValues, initialSelectedPivotTable, disabled = false, pivotRecommendationsEnabled = true, report, }) => {
|
|
30
32
|
const [isLoading, setIsLoading] = useState(false);
|
|
31
33
|
const [selectedPivotType, setSelectedPivotType] = useState('recommended');
|
|
32
34
|
const [errors, setErrors] = useState([]);
|
|
@@ -41,6 +43,7 @@ export const PivotModal = ({ pivotRowField, setPivotRowField, pivotColumnField,
|
|
|
41
43
|
const [allowedRowFields, setAllowedRowFields] = useState([]);
|
|
42
44
|
const [allowedValueFields, setAllowedValueFields] = useState([]);
|
|
43
45
|
const [uniqueValues, setUniqueValues] = useState(initialUniqueValues);
|
|
46
|
+
const [dateRanges, setDateRanges] = useState({});
|
|
44
47
|
const getDistinctValues = async () => {
|
|
45
48
|
if (columns) {
|
|
46
49
|
const stringColumns = columns.filter((column) => {
|
|
@@ -66,6 +69,23 @@ export const PivotModal = ({ pivotRowField, setPivotRowField, pivotColumnField,
|
|
|
66
69
|
}
|
|
67
70
|
return { rowFields: [], columnFields: [], valueFields: [] };
|
|
68
71
|
};
|
|
72
|
+
const getAllDateRangesByColumn = async () => {
|
|
73
|
+
// Don't reprocess dateRanges if they are already gathered
|
|
74
|
+
if (Object.keys(dateRanges).length > 0 ||
|
|
75
|
+
(client && client.databaseType !== 'postgresql')) {
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
if (columns) {
|
|
79
|
+
const dateColumns = columns.filter((column) => {
|
|
80
|
+
return column.jsType === 'date';
|
|
81
|
+
});
|
|
82
|
+
if (dateColumns.length === 0) {
|
|
83
|
+
return [];
|
|
84
|
+
}
|
|
85
|
+
const dateRangeByColumn = await getDateRangeByColumns(dateColumns, query || '', client, customFields);
|
|
86
|
+
setDateRanges(dateRangeByColumn || {});
|
|
87
|
+
}
|
|
88
|
+
};
|
|
69
89
|
useEffect(() => {
|
|
70
90
|
const calculatePivotCardSize = () => {
|
|
71
91
|
// The pivot card should be the same width as the row of inputs
|
|
@@ -90,30 +110,65 @@ export const PivotModal = ({ pivotRowField, setPivotRowField, pivotColumnField,
|
|
|
90
110
|
}, 500);
|
|
91
111
|
}
|
|
92
112
|
}, [showUpdatePivot, isOpen]);
|
|
113
|
+
useEffect(() => {
|
|
114
|
+
const fetchPivotData = async () => {
|
|
115
|
+
if (pivotRowField && data && columns) {
|
|
116
|
+
const pivot = {
|
|
117
|
+
rowField: pivotRowField || '',
|
|
118
|
+
rowFieldType: columnsToShow[pivotRowField || ''],
|
|
119
|
+
columnField: pivotColumnField,
|
|
120
|
+
columnFieldType: columnsToShow[pivotColumnField || ''],
|
|
121
|
+
valueField: pivotValueField || '',
|
|
122
|
+
aggregationType: pivotAggregation || '',
|
|
123
|
+
};
|
|
124
|
+
const { rows, columns } = await generatePivotTable(pivot, data, dateRange, false, -1, undefined, undefined, report, client, uniqueValues);
|
|
125
|
+
setSamplePivotTable({ pivot: pivot, rows, columns });
|
|
126
|
+
}
|
|
127
|
+
if ((pivotRowField && data && columns) || initialSelectedPivotTable) {
|
|
128
|
+
getDistinctValues();
|
|
129
|
+
}
|
|
130
|
+
if (initialUniqueValues) {
|
|
131
|
+
const possibleColumns = getPossiblePivotFieldOptions(columns, initialUniqueValues);
|
|
132
|
+
setAllowedRowFields(possibleColumns.rowFields);
|
|
133
|
+
setAllowedColumnFields(possibleColumns.columnFields);
|
|
134
|
+
setAllowedValueFields(possibleColumns.valueFields);
|
|
135
|
+
setUniqueValues(initialUniqueValues);
|
|
136
|
+
}
|
|
137
|
+
if (pivotRowField && data && columns) {
|
|
138
|
+
const pivot = {
|
|
139
|
+
rowField: pivotRowField || '',
|
|
140
|
+
rowFieldType: columnsToShow[pivotRowField || ''],
|
|
141
|
+
columnField: pivotColumnField,
|
|
142
|
+
columnFieldType: columnsToShow[pivotColumnField || ''],
|
|
143
|
+
valueField: pivotValueField || '',
|
|
144
|
+
aggregationType: pivotAggregation || '',
|
|
145
|
+
};
|
|
146
|
+
if (initialSelectedPivotTable) {
|
|
147
|
+
setSamplePivotTable({
|
|
148
|
+
pivot: pivot,
|
|
149
|
+
rows: initialSelectedPivotTable.rows,
|
|
150
|
+
columns: initialSelectedPivotTable.columns,
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
else {
|
|
154
|
+
const { rows, columns } = await generatePivotTable(pivot, data, dateRange, false);
|
|
155
|
+
setSamplePivotTable({ pivot: pivot, rows, columns });
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
};
|
|
159
|
+
fetchPivotData();
|
|
160
|
+
}, []);
|
|
93
161
|
useEffect(() => {
|
|
94
162
|
if (pivotRowField && data && columns) {
|
|
95
|
-
const pivot = {
|
|
96
|
-
rowField: pivotRowField || '',
|
|
97
|
-
rowFieldType: columnsToShow[pivotRowField || ''],
|
|
98
|
-
columnField: pivotColumnField,
|
|
99
|
-
columnFieldType: columnsToShow[pivotColumnField || ''],
|
|
100
|
-
valueField: pivotValueField || '',
|
|
101
|
-
aggregationType: pivotAggregation || '',
|
|
102
|
-
};
|
|
103
|
-
const { rows, columns } = generatePivotTable(pivot, data, dateRange, false);
|
|
104
|
-
setSamplePivotTable({ pivot: pivot, rows, columns });
|
|
105
|
-
}
|
|
106
|
-
if ((pivotRowField && data && columns) || initialSelectedPivotTable) {
|
|
107
163
|
getDistinctValues();
|
|
164
|
+
getAllDateRangesByColumn();
|
|
108
165
|
}
|
|
109
|
-
if (
|
|
110
|
-
|
|
111
|
-
setAllowedRowFields(possibleColumns.rowFields);
|
|
112
|
-
setAllowedColumnFields(possibleColumns.columnFields);
|
|
113
|
-
setAllowedValueFields(possibleColumns.valueFields);
|
|
114
|
-
setUniqueValues(initialUniqueValues);
|
|
166
|
+
else if (initialSelectedPivotTable) {
|
|
167
|
+
getDistinctValues();
|
|
115
168
|
}
|
|
116
|
-
|
|
169
|
+
}, [initialSelectedPivotTable, columns, data, pivotRowField]);
|
|
170
|
+
useEffect(() => {
|
|
171
|
+
const fetchPivotTables = async () => {
|
|
117
172
|
const pivot = {
|
|
118
173
|
rowField: pivotRowField || '',
|
|
119
174
|
rowFieldType: columnsToShow[pivotRowField || ''],
|
|
@@ -122,37 +177,12 @@ export const PivotModal = ({ pivotRowField, setPivotRowField, pivotColumnField,
|
|
|
122
177
|
valueField: pivotValueField || '',
|
|
123
178
|
aggregationType: pivotAggregation || '',
|
|
124
179
|
};
|
|
125
|
-
if (
|
|
126
|
-
|
|
127
|
-
pivot: pivot,
|
|
128
|
-
rows: initialSelectedPivotTable.rows,
|
|
129
|
-
columns: initialSelectedPivotTable.columns,
|
|
130
|
-
});
|
|
131
|
-
}
|
|
132
|
-
else {
|
|
133
|
-
const { rows, columns } = generatePivotTable(pivot, data, dateRange, false);
|
|
180
|
+
if (isValidPivot(pivot) && data && columns) {
|
|
181
|
+
const { rows, columns } = await generatePivotTable(pivot, data, dateRange, false);
|
|
134
182
|
setSamplePivotTable({ pivot: pivot, rows, columns });
|
|
135
183
|
}
|
|
136
|
-
}
|
|
137
|
-
}, []);
|
|
138
|
-
useEffect(() => {
|
|
139
|
-
if ((pivotRowField && data && columns) || initialSelectedPivotTable) {
|
|
140
|
-
getDistinctValues();
|
|
141
|
-
}
|
|
142
|
-
}, [initialSelectedPivotTable, columns, data, pivotRowField]);
|
|
143
|
-
useEffect(() => {
|
|
144
|
-
const pivot = {
|
|
145
|
-
rowField: pivotRowField || '',
|
|
146
|
-
rowFieldType: columnsToShow[pivotRowField || ''],
|
|
147
|
-
columnField: pivotColumnField,
|
|
148
|
-
columnFieldType: columnsToShow[pivotColumnField || ''],
|
|
149
|
-
valueField: pivotValueField || '',
|
|
150
|
-
aggregationType: pivotAggregation || '',
|
|
151
184
|
};
|
|
152
|
-
|
|
153
|
-
const { rows, columns } = generatePivotTable(pivot, data, dateRange, false);
|
|
154
|
-
setSamplePivotTable({ pivot: pivot, rows, columns });
|
|
155
|
-
}
|
|
185
|
+
fetchPivotTables();
|
|
156
186
|
}, [
|
|
157
187
|
data,
|
|
158
188
|
columns,
|
|
@@ -181,17 +211,21 @@ export const PivotModal = ({ pivotRowField, setPivotRowField, pivotColumnField,
|
|
|
181
211
|
return map;
|
|
182
212
|
}, {});
|
|
183
213
|
}, [columns]);
|
|
184
|
-
const selectedPivotTable =
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
214
|
+
const [selectedPivotTable, setSelectedPivotTable] = useState(null);
|
|
215
|
+
useEffect(() => {
|
|
216
|
+
const fetchPivotTables = async () => {
|
|
217
|
+
if (selectedPivotIndex === -1) {
|
|
218
|
+
return null;
|
|
219
|
+
}
|
|
220
|
+
const pivot = createdPivots[selectedPivotIndex];
|
|
221
|
+
const { rows, columns } = await generatePivotTable(pivot, data, dateRange, false);
|
|
222
|
+
setSelectedPivotTable({
|
|
223
|
+
pivot: pivot,
|
|
224
|
+
rows: rows,
|
|
225
|
+
columns: columns,
|
|
226
|
+
});
|
|
194
227
|
};
|
|
228
|
+
fetchPivotTables();
|
|
195
229
|
}, [selectedPivotIndex, data, dateRange, createdPivots]);
|
|
196
230
|
const onSelectRecommendedPivot = (pivot, index) => {
|
|
197
231
|
if (showEditOnPivotClick) {
|
|
@@ -208,12 +242,12 @@ export const PivotModal = ({ pivotRowField, setPivotRowField, pivotColumnField,
|
|
|
208
242
|
setIsOpen(false);
|
|
209
243
|
};
|
|
210
244
|
const onSelectCreatedPivot = (pivot, index) => {
|
|
211
|
-
selectPivot(pivot);
|
|
245
|
+
selectPivot(pivot, pivot.columnField ? uniqueValues : undefined, dateRanges[pivot.rowField]?.dateRange);
|
|
212
246
|
setSelectedPivotType('created');
|
|
213
247
|
setIsOpen(false);
|
|
214
248
|
setPopUpTitle('Add pivot');
|
|
215
249
|
};
|
|
216
|
-
const onEditPivot = (pivot, index) => {
|
|
250
|
+
const onEditPivot = async (pivot, index) => {
|
|
217
251
|
setIsLoading(false);
|
|
218
252
|
setPivotRowField(pivot.rowField);
|
|
219
253
|
setPivotColumnField(pivot.columnField);
|
|
@@ -221,7 +255,11 @@ export const PivotModal = ({ pivotRowField, setPivotRowField, pivotColumnField,
|
|
|
221
255
|
setPivotAggregation(pivot.aggregationType);
|
|
222
256
|
setShowUpdatePivot(true);
|
|
223
257
|
if (isValidPivot(pivot)) {
|
|
224
|
-
|
|
258
|
+
let dateBucket = undefined;
|
|
259
|
+
if (pivotRowField && dateRanges[pivotRowField]) {
|
|
260
|
+
dateBucket = getDateBucketFromRange(dateRanges[pivotRowField].dateRange);
|
|
261
|
+
}
|
|
262
|
+
const { rows, columns } = await generatePivotTable(pivot, data, dateRange, false, -1, undefined, dateBucket, report, client, uniqueValues);
|
|
225
263
|
setSamplePivotTable({ pivot, rows, columns });
|
|
226
264
|
return;
|
|
227
265
|
}
|
|
@@ -323,26 +361,38 @@ export const PivotModal = ({ pivotRowField, setPivotRowField, pivotColumnField,
|
|
|
323
361
|
setSamplePivotTable(null);
|
|
324
362
|
return;
|
|
325
363
|
}
|
|
326
|
-
|
|
327
|
-
|
|
364
|
+
let dateBucket = undefined;
|
|
365
|
+
if (pivotRowField && dateRanges[pivotRowField]) {
|
|
366
|
+
dateBucket = getDateBucketFromRange(dateRanges[pivotRowField].dateRange);
|
|
367
|
+
}
|
|
368
|
+
setTimeout(async () => {
|
|
369
|
+
const { rows, columns } = await generatePivotTable(pivot, data, dateRange, false, -1, undefined, dateBucket, report, client, uniqueValues);
|
|
328
370
|
setSamplePivotTable({ pivot, rows, columns });
|
|
329
371
|
setIsLoading(false);
|
|
330
372
|
}, 500);
|
|
331
373
|
};
|
|
332
|
-
const recommendedPivotTables =
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
374
|
+
const [recommendedPivotTables, setRecommendedPivotTables] = useState([]);
|
|
375
|
+
useEffect(() => {
|
|
376
|
+
const fetchPivotTables = async () => {
|
|
377
|
+
const pts = await Promise.all(recommendedPivots.map(async (p) => {
|
|
378
|
+
const { rows, columns } = await generatePivotTable(p, data, dateRange, false, 6);
|
|
379
|
+
return { pivot: p, rows, columns };
|
|
380
|
+
}));
|
|
381
|
+
setRecommendedPivotTables(pts);
|
|
382
|
+
};
|
|
383
|
+
fetchPivotTables();
|
|
384
|
+
}, [recommendedPivots, dateRange]);
|
|
385
|
+
const [createdPivotTables, setCreatedPivotTables] = useState([]);
|
|
386
|
+
useEffect(() => {
|
|
387
|
+
const fetchPivotTables = async () => {
|
|
388
|
+
const pts = await Promise.all(createdPivots.map(async (p) => {
|
|
389
|
+
const { rows, columns } = await generatePivotTable(p, data, dateRange, false, 6);
|
|
390
|
+
return { pivot: p, rows, columns };
|
|
391
|
+
}));
|
|
392
|
+
setCreatedPivotTables(pts);
|
|
393
|
+
};
|
|
394
|
+
fetchPivotTables();
|
|
395
|
+
}, [createdPivots, dateRange]);
|
|
346
396
|
return (_jsx("div", { style: { display: 'flex', flexDirection: 'column' }, children: _jsxs("div", { style: {
|
|
347
397
|
position: 'relative',
|
|
348
398
|
display: 'inline-block',
|
|
@@ -619,7 +669,7 @@ function determineIntervalThroughOverride(dateBucket, dateRange) {
|
|
|
619
669
|
return eachMonthOfInterval(dateRange);
|
|
620
670
|
}
|
|
621
671
|
}
|
|
622
|
-
function getDateBuckets(dateRange, column, data, dateBucket) {
|
|
672
|
+
export function getDateBuckets(dateRange, column, data, dateBucket) {
|
|
623
673
|
if (!dateRange) {
|
|
624
674
|
if (dateBucket) {
|
|
625
675
|
return determineIntervalThroughOverride(dateBucket, getDateRange(undefined, column, data));
|
|
@@ -736,7 +786,30 @@ const fixBigQueryData = (data = []) => {
|
|
|
736
786
|
}
|
|
737
787
|
return newData;
|
|
738
788
|
};
|
|
739
|
-
export function generatePivotTable(pivot, data, dateRange, isComparison, rowLimit = -1, compRange = undefined, dateBucket) {
|
|
789
|
+
export async function generatePivotTable(pivot, data, dateRange, isComparison, rowLimit = -1, compRange = undefined, dateBucket, report, client, uniqueValues) {
|
|
790
|
+
try {
|
|
791
|
+
if (report &&
|
|
792
|
+
report.rowCount &&
|
|
793
|
+
report.rowCount !== data.length &&
|
|
794
|
+
client &&
|
|
795
|
+
client.databaseType.toLowerCase() === 'postgresql') {
|
|
796
|
+
let dateFilter = report
|
|
797
|
+
? report.filtersApplied.find((f) => f.filterType === 'date_range')
|
|
798
|
+
: undefined;
|
|
799
|
+
const pivotTable = await generatePivotWithSQL(pivot, report, client, dateBucket, dateFilter, pivot.columnField && uniqueValues
|
|
800
|
+
? Object.keys(uniqueValues[pivot.columnField])
|
|
801
|
+
: undefined);
|
|
802
|
+
if (pivotTable) {
|
|
803
|
+
return pivotTable;
|
|
804
|
+
}
|
|
805
|
+
}
|
|
806
|
+
}
|
|
807
|
+
catch (e) {
|
|
808
|
+
console.error('Error generating pivot table with SQL, using in memory process', e);
|
|
809
|
+
}
|
|
810
|
+
return generatePivotTableInMemory(pivot, data, dateRange, isComparison, rowLimit, compRange);
|
|
811
|
+
}
|
|
812
|
+
export function generatePivotTableInMemory(pivot, data, dateRange, isComparison, rowLimit = -1, compRange = undefined, dateBucket) {
|
|
740
813
|
// If there is no rowField, aggregate on the valueField
|
|
741
814
|
if (!pivot.rowField) {
|
|
742
815
|
return valueFieldAggregation(data, pivot.valueField, pivot.aggregationType, isComparison);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/utils/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,qBAAqB,MAAM,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const MAX_COLUMN_ROWS_LIMIT = 500;
|
|
@@ -9,4 +9,5 @@ import { QuillReportInternal } from '../Dashboard';
|
|
|
9
9
|
export declare function cleanDashboardItem(item: {
|
|
10
10
|
[key: string]: any;
|
|
11
11
|
} | undefined, dashboardFilters: any, client?: any, dateBucket?: string): Promise<QuillReportInternal>;
|
|
12
|
+
export declare function getDashboard(dashboardName: string, client: any): Promise<any>;
|
|
12
13
|
//# sourceMappingURL=dashboard.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../../../src/utils/dashboard.ts"],"names":[],"mappings":"AACA,OAAO,EAA2B,mBAAmB,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../../../src/utils/dashboard.ts"],"names":[],"mappings":"AACA,OAAO,EAA2B,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAoC5E;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,GAAG,SAAS,EACxC,gBAAgB,EAAE,GAAG,EACrB,MAAM,CAAC,EAAE,GAAG,EACZ,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,mBAAmB,CAAC,CAiD9B;AA0KD,wBAAsB,YAAY,CAChC,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,GAAG,GACV,OAAO,CAAC,GAAG,CAAC,CA0Bd"}
|