@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
package/dist/esm/Chart.js
CHANGED
|
@@ -8,7 +8,6 @@ import PieChart from './components/Chart/PieChart';
|
|
|
8
8
|
import { ClientContext, CustomFieldContext, DashboardContext, DashboardFiltersContext, } from './Context';
|
|
9
9
|
import QuillTable from './components/QuillTable';
|
|
10
10
|
import { getData } from './utils/dataFetcher';
|
|
11
|
-
import { generatePivotTable, generatePivotTableYAxis, } from './internals/ReportBuilder/PivotModal';
|
|
12
11
|
import { DATE_FORMAT_TYPES, valueFormatter } from './utils/valueFormatter';
|
|
13
12
|
import LineChart from './components/Chart/LineChart';
|
|
14
13
|
import BarChart from './components/Chart/BarChart';
|
|
@@ -20,6 +19,7 @@ import { quillFormat } from './utils/valueFormatter';
|
|
|
20
19
|
import useTheme from './hooks/useTheme';
|
|
21
20
|
import { processFilterErrorList } from './utils/errorProcessing';
|
|
22
21
|
import { findAndProcessDateFilter } from './utils/filterProcessing';
|
|
22
|
+
import { cleanDashboardItem } from './utils/dashboard';
|
|
23
23
|
const MAX_ROWS_FOR_GENERIC_TABLE = 300;
|
|
24
24
|
// @ts-ignore
|
|
25
25
|
function sumByKey(arr, key) {
|
|
@@ -32,23 +32,36 @@ function sumByKey(arr, key) {
|
|
|
32
32
|
function areDatesNearby(date1, date2) {
|
|
33
33
|
return Math.abs(differenceInHours(date1, date2)) < 24;
|
|
34
34
|
}
|
|
35
|
-
function isEquivalent(filters1, filters2) {
|
|
36
|
-
if (
|
|
35
|
+
export function isEquivalent(filters1, filters2) {
|
|
36
|
+
if (filters2.length !== filters1.length) {
|
|
37
37
|
return false;
|
|
38
38
|
}
|
|
39
|
-
const filterKeys = Object.keys(filters2);
|
|
40
|
-
for (let i = 0; i <
|
|
41
|
-
const
|
|
42
|
-
if (!currentKeyWereLookingAt) {
|
|
43
|
-
return false;
|
|
44
|
-
}
|
|
45
|
-
const filter1 = filters1[currentKeyWereLookingAt];
|
|
39
|
+
// const filterKeys = Object.keys(filters2);
|
|
40
|
+
for (let i = 0; i < filters1.length; i++) {
|
|
41
|
+
const filter1 = filters1[i];
|
|
46
42
|
if (!filter1) {
|
|
47
43
|
return false;
|
|
48
44
|
}
|
|
49
|
-
const filter2 = filters2[
|
|
45
|
+
const filter2 = filters2[i];
|
|
50
46
|
const filterType = filter2.filterType;
|
|
51
47
|
if (filterType === 'string') {
|
|
48
|
+
if (filter1.stringFilterType === 'multiselect') {
|
|
49
|
+
if (filter1.values &&
|
|
50
|
+
filter2.values &&
|
|
51
|
+
filter1.values.length !== filter2.values.length) {
|
|
52
|
+
return false;
|
|
53
|
+
}
|
|
54
|
+
if ((filter1.values && !filter2.values) ||
|
|
55
|
+
(filter2.values && !filter1.values)) {
|
|
56
|
+
return false;
|
|
57
|
+
}
|
|
58
|
+
// make sure that filter1.values is equivalent to filter2.values ignoring order
|
|
59
|
+
const sortedValues1 = filter1.values?.slice().sort() || [];
|
|
60
|
+
const sortedValues2 = filter2.values?.slice().sort() || [];
|
|
61
|
+
if (!sortedValues1.every((value, index) => value === sortedValues2[index])) {
|
|
62
|
+
return false;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
52
65
|
if (filter1.selectedValue !== filter2.selectedValue) {
|
|
53
66
|
return false;
|
|
54
67
|
}
|
|
@@ -72,9 +85,6 @@ export function didFiltersChange(dashboardItem, filters) {
|
|
|
72
85
|
if (!dashboardItem?.filtersApplied || !filters) {
|
|
73
86
|
return true;
|
|
74
87
|
}
|
|
75
|
-
if (dashboardItem?.filtersApplied.comparison !== !filters.comparison) {
|
|
76
|
-
return true;
|
|
77
|
-
}
|
|
78
88
|
return !isEquivalent(dashboardItem.filtersApplied, filters);
|
|
79
89
|
}
|
|
80
90
|
function fallbackMapColorsToFields(_report, _theme) {
|
|
@@ -116,11 +126,17 @@ const Chart = (props) => {
|
|
|
116
126
|
? theme.chartColors
|
|
117
127
|
: ['#4E80EE', '#E14F62', '#55B5A6', '#E9A23B', '#6466E9', '#55B685'];
|
|
118
128
|
}, [data.colors]);
|
|
119
|
-
return (_jsx(ChartUpdater, { reportId: data.reportId, className: data.className, containerStyle: data.containerStyle, colors: chartColors, isAnimationActive: data.isAnimationActive, hideXAxis: data.hideXAxis, hideYAxis: data.hideYAxis, hideCartesianGrid: data.hideCartesianGrid, hideHorizontalCartesianGrid: data.hideHorizontalCartesianGrid, hideVerticalCartesianGrid: data.hideVerticalCartesianGrid, hideSubsequentXAxisTicks: data.hideSubsequentXAxisTicks, hideDateRangeFilter: data.hideDateRangeFilter, cartesianGridLineStyle: data.cartesianGridLineStyle, cartesianGridLineColor: data.cartesianGridLineColor, comparisonLineStyle: data.comparisonLineStyle, mapColorsToFields: data.mapColorsToFields ?? fallbackMapColorsToFields, LoadingComponent: data.LoadingComponent, filters: data.filters }));
|
|
129
|
+
return (_jsx(ChartUpdater, { reportId: data.reportId, className: data.className, containerStyle: data.containerStyle, colors: chartColors, isAnimationActive: data.isAnimationActive, hideXAxis: data.hideXAxis, hideYAxis: data.hideYAxis, hideCartesianGrid: data.hideCartesianGrid, hideHorizontalCartesianGrid: data.hideHorizontalCartesianGrid, hideVerticalCartesianGrid: data.hideVerticalCartesianGrid, hideSubsequentXAxisTicks: data.hideSubsequentXAxisTicks, hideDateRangeFilter: data.hideDateRangeFilter, cartesianGridLineStyle: data.cartesianGridLineStyle, cartesianGridLineColor: data.cartesianGridLineColor, comparisonLineStyle: data.comparisonLineStyle, mapColorsToFields: data.mapColorsToFields ?? fallbackMapColorsToFields, LoadingComponent: data.LoadingComponent, filters: data.filters, onClickChartElement: props.onClickChartElement }));
|
|
120
130
|
};
|
|
121
131
|
const ChartUpdater = ({ colors, reportId, className, containerStyle, isAnimationActive, hideXAxis, hideYAxis, hideCartesianGrid, hideHorizontalCartesianGrid = false, hideVerticalCartesianGrid = true, hideSubsequentXAxisTicks = false, cartesianGridLineStyle = 'solid', cartesianGridLineColor, comparisonLineStyle, hideDateRangeFilter = false, mapColorsToFields, LoadingComponent = QuillLoadingSkeleton, filters, onClickChartElement, }) => {
|
|
122
132
|
const { dispatch, dashboard } = useContext(DashboardContext);
|
|
123
133
|
const { dashboardFilters } = useContext(DashboardFiltersContext);
|
|
134
|
+
const specificDashboardFilter = useMemo(() => {
|
|
135
|
+
return dashboardFilters.filter((f) => dashboard &&
|
|
136
|
+
dashboard[reportId] &&
|
|
137
|
+
f &&
|
|
138
|
+
f.dashboardName === dashboard[reportId].dashboardName);
|
|
139
|
+
}, [dashboardFilters, dashboard]);
|
|
124
140
|
const [initialLoad, setInitialLoad] = useState(true);
|
|
125
141
|
const [loading, setLoading] = useState(true);
|
|
126
142
|
const [paginating, setPaginating] = useState(false);
|
|
@@ -132,6 +148,7 @@ const ChartUpdater = ({ colors, reportId, className, containerStyle, isAnimation
|
|
|
132
148
|
const [additionalProcessing, setAdditionProcessing] = useState({
|
|
133
149
|
page: 0,
|
|
134
150
|
});
|
|
151
|
+
const [report, setReport] = useState(undefined);
|
|
135
152
|
const [previousPage, setPreviousPage] = useState(0);
|
|
136
153
|
const theme = useTheme();
|
|
137
154
|
const onPageChange = (page) => {
|
|
@@ -149,7 +166,7 @@ const ChartUpdater = ({ colors, reportId, className, containerStyle, isAnimation
|
|
|
149
166
|
};
|
|
150
167
|
const getChartDataPaginate = async (processing) => {
|
|
151
168
|
setPaginating(true);
|
|
152
|
-
if (!didFiltersChange(dashboard[reportId],
|
|
169
|
+
if (!didFiltersChange(dashboard[reportId], specificDashboardFilter)) {
|
|
153
170
|
setPaginating(false);
|
|
154
171
|
return;
|
|
155
172
|
}
|
|
@@ -163,8 +180,8 @@ const ChartUpdater = ({ colors, reportId, className, containerStyle, isAnimation
|
|
|
163
180
|
}
|
|
164
181
|
// Remove extra fields on each filter so we don't confuse the backend.
|
|
165
182
|
const allowDateRange = !hideDateRangeFilter;
|
|
166
|
-
const minimalFilters = Object.values(
|
|
167
|
-
? Object.values(
|
|
183
|
+
const minimalFilters = Object.values(specificDashboardFilter).length
|
|
184
|
+
? Object.values(specificDashboardFilter)
|
|
168
185
|
.filter((f) => allowDateRange || f.filterType !== 'date_range')
|
|
169
186
|
.map((filter) => {
|
|
170
187
|
const newFilter = { ...filter };
|
|
@@ -208,13 +225,15 @@ const ChartUpdater = ({ colors, reportId, className, containerStyle, isAnimation
|
|
|
208
225
|
...resp,
|
|
209
226
|
filtersApplied: minimalFilters.filter((f) => f.dashboardName === dashboard[reportId].dashboardName),
|
|
210
227
|
};
|
|
228
|
+
const cleanedReport = cleanDashboardItem(dashboardItem, filters);
|
|
229
|
+
setReport(cleanedReport);
|
|
211
230
|
dispatch({
|
|
212
231
|
type: 'UPDATE_DASHBOARD_ITEM',
|
|
213
232
|
id: reportId,
|
|
214
|
-
data:
|
|
233
|
+
data: cleanedReport,
|
|
215
234
|
});
|
|
216
235
|
if (mapColorsToFields) {
|
|
217
|
-
setColorMap(mapColorsToFields(
|
|
236
|
+
setColorMap(mapColorsToFields(cleanedReport, theme));
|
|
218
237
|
}
|
|
219
238
|
}
|
|
220
239
|
else {
|
|
@@ -232,7 +251,7 @@ const ChartUpdater = ({ colors, reportId, className, containerStyle, isAnimation
|
|
|
232
251
|
};
|
|
233
252
|
const getChartData = async (processing) => {
|
|
234
253
|
setLoading(true);
|
|
235
|
-
if (!didFiltersChange(dashboard[reportId],
|
|
254
|
+
if (!didFiltersChange(dashboard[reportId], specificDashboardFilter)) {
|
|
236
255
|
setLoading(false);
|
|
237
256
|
return;
|
|
238
257
|
}
|
|
@@ -246,8 +265,8 @@ const ChartUpdater = ({ colors, reportId, className, containerStyle, isAnimation
|
|
|
246
265
|
}
|
|
247
266
|
// Remove extra fields on each filter so we don't confuse the backend.
|
|
248
267
|
const allowDateRange = !hideDateRangeFilter;
|
|
249
|
-
const minimalFilters = Object.values(
|
|
250
|
-
? Object.values(
|
|
268
|
+
const minimalFilters = Object.values(specificDashboardFilter).length
|
|
269
|
+
? Object.values(specificDashboardFilter)
|
|
251
270
|
.filter((f) => allowDateRange || f.filterType !== 'date_range')
|
|
252
271
|
.map((filter) => {
|
|
253
272
|
const newFilter = { ...filter };
|
|
@@ -291,6 +310,11 @@ const ChartUpdater = ({ colors, reportId, className, containerStyle, isAnimation
|
|
|
291
310
|
...resp,
|
|
292
311
|
filtersApplied: minimalFilters.filter((f) => f.dashboardName === dashboard[reportId].dashboardName),
|
|
293
312
|
};
|
|
313
|
+
const cleanedReport = cleanDashboardItem(dashboardItem, filters);
|
|
314
|
+
if (cleanedReport.chartType === 'table' && cleanedReport.pivot) {
|
|
315
|
+
cleanedReport.columns = cleanedReport.yAxisFields;
|
|
316
|
+
}
|
|
317
|
+
setReport(cleanedReport);
|
|
294
318
|
dispatch({
|
|
295
319
|
type: 'UPDATE_DASHBOARD_ITEM',
|
|
296
320
|
id: reportId,
|
|
@@ -314,11 +338,14 @@ const ChartUpdater = ({ colors, reportId, className, containerStyle, isAnimation
|
|
|
314
338
|
useEffect(() => {
|
|
315
339
|
setInitialLoad(false);
|
|
316
340
|
getChartData();
|
|
317
|
-
}, [
|
|
318
|
-
return (_jsx(ChartDisplay, { config:
|
|
341
|
+
}, [specificDashboardFilter, client, reportId]);
|
|
342
|
+
return (_jsx(ChartDisplay, { config: report, reportId: reportId, colors: colors, className: className, containerStyle: containerStyle, hideXAxis: hideXAxis, hideYAxis: hideYAxis, hideCartesianGrid: hideCartesianGrid, hideHorizontalCartesianGrid: hideHorizontalCartesianGrid, hideVerticalCartesianGrid: hideVerticalCartesianGrid, hideSubsequentXAxisTicks: hideSubsequentXAxisTicks, cartesianGridLineStyle: cartesianGridLineStyle, cartesianGridLineColor: cartesianGridLineColor, hideDateRangeFilter: hideDateRangeFilter, comparisonLineStyle: comparisonLineStyle, isAnimationActive: isAnimationActive, isComparison: isComparison, loading: loading || initialLoad, paginating: paginating, error: error, colorMap: colorMap, LoadingComponent: LoadingComponent, onPageChange: onPageChange, onSortChange: onSortChange, onClickChartElement: onClickChartElement }));
|
|
319
343
|
};
|
|
320
344
|
const ChartDisplay = ({ reportId, config, colors, className, containerStyle, hideXAxis, hideYAxis, hideCartesianGrid, hideDateRangeFilter = false, hideHorizontalCartesianGrid = false, hideVerticalCartesianGrid = true, hideSubsequentXAxisTicks = false, cartesianGridLineStyle = 'solid', cartesianGridLineColor, comparisonLineStyle, isAnimationActive, loading = false, paginating = false, error = undefined, isComparison = false, colorMap, LoadingComponent = QuillLoadingSkeleton, onPageChange, onSortChange, onClickChartElement, dateBucket, }) => {
|
|
321
345
|
const { dashboardFilters } = useContext(DashboardFiltersContext);
|
|
346
|
+
const specificDashboardFilter = useMemo(() => {
|
|
347
|
+
return dashboardFilters.filter((f) => f && config && config.dashboardName === f.dashboardName);
|
|
348
|
+
}, [dashboardFilters]);
|
|
322
349
|
const { downloadCSV } = useExport(reportId);
|
|
323
350
|
const theme = useTheme();
|
|
324
351
|
const chartColors = useMemo(() => {
|
|
@@ -328,44 +355,42 @@ const ChartDisplay = ({ reportId, config, colors, className, containerStyle, hid
|
|
|
328
355
|
? theme.chartColors
|
|
329
356
|
: ['#4E80EE', '#E14F62', '#55B5A6', '#E9A23B', '#6466E9', '#55B685'];
|
|
330
357
|
}, [colors]);
|
|
331
|
-
const
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
dateFilter && dateFilter.startDate && dateFilter.endDate
|
|
340
|
-
? { start: dateFilter.startDate, end: dateFilter.endDate }
|
|
341
|
-
: undefined, Boolean(dateFilter?.comparisonRange?.startDate), -1, dateFilter?.comparisonRange?.startDate &&
|
|
342
|
-
dateFilter?.comparisonRange.endDate
|
|
343
|
-
? {
|
|
344
|
-
start: dateFilter.comparisonRange.startDate,
|
|
345
|
-
end: dateFilter.comparisonRange.endDate,
|
|
346
|
-
}
|
|
347
|
-
: undefined, dateBucket)
|
|
348
|
-
: null;
|
|
349
|
-
}, [config?.pivot, dateBucket]);
|
|
350
|
-
const pivotTableYAxis = useMemo(() => {
|
|
351
|
-
if (!pivotTable) {
|
|
352
|
-
return null;
|
|
358
|
+
const rows = config?.pivotRows ?? config?.rows ?? [];
|
|
359
|
+
const getYAxisFields = () => {
|
|
360
|
+
if (config && config.pivot && config.pivot.columnField) {
|
|
361
|
+
return (config?.pivotColumns
|
|
362
|
+
.slice(1)
|
|
363
|
+
.map((column) => {
|
|
364
|
+
return { ...column, format: config?.yAxisFields[0].format };
|
|
365
|
+
}) ?? []);
|
|
353
366
|
}
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
367
|
+
else if (config && config.pivot) {
|
|
368
|
+
return (config?.pivotColumns
|
|
369
|
+
.slice(1)
|
|
370
|
+
.map((column) => {
|
|
371
|
+
return {
|
|
372
|
+
...column,
|
|
373
|
+
label: config?.yAxisFields[0].label,
|
|
374
|
+
format: config?.yAxisFields[0].format,
|
|
375
|
+
};
|
|
376
|
+
}) ?? []);
|
|
377
|
+
}
|
|
378
|
+
else {
|
|
379
|
+
return config?.pivotColumns ?? config?.yAxisFields ?? [];
|
|
380
|
+
}
|
|
381
|
+
};
|
|
382
|
+
const yAxisFields = getYAxisFields();
|
|
383
|
+
const dateFilter = !hideDateRangeFilter &&
|
|
384
|
+
findAndProcessDateFilter(Object.values(specificDashboardFilter ?? []));
|
|
360
385
|
if (error) {
|
|
361
386
|
return _jsx(ChartError, { className: className, containerStyle: containerStyle });
|
|
362
387
|
}
|
|
363
|
-
else if (
|
|
364
|
-
config &&
|
|
388
|
+
else if (config &&
|
|
389
|
+
!config.pivot &&
|
|
365
390
|
config?.chartType !== 'metric' &&
|
|
366
391
|
config?.chartType !== 'table' &&
|
|
367
|
-
|
|
368
|
-
|
|
392
|
+
rows &&
|
|
393
|
+
rows.length > MAX_ROWS_FOR_GENERIC_TABLE) {
|
|
369
394
|
return (_jsx(ChartError, { className: className, containerStyle: containerStyle, label: "Charts can only display 300 rows. Please add a pivot or modify the query." }));
|
|
370
395
|
}
|
|
371
396
|
else if (!config || loading) {
|
|
@@ -373,8 +398,6 @@ const ChartDisplay = ({ reportId, config, colors, className, containerStyle, hid
|
|
|
373
398
|
}
|
|
374
399
|
const chartTypes = [config?.chartType];
|
|
375
400
|
if (chartTypes.includes('pie')) {
|
|
376
|
-
const rows = pivotTable ? pivotTable.rows : config.rows;
|
|
377
|
-
const yAxisFields = pivotTableYAxis ? pivotTableYAxis : config.yAxisFields;
|
|
378
401
|
const xAxisField = config.xAxisField;
|
|
379
402
|
return (_jsx(PieChart, { className: className, containerStyle: containerStyle, data: rows.map((row) => {
|
|
380
403
|
return {
|
|
@@ -385,9 +408,7 @@ const ChartDisplay = ({ reportId, config, colors, className, containerStyle, hid
|
|
|
385
408
|
}), category: yAxisFields[0].field, index: xAxisField, colors: chartColors, theme: theme, colorMap: colorMap, onClickChartElement: onClickChartElement }));
|
|
386
409
|
}
|
|
387
410
|
if (chartTypes.includes('table')) {
|
|
388
|
-
const
|
|
389
|
-
const columns = pivotTable?.columns ?? data.columns ?? data.yAxisFields;
|
|
390
|
-
const rows = pivotTable?.rows ?? data.rows ?? [];
|
|
411
|
+
const columns = yAxisFields;
|
|
391
412
|
// FOR PIVOTS - ADD THE RIGHT FIELD TYPE FOR THE VALUE COLUMNS
|
|
392
413
|
const valueFieldType = config?.pivot?.valueFieldType || undefined;
|
|
393
414
|
// Walk through data.columns and pick off the labels from yAxisFields
|
|
@@ -398,9 +419,9 @@ const ChartDisplay = ({ reportId, config, colors, className, containerStyle, hid
|
|
|
398
419
|
index !== 0) {
|
|
399
420
|
col.format = valueFieldType || 'two_decimal_places';
|
|
400
421
|
}
|
|
401
|
-
if (!
|
|
422
|
+
if (!yAxisFields)
|
|
402
423
|
return;
|
|
403
|
-
const matchingCol =
|
|
424
|
+
const matchingCol = yAxisFields.find((c) => c.field === col.field);
|
|
404
425
|
if (!col.label && matchingCol) {
|
|
405
426
|
col.label = matchingCol.label;
|
|
406
427
|
col.format = matchingCol.format;
|
|
@@ -418,15 +439,15 @@ const ChartDisplay = ({ reportId, config, colors, className, containerStyle, hid
|
|
|
418
439
|
}, {});
|
|
419
440
|
});
|
|
420
441
|
let numberOfRows = undefined;
|
|
421
|
-
if (
|
|
422
|
-
if (
|
|
423
|
-
numberOfRows = parseInt(
|
|
442
|
+
if (config.compareRows && config.compareRows[0]) {
|
|
443
|
+
if (config.compareRows[0].COUNT) {
|
|
444
|
+
numberOfRows = parseInt(config.compareRows[0].COUNT);
|
|
424
445
|
}
|
|
425
|
-
else if (
|
|
426
|
-
numberOfRows = parseInt(
|
|
446
|
+
else if (config.compareRows[0].count) {
|
|
447
|
+
numberOfRows = parseInt(config.compareRows[0].count);
|
|
427
448
|
}
|
|
428
449
|
}
|
|
429
|
-
return (_jsx(QuillTable, { rows: formattedRows ?? [], numberOfRows: numberOfRows, columns: columns ??
|
|
450
|
+
return (_jsx(QuillTable, { rows: formattedRows ?? [], numberOfRows: numberOfRows, columns: columns ?? yAxisFields, currentPage: config.page, sort: config.sort, rowsPerPage: config?.rowsPerPage || 10, containerStyle: {
|
|
430
451
|
width: containerStyle?.width || '100%',
|
|
431
452
|
height: containerStyle?.height || '400px',
|
|
432
453
|
...containerStyle,
|
|
@@ -439,14 +460,11 @@ const ChartDisplay = ({ reportId, config, colors, className, containerStyle, hid
|
|
|
439
460
|
}, isLoading: paginating }));
|
|
440
461
|
}
|
|
441
462
|
if (chartTypes.includes('bar')) {
|
|
442
|
-
return (_jsx(BarList, { data:
|
|
463
|
+
return (_jsx(BarList, { data: rows, theme: theme, yAxisFields: yAxisFields, colors: chartColors, xAxisField: config.xAxisField, xAxisFormat: config.xAxisFormat, containerStyle: containerStyle, className: className, colorMap: colorMap, onClickChartElement: onClickChartElement }));
|
|
443
464
|
}
|
|
444
|
-
const yAxisFields = pivotTableYAxis
|
|
445
|
-
? pivotTableYAxis
|
|
446
|
-
: config.yAxisFields;
|
|
447
465
|
if (yAxisFields.length === 1) {
|
|
448
|
-
if (yAxisFields[0].label === '' &&
|
|
449
|
-
yAxisFields[0].label =
|
|
466
|
+
if (yAxisFields[0].label === '' && yAxisFields.length === 1) {
|
|
467
|
+
yAxisFields[0].label = yAxisFields[0].label;
|
|
450
468
|
}
|
|
451
469
|
if (dateFilter?.comparison) {
|
|
452
470
|
const sampleField = yAxisFields[0];
|
|
@@ -457,15 +475,10 @@ const ChartDisplay = ({ reportId, config, colors, className, containerStyle, hid
|
|
|
457
475
|
};
|
|
458
476
|
}
|
|
459
477
|
}
|
|
460
|
-
const data = (pivotTable ? pivotTable.rows : config.rows)
|
|
461
|
-
// filter out any rows with a comparison key but no corresponding primary
|
|
462
|
-
?.filter((row) => Object.keys(row).every((key) => !key.startsWith('comparison_') ||
|
|
463
|
-
(key.startsWith('comparison_') &&
|
|
464
|
-
row[key.replace('comparison_', '')] !== undefined)));
|
|
465
478
|
if (chartTypes.includes('column')) {
|
|
466
479
|
// Autofill the column chart with an empty column if there are no rows
|
|
467
|
-
let barChartData =
|
|
468
|
-
if (dateFilter && (!
|
|
480
|
+
let barChartData = rows;
|
|
481
|
+
if (dateFilter && (!barChartData || barChartData.length === 0)) {
|
|
469
482
|
const xAxis = config.xAxisField;
|
|
470
483
|
const yAxis = yAxisFields[0]?.field;
|
|
471
484
|
barChartData = [{ [xAxis]: '', [yAxis]: '0' }];
|
|
@@ -487,17 +500,15 @@ const ChartDisplay = ({ reportId, config, colors, className, containerStyle, hid
|
|
|
487
500
|
break;
|
|
488
501
|
}
|
|
489
502
|
}
|
|
490
|
-
return (_jsx(BarChart, { colors: chartColors, theme: theme, isStacked:
|
|
503
|
+
return (_jsx(BarChart, { colors: chartColors, theme: theme, isStacked: config.pivot && yAxisFields.length > (dateFilter?.comparison ? 2 : 1), yAxisFields: yAxisFields, data: barChartData, xAxisField: config.xAxisField, xAxisLabel: config.xAxisLabel, xAxisFormat: xAxisFormat, containerStyle: containerStyle, className: className, comparison: dateFilter?.comparison, isAnimationActive: isAnimationActive, hideXAxis: hideXAxis, hideYAxis: hideYAxis, hideCartesianGrid: hideCartesianGrid, colorMap: colorMap, onClickChartElement: onClickChartElement, dateFilter: dateFilter }));
|
|
491
504
|
}
|
|
492
505
|
if (chartTypes.includes('metric')) {
|
|
493
|
-
const data = config;
|
|
494
|
-
const rows = pivotTable?.rows ?? data.rows ?? [];
|
|
495
506
|
const isComparison = rows?.length > 0 &&
|
|
496
|
-
Object.keys(rows[0]).includes(`comparison_${
|
|
497
|
-
const primaryMetricLabel =
|
|
498
|
-
const comparisonKey =
|
|
507
|
+
Object.keys(rows[0]).includes(`comparison_${config.xAxisField}`);
|
|
508
|
+
const primaryMetricLabel = config?.filtersApplied?.date_range?.preset?.label;
|
|
509
|
+
const comparisonKey = config?.filtersApplied?.date_range?.comparisonRange?.value;
|
|
499
510
|
const comparisonLabel = COMPARISON_OPTIONS.find((opt) => opt.value === comparisonKey)?.text;
|
|
500
|
-
if (rows?.length === 0 || rows[0][
|
|
511
|
+
if (rows?.length === 0 || rows[0][config.xAxisField] === null) {
|
|
501
512
|
return (_jsx("div", { style: {
|
|
502
513
|
display: 'flex',
|
|
503
514
|
flex: '1 0 auto',
|
|
@@ -536,14 +547,14 @@ const ChartDisplay = ({ reportId, config, colors, className, containerStyle, hid
|
|
|
536
547
|
marginRight: 'auto',
|
|
537
548
|
}, children: [_jsx("span", { children: rows?.length > 0 &&
|
|
538
549
|
valueFormatter({
|
|
539
|
-
value: rows[0][
|
|
540
|
-
field:
|
|
550
|
+
value: rows[0][config.xAxisField] ?? 0,
|
|
551
|
+
field: config.xAxisField,
|
|
541
552
|
fields: [
|
|
542
553
|
{
|
|
543
|
-
field:
|
|
544
|
-
format:
|
|
545
|
-
label:
|
|
546
|
-
_id:
|
|
554
|
+
field: config.xAxisField,
|
|
555
|
+
format: config.xAxisFormat,
|
|
556
|
+
label: config.xAxisLabel,
|
|
557
|
+
_id: config._id || 'dummy',
|
|
547
558
|
},
|
|
548
559
|
],
|
|
549
560
|
}) }), isComparison && (_jsx("span", { style: {
|
|
@@ -567,14 +578,14 @@ const ChartDisplay = ({ reportId, config, colors, className, containerStyle, hid
|
|
|
567
578
|
color: theme?.secondaryTextColor,
|
|
568
579
|
}, children: rows?.length > 0 &&
|
|
569
580
|
valueFormatter({
|
|
570
|
-
value: rows[0][`comparison_${
|
|
571
|
-
field:
|
|
581
|
+
value: rows[0][`comparison_${config.xAxisField}`] ?? 0,
|
|
582
|
+
field: config.xAxisField,
|
|
572
583
|
fields: [
|
|
573
584
|
{
|
|
574
|
-
field:
|
|
575
|
-
format:
|
|
576
|
-
label:
|
|
577
|
-
_id:
|
|
585
|
+
field: config.xAxisField,
|
|
586
|
+
format: config.xAxisFormat,
|
|
587
|
+
label: config.xAxisLabel,
|
|
588
|
+
_id: config._id || 'dummy',
|
|
578
589
|
},
|
|
579
590
|
],
|
|
580
591
|
}) }), _jsx("span", { style: {
|
|
@@ -589,11 +600,11 @@ const ChartDisplay = ({ reportId, config, colors, className, containerStyle, hid
|
|
|
589
600
|
}
|
|
590
601
|
// Autofill the line chart with two zero values, so they form a line at 0.0
|
|
591
602
|
// when there are no rows on the config.
|
|
592
|
-
let lineChartData =
|
|
603
|
+
let lineChartData = rows;
|
|
593
604
|
const xAxisFieldFormat = config.columns.find((col) => col.field === config.xAxisField)?.format;
|
|
594
605
|
if (dateFilter &&
|
|
595
606
|
DATE_FORMAT_TYPES.includes(xAxisFieldFormat) &&
|
|
596
|
-
(!
|
|
607
|
+
(!lineChartData || lineChartData.length === 0)) {
|
|
597
608
|
const xAxis = config.xAxisField;
|
|
598
609
|
const yAxis = yAxisFields[0]?.field;
|
|
599
610
|
const format = config.pivot
|
|
@@ -606,7 +617,7 @@ const ChartDisplay = ({ reportId, config, colors, className, containerStyle, hid
|
|
|
606
617
|
{ [xAxis]: endDate, [yAxis]: '0' },
|
|
607
618
|
];
|
|
608
619
|
}
|
|
609
|
-
return (_jsx(LineChart, { colors: chartColors, colorMap: colorMap, yAxisFields: yAxisFields.sort(sortComparisonFirst), data: lineChartData, xAxisField: config.xAxisField, xAxisLabel: config.xAxisLabel, xAxisFormat: config.xAxisFormat, containerStyle: containerStyle, className: className, theme: theme, comparison: dateFilter?.comparison, isAnimationActive: isAnimationActive, hideXAxis: hideXAxis, hideYAxis: hideYAxis, hideCartesianGrid: hideCartesianGrid, hideHorizontalCartesianGrid: hideHorizontalCartesianGrid, hideVerticalCartesianGrid: hideVerticalCartesianGrid, hideSubsequentXAxisTicks: hideSubsequentXAxisTicks, cartesianGridLineStyle: cartesianGridLineStyle ?? 'solid', comparisonLineStyle: comparisonLineStyle ?? 'solid', cartesianGridLineColor: cartesianGridLineColor, onClickChartElement: onClickChartElement }));
|
|
620
|
+
return (_jsx(LineChart, { colors: chartColors, colorMap: colorMap, yAxisFields: yAxisFields.sort(sortComparisonFirst), data: lineChartData, xAxisField: config.xAxisField, xAxisLabel: config.xAxisLabel, xAxisFormat: config.xAxisFormat, containerStyle: containerStyle, className: className, theme: theme, comparison: dateFilter?.comparison, isAnimationActive: isAnimationActive, hideXAxis: hideXAxis, hideYAxis: hideYAxis, hideCartesianGrid: hideCartesianGrid, hideHorizontalCartesianGrid: hideHorizontalCartesianGrid, hideVerticalCartesianGrid: hideVerticalCartesianGrid, hideSubsequentXAxisTicks: hideSubsequentXAxisTicks, cartesianGridLineStyle: cartesianGridLineStyle ?? 'solid', comparisonLineStyle: comparisonLineStyle ?? 'solid', cartesianGridLineColor: cartesianGridLineColor, onClickChartElement: onClickChartElement, dateFilter: dateFilter }));
|
|
610
621
|
};
|
|
611
622
|
// Sort to put comparison first (ie. underneath) primary.
|
|
612
623
|
const sortComparisonFirst = (a, b) => {
|
|
@@ -191,8 +191,8 @@ export interface ChartBuilderProps {
|
|
|
191
191
|
pivotData?: {
|
|
192
192
|
rows: any[];
|
|
193
193
|
columns: {
|
|
194
|
-
label: string;
|
|
195
194
|
field: string;
|
|
195
|
+
label: string;
|
|
196
196
|
}[];
|
|
197
197
|
};
|
|
198
198
|
/** The date range applied to this ChartBuilder. */
|
|
@@ -262,6 +262,8 @@ export interface ChartBuilderProps {
|
|
|
262
262
|
isLoading?: boolean;
|
|
263
263
|
/** A callback function triggered when a chart element is clicked */
|
|
264
264
|
onClickChartElement?: (data: any) => void;
|
|
265
|
+
/** Used to generate a comparison pivot or not */
|
|
266
|
+
isComparison?: boolean;
|
|
265
267
|
}
|
|
266
268
|
/**
|
|
267
269
|
* ### Quill Chart Builder with Modal
|
|
@@ -311,7 +313,7 @@ export declare function ChartBuilderWithModal(props: ChartBuilderProps): import(
|
|
|
311
313
|
* ### Chart Builder API
|
|
312
314
|
* @see https://docs.quillsql.com/components/chart-builder
|
|
313
315
|
*/
|
|
314
|
-
export default function ChartBuilder({ TextInputComponent, SelectComponent, ButtonComponent, SecondaryButtonComponent, HeaderComponent, SubHeaderComponent, LabelComponent, DeleteButtonComponent, TextComponent, PopoverComponent, CardComponent, TableComponent, ModalComponent, LoadingComponent, ErrorMessageComponent, ChartBuilderInputRowContainer, ChartBuilderInputColumnContainer, PivotRowContainer, PivotColumnContainer, FormContainer, isOpen, isHorizontalView, pivot, setIsOpen, rows, columns, query, queryNoDateColumn, dateRange: dr, showTableFormatOptions, showDateFieldOptions, showAccessControlOptions, showDashboardDropdown, onAddToDashboardComplete, onDelete, report, recommendedPivots: rp, createdPivots: cp, destinationDashboard, dateColumn, buttonLabel, organizationName, pivotData, hideDeleteButton, hideSubmitButton, hideDateRangeFilter, initialUniqueValues, pivotRecommendationsEnabled, onSortChange, onPageChange, numberOfRows, isLoading, onClickChartElement }: ChartBuilderProps): import("react/jsx-runtime").JSX.Element | null;
|
|
316
|
+
export default function ChartBuilder({ TextInputComponent, SelectComponent, ButtonComponent, SecondaryButtonComponent, HeaderComponent, SubHeaderComponent, LabelComponent, DeleteButtonComponent, TextComponent, PopoverComponent, CardComponent, TableComponent, ModalComponent, LoadingComponent, ErrorMessageComponent, ChartBuilderInputRowContainer, ChartBuilderInputColumnContainer, PivotRowContainer, PivotColumnContainer, FormContainer, isOpen, isHorizontalView, pivot, setIsOpen, rows, columns, query, queryNoDateColumn, dateRange: dr, showTableFormatOptions, showDateFieldOptions, showAccessControlOptions, showDashboardDropdown, onAddToDashboardComplete, onDelete, report, recommendedPivots: rp, createdPivots: cp, destinationDashboard, dateColumn, buttonLabel, organizationName, pivotData, hideDeleteButton, hideSubmitButton, hideDateRangeFilter, initialUniqueValues, pivotRecommendationsEnabled, onSortChange, onPageChange, numberOfRows, isLoading, isComparison, onClickChartElement, }: ChartBuilderProps): import("react/jsx-runtime").JSX.Element | null;
|
|
315
317
|
export declare function DashboardFilterModal({ isOpen, setIsOpen, issues, ModalComponent, ButtonComponent, }: {
|
|
316
318
|
isOpen: boolean;
|
|
317
319
|
setIsOpen: (e: boolean) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChartBuilder.d.ts","sourceRoot":"","sources":["../../src/ChartBuilder.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ChartBuilder.d.ts","sourceRoot":"","sources":["../../src/ChartBuilder.tsx"],"names":[],"mappings":"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"}
|
package/dist/esm/ChartBuilder.js
CHANGED
|
@@ -8,7 +8,7 @@ import { PivotCard } from './internals/ReportBuilder/PivotList';
|
|
|
8
8
|
import Chart from './Chart';
|
|
9
9
|
import { MemoizedModal, QuillTextInput, MemoizedButton, MemoizedSecondaryButton, MemoizedHeader, MemoizedLabel, MemoizedDeleteButton, MemoizedText, MemoizedPopover, QuillTableComponent, QuillChartBuilderInputRowContainer, QuillChartBuilderInputColumnContainer, MemoizedSubHeader, QuillErrorMessageComponent, QuillPivotRowContainer, QuillPivotColumnContainer, QuillChartBuilderFormContainer, QuillLoadingComponent, } from './components/UiComponents';
|
|
10
10
|
import { mergeComparisonRange } from './utils/merge';
|
|
11
|
-
import { removeDoubleQuotes, snakeAndCamelCaseToTitleCase } from './utils/textProcessing';
|
|
11
|
+
import { removeDoubleQuotes, snakeAndCamelCaseToTitleCase, } from './utils/textProcessing';
|
|
12
12
|
import { QuillSelectComponent } from './components/QuillSelect';
|
|
13
13
|
import { QuillCard } from './components/QuillCard';
|
|
14
14
|
import { quillFormat } from './utils/valueFormatter';
|
|
@@ -235,7 +235,7 @@ export function ChartBuilderWithModal(props) {
|
|
|
235
235
|
* ### Chart Builder API
|
|
236
236
|
* @see https://docs.quillsql.com/components/chart-builder
|
|
237
237
|
*/
|
|
238
|
-
export default function ChartBuilder({ TextInputComponent = QuillTextInput, SelectComponent = QuillSelectComponent, ButtonComponent = MemoizedButton, SecondaryButtonComponent = MemoizedSecondaryButton, HeaderComponent = MemoizedHeader, SubHeaderComponent = MemoizedSubHeader, LabelComponent = MemoizedLabel, DeleteButtonComponent = MemoizedDeleteButton, TextComponent = MemoizedText, PopoverComponent = MemoizedPopover, CardComponent = QuillCard, TableComponent = QuillTableComponent, ModalComponent, LoadingComponent = QuillLoadingComponent, ErrorMessageComponent = QuillErrorMessageComponent, ChartBuilderInputRowContainer = QuillChartBuilderInputRowContainer, ChartBuilderInputColumnContainer = QuillChartBuilderInputColumnContainer, PivotRowContainer = QuillPivotRowContainer, PivotColumnContainer = QuillPivotColumnContainer, FormContainer = QuillChartBuilderFormContainer, isOpen, isHorizontalView = true, pivot, setIsOpen, rows, columns, query, queryNoDateColumn, dateRange: dr, showTableFormatOptions = false, showDateFieldOptions = false, showAccessControlOptions = false, showDashboardDropdown = true, onAddToDashboardComplete, onDelete, report = undefined, recommendedPivots: rp = [], createdPivots: cp = [], destinationDashboard, dateColumn, buttonLabel, organizationName, pivotData, hideDeleteButton = false, hideSubmitButton = false, hideDateRangeFilter = false, initialUniqueValues, pivotRecommendationsEnabled = true, onSortChange, onPageChange, numberOfRows, isLoading, onClickChartElement }) {
|
|
238
|
+
export default function ChartBuilder({ TextInputComponent = QuillTextInput, SelectComponent = QuillSelectComponent, ButtonComponent = MemoizedButton, SecondaryButtonComponent = MemoizedSecondaryButton, HeaderComponent = MemoizedHeader, SubHeaderComponent = MemoizedSubHeader, LabelComponent = MemoizedLabel, DeleteButtonComponent = MemoizedDeleteButton, TextComponent = MemoizedText, PopoverComponent = MemoizedPopover, CardComponent = QuillCard, TableComponent = QuillTableComponent, ModalComponent, LoadingComponent = QuillLoadingComponent, ErrorMessageComponent = QuillErrorMessageComponent, ChartBuilderInputRowContainer = QuillChartBuilderInputRowContainer, ChartBuilderInputColumnContainer = QuillChartBuilderInputColumnContainer, PivotRowContainer = QuillPivotRowContainer, PivotColumnContainer = QuillPivotColumnContainer, FormContainer = QuillChartBuilderFormContainer, isOpen, isHorizontalView = true, pivot, setIsOpen, rows, columns, query, queryNoDateColumn, dateRange: dr, showTableFormatOptions = false, showDateFieldOptions = false, showAccessControlOptions = false, showDashboardDropdown = true, onAddToDashboardComplete, onDelete, report = undefined, recommendedPivots: rp = [], createdPivots: cp = [], destinationDashboard, dateColumn, buttonLabel, organizationName, pivotData, hideDeleteButton = false, hideSubmitButton = false, hideDateRangeFilter = false, initialUniqueValues, pivotRecommendationsEnabled = true, onSortChange, onPageChange, numberOfRows, isLoading, isComparison, onClickChartElement, }) {
|
|
239
239
|
const dateRange = dr;
|
|
240
240
|
const [client] = useContext(ClientContext);
|
|
241
241
|
const [theme] = useContext(ThemeContext);
|
|
@@ -336,6 +336,9 @@ export default function ChartBuilder({ TextInputComponent = QuillTextInput, Sele
|
|
|
336
336
|
const [dashboardOptions, setDashboardOptions] = useState([]);
|
|
337
337
|
const [defaultDashboardName, setDefaultDashboardName] = useState(destinationDashboard || report?.dashboardName || '');
|
|
338
338
|
const { dashboardFilters } = useContext(DashboardFiltersContext);
|
|
339
|
+
const specificDashboardFilter = useMemo(() => {
|
|
340
|
+
return dashboardFilters.filter((f) => f && defaultDashboardName === f.dashboardName);
|
|
341
|
+
}, [dashboardFilters]);
|
|
339
342
|
const [dashboardFilters2, setDashboardFilters] = useState([]);
|
|
340
343
|
const [dashboardHasDateFilter, setDashboardHasDateFilter] = useState(false);
|
|
341
344
|
const [dashboardHasDateComparison, setDashboardHasDateComparison] = useState(false);
|
|
@@ -361,7 +364,6 @@ export default function ChartBuilder({ TextInputComponent = QuillTextInput, Sele
|
|
|
361
364
|
const [allTables, setAllTables] = useState([]);
|
|
362
365
|
const [customFieldTableRef, setCustomFieldTableRef] = useState(false);
|
|
363
366
|
const [referencedColumns, setReferencedColumns] = useState({});
|
|
364
|
-
const [uniqueValues, setUniqueValues] = useState(undefined);
|
|
365
367
|
const [defaultDateField, setDefaultDateField] = useState({
|
|
366
368
|
table: dateFieldOptions[0]?.name || '',
|
|
367
369
|
field: dateFieldOptions[0]?.columns[0]?.name || '',
|
|
@@ -409,9 +411,11 @@ export default function ChartBuilder({ TextInputComponent = QuillTextInput, Sele
|
|
|
409
411
|
credentials: 'omit', // If withCredentials is true, set to 'include'. Otherwise, set to 'omit'.
|
|
410
412
|
});
|
|
411
413
|
const responseData = (await response.json()).data;
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
414
|
+
if (responseData) {
|
|
415
|
+
setDashboardFilters(responseData.filters);
|
|
416
|
+
setDashboardHasDateFilter(!!responseData.dateFilter);
|
|
417
|
+
setDashboardHasDateComparison(responseData.dateFilter?.comparison || false);
|
|
418
|
+
}
|
|
415
419
|
}
|
|
416
420
|
};
|
|
417
421
|
const pivotFormData = (pivot) => {
|
|
@@ -420,7 +424,6 @@ export default function ChartBuilder({ TextInputComponent = QuillTextInput, Sele
|
|
|
420
424
|
? report.yAxisFields[0].label
|
|
421
425
|
: pivot.valueField;
|
|
422
426
|
// date labels for pivots should be treated like strings since they are
|
|
423
|
-
// formatted in generatePivotTable
|
|
424
427
|
const yAxisIsDate = pivot.columnField
|
|
425
428
|
? isDateField(pivot.columnFieldType || '')
|
|
426
429
|
: false;
|
|
@@ -494,6 +497,7 @@ export default function ChartBuilder({ TextInputComponent = QuillTextInput, Sele
|
|
|
494
497
|
setSchema(curSchemaData);
|
|
495
498
|
}
|
|
496
499
|
if (!query) {
|
|
500
|
+
setLoadingFormData(false);
|
|
497
501
|
return;
|
|
498
502
|
}
|
|
499
503
|
const result = await getReferencedTables(client, query, curSchemaData);
|
|
@@ -546,13 +550,16 @@ export default function ChartBuilder({ TextInputComponent = QuillTextInput, Sele
|
|
|
546
550
|
}, []);
|
|
547
551
|
const selectedPivotTable = useMemo(() => {
|
|
548
552
|
if (formData.pivot && rows) {
|
|
549
|
-
if (intialLoad &&
|
|
553
|
+
if (intialLoad &&
|
|
554
|
+
pivotData &&
|
|
555
|
+
pivotData.rows &&
|
|
556
|
+
pivotData.rows.length > 0) {
|
|
550
557
|
setInitialLoad(false);
|
|
551
558
|
return pivotData;
|
|
552
559
|
}
|
|
553
560
|
else {
|
|
554
561
|
setInitialLoad(false);
|
|
555
|
-
return generatePivotTable(formData.pivot, rows, dateRange, false);
|
|
562
|
+
return generatePivotTable(formData.pivot, rows, dateRange, isComparison ?? false);
|
|
556
563
|
}
|
|
557
564
|
}
|
|
558
565
|
else {
|
|
@@ -871,7 +878,10 @@ export default function ChartBuilder({ TextInputComponent = QuillTextInput, Sele
|
|
|
871
878
|
...resp,
|
|
872
879
|
rows,
|
|
873
880
|
columns,
|
|
874
|
-
|
|
881
|
+
pivotRows: selectedPivotTable?.rows || undefined,
|
|
882
|
+
pivotColumns: selectedPivotTable?.columns || undefined,
|
|
883
|
+
filtersApplied: specificDashboardFilter,
|
|
884
|
+
triggerReload: true,
|
|
875
885
|
},
|
|
876
886
|
});
|
|
877
887
|
}
|
|
@@ -883,7 +893,7 @@ export default function ChartBuilder({ TextInputComponent = QuillTextInput, Sele
|
|
|
883
893
|
...resp,
|
|
884
894
|
rows,
|
|
885
895
|
columns,
|
|
886
|
-
filtersApplied:
|
|
896
|
+
filtersApplied: specificDashboardFilter,
|
|
887
897
|
});
|
|
888
898
|
}
|
|
889
899
|
};
|
|
@@ -918,7 +928,12 @@ export default function ChartBuilder({ TextInputComponent = QuillTextInput, Sele
|
|
|
918
928
|
}),
|
|
919
929
|
...(!isHorizontalView && isOpen && { width: formWidth }),
|
|
920
930
|
}, children: [((!isHorizontalView && windowWidth >= 1200) ||
|
|
921
|
-
formData.chartType !== 'table') && (_jsx(Chart, { colors: theme.chartColors, config: {
|
|
931
|
+
formData.chartType !== 'table') && (_jsx(Chart, { colors: theme.chartColors, config: {
|
|
932
|
+
...formData,
|
|
933
|
+
rows: rows,
|
|
934
|
+
pivotRows: selectedPivotTable?.rows || undefined,
|
|
935
|
+
pivotColumns: selectedPivotTable?.columns || undefined,
|
|
936
|
+
}, hideDateRangeFilter: hideDateRangeFilter, containerStyle: {
|
|
922
937
|
width: '100%',
|
|
923
938
|
height: formData.chartType === 'metric'
|
|
924
939
|
? 100
|