@quillsql/react 2.12.19 → 2.12.20
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 +2 -1
- package/dist/cjs/Chart.d.ts.map +1 -1
- package/dist/cjs/Chart.js +117 -105
- package/dist/cjs/ChartBuilder.d.ts +4 -2
- package/dist/cjs/ChartBuilder.d.ts.map +1 -1
- package/dist/cjs/ChartBuilder.js +26 -11
- package/dist/cjs/ChartEditor.d.ts +1 -1
- package/dist/cjs/ChartEditor.d.ts.map +1 -1
- package/dist/cjs/ChartEditor.js +20 -12
- package/dist/cjs/Context.d.ts +0 -9
- package/dist/cjs/Context.d.ts.map +1 -1
- package/dist/cjs/Context.js +15 -43
- package/dist/cjs/Dashboard.d.ts +16 -3
- package/dist/cjs/Dashboard.d.ts.map +1 -1
- package/dist/cjs/Dashboard.js +64 -65
- package/dist/cjs/ReportBuilder.d.ts.map +1 -1
- package/dist/cjs/Table.d.ts.map +1 -1
- package/dist/cjs/Table.js +11 -4
- package/dist/cjs/components/Chart/BarChart.d.ts +2 -1
- package/dist/cjs/components/Chart/BarChart.d.ts.map +1 -1
- package/dist/cjs/components/Chart/BarChart.js +2 -2
- package/dist/cjs/components/Chart/ChartTooltip.d.ts +1 -0
- package/dist/cjs/components/Chart/ChartTooltip.d.ts.map +1 -1
- package/dist/cjs/components/Chart/ChartTooltip.js +3 -4
- package/dist/cjs/components/Chart/LineChart.d.ts +2 -1
- package/dist/cjs/components/Chart/LineChart.d.ts.map +1 -1
- package/dist/cjs/components/Chart/LineChart.js +2 -2
- package/dist/cjs/components/Dashboard/ChartComponent.d.ts +1 -1
- package/dist/cjs/components/Dashboard/ChartComponent.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/ChartComponent.js +10 -4
- package/dist/cjs/components/Dashboard/DashboardFilter.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/DashboardFilter.js +3 -18
- package/dist/cjs/components/Dashboard/DataLoader.d.ts +6 -4
- package/dist/cjs/components/Dashboard/DataLoader.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/DataLoader.js +46 -32
- package/dist/cjs/components/Dashboard/MetricComponent.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/MetricComponent.js +27 -43
- package/dist/cjs/components/Dashboard/TableComponent.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/TableComponent.js +25 -52
- package/dist/cjs/hooks/useDashboard.d.ts.map +1 -1
- package/dist/cjs/hooks/useDashboard.js +3 -2
- package/dist/cjs/hooks/useQuill.d.ts +7 -0
- package/dist/cjs/hooks/useQuill.d.ts.map +1 -1
- package/dist/cjs/hooks/useQuill.js +43 -4
- package/dist/cjs/index.d.ts +1 -1
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +2 -1
- package/dist/cjs/internals/ReportBuilder/PivotList.d.ts.map +1 -1
- package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts +8 -3
- package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
- package/dist/cjs/internals/ReportBuilder/PivotModal.js +24 -12
- package/dist/cjs/utils/aggregate.d.ts.map +1 -1
- package/dist/cjs/utils/aggregate.js +0 -4
- package/dist/cjs/utils/dashboard.d.ts +2 -2
- package/dist/cjs/utils/dashboard.d.ts.map +1 -1
- package/dist/cjs/utils/dashboard.js +16 -11
- package/dist/cjs/utils/dates.d.ts.map +1 -1
- package/dist/cjs/utils/dates.js +7 -4
- package/dist/esm/Chart.d.ts +2 -1
- package/dist/esm/Chart.d.ts.map +1 -1
- package/dist/esm/Chart.js +116 -105
- package/dist/esm/ChartBuilder.d.ts +4 -2
- package/dist/esm/ChartBuilder.d.ts.map +1 -1
- package/dist/esm/ChartBuilder.js +27 -12
- package/dist/esm/ChartEditor.d.ts +1 -1
- package/dist/esm/ChartEditor.d.ts.map +1 -1
- package/dist/esm/ChartEditor.js +21 -13
- package/dist/esm/Context.d.ts +0 -9
- package/dist/esm/Context.d.ts.map +1 -1
- package/dist/esm/Context.js +14 -40
- package/dist/esm/Dashboard.d.ts +16 -3
- package/dist/esm/Dashboard.d.ts.map +1 -1
- package/dist/esm/Dashboard.js +66 -67
- package/dist/esm/ReportBuilder.d.ts.map +1 -1
- package/dist/esm/Table.d.ts.map +1 -1
- package/dist/esm/Table.js +12 -5
- package/dist/esm/components/Chart/BarChart.d.ts +2 -1
- package/dist/esm/components/Chart/BarChart.d.ts.map +1 -1
- package/dist/esm/components/Chart/BarChart.js +2 -2
- package/dist/esm/components/Chart/ChartTooltip.d.ts +1 -0
- package/dist/esm/components/Chart/ChartTooltip.d.ts.map +1 -1
- package/dist/esm/components/Chart/ChartTooltip.js +3 -4
- package/dist/esm/components/Chart/LineChart.d.ts +2 -1
- package/dist/esm/components/Chart/LineChart.d.ts.map +1 -1
- package/dist/esm/components/Chart/LineChart.js +2 -2
- package/dist/esm/components/Dashboard/ChartComponent.d.ts +1 -1
- package/dist/esm/components/Dashboard/ChartComponent.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/ChartComponent.js +7 -4
- package/dist/esm/components/Dashboard/DashboardFilter.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/DashboardFilter.js +3 -18
- package/dist/esm/components/Dashboard/DataLoader.d.ts +6 -4
- package/dist/esm/components/Dashboard/DataLoader.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/DataLoader.js +47 -33
- package/dist/esm/components/Dashboard/MetricComponent.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/MetricComponent.js +28 -44
- package/dist/esm/components/Dashboard/TableComponent.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/TableComponent.js +26 -53
- package/dist/esm/hooks/useDashboard.d.ts.map +1 -1
- package/dist/esm/hooks/useDashboard.js +3 -2
- package/dist/esm/hooks/useQuill.d.ts +7 -0
- package/dist/esm/hooks/useQuill.d.ts.map +1 -1
- package/dist/esm/hooks/useQuill.js +41 -3
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/internals/ReportBuilder/PivotList.d.ts.map +1 -1
- package/dist/esm/internals/ReportBuilder/PivotList.js +1 -1
- package/dist/esm/internals/ReportBuilder/PivotModal.d.ts +8 -3
- package/dist/esm/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
- package/dist/esm/internals/ReportBuilder/PivotModal.js +24 -12
- package/dist/esm/utils/aggregate.d.ts.map +1 -1
- package/dist/esm/utils/aggregate.js +0 -4
- package/dist/esm/utils/dashboard.d.ts +2 -2
- package/dist/esm/utils/dashboard.d.ts.map +1 -1
- package/dist/esm/utils/dashboard.js +16 -11
- package/dist/esm/utils/dates.d.ts.map +1 -1
- package/dist/esm/utils/dates.js +7 -4
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReportBuilder.d.ts","sourceRoot":"","sources":["../../src/ReportBuilder.tsx"],"names":[],"mappings":"AACA,OAAO,EAEL,aAAa,EAEb,SAAS,
|
|
1
|
+
{"version":3,"file":"ReportBuilder.d.ts","sourceRoot":"","sources":["../../src/ReportBuilder.tsx"],"names":[],"mappings":"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"}
|
package/dist/esm/Table.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Table.d.ts","sourceRoot":"","sources":["../../src/Table.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"Table.d.ts","sourceRoot":"","sources":["../../src/Table.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyC,MAAM,OAAO,CAAC;AAc9D,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAyBD;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB;;;;;;;;OAQG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,IAAI,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,EAAE,CAAC;IAEhC;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,OAAO,CAAC,EAAE;QACR,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;KACf,EAAE,CAAC;IAEJ;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAEhC;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IAEzB;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,GAAG,CAAC,OAAO,CAAC;IAErC;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,cAAc,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CACtC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,QAAA,MAAM,KAAK,UAAW,UAAU,4CAkC/B,CAAC;AA4GF,eAAe,KAAK,CAAC"}
|
package/dist/esm/Table.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { useContext, useEffect } from 'react';
|
|
2
|
+
import { useContext, useEffect, useMemo } from 'react';
|
|
3
3
|
import { ClientContext, CustomFieldContext, DashboardContext, DashboardFiltersContext, } from './Context';
|
|
4
4
|
import { getData } from './utils/dataFetcher';
|
|
5
5
|
import { mergeComparisonRange } from './utils/merge';
|
|
@@ -49,6 +49,13 @@ const Table = (props) => {
|
|
|
49
49
|
return (_jsx(ChartUpdater, { hideCSVDownloadButton: data.hideCSVDownloadButton, dispatch: dispatch, dashboard: dashboard, reportId: data.reportId, className: data.className, containerStyle: data.containerStyle, dashboardFilters: dashboardFilters, client: client, csvFilename: data.csvFilename, LoadingComponent: data.LoadingComponent }));
|
|
50
50
|
};
|
|
51
51
|
const ChartUpdater = ({ reportId, containerStyle, className, dashboard, dispatch, client, dashboardFilters, csvFilename, hideCSVDownloadButton = true, LoadingComponent, }) => {
|
|
52
|
+
const specificDashboardFilter = useMemo(() => {
|
|
53
|
+
return dashboardFilters
|
|
54
|
+
.sort((filter) => (filter.filterType === 'date_range' ? -1 : 1))
|
|
55
|
+
.filter((f) =>
|
|
56
|
+
// @ts-ignore
|
|
57
|
+
f && f.dashboardName === dashboard[reportId].dashboardName);
|
|
58
|
+
}, [dashboardFilters]);
|
|
52
59
|
const { rows, loading } = useMemoizedRows(reportId);
|
|
53
60
|
const { downloadCSV } = useExport(reportId);
|
|
54
61
|
const [customFields] = useContext(CustomFieldContext);
|
|
@@ -62,7 +69,7 @@ const ChartUpdater = ({ reportId, containerStyle, className, dashboard, dispatch
|
|
|
62
69
|
dashboardItemId: reportId,
|
|
63
70
|
orgId: client.customerId || '*',
|
|
64
71
|
task: 'item',
|
|
65
|
-
filters: [...Object.values(
|
|
72
|
+
filters: [...Object.values(specificDashboardFilter)],
|
|
66
73
|
clientId: client.publicKey,
|
|
67
74
|
databaseType: client?.databaseType,
|
|
68
75
|
customFields,
|
|
@@ -70,7 +77,7 @@ const ChartUpdater = ({ reportId, containerStyle, className, dashboard, dispatch
|
|
|
70
77
|
};
|
|
71
78
|
const cloudBody = {
|
|
72
79
|
id: reportId,
|
|
73
|
-
filters: [...Object.values(
|
|
80
|
+
filters: [...Object.values(specificDashboardFilter)],
|
|
74
81
|
};
|
|
75
82
|
const resp = await getData(client, 'itempost', 'omit', hostedBody, cloudBody);
|
|
76
83
|
processFilterErrorList(resp);
|
|
@@ -83,7 +90,7 @@ const ChartUpdater = ({ reportId, containerStyle, className, dashboard, dispatch
|
|
|
83
90
|
id: reportId,
|
|
84
91
|
data: {
|
|
85
92
|
...resp,
|
|
86
|
-
filtersApplied:
|
|
93
|
+
filtersApplied: specificDashboardFilter,
|
|
87
94
|
},
|
|
88
95
|
});
|
|
89
96
|
}
|
|
@@ -97,7 +104,7 @@ const ChartUpdater = ({ reportId, containerStyle, className, dashboard, dispatch
|
|
|
97
104
|
return () => {
|
|
98
105
|
isSubscribed = false;
|
|
99
106
|
};
|
|
100
|
-
}, [
|
|
107
|
+
}, [specificDashboardFilter, client.customerId, reportId]);
|
|
101
108
|
return (_jsx(QuillTable, { hideCSVDownloadButton: hideCSVDownloadButton,
|
|
102
109
|
// @ts-ignore
|
|
103
110
|
columns: dashboard[reportId]?.columns || [],
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { type ColorMapType } from '../../Chart';
|
|
3
|
-
export default function BarChart({ colors, colorMap, yAxisFields, data, containerStyle, className, xAxisField, xAxisFormat, theme, comparison, isStacked, isAnimationActive, hideXAxis, hideYAxis, hideCartesianGrid, onClickChartElement, }: {
|
|
3
|
+
export default function BarChart({ colors, colorMap, yAxisFields, data, containerStyle, className, xAxisField, xAxisFormat, theme, comparison, isStacked, isAnimationActive, hideXAxis, hideYAxis, hideCartesianGrid, onClickChartElement, dateFilter, }: {
|
|
4
4
|
colors?: string[];
|
|
5
5
|
colorMap?: ColorMapType;
|
|
6
6
|
yAxisFields: any[];
|
|
@@ -18,5 +18,6 @@ export default function BarChart({ colors, colorMap, yAxisFields, data, containe
|
|
|
18
18
|
hideYAxis: boolean;
|
|
19
19
|
hideCartesianGrid: boolean;
|
|
20
20
|
onClickChartElement?: (e: any) => void;
|
|
21
|
+
dateFilter?: any;
|
|
21
22
|
}): import("react/jsx-runtime").JSX.Element;
|
|
22
23
|
//# sourceMappingURL=BarChart.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BarChart.d.ts","sourceRoot":"","sources":["../../../../src/components/Chart/BarChart.tsx"],"names":[],"mappings":";AAgBA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,EAC/B,MAAM,EACN,QAAQ,EACR,WAAW,EACX,IAAI,EACJ,cAAc,EACd,SAAS,EACT,UAAU,EACV,WAAW,EACX,KAAK,EACL,UAAU,EACV,SAAS,EACT,iBAAwB,EACxB,SAAiB,EACjB,SAAiB,EACjB,iBAAyB,EACzB,mBAAmB,
|
|
1
|
+
{"version":3,"file":"BarChart.d.ts","sourceRoot":"","sources":["../../../../src/components/Chart/BarChart.tsx"],"names":[],"mappings":";AAgBA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,EAC/B,MAAM,EACN,QAAQ,EACR,WAAW,EACX,IAAI,EACJ,cAAc,EACd,SAAS,EACT,UAAU,EACV,WAAW,EACX,KAAK,EACL,UAAU,EACV,SAAS,EACT,iBAAwB,EACxB,SAAiB,EACjB,SAAiB,EACjB,iBAAyB,EACzB,mBAAmB,EACnB,UAAU,GACX,EAAE;IACD,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,WAAW,EAAE,GAAG,EAAE,CAAC;IACnB,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,cAAc,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,GAAG,CAAC;IACX,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,mBAAmB,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IACvC,UAAU,CAAC,EAAE,GAAG,CAAC;CAClB,2CAuMA"}
|
|
@@ -7,7 +7,7 @@ import { generateArrayFromColor, selectColor } from '../../utils/color';
|
|
|
7
7
|
import ChartTooltip from '../../components/Chart/ChartTooltip';
|
|
8
8
|
import getDomain from '../../utils/getDomain';
|
|
9
9
|
import { useEffect, useState } from 'react';
|
|
10
|
-
export default function BarChart({ colors, colorMap, yAxisFields, data, containerStyle, className, xAxisField, xAxisFormat, theme, comparison, isStacked, isAnimationActive = true, hideXAxis = false, hideYAxis = false, hideCartesianGrid = false, onClickChartElement, }) {
|
|
10
|
+
export default function BarChart({ colors, colorMap, yAxisFields, data, containerStyle, className, xAxisField, xAxisFormat, theme, comparison, isStacked, isAnimationActive = true, hideXAxis = false, hideYAxis = false, hideCartesianGrid = false, onClickChartElement, dateFilter, }) {
|
|
11
11
|
const [formattedData, setFormattedData] = useState([]);
|
|
12
12
|
useEffect(() => {
|
|
13
13
|
if (!data || data.length === 0) {
|
|
@@ -85,7 +85,7 @@ export default function BarChart({ colors, colorMap, yAxisFields, data, containe
|
|
|
85
85
|
value,
|
|
86
86
|
field: payload[0].dataKey,
|
|
87
87
|
fields: yAxisFields,
|
|
88
|
-
}), xAxisFormat: xAxisFormat, xAxisField: xAxisField, colors: colors, comparison: comparison }));
|
|
88
|
+
}), xAxisFormat: xAxisFormat, xAxisField: xAxisField, colors: colors, comparison: comparison, dateFilter: dateFilter }));
|
|
89
89
|
}, position: { y: 0 } }), sortYAxisFields(yAxisFields).map((elem) => {
|
|
90
90
|
return (_jsx(Bar, { name: elem.label, dataKey: elem.field, stackId: isStacked &&
|
|
91
91
|
(elem.field?.replace('comparison_', '') ??
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChartTooltip.d.ts","sourceRoot":"","sources":["../../../../src/components/Chart/ChartTooltip.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ChartTooltip.d.ts","sourceRoot":"","sources":["../../../../src/components/Chart/ChartTooltip.tsx"],"names":[],"mappings":"AAOA,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,OAAO,GAAG,SAAS,CAAC;IAC5B,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,cAAc,EAAE,GAAG,CAAC;IACpB,aAAa,EAAE,GAAG,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,GAAG,CAAC;IACX,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,GAAG,CAAC;CAClB;AAED,KAAK,WAAW,GAAG;IACjB,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,GAAG,CAAC;CACZ,CAAC;AAqUF,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,KAAK,EAAE,iBAAiB,kDAK5D"}
|
|
@@ -2,7 +2,6 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
|
|
|
2
2
|
import { format, subDays } from 'date-fns';
|
|
3
3
|
import ChartTooltipFrame from './ChartTooltipFrame';
|
|
4
4
|
import ChartTooltipRow from './ChartTooltipRow';
|
|
5
|
-
import { useComparisonRange, useDateFilter } from '../../Context';
|
|
6
5
|
import ChartTooltipGroup from './ChartTooltipGroup';
|
|
7
6
|
import { convertComparisonRange, isDateFormat } from '../../utils/dates';
|
|
8
7
|
// The chart tooltip to display for primary labels (ie. not label2).
|
|
@@ -174,14 +173,14 @@ function getTooltipLabel(props, altTooltipLabel, isDateXAxis) {
|
|
|
174
173
|
}
|
|
175
174
|
// The chart tooltip to display for comparison labels (eg. "previous period").
|
|
176
175
|
function ChartTooltipComparison(props) {
|
|
177
|
-
const { comparisonRange } = useComparisonRange();
|
|
178
|
-
const { dateFilter } = useDateFilter();
|
|
179
176
|
const isDateXAxis = isDateFormat(props.xAxisFormat);
|
|
180
177
|
const altTooltipLabel = props.payload[0]?.dataKey
|
|
181
178
|
.replace('comparison_', '')
|
|
182
179
|
.replaceAll('_', ' ')
|
|
183
180
|
.toLowerCase();
|
|
184
|
-
const
|
|
181
|
+
const presetLabel = props.dateFilter?.preset?.label || '';
|
|
182
|
+
const comparisonLabel = props.dateFilter?.comparisonRange?.value || '';
|
|
183
|
+
const newRows = reformatComparisonPayload(props, presetLabel, convertComparisonRange(presetLabel, comparisonLabel));
|
|
185
184
|
return (_jsxs(ChartTooltipFrame, { theme: props.theme, children: [_jsx("div", { style: {
|
|
186
185
|
borderStyle: 'solid',
|
|
187
186
|
borderBottomColor: props.theme?.borderColor || '#E5E7EB',
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { type ColorMapType } from '../../Chart';
|
|
3
|
-
export default function LineChart({ colors, colorMap, yAxisFields, data, containerStyle, className, xAxisField, xAxisFormat, theme, comparison, isAnimationActive, hideXAxis, hideYAxis, hideCartesianGrid, hideHorizontalCartesianGrid, hideVerticalCartesianGrid, hideSubsequentXAxisTicks, cartesianGridLineStyle, comparisonLineStyle, cartesianGridLineColor, onClickChartElement, }: {
|
|
3
|
+
export default function LineChart({ colors, colorMap, yAxisFields, data, containerStyle, className, xAxisField, xAxisFormat, theme, comparison, isAnimationActive, hideXAxis, hideYAxis, hideCartesianGrid, hideHorizontalCartesianGrid, hideVerticalCartesianGrid, hideSubsequentXAxisTicks, cartesianGridLineStyle, comparisonLineStyle, cartesianGridLineColor, onClickChartElement, dateFilter, }: {
|
|
4
4
|
colors?: string[];
|
|
5
5
|
colorMap?: ColorMapType;
|
|
6
6
|
yAxisFields: any[];
|
|
@@ -23,5 +23,6 @@ export default function LineChart({ colors, colorMap, yAxisFields, data, contain
|
|
|
23
23
|
comparisonLineStyle: 'solid' | 'dashed';
|
|
24
24
|
cartesianGridLineColor?: string;
|
|
25
25
|
onClickChartElement?: (e: any) => void;
|
|
26
|
+
dateFilter?: any;
|
|
26
27
|
}): import("react/jsx-runtime").JSX.Element;
|
|
27
28
|
//# sourceMappingURL=LineChart.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LineChart.d.ts","sourceRoot":"","sources":["../../../../src/components/Chart/LineChart.tsx"],"names":[],"mappings":";AAgBA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhD,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAChC,MAAM,EACN,QAAa,EACb,WAAW,EACX,IAAI,EACJ,cAAc,EACd,SAAS,EACT,UAAU,EACV,WAAW,EACX,KAAK,EACL,UAAU,EACV,iBAAwB,EACxB,SAAiB,EACjB,SAAiB,EACjB,iBAAyB,EACzB,2BAAmC,EACnC,yBAAgC,EAChC,wBAAgC,EAChC,sBAAgC,EAChC,mBAA6B,EAC7B,sBAAsB,EACtB,mBAA8B,
|
|
1
|
+
{"version":3,"file":"LineChart.d.ts","sourceRoot":"","sources":["../../../../src/components/Chart/LineChart.tsx"],"names":[],"mappings":";AAgBA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhD,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAChC,MAAM,EACN,QAAa,EACb,WAAW,EACX,IAAI,EACJ,cAAc,EACd,SAAS,EACT,UAAU,EACV,WAAW,EACX,KAAK,EACL,UAAU,EACV,iBAAwB,EACxB,SAAiB,EACjB,SAAiB,EACjB,iBAAyB,EACzB,2BAAmC,EACnC,yBAAgC,EAChC,wBAAgC,EAChC,sBAAgC,EAChC,mBAA6B,EAC7B,sBAAsB,EACtB,mBAA8B,EAC9B,UAAU,GACX,EAAE;IACD,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,WAAW,EAAE,GAAG,EAAE,CAAC;IACnB,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,cAAc,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,GAAG,CAAC;IACX,UAAU,EAAE,GAAG,CAAC;IAChB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,2BAA2B,EAAE,OAAO,CAAC;IACrC,yBAAyB,EAAE,OAAO,CAAC;IACnC,wBAAwB,EAAE,OAAO,CAAC;IAClC,sBAAsB,EAAE,OAAO,GAAG,QAAQ,CAAC;IAC3C,mBAAmB,EAAE,OAAO,GAAG,QAAQ,CAAC;IACxC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,mBAAmB,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IACvC,UAAU,CAAC,EAAE,GAAG,CAAC;CAClB,2CAgQA"}
|
|
@@ -8,7 +8,7 @@ import ChartTooltip from '../../components/Chart/ChartTooltip';
|
|
|
8
8
|
import getDomain from '../../utils/getDomain';
|
|
9
9
|
import { useEffect, useState } from 'react';
|
|
10
10
|
import { hashCode } from '../../utils/crypto';
|
|
11
|
-
export default function LineChart({ colors, colorMap = {}, yAxisFields, data, containerStyle, className, xAxisField, xAxisFormat, theme, comparison, isAnimationActive = true, hideXAxis = false, hideYAxis = false, hideCartesianGrid = false, hideHorizontalCartesianGrid = false, hideVerticalCartesianGrid = true, hideSubsequentXAxisTicks = false, cartesianGridLineStyle = 'solid', comparisonLineStyle = 'solid', cartesianGridLineColor, onClickChartElement = () => { }, }) {
|
|
11
|
+
export default function LineChart({ colors, colorMap = {}, yAxisFields, data, containerStyle, className, xAxisField, xAxisFormat, theme, comparison, isAnimationActive = true, hideXAxis = false, hideYAxis = false, hideCartesianGrid = false, hideHorizontalCartesianGrid = false, hideVerticalCartesianGrid = true, hideSubsequentXAxisTicks = false, cartesianGridLineStyle = 'solid', comparisonLineStyle = 'solid', cartesianGridLineColor, onClickChartElement = () => { }, dateFilter, }) {
|
|
12
12
|
const [formattedData, setFormattedData] = useState([]);
|
|
13
13
|
useEffect(() => {
|
|
14
14
|
if (!data || data.length === 0) {
|
|
@@ -114,7 +114,7 @@ export default function LineChart({ colors, colorMap = {}, yAxisFields, data, co
|
|
|
114
114
|
...yAxisFields,
|
|
115
115
|
{ field: xAxisField, format: xAxisFormat },
|
|
116
116
|
],
|
|
117
|
-
}), xAxisFormat: xAxisFormat, xAxisField: xAxisField, colors: colors, theme: theme, comparison: comparison }));
|
|
117
|
+
}), xAxisFormat: xAxisFormat, xAxisField: xAxisField, colors: colors, theme: theme, comparison: comparison, dateFilter: dateFilter }));
|
|
118
118
|
}, position: { y: 0 } }), yAxisFields &&
|
|
119
119
|
yAxisFields.map((elem, index) => {
|
|
120
120
|
// hash the color stops so they're stable, valid html ids
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { QuillReportProps } from '../../Dashboard';
|
|
3
|
-
export default function QuillChartComponent({ report, onClick, children, onClickChartElement }: QuillReportProps): JSX.Element;
|
|
3
|
+
export default function QuillChartComponent({ report, onClick, children, isLoading, onClickChartElement, }: QuillReportProps): JSX.Element;
|
|
4
4
|
//# sourceMappingURL=ChartComponent.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChartComponent.d.ts","sourceRoot":"","sources":["../../../../src/components/Dashboard/ChartComponent.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"ChartComponent.d.ts","sourceRoot":"","sources":["../../../../src/components/Dashboard/ChartComponent.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAInD,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,EAC1C,MAAM,EACN,OAAO,EACP,QAAQ,EACR,SAAS,EACT,mBAAmB,GACpB,EAAE,gBAAgB,GAAG,GAAG,CAAC,OAAO,CAsGhC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { useTheme } from '../../hooks';
|
|
3
|
-
|
|
3
|
+
import ChartSkeleton from '../Chart/ChartSkeleton';
|
|
4
|
+
export default function QuillChartComponent({ report, onClick, children, isLoading, onClickChartElement, }) {
|
|
4
5
|
const theme = useTheme();
|
|
5
6
|
return (_jsx("div", { onClick: () => onClick && onClick(report), style: {
|
|
6
7
|
cursor: 'pointer',
|
|
@@ -39,7 +40,7 @@ export default function QuillChartComponent({ report, onClick, children, onClick
|
|
|
39
40
|
display: 'block',
|
|
40
41
|
maxWidth: '100%',
|
|
41
42
|
overflow: 'hidden',
|
|
42
|
-
}, children: report?.name }), onClick ? (_jsx("div", { style: {
|
|
43
|
+
}, children: report?.name }), onClick && report?.name ? (_jsx("div", { style: {
|
|
43
44
|
fontFamily: theme.fontFamily,
|
|
44
45
|
color: theme.primaryTextColor,
|
|
45
46
|
boxSizing: 'content-box',
|
|
@@ -49,9 +50,11 @@ export default function QuillChartComponent({ report, onClick, children, onClick
|
|
|
49
50
|
display: 'flex',
|
|
50
51
|
alignItems: 'center',
|
|
51
52
|
justifyContent: 'flex-end',
|
|
52
|
-
}, children: 'view report →' })) : null] }), _jsx(
|
|
53
|
+
}, children: 'view report →' })) : null] }), isLoading ? (_jsx(ChartSkeleton, { containerStyle: {
|
|
54
|
+
height: '100%',
|
|
55
|
+
} })) : (_jsx("div", { style: {
|
|
53
56
|
padding: 0,
|
|
54
57
|
height: '100%',
|
|
55
58
|
boxSizing: 'content-box',
|
|
56
|
-
}, children: children })] }) }) }) }, report?.name));
|
|
59
|
+
}, children: children }))] }) }) }) }, report?.name));
|
|
57
60
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DashboardFilter.d.ts","sourceRoot":"","sources":["../../../../src/components/Dashboard/DashboardFilter.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"DashboardFilter.d.ts","sourceRoot":"","sources":["../../../../src/components/Dashboard/DashboardFilter.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAEnD,OAAO,EAAE,KAAK,6BAA6B,EAAE,MAAM,4CAA4C,CAAC;AAIhG,KAAK,mBAAmB,GAAG,CAAC,EAC1B,KAAK,EACL,KAAK,EACL,OAAO,EACP,QAAQ,EACR,KAAK,GACN,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,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,KAAK,GAAG,CAAC,OAAO,CAAC;AAElB,KAAK,wBAAwB,GAAG,CAAC,EAC/B,KAAK,EACL,KAAK,EACL,OAAO,EACP,QAAQ,EACR,KAAK,GACN,EAAE;IACD,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,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,KAAK,GAAG,CAAC,OAAO,CAAC;AAElB,KAAK,4BAA4B,GAAG,CAAC,EACnC,SAAS,EACT,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,MAAM,EACN,WAAW,GACZ,EAAE,6BAA6B,KAAK,GAAG,CAAC,OAAO,CAAC;AAEjD,UAAU,oBAAoB;IAC5B,MAAM,EAAE,GAAG,CAAC;IACZ,cAAc,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;IACzC,eAAe,EACX,mBAAmB,GACnB,KAAK,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,CAAC;IACnD,oBAAoB,EAChB,wBAAwB,GACxB,KAAK,CAAC,mBAAmB,CAAC,wBAAwB,CAAC,CAAC;IACxD,wBAAwB,EACpB,4BAA4B,GAC5B,KAAK,CAAC,mBAAmB,CAAC,4BAA4B,CAAC,CAAC;IAC5D,KAAK,EAAE,GAAG,CAAC;CACZ;AAED,wBAAgB,eAAe,CAAC,EAC9B,MAAM,EACN,cAAc,EACd,eAAsC,EACtC,oBAAgD,EAChD,wBAAwB,EACxB,KAAK,GACN,EAAE,oBAAoB,kDAoItB"}
|
|
@@ -1,12 +1,9 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { useEffect, useState } from 'react';
|
|
3
3
|
import { COMPARISON_OPTIONS } from '../../DateRangePicker/dateRangePickerUtils';
|
|
4
|
-
import { useComparisonRange, useDateFilter } from '../../Context';
|
|
5
4
|
import { QuillMultiSelectComponent } from '../QuillMultiSelect';
|
|
6
5
|
import { QuillSelectComponent } from '../QuillSelect';
|
|
7
6
|
export function DashboardFilter({ filter, onChangeFilter, SelectComponent = QuillSelectComponent, MultiSelectComponent = QuillMultiSelectComponent, DateRangePickerComponent, theme, }) {
|
|
8
|
-
const { comparisonRange, setComparisonRange } = useComparisonRange();
|
|
9
|
-
const { setDateFilter } = useDateFilter();
|
|
10
7
|
const [filterValue, setFilterValue] = useState(null);
|
|
11
8
|
useEffect(() => {
|
|
12
9
|
if (filter.filterType === 'string') {
|
|
@@ -17,18 +14,6 @@ export function DashboardFilter({ filter, onChangeFilter, SelectComponent = Quil
|
|
|
17
14
|
setFilterValue(filter.selectedValue);
|
|
18
15
|
}
|
|
19
16
|
}
|
|
20
|
-
if (filter.filterType === 'date_range') {
|
|
21
|
-
setDateFilter(filter.preset.label);
|
|
22
|
-
if (filter?.comparisonRange?.value) {
|
|
23
|
-
const newComparisonRange = COMPARISON_OPTIONS.find((option) => {
|
|
24
|
-
return option.value === filter.comparisonRange.value;
|
|
25
|
-
});
|
|
26
|
-
setComparisonRange(newComparisonRange);
|
|
27
|
-
}
|
|
28
|
-
else {
|
|
29
|
-
setComparisonRange(null);
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
17
|
}, [filter]);
|
|
33
18
|
if (filter.filterType === 'string') {
|
|
34
19
|
if (!filter.options) {
|
|
@@ -38,7 +23,7 @@ export function DashboardFilter({ filter, onChangeFilter, SelectComponent = Quil
|
|
|
38
23
|
return (_jsx(MultiSelectComponent, { label: filter.label, value: filterValue, onChange: (e) => {
|
|
39
24
|
if (e.target.value === '') {
|
|
40
25
|
setFilterValue(null);
|
|
41
|
-
onChangeFilter(filter,
|
|
26
|
+
onChangeFilter(filter, '[]');
|
|
42
27
|
return;
|
|
43
28
|
}
|
|
44
29
|
const jsonValue = JSON.parse(e.target.value);
|
|
@@ -72,7 +57,7 @@ export function DashboardFilter({ filter, onChangeFilter, SelectComponent = Quil
|
|
|
72
57
|
onChangeFilter(filter, { preset: e.target.value });
|
|
73
58
|
}, presetOptions: filter.options.map((option) => {
|
|
74
59
|
return { label: option.label, value: option.label };
|
|
75
|
-
}), selectWidth: 200 }),
|
|
60
|
+
}), selectWidth: 200 }), filter.comparison && (_jsxs("div", { style: {
|
|
76
61
|
display: 'flex',
|
|
77
62
|
flexDirection: 'row',
|
|
78
63
|
alignItems: 'center',
|
|
@@ -88,7 +73,7 @@ export function DashboardFilter({ filter, onChangeFilter, SelectComponent = Quil
|
|
|
88
73
|
whiteSpace: 'nowrap',
|
|
89
74
|
minWidth: 80,
|
|
90
75
|
justifyContent: 'center',
|
|
91
|
-
}, children: "compared to" }), _jsx(SelectComponent, { value: comparisonRange.value, onChange: (e) => {
|
|
76
|
+
}, children: "compared to" }), _jsx(SelectComponent, { value: filter.comparisonRange.value, onChange: (e) => {
|
|
92
77
|
onChangeFilter(filter, null, COMPARISON_OPTIONS.find((option) => option.value === e.target.value));
|
|
93
78
|
}, options: COMPARISON_OPTIONS.map((compareOption) => ({
|
|
94
79
|
value: compareOption.value,
|
|
@@ -12,10 +12,12 @@ export type DataLoaderChildProps = {
|
|
|
12
12
|
field: string;
|
|
13
13
|
direction: string;
|
|
14
14
|
}) => void;
|
|
15
|
+
data?: any;
|
|
15
16
|
};
|
|
16
|
-
export default function DataLoader({ id, children, }: {
|
|
17
|
+
export default function DataLoader({ id, children, filters, }: {
|
|
17
18
|
id: string;
|
|
18
|
-
|
|
19
|
+
filters?: any;
|
|
20
|
+
children: ({ isLoading, error, onPageChange, onSortChange, data, }: DataLoaderChildProps) => JSX.Element;
|
|
19
21
|
}): JSX.Element;
|
|
20
22
|
type ColorMapType = {
|
|
21
23
|
[key: string]: {
|
|
@@ -33,13 +35,13 @@ export type ChartDataLoaderChildProps = {
|
|
|
33
35
|
data?: any;
|
|
34
36
|
dateBucket?: string;
|
|
35
37
|
};
|
|
36
|
-
export declare const ChartDataLoader: ({ id, children, hideDateRangeFilter, dateBucket,
|
|
38
|
+
export declare const ChartDataLoader: ({ id, children, hideDateRangeFilter, dateBucket, additionalProcessing, filters, }: {
|
|
37
39
|
id: string;
|
|
38
40
|
hideDateRangeFilter?: boolean | undefined;
|
|
39
41
|
dateBucket?: string | undefined;
|
|
40
42
|
mapColorsToFields?: ((_report: QuillReport, _theme: QuillTheme) => ColorMapType) | undefined;
|
|
41
|
-
limit?: number | undefined;
|
|
42
43
|
additionalProcessing?: any;
|
|
44
|
+
filters?: any;
|
|
43
45
|
children: ({ isLoading, error, data, dateBucket, }: ChartDataLoaderChildProps) => JSX.Element;
|
|
44
46
|
}) => JSX.Element;
|
|
45
47
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataLoader.d.ts","sourceRoot":"","sources":["../../../../src/components/Dashboard/DataLoader.tsx"],"names":[],"mappings":";AAQA,OAAO,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"DataLoader.d.ts","sourceRoot":"","sources":["../../../../src/components/Dashboard/DataLoader.tsx"],"names":[],"mappings":";AAQA,OAAO,EAAE,WAAW,EAAuB,MAAM,iBAAiB,CAAC;AAEnE,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAOjD,MAAM,MAAM,oBAAoB,GAAG;IACjC,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,CAAC,IAAI,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IAC3E,YAAY,EAAE,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IACnE,IAAI,CAAC,EAAE,GAAG,CAAC;CACZ,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EACjC,EAAE,EACF,QAAQ,EACR,OAAO,GACR,EAAE;IACD,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,QAAQ,EAAE,CAAC,EACT,SAAS,EACT,KAAK,EACL,YAAY,EACZ,YAAY,EACZ,IAAI,GACL,EAAE,oBAAoB,KAAK,GAAG,CAAC,OAAO,CAAC;CACzC,GAAG,GAAG,CAAC,OAAO,CA8Hd;AAED,KAAK,YAAY,GAAG;IAClB,CAAC,GAAG,EAAE,MAAM,GAAG;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAC9B,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,uBAAuB,CAAC,EAAE,MAAM,CAAC;QACjC,sBAAsB,CAAC,EAAE,MAAM,CAAC;KACjC,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAIF,eAAO,MAAM,eAAe;QAQtB,MAAM;;;mCAIC,WAAW,UACZ,UAAU,KACf,YAAY;2BACM,GAAG;cAChB,GAAG;wDAMV,yBAAyB,KAAK,WAAW;MAC1C,WAuGH,CAAC"}
|
|
@@ -1,20 +1,22 @@
|
|
|
1
1
|
import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { useContext, useEffect, useState } from 'react';
|
|
3
3
|
import { didFiltersChange } from '../../Chart';
|
|
4
|
-
import { ClientContext, CustomFieldContext, DashboardContext,
|
|
4
|
+
import { ClientContext, CustomFieldContext, DashboardContext, } from '../../Context';
|
|
5
5
|
import { useTheme } from '../../hooks';
|
|
6
6
|
import { getData } from '../../utils/dataFetcher';
|
|
7
7
|
import { mergeComparisonRange } from '../../utils/merge';
|
|
8
8
|
import { processFilterErrorList } from '../../utils/errorProcessing';
|
|
9
|
-
|
|
9
|
+
import { cleanDashboardItem } from '../../utils/dashboard';
|
|
10
|
+
export default function DataLoader({ id, children, filters, }) {
|
|
10
11
|
const [client, _] = useContext(ClientContext);
|
|
11
12
|
const { dispatch, dashboard } = useContext(DashboardContext);
|
|
12
|
-
const { dashboardFilters } = useContext(DashboardFiltersContext);
|
|
13
|
+
// const { dashboardFilters } = useContext(DashboardFiltersContext);
|
|
13
14
|
const [customFields] = useContext(CustomFieldContext);
|
|
14
15
|
const [isLoading, setIsLoading] = useState(true);
|
|
15
16
|
const [isPaginationLoading, setIsPaginationLoading] = useState(true);
|
|
16
17
|
const [error, setError] = useState(undefined);
|
|
17
18
|
const [previousPage, setPreviousPage] = useState(0);
|
|
19
|
+
const [report, setReport] = useState(dashboard[id]);
|
|
18
20
|
const [additionalProcessing, setAdditionProcessing] = useState({
|
|
19
21
|
page: 0,
|
|
20
22
|
});
|
|
@@ -32,11 +34,12 @@ export default function DataLoader({ id, children, }) {
|
|
|
32
34
|
setPreviousPage(0);
|
|
33
35
|
};
|
|
34
36
|
const getChartOptions = async (processing) => {
|
|
35
|
-
|
|
36
|
-
if (!didFiltersChange(dashboard[id], dashboardFilters)) {
|
|
37
|
+
if (!didFiltersChange(dashboard[id], filters) && !isLoading) {
|
|
37
38
|
setIsLoading(false);
|
|
39
|
+
setReport(dashboard[id]);
|
|
38
40
|
return;
|
|
39
41
|
}
|
|
42
|
+
setIsLoading(true);
|
|
40
43
|
try {
|
|
41
44
|
let updatedProcessing = { ...additionalProcessing, ...processing };
|
|
42
45
|
if (processing && processing.sort) {
|
|
@@ -46,8 +49,8 @@ export default function DataLoader({ id, children, }) {
|
|
|
46
49
|
updatedProcessing.page.currentPage = 0;
|
|
47
50
|
}
|
|
48
51
|
// Remove extra fields on each filter so we don't confuse the backend.
|
|
49
|
-
const minimalFilters = Object.values(
|
|
50
|
-
? Object.values(
|
|
52
|
+
const minimalFilters = Object.values(filters).length
|
|
53
|
+
? Object.values(filters).map((filter) => {
|
|
51
54
|
const newFilter = { ...filter };
|
|
52
55
|
if (newFilter.filterType === 'date_range') {
|
|
53
56
|
delete newFilter['field'];
|
|
@@ -80,15 +83,14 @@ export default function DataLoader({ id, children, }) {
|
|
|
80
83
|
if (resp.compareRows) {
|
|
81
84
|
mergeComparisonRange(resp);
|
|
82
85
|
}
|
|
86
|
+
const dashboardItem = { ...resp, filtersApplied: filters };
|
|
87
|
+
const cleanedReport = cleanDashboardItem(dashboardItem, filters);
|
|
83
88
|
dispatch({
|
|
84
89
|
type: 'UPDATE_DASHBOARD_ITEM',
|
|
85
90
|
id: id,
|
|
86
|
-
data:
|
|
87
|
-
...resp,
|
|
88
|
-
filtersApplied: dashboardFilters,
|
|
89
|
-
id: resp._id,
|
|
90
|
-
},
|
|
91
|
+
data: cleanedReport,
|
|
91
92
|
});
|
|
93
|
+
setReport(cleanedReport);
|
|
92
94
|
}
|
|
93
95
|
else {
|
|
94
96
|
setError(resp?.errorMessage);
|
|
@@ -105,32 +107,33 @@ export default function DataLoader({ id, children, }) {
|
|
|
105
107
|
};
|
|
106
108
|
useEffect(() => {
|
|
107
109
|
getChartOptions();
|
|
108
|
-
}, [
|
|
109
|
-
return _jsx(_Fragment, { children: children({
|
|
110
|
+
}, [filters, id, dashboard[id]]);
|
|
111
|
+
return (_jsx(_Fragment, { children: children({
|
|
112
|
+
isLoading,
|
|
113
|
+
error,
|
|
114
|
+
onPageChange,
|
|
115
|
+
onSortChange,
|
|
116
|
+
data: report ?? undefined,
|
|
117
|
+
}) }));
|
|
110
118
|
}
|
|
111
119
|
// The same data-loader pattern as above, but with special logic for charts
|
|
112
120
|
// At some point these may be able to get merged into one function.
|
|
113
|
-
export const ChartDataLoader = ({ id, children, hideDateRangeFilter = false, dateBucket,
|
|
121
|
+
export const ChartDataLoader = ({ id, children, hideDateRangeFilter = false, dateBucket, additionalProcessing, filters, }) => {
|
|
114
122
|
const { dispatch, dashboard } = useContext(DashboardContext);
|
|
115
|
-
const
|
|
116
|
-
const [initialLoad, setInitialLoad] = useState(true);
|
|
123
|
+
// const [initialLoad, setInitialLoad] = useState(true);
|
|
117
124
|
const [loading, setLoading] = useState(false);
|
|
118
125
|
const [error, setError] = useState(undefined);
|
|
119
126
|
const [isComparison, setIsComparison] = useState(false);
|
|
127
|
+
const [report, setReport] = useState(dashboard[id]);
|
|
120
128
|
const [client, _] = useContext(ClientContext);
|
|
121
129
|
const [customFields] = useContext(CustomFieldContext);
|
|
122
130
|
const theme = useTheme();
|
|
123
131
|
const getChartOptions = async () => {
|
|
124
|
-
setLoading(true);
|
|
125
|
-
if (!didFiltersChange(dashboard[id], dashboardFilters)) {
|
|
126
|
-
setLoading(false);
|
|
127
|
-
return;
|
|
128
|
-
}
|
|
129
132
|
try {
|
|
130
133
|
// Remove extra fields on each filter so we don't confuse the backend.
|
|
131
134
|
const allowDateRange = !hideDateRangeFilter;
|
|
132
|
-
const minimalFilters = Object.values(
|
|
133
|
-
? Object.values(
|
|
135
|
+
const minimalFilters = Object.values(filters).length
|
|
136
|
+
? Object.values(filters)
|
|
134
137
|
.filter((f) => allowDateRange || f.filterType !== 'date_range')
|
|
135
138
|
.map((filter) => {
|
|
136
139
|
const newFilter = { ...filter };
|
|
@@ -142,6 +145,14 @@ export const ChartDataLoader = ({ id, children, hideDateRangeFilter = false, dat
|
|
|
142
145
|
return newFilter;
|
|
143
146
|
})
|
|
144
147
|
: [];
|
|
148
|
+
if (!didFiltersChange(dashboard[id], filters) &&
|
|
149
|
+
!loading &&
|
|
150
|
+
!dashboard[id].triggerReload) {
|
|
151
|
+
setLoading(false);
|
|
152
|
+
setReport(dashboard[id]);
|
|
153
|
+
return;
|
|
154
|
+
}
|
|
155
|
+
setLoading(true);
|
|
145
156
|
const hostedBody = {
|
|
146
157
|
metadata: {
|
|
147
158
|
dashboardItemId: id,
|
|
@@ -149,15 +160,14 @@ export const ChartDataLoader = ({ id, children, hideDateRangeFilter = false, dat
|
|
|
149
160
|
clientId: client.publicKey,
|
|
150
161
|
task: 'item',
|
|
151
162
|
databaseType: client.databaseType,
|
|
152
|
-
filters:
|
|
163
|
+
filters: filters,
|
|
153
164
|
customFields,
|
|
154
|
-
runQueryConfig: limit ? { limitBy: limit } : undefined,
|
|
155
165
|
additionalProcessing,
|
|
156
166
|
},
|
|
157
167
|
};
|
|
158
168
|
const cloudBody = {
|
|
159
169
|
id: id,
|
|
160
|
-
filters:
|
|
170
|
+
filters: filters,
|
|
161
171
|
};
|
|
162
172
|
setError(undefined);
|
|
163
173
|
const resp = await getData(client, 'itempost', 'omit', hostedBody, cloudBody);
|
|
@@ -167,11 +177,13 @@ export const ChartDataLoader = ({ id, children, hideDateRangeFilter = false, dat
|
|
|
167
177
|
if (resp.compareRows) {
|
|
168
178
|
mergeComparisonRange(resp);
|
|
169
179
|
}
|
|
170
|
-
const dashboardItem = { ...resp, filtersApplied:
|
|
180
|
+
const dashboardItem = { ...resp, filtersApplied: filters };
|
|
181
|
+
const cleanedReport = cleanDashboardItem(dashboardItem, filters);
|
|
182
|
+
setReport(cleanedReport);
|
|
171
183
|
dispatch({
|
|
172
184
|
type: 'UPDATE_DASHBOARD_ITEM',
|
|
173
185
|
id: id,
|
|
174
|
-
data:
|
|
186
|
+
data: { ...cleanedReport, triggerReload: false },
|
|
175
187
|
});
|
|
176
188
|
}
|
|
177
189
|
else {
|
|
@@ -185,12 +197,14 @@ export const ChartDataLoader = ({ id, children, hideDateRangeFilter = false, dat
|
|
|
185
197
|
}
|
|
186
198
|
};
|
|
187
199
|
useEffect(() => {
|
|
188
|
-
|
|
200
|
+
if (loading) {
|
|
201
|
+
return;
|
|
202
|
+
}
|
|
189
203
|
getChartOptions();
|
|
190
|
-
}, [
|
|
204
|
+
}, [filters, id, dashboard[id]]);
|
|
191
205
|
return children({
|
|
192
|
-
isLoading: loading
|
|
193
|
-
data:
|
|
206
|
+
isLoading: loading,
|
|
207
|
+
data: report ?? undefined,
|
|
194
208
|
error,
|
|
195
209
|
dateBucket,
|
|
196
210
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MetricComponent.d.ts","sourceRoot":"","sources":["../../../../src/components/Dashboard/MetricComponent.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AASnD,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,EAC3C,MAAM,EACN,OAAO,EACP,KAAK,EACL,SAAS,GACV,EAAE,gBAAgB,GAAG,GAAG,CAAC,OAAO,
|
|
1
|
+
{"version":3,"file":"MetricComponent.d.ts","sourceRoot":"","sources":["../../../../src/components/Dashboard/MetricComponent.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AASnD,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,EAC3C,MAAM,EACN,OAAO,EACP,KAAK,EACL,SAAS,GACV,EAAE,gBAAgB,GAAG,GAAG,CAAC,OAAO,CAwPhC"}
|