@quillsql/react 2.13.39 → 2.13.41
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 +5 -1
- package/dist/cjs/Chart.d.ts.map +1 -1
- package/dist/cjs/Chart.js +51 -28
- package/dist/cjs/ChartBuilder.d.ts +13 -1
- package/dist/cjs/ChartBuilder.d.ts.map +1 -1
- package/dist/cjs/ChartBuilder.js +347 -147
- package/dist/cjs/ChartEditor.d.ts.map +1 -1
- package/dist/cjs/ChartEditor.js +11 -1
- package/dist/cjs/Context.d.ts +16 -4
- package/dist/cjs/Context.d.ts.map +1 -1
- package/dist/cjs/Context.js +57 -38
- package/dist/cjs/Dashboard.d.ts +6 -3
- package/dist/cjs/Dashboard.d.ts.map +1 -1
- package/dist/cjs/Dashboard.js +70 -28
- package/dist/cjs/QuillProvider.d.ts +4 -8
- package/dist/cjs/QuillProvider.d.ts.map +1 -1
- package/dist/cjs/ReportBuilder.d.ts +1 -1
- package/dist/cjs/ReportBuilder.d.ts.map +1 -1
- package/dist/cjs/ReportBuilder.js +117 -45
- package/dist/cjs/SQLEditor.d.ts +7 -1
- package/dist/cjs/SQLEditor.d.ts.map +1 -1
- package/dist/cjs/SQLEditor.js +53 -9
- package/dist/cjs/Table.d.ts +21 -1
- package/dist/cjs/Table.d.ts.map +1 -1
- package/dist/cjs/Table.js +30 -192
- package/dist/cjs/components/Chart/BarChart.d.ts +5 -1
- package/dist/cjs/components/Chart/BarChart.d.ts.map +1 -1
- package/dist/cjs/components/Chart/BarChart.js +4 -3
- package/dist/cjs/components/Chart/CustomReferenceLine.d.ts +2 -0
- package/dist/cjs/components/Chart/CustomReferenceLine.d.ts.map +1 -0
- package/dist/cjs/components/Chart/CustomReferenceLine.js +26 -0
- package/dist/cjs/components/Chart/GaugeChart.d.ts +11 -0
- package/dist/cjs/components/Chart/GaugeChart.d.ts.map +1 -0
- package/dist/cjs/components/Chart/GaugeChart.js +198 -0
- package/dist/cjs/components/Chart/InternalChart.d.ts.map +1 -1
- package/dist/cjs/components/Chart/InternalChart.js +14 -11
- package/dist/cjs/components/Chart/LineChart.d.ts +5 -1
- package/dist/cjs/components/Chart/LineChart.d.ts.map +1 -1
- package/dist/cjs/components/Chart/LineChart.js +4 -3
- package/dist/cjs/components/Chart/MapChart.d.ts +36 -0
- package/dist/cjs/components/Chart/MapChart.d.ts.map +1 -0
- package/dist/cjs/components/Chart/MapChart.js +548 -0
- package/dist/cjs/components/Dashboard/DataLoader.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/DataLoader.js +114 -42
- package/dist/cjs/components/Dashboard/MetricComponent.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/MetricComponent.js +57 -54
- package/dist/cjs/components/Dashboard/TableComponent.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/TableComponent.js +5 -1
- package/dist/cjs/components/QuillMultiSelectSectionList.js +5 -5
- package/dist/cjs/components/QuillMultiSelectWithCombo.d.ts.map +1 -1
- package/dist/cjs/components/QuillMultiSelectWithCombo.js +5 -4
- package/dist/cjs/components/QuillSelectWithCombo.d.ts.map +1 -1
- package/dist/cjs/components/QuillSelectWithCombo.js +12 -11
- package/dist/cjs/components/ReportBuilder/AddColumnModal.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/AddColumnModal.js +2 -1
- package/dist/cjs/components/ReportBuilder/FilterModal.js +13 -13
- package/dist/cjs/components/ReportBuilder/FilterStack.d.ts +2 -1
- package/dist/cjs/components/ReportBuilder/FilterStack.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/FilterStack.js +4 -4
- package/dist/cjs/components/ReportBuilder/convert.d.ts +2 -0
- package/dist/cjs/components/ReportBuilder/convert.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/convert.js +28 -7
- package/dist/cjs/components/ReportBuilder/util.d.ts +1 -1
- package/dist/cjs/components/ReportBuilder/util.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/util.js +15 -2
- package/dist/cjs/components/UiComponents.d.ts +4 -1
- package/dist/cjs/components/UiComponents.d.ts.map +1 -1
- package/dist/cjs/components/UiComponents.js +31 -5
- package/dist/cjs/hooks/useDashboard.d.ts.map +1 -1
- package/dist/cjs/hooks/useDashboard.js +11 -9
- package/dist/cjs/hooks/useExport.d.ts.map +1 -1
- package/dist/cjs/hooks/useExport.js +18 -4
- package/dist/cjs/hooks/useQuill.d.ts.map +1 -1
- package/dist/cjs/hooks/useQuill.js +16 -3
- package/dist/cjs/hooks/useReport.d.ts.map +1 -1
- package/dist/cjs/hooks/useReport.js +1 -7
- package/dist/cjs/hooks/useVirtualTables.d.ts +6 -2
- package/dist/cjs/hooks/useVirtualTables.d.ts.map +1 -1
- package/dist/cjs/hooks/useVirtualTables.js +5 -2
- package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
- package/dist/cjs/internals/ReportBuilder/PivotModal.js +6 -7
- package/dist/cjs/models/Filter.d.ts +20 -13
- package/dist/cjs/models/Filter.d.ts.map +1 -1
- package/dist/cjs/models/Filter.js +161 -87
- package/dist/cjs/models/Report.d.ts +12 -1
- package/dist/cjs/models/Report.d.ts.map +1 -1
- package/dist/cjs/models/Schema.d.ts +12 -1
- package/dist/cjs/models/Schema.d.ts.map +1 -1
- package/dist/cjs/utils/astFilterProcessing.js +22 -22
- package/dist/cjs/utils/astProcessing.d.ts +2 -2
- package/dist/cjs/utils/astProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/astProcessing.js +25 -6
- package/dist/cjs/utils/axisFormatter.d.ts.map +1 -1
- package/dist/cjs/utils/axisFormatter.js +25 -0
- package/dist/cjs/utils/color.d.ts +159 -0
- package/dist/cjs/utils/color.d.ts.map +1 -1
- package/dist/cjs/utils/color.js +14 -5
- package/dist/cjs/utils/columnProcessing.js +3 -3
- package/dist/cjs/utils/constants.d.ts +1 -0
- package/dist/cjs/utils/constants.d.ts.map +1 -1
- package/dist/cjs/utils/constants.js +2 -1
- package/dist/cjs/utils/dashboard.d.ts +13 -3
- package/dist/cjs/utils/dashboard.d.ts.map +1 -1
- package/dist/cjs/utils/dashboard.js +73 -16
- package/dist/cjs/utils/dataFetcher.d.ts.map +1 -1
- package/dist/cjs/utils/dataFetcher.js +3 -1
- package/dist/cjs/utils/filterProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/filterProcessing.js +9 -9
- package/dist/cjs/utils/getDomain.d.ts +4 -1
- package/dist/cjs/utils/getDomain.d.ts.map +1 -1
- package/dist/cjs/utils/getDomain.js +11 -1
- package/dist/cjs/utils/pivotConstructor.d.ts.map +1 -1
- package/dist/cjs/utils/pivotConstructor.js +7 -6
- package/dist/cjs/utils/queryConstructor.d.ts +1 -1
- package/dist/cjs/utils/queryConstructor.d.ts.map +1 -1
- package/dist/cjs/utils/queryConstructor.js +71 -43
- package/dist/cjs/utils/report.d.ts +23 -5
- package/dist/cjs/utils/report.d.ts.map +1 -1
- package/dist/cjs/utils/report.js +28 -8
- package/dist/cjs/utils/schema.d.ts +26 -3
- package/dist/cjs/utils/schema.d.ts.map +1 -1
- package/dist/cjs/utils/schema.js +75 -43
- package/dist/cjs/utils/tableProcessing.d.ts +10 -3
- package/dist/cjs/utils/tableProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/tableProcessing.js +4 -6
- package/dist/cjs/utils/textProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/textProcessing.js +0 -1
- package/dist/esm/Chart.d.ts +5 -1
- package/dist/esm/Chart.d.ts.map +1 -1
- package/dist/esm/Chart.js +52 -29
- package/dist/esm/ChartBuilder.d.ts +13 -1
- package/dist/esm/ChartBuilder.d.ts.map +1 -1
- package/dist/esm/ChartBuilder.js +352 -152
- package/dist/esm/ChartEditor.d.ts.map +1 -1
- package/dist/esm/ChartEditor.js +11 -1
- package/dist/esm/Context.d.ts +16 -4
- package/dist/esm/Context.d.ts.map +1 -1
- package/dist/esm/Context.js +59 -40
- package/dist/esm/Dashboard.d.ts +6 -3
- package/dist/esm/Dashboard.d.ts.map +1 -1
- package/dist/esm/Dashboard.js +71 -29
- package/dist/esm/QuillProvider.d.ts +4 -8
- package/dist/esm/QuillProvider.d.ts.map +1 -1
- package/dist/esm/ReportBuilder.d.ts +1 -1
- package/dist/esm/ReportBuilder.d.ts.map +1 -1
- package/dist/esm/ReportBuilder.js +119 -47
- package/dist/esm/SQLEditor.d.ts +7 -1
- package/dist/esm/SQLEditor.d.ts.map +1 -1
- package/dist/esm/SQLEditor.js +54 -10
- package/dist/esm/Table.d.ts +21 -1
- package/dist/esm/Table.d.ts.map +1 -1
- package/dist/esm/Table.js +34 -196
- package/dist/esm/components/Chart/BarChart.d.ts +5 -1
- package/dist/esm/components/Chart/BarChart.d.ts.map +1 -1
- package/dist/esm/components/Chart/BarChart.js +5 -4
- package/dist/esm/components/Chart/CustomReferenceLine.d.ts +2 -0
- package/dist/esm/components/Chart/CustomReferenceLine.d.ts.map +1 -0
- package/dist/esm/components/Chart/CustomReferenceLine.js +23 -0
- package/dist/esm/components/Chart/GaugeChart.d.ts +11 -0
- package/dist/esm/components/Chart/GaugeChart.d.ts.map +1 -0
- package/dist/esm/components/Chart/GaugeChart.js +195 -0
- package/dist/esm/components/Chart/InternalChart.d.ts.map +1 -1
- package/dist/esm/components/Chart/InternalChart.js +14 -11
- package/dist/esm/components/Chart/LineChart.d.ts +5 -1
- package/dist/esm/components/Chart/LineChart.d.ts.map +1 -1
- package/dist/esm/components/Chart/LineChart.js +5 -4
- package/dist/esm/components/Chart/MapChart.d.ts +36 -0
- package/dist/esm/components/Chart/MapChart.d.ts.map +1 -0
- package/dist/esm/components/Chart/MapChart.js +541 -0
- package/dist/esm/components/Dashboard/DataLoader.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/DataLoader.js +114 -42
- package/dist/esm/components/Dashboard/MetricComponent.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/MetricComponent.js +57 -54
- package/dist/esm/components/Dashboard/TableComponent.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/TableComponent.js +5 -1
- package/dist/esm/components/QuillMultiSelectSectionList.js +5 -5
- package/dist/esm/components/QuillMultiSelectWithCombo.d.ts.map +1 -1
- package/dist/esm/components/QuillMultiSelectWithCombo.js +5 -4
- package/dist/esm/components/QuillSelectWithCombo.d.ts.map +1 -1
- package/dist/esm/components/QuillSelectWithCombo.js +12 -11
- package/dist/esm/components/ReportBuilder/AddColumnModal.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/AddColumnModal.js +2 -1
- package/dist/esm/components/ReportBuilder/FilterModal.js +14 -14
- package/dist/esm/components/ReportBuilder/FilterStack.d.ts +2 -1
- package/dist/esm/components/ReportBuilder/FilterStack.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/FilterStack.js +4 -4
- package/dist/esm/components/ReportBuilder/convert.d.ts +2 -0
- package/dist/esm/components/ReportBuilder/convert.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/convert.js +26 -7
- package/dist/esm/components/ReportBuilder/util.d.ts +1 -1
- package/dist/esm/components/ReportBuilder/util.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/util.js +15 -2
- package/dist/esm/components/UiComponents.d.ts +4 -1
- package/dist/esm/components/UiComponents.d.ts.map +1 -1
- package/dist/esm/components/UiComponents.js +29 -4
- package/dist/esm/hooks/useDashboard.d.ts.map +1 -1
- package/dist/esm/hooks/useDashboard.js +11 -9
- package/dist/esm/hooks/useExport.d.ts.map +1 -1
- package/dist/esm/hooks/useExport.js +19 -5
- package/dist/esm/hooks/useQuill.d.ts.map +1 -1
- package/dist/esm/hooks/useQuill.js +16 -3
- package/dist/esm/hooks/useReport.d.ts.map +1 -1
- package/dist/esm/hooks/useReport.js +1 -7
- package/dist/esm/hooks/useVirtualTables.d.ts +6 -2
- package/dist/esm/hooks/useVirtualTables.d.ts.map +1 -1
- package/dist/esm/hooks/useVirtualTables.js +6 -3
- package/dist/esm/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
- package/dist/esm/internals/ReportBuilder/PivotModal.js +6 -7
- package/dist/esm/models/Filter.d.ts +20 -13
- package/dist/esm/models/Filter.d.ts.map +1 -1
- package/dist/esm/models/Filter.js +160 -86
- package/dist/esm/models/Report.d.ts +12 -1
- package/dist/esm/models/Report.d.ts.map +1 -1
- package/dist/esm/models/Schema.d.ts +12 -1
- package/dist/esm/models/Schema.d.ts.map +1 -1
- package/dist/esm/utils/astFilterProcessing.js +23 -23
- package/dist/esm/utils/astProcessing.d.ts +2 -2
- package/dist/esm/utils/astProcessing.d.ts.map +1 -1
- package/dist/esm/utils/astProcessing.js +25 -6
- package/dist/esm/utils/axisFormatter.d.ts.map +1 -1
- package/dist/esm/utils/axisFormatter.js +25 -0
- package/dist/esm/utils/color.d.ts +159 -0
- package/dist/esm/utils/color.d.ts.map +1 -1
- package/dist/esm/utils/color.js +8 -2
- package/dist/esm/utils/columnProcessing.js +3 -3
- package/dist/esm/utils/constants.d.ts +1 -0
- package/dist/esm/utils/constants.d.ts.map +1 -1
- package/dist/esm/utils/constants.js +1 -0
- package/dist/esm/utils/dashboard.d.ts +13 -3
- package/dist/esm/utils/dashboard.d.ts.map +1 -1
- package/dist/esm/utils/dashboard.js +73 -16
- package/dist/esm/utils/dataFetcher.d.ts.map +1 -1
- package/dist/esm/utils/dataFetcher.js +3 -1
- package/dist/esm/utils/filterProcessing.d.ts.map +1 -1
- package/dist/esm/utils/filterProcessing.js +10 -10
- package/dist/esm/utils/getDomain.d.ts +4 -1
- package/dist/esm/utils/getDomain.d.ts.map +1 -1
- package/dist/esm/utils/getDomain.js +11 -1
- package/dist/esm/utils/pivotConstructor.d.ts.map +1 -1
- package/dist/esm/utils/pivotConstructor.js +7 -6
- package/dist/esm/utils/queryConstructor.d.ts +1 -1
- package/dist/esm/utils/queryConstructor.d.ts.map +1 -1
- package/dist/esm/utils/queryConstructor.js +71 -43
- package/dist/esm/utils/report.d.ts +23 -5
- package/dist/esm/utils/report.d.ts.map +1 -1
- package/dist/esm/utils/report.js +29 -9
- package/dist/esm/utils/schema.d.ts +26 -3
- package/dist/esm/utils/schema.d.ts.map +1 -1
- package/dist/esm/utils/schema.js +74 -43
- package/dist/esm/utils/tableProcessing.d.ts +10 -3
- package/dist/esm/utils/tableProcessing.d.ts.map +1 -1
- package/dist/esm/utils/tableProcessing.js +4 -6
- package/dist/esm/utils/textProcessing.d.ts.map +1 -1
- package/dist/esm/utils/textProcessing.js +0 -1
- package/package.json +8 -3
|
@@ -36,7 +36,16 @@ const constructReportFromItem = (item) => {
|
|
|
36
36
|
};
|
|
37
37
|
function filterValuesEquivalent(filters1, filters2) {
|
|
38
38
|
if (filters1.length !== filters2.length) {
|
|
39
|
-
return false
|
|
39
|
+
// Find the odd filters out and return false ONLY if they have a selected value
|
|
40
|
+
const filters1Labels = filters1.map((f) => f.label);
|
|
41
|
+
const filters2Labels = filters2.map((f) => f.label);
|
|
42
|
+
const oddFilters = filters1Labels.filter((label) => !filters2Labels.includes(label));
|
|
43
|
+
for (const filter of oddFilters) {
|
|
44
|
+
const filter1 = filters1.find((f) => f.label === filter);
|
|
45
|
+
if (filter1?.selectedValue) {
|
|
46
|
+
return false;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
40
49
|
}
|
|
41
50
|
// The two filters arrays aren't necessarily in the same order
|
|
42
51
|
// we can build two dictionaries of [label, filter] and compare them
|
|
@@ -130,6 +139,9 @@ function tenantsEquivalent(tenants1, tenants2) {
|
|
|
130
139
|
}
|
|
131
140
|
return true;
|
|
132
141
|
}
|
|
142
|
+
function customFieldsEquivalent(customFields1, customFields2) {
|
|
143
|
+
return (0, fast_deep_equal_1.default)(customFields1, customFields2);
|
|
144
|
+
}
|
|
133
145
|
function DataLoader({ item, children, filters, userFilters, additionalProcessing: defaultAdditionalProcessing, reportMode = false, }) {
|
|
134
146
|
const [client] = (0, react_1.useContext)(Context_1.ClientContext);
|
|
135
147
|
const [dashboard, dispatch] = (0, react_1.useContext)(Context_1.DashboardContext);
|
|
@@ -160,9 +172,10 @@ function DataLoader({ item, children, filters, userFilters, additionalProcessing
|
|
|
160
172
|
reportFilters,
|
|
161
173
|
dashboardFilters,
|
|
162
174
|
]);
|
|
163
|
-
const
|
|
164
|
-
const
|
|
165
|
-
const
|
|
175
|
+
const previousFilters = (0, react_1.useRef)(filters);
|
|
176
|
+
const previousUserFilters = (0, react_1.useRef)(userFilters);
|
|
177
|
+
const previousTenants = (0, react_1.useRef)(tenants);
|
|
178
|
+
const previousCustomFields = (0, react_1.useRef)(schemaData.customFields);
|
|
166
179
|
const [rowCountIsLoading, setRowCountIsLoading] = (0, react_1.useState)(false);
|
|
167
180
|
const rowsRequestId = (0, react_1.useRef)(0);
|
|
168
181
|
const rowsAbortController = (0, react_1.useRef)(null);
|
|
@@ -355,13 +368,22 @@ function DataLoader({ item, children, filters, userFilters, additionalProcessing
|
|
|
355
368
|
setLoading(true);
|
|
356
369
|
const fetchRowsRequestId = rowsRequestId.current + 1;
|
|
357
370
|
rowsRequestId.current = fetchRowsRequestId;
|
|
358
|
-
previousUserFilters.current = userFilters
|
|
371
|
+
previousUserFilters.current = userFilters;
|
|
359
372
|
rowsAbortController.current?.abort();
|
|
360
373
|
rowsAbortController.current = new AbortController();
|
|
361
374
|
try {
|
|
362
375
|
if (reportMode) {
|
|
363
376
|
try {
|
|
364
|
-
await fetchIndividualReport(
|
|
377
|
+
await fetchIndividualReport({
|
|
378
|
+
reportId: item.id,
|
|
379
|
+
initiator: 'Chart',
|
|
380
|
+
fetchRows: true,
|
|
381
|
+
dashboardFilters: filters,
|
|
382
|
+
customFilters: userFilters,
|
|
383
|
+
additionalProcessing: processing,
|
|
384
|
+
reportAbortController: rowsAbortController.current,
|
|
385
|
+
customFields: schemaData.customFields,
|
|
386
|
+
});
|
|
365
387
|
rowsAbortController.current = null;
|
|
366
388
|
setError(undefined);
|
|
367
389
|
}
|
|
@@ -370,7 +392,19 @@ function DataLoader({ item, children, filters, userFilters, additionalProcessing
|
|
|
370
392
|
}
|
|
371
393
|
}
|
|
372
394
|
else {
|
|
373
|
-
const { report: fetchedReport, error } = await (0, report_1.fetchReport)(
|
|
395
|
+
const { report: fetchedReport, error } = await (0, report_1.fetchReport)({
|
|
396
|
+
reportId: item.id,
|
|
397
|
+
client,
|
|
398
|
+
tenants,
|
|
399
|
+
flags,
|
|
400
|
+
useReportTask: true,
|
|
401
|
+
filters: filters.concat(userFilters ?? []),
|
|
402
|
+
additionalProcessing: processing,
|
|
403
|
+
customFields: schemaData.customFields,
|
|
404
|
+
rowsOnly: true,
|
|
405
|
+
rowCountOnly: false,
|
|
406
|
+
abortSignal: rowsAbortController.current.signal,
|
|
407
|
+
});
|
|
374
408
|
dispatch({
|
|
375
409
|
type: 'ADD_DASHBOARD_ITEM',
|
|
376
410
|
id: item.id,
|
|
@@ -405,23 +439,30 @@ function DataLoader({ item, children, filters, userFilters, additionalProcessing
|
|
|
405
439
|
// TODO: this is getting ridiculous
|
|
406
440
|
// we should be fetching this data directly when mutating filters/tenants rather than using a magical effect
|
|
407
441
|
(0, react_1.useEffect)(() => {
|
|
408
|
-
if (
|
|
409
|
-
(
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
if (!rowsAbortController.current)
|
|
442
|
+
if (schemaData.isSchemaLoading ||
|
|
443
|
+
(filterValuesEquivalent(previousFilters.current ?? contextFilters(), filters) &&
|
|
444
|
+
userFilterValuesEquivalent(previousUserFilters.current ?? [], userFilters ?? []) &&
|
|
445
|
+
tenantsEquivalent(previousTenants.current ?? [], tenants ?? []) &&
|
|
446
|
+
customFieldsEquivalent(previousCustomFields.current, schemaData.customFields) &&
|
|
447
|
+
((reportMode ? reports : dashboard)[item.id]?.rows?.length || rowsAbortController.current))) {
|
|
448
|
+
if (!rowsAbortController.current && !schemaData.isSchemaLoading)
|
|
415
449
|
setLoading(false);
|
|
416
|
-
previousFilters.current = filters;
|
|
417
450
|
return;
|
|
418
451
|
}
|
|
419
452
|
previousFilters.current = filters;
|
|
420
453
|
previousUserFilters.current = userFilters ?? [];
|
|
421
|
-
previousTenants.current = tenants
|
|
454
|
+
previousTenants.current = tenants;
|
|
455
|
+
previousCustomFields.current = schemaData.customFields;
|
|
422
456
|
setPreviousPage(0);
|
|
423
457
|
fetchReportHelper(additionalProcessing);
|
|
424
|
-
}, [
|
|
458
|
+
}, [
|
|
459
|
+
filters,
|
|
460
|
+
userFilters,
|
|
461
|
+
item.id,
|
|
462
|
+
tenants,
|
|
463
|
+
schemaData.customFields,
|
|
464
|
+
schemaData.isSchemaLoading,
|
|
465
|
+
]);
|
|
425
466
|
(0, react_1.useEffect)(() => {
|
|
426
467
|
const tempReport = (reportMode ? reports : dashboard)[item.id];
|
|
427
468
|
if (tempReport?.triggerReload) {
|
|
@@ -430,7 +471,7 @@ function DataLoader({ item, children, filters, userFilters, additionalProcessing
|
|
|
430
471
|
else if (tempReport?.error) {
|
|
431
472
|
setError(tempReport.error);
|
|
432
473
|
}
|
|
433
|
-
}, [(reportMode ? reports : dashboard)[item.id]]);
|
|
474
|
+
}, [(reportMode ? reports : dashboard)[item.id]?.triggerReload, (reportMode ? reports : dashboard)[item.id]?.error]);
|
|
434
475
|
return ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: children({
|
|
435
476
|
isLoading: loading,
|
|
436
477
|
error,
|
|
@@ -458,10 +499,11 @@ const ChartDataLoader = ({ item, children, dateBucket, additionalProcessing, fil
|
|
|
458
499
|
const [error, setError] = (0, react_1.useState)(undefined);
|
|
459
500
|
const [client] = (0, react_1.useContext)(Context_1.ClientContext);
|
|
460
501
|
const [schemaData] = (0, react_1.useContext)(Context_1.SchemaDataContext);
|
|
461
|
-
const previousFilters = (0, react_1.useRef)(
|
|
462
|
-
const previousUserFilters = (0, react_1.useRef)(
|
|
463
|
-
const previousDateBucket = (0, react_1.useRef)(
|
|
464
|
-
const previousTenants = (0, react_1.useRef)(
|
|
502
|
+
const previousFilters = (0, react_1.useRef)(filters);
|
|
503
|
+
const previousUserFilters = (0, react_1.useRef)(userFilters);
|
|
504
|
+
const previousDateBucket = (0, react_1.useRef)(dateBucket);
|
|
505
|
+
const previousTenants = (0, react_1.useRef)(tenants);
|
|
506
|
+
const previousCustomFields = (0, react_1.useRef)(schemaData.customFields);
|
|
465
507
|
const fetchReportAbortController = (0, react_1.useRef)(null);
|
|
466
508
|
const rowsRequestId = (0, react_1.useRef)(0);
|
|
467
509
|
const chartReport = (0, react_1.useMemo)(() => {
|
|
@@ -483,7 +525,7 @@ const ChartDataLoader = ({ item, children, dateBucket, additionalProcessing, fil
|
|
|
483
525
|
}
|
|
484
526
|
const fetchRowsRequestId = rowsRequestId.current + 1;
|
|
485
527
|
rowsRequestId.current = fetchRowsRequestId;
|
|
486
|
-
previousUserFilters.current = userFilters
|
|
528
|
+
previousUserFilters.current = userFilters;
|
|
487
529
|
previousDateBucket.current = dateBucket;
|
|
488
530
|
setLoading(true);
|
|
489
531
|
fetchReportAbortController.current?.abort();
|
|
@@ -491,10 +533,20 @@ const ChartDataLoader = ({ item, children, dateBucket, additionalProcessing, fil
|
|
|
491
533
|
try {
|
|
492
534
|
if (reportMode) {
|
|
493
535
|
try {
|
|
494
|
-
await fetchIndividualReport(
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
536
|
+
await fetchIndividualReport({
|
|
537
|
+
reportId: item.id,
|
|
538
|
+
initiator: 'Chart',
|
|
539
|
+
fetchRows: true,
|
|
540
|
+
dashboardFilters: filters,
|
|
541
|
+
customFilters: userFilters,
|
|
542
|
+
additionalProcessing: {
|
|
543
|
+
...additionalProcessing,
|
|
544
|
+
...{ page: paginationProcessing_1.DEFAULT_PAGINATION },
|
|
545
|
+
},
|
|
546
|
+
dateBucket,
|
|
547
|
+
reportAbortController: fetchReportAbortController.current,
|
|
548
|
+
customFields: schemaData.customFields,
|
|
549
|
+
});
|
|
498
550
|
setError(undefined);
|
|
499
551
|
}
|
|
500
552
|
catch (e) {
|
|
@@ -502,10 +554,21 @@ const ChartDataLoader = ({ item, children, dateBucket, additionalProcessing, fil
|
|
|
502
554
|
}
|
|
503
555
|
}
|
|
504
556
|
else {
|
|
505
|
-
const { report, error } = await (0, report_1.fetchReport)(
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
557
|
+
const { report, error } = await (0, report_1.fetchReport)({
|
|
558
|
+
reportId: item.id,
|
|
559
|
+
client,
|
|
560
|
+
tenants,
|
|
561
|
+
flags,
|
|
562
|
+
useReportTask,
|
|
563
|
+
filters: filters.concat(userFilters ?? []),
|
|
564
|
+
additionalProcessing: {
|
|
565
|
+
...additionalProcessing,
|
|
566
|
+
...{ page: paginationProcessing_1.DEFAULT_PAGINATION },
|
|
567
|
+
},
|
|
568
|
+
dateBucket,
|
|
569
|
+
customFields: schemaData.customFields,
|
|
570
|
+
abortSignal: fetchReportAbortController.current.signal,
|
|
571
|
+
});
|
|
509
572
|
dispatch({
|
|
510
573
|
type: 'ADD_DASHBOARD_ITEM',
|
|
511
574
|
id: item.id,
|
|
@@ -536,23 +599,32 @@ const ChartDataLoader = ({ item, children, dateBucket, additionalProcessing, fil
|
|
|
536
599
|
if (!filters) {
|
|
537
600
|
return;
|
|
538
601
|
}
|
|
539
|
-
if (
|
|
540
|
-
(
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
if (!fetchReportAbortController.current)
|
|
602
|
+
if (schemaData.isSchemaLoading ||
|
|
603
|
+
(filterValuesEquivalent(previousFilters.current ?? contextFilters(), filters) &&
|
|
604
|
+
userFilterValuesEquivalent(previousUserFilters.current ?? [], userFilters ?? []) &&
|
|
605
|
+
tenantsEquivalent(tenants ?? [], previousTenants.current ?? []) &&
|
|
606
|
+
previousDateBucket.current === dateBucket &&
|
|
607
|
+
customFieldsEquivalent(previousCustomFields.current, schemaData.customFields) &&
|
|
608
|
+
((reportMode ? reports : dashboard)[item.id]?.rows?.length || fetchReportAbortController.current))) {
|
|
609
|
+
if (!fetchReportAbortController.current && !schemaData.isSchemaLoading)
|
|
547
610
|
setLoading(false);
|
|
548
611
|
return;
|
|
549
612
|
}
|
|
550
613
|
previousDateBucket.current = dateBucket;
|
|
551
614
|
previousUserFilters.current = userFilters ?? [];
|
|
552
|
-
previousTenants.current = tenants
|
|
615
|
+
previousTenants.current = tenants;
|
|
553
616
|
previousFilters.current = filters;
|
|
617
|
+
previousCustomFields.current = schemaData.customFields;
|
|
554
618
|
fetchReportHelper();
|
|
555
|
-
}, [
|
|
619
|
+
}, [
|
|
620
|
+
filters,
|
|
621
|
+
userFilters,
|
|
622
|
+
item.id,
|
|
623
|
+
dateBucket,
|
|
624
|
+
tenants,
|
|
625
|
+
schemaData.customFields,
|
|
626
|
+
schemaData.isSchemaLoading,
|
|
627
|
+
]);
|
|
556
628
|
(0, react_1.useEffect)(() => {
|
|
557
629
|
const tempReport = (reportMode ? reports : dashboard)[item.id];
|
|
558
630
|
if (tempReport && tempReport.triggerReload) {
|
|
@@ -561,7 +633,7 @@ const ChartDataLoader = ({ item, children, dateBucket, additionalProcessing, fil
|
|
|
561
633
|
else if (tempReport?.error) {
|
|
562
634
|
setError(tempReport.error);
|
|
563
635
|
}
|
|
564
|
-
}, [(reportMode ? reports : dashboard)[item.id]]);
|
|
636
|
+
}, [(reportMode ? reports : dashboard)[item.id]?.triggerReload, (reportMode ? reports : dashboard)[item.id]?.error]);
|
|
565
637
|
return children({
|
|
566
638
|
isLoading: !chartReport || loading,
|
|
567
639
|
data: chartReport,
|
|
@@ -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;AAMnD,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,EAC3C,MAAM,EACN,OAAO,EACP,KAAK,EACL,SAAS,EACT,QAAQ,GACT,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;AAMnD,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,EAC3C,MAAM,EACN,OAAO,EACP,KAAK,EACL,SAAS,EACT,QAAQ,GACT,EAAE,gBAAgB,GAAG,GAAG,CAAC,OAAO,CA4HhC"}
|
|
@@ -20,7 +20,7 @@ function QuillMetricComponent({ report, onClick, error, isLoading, children, })
|
|
|
20
20
|
cursor: !onClick ? 'default' : 'pointer',
|
|
21
21
|
boxSizing: 'content-box',
|
|
22
22
|
borderRadius: 8,
|
|
23
|
-
paddingBottom:
|
|
23
|
+
paddingBottom: 0,
|
|
24
24
|
width: '100%',
|
|
25
25
|
}, children: (0, jsx_runtime_1.jsx)("div", { style: {
|
|
26
26
|
width: '100%',
|
|
@@ -76,58 +76,61 @@ function QuillMetricComponent({ report, onClick, error, isLoading, children, })
|
|
|
76
76
|
color: theme?.secondaryTextColor,
|
|
77
77
|
maxWidth: '100%',
|
|
78
78
|
width: '100%',
|
|
79
|
-
}, children: "No results" })) : ((0, jsx_runtime_1.jsx)(
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
79
|
+
}, children: "No results" })) : ((0, jsx_runtime_1.jsx)(MetricDisplay, { dateFilter: dateFilter, primaryMetricLabel: primaryMetricLabel, comparisonLabel: comparisonLabel, theme: theme, children: children }))] }) }) }, report?.name));
|
|
80
|
+
}
|
|
81
|
+
const MetricDisplay = ({ children, dateFilter, primaryMetricLabel, comparisonLabel, theme, }) => {
|
|
82
|
+
return (0, jsx_runtime_1.jsx)("div", { style: {
|
|
83
|
+
padding: 0,
|
|
84
|
+
height: '100%',
|
|
85
|
+
width: '100%',
|
|
86
|
+
boxSizing: 'content-box',
|
|
87
|
+
}, children: (0, jsx_runtime_1.jsxs)("div", { style: {
|
|
88
|
+
fontFamily: theme?.fontFamily,
|
|
89
|
+
fontSize: 32,
|
|
90
|
+
color: theme?.primaryTextColor,
|
|
91
|
+
fontWeight: '600',
|
|
92
|
+
textOverflow: 'ellipsis',
|
|
93
|
+
margin: 0,
|
|
94
|
+
whiteSpace: 'nowrap',
|
|
95
|
+
boxSizing: 'content-box',
|
|
96
|
+
maxWidth: '100%',
|
|
97
|
+
textAlign: 'left',
|
|
98
|
+
overflow: 'hidden',
|
|
99
|
+
height: '100%',
|
|
100
|
+
display: 'flex',
|
|
101
|
+
width: '100%',
|
|
102
|
+
flexDirection: 'row',
|
|
103
|
+
}, children: [(0, jsx_runtime_1.jsxs)("div", { style: {
|
|
104
|
+
display: 'flex',
|
|
105
|
+
gap: 4,
|
|
106
|
+
alignItems: 'baseline',
|
|
107
|
+
marginRight: 'auto',
|
|
108
|
+
}, children: [(0, jsx_runtime_1.jsx)("span", { children: children }), dateFilter?.comparison && ((0, jsx_runtime_1.jsx)("span", { style: {
|
|
109
|
+
fontSize: 13,
|
|
110
|
+
fontWeight: '500',
|
|
85
111
|
fontFamily: theme?.fontFamily,
|
|
86
|
-
fontSize: 32,
|
|
87
112
|
color: theme?.primaryTextColor,
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
? `in ${primaryMetricLabel.toLowerCase()}`
|
|
113
|
-
: 'this period' }))] }), dateFilter?.comparison && ((0, jsx_runtime_1.jsxs)("div", { style: {
|
|
114
|
-
display: 'flex',
|
|
115
|
-
gap: 4,
|
|
116
|
-
alignItems: 'baseline',
|
|
117
|
-
paddingTop: 4,
|
|
118
|
-
color: theme?.secondaryTextColor,
|
|
119
|
-
}, children: [(0, jsx_runtime_1.jsx)("span", { style: {
|
|
120
|
-
fontSize: 28,
|
|
121
|
-
fontWeight: '500',
|
|
122
|
-
fontFamily: theme?.fontFamily,
|
|
123
|
-
color: theme?.secondaryTextColor,
|
|
124
|
-
}, children: children }), (0, jsx_runtime_1.jsx)("span", { style: {
|
|
125
|
-
fontSize: 13,
|
|
126
|
-
fontWeight: '500',
|
|
127
|
-
fontFamily: theme?.fontFamily,
|
|
128
|
-
color: theme?.secondaryTextColor,
|
|
129
|
-
marginLeft: 2,
|
|
130
|
-
}, children: comparisonLabel
|
|
131
|
-
? 'in ' + comparisonLabel.toLowerCase()
|
|
132
|
-
: 'previous period' })] }))] }) }))] }) }) }, report?.name));
|
|
133
|
-
}
|
|
113
|
+
marginLeft: 2,
|
|
114
|
+
}, children: primaryMetricLabel
|
|
115
|
+
? `in ${primaryMetricLabel.toLowerCase()}`
|
|
116
|
+
: 'this period' }))] }), dateFilter?.comparison && ((0, jsx_runtime_1.jsxs)("div", { style: {
|
|
117
|
+
display: 'flex',
|
|
118
|
+
gap: 4,
|
|
119
|
+
alignItems: 'baseline',
|
|
120
|
+
paddingTop: 4,
|
|
121
|
+
color: theme?.secondaryTextColor,
|
|
122
|
+
}, children: [(0, jsx_runtime_1.jsx)("span", { style: {
|
|
123
|
+
fontSize: 28,
|
|
124
|
+
fontWeight: '500',
|
|
125
|
+
fontFamily: theme?.fontFamily,
|
|
126
|
+
color: theme?.secondaryTextColor,
|
|
127
|
+
}, children: children }), (0, jsx_runtime_1.jsx)("span", { style: {
|
|
128
|
+
fontSize: 13,
|
|
129
|
+
fontWeight: '500',
|
|
130
|
+
fontFamily: theme?.fontFamily,
|
|
131
|
+
color: theme?.secondaryTextColor,
|
|
132
|
+
marginLeft: 2,
|
|
133
|
+
}, children: comparisonLabel
|
|
134
|
+
? 'in ' + comparisonLabel.toLowerCase()
|
|
135
|
+
: 'previous period' })] }))] }) });
|
|
136
|
+
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableComponent.d.ts","sourceRoot":"","sources":["../../../../src/components/Dashboard/TableComponent.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAKlD,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,EAC1C,MAAM,EACN,OAAO,EACP,SAAS,EACT,KAAK,EACL,QAAQ,EACR,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,QAAQ,GACT,EAAE;IACD,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,CAAC;IACxC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IACpE,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,GAAG,GAAG,CAAC,OAAO,
|
|
1
|
+
{"version":3,"file":"TableComponent.d.ts","sourceRoot":"","sources":["../../../../src/components/Dashboard/TableComponent.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAKlD,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,EAC1C,MAAM,EACN,OAAO,EACP,SAAS,EACT,KAAK,EACL,QAAQ,EACR,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,QAAQ,GACT,EAAE;IACD,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,CAAC;IACxC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IACpE,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,GAAG,GAAG,CAAC,OAAO,CA0Gd"}
|
|
@@ -52,7 +52,11 @@ function QuillTableComponent({ report, onClick, isLoading, error, rowCount, rowC
|
|
|
52
52
|
} })) : error ? ((0, jsx_runtime_1.jsx)("div", { style: {
|
|
53
53
|
width: '100%',
|
|
54
54
|
height: '400px',
|
|
55
|
-
}, children: (0, jsx_runtime_1.jsx)(ChartError_1.default, { errorMessage: error }) })) : ((0, jsx_runtime_1.jsx)(QuillTable_1.default, { isLoading: isLoading, rows: report.rows ?? [], rowCount: rowCount, rowCountIsLoading: rowCountIsLoading, columns: report.
|
|
55
|
+
}, children: (0, jsx_runtime_1.jsx)(ChartError_1.default, { errorMessage: error }) })) : ((0, jsx_runtime_1.jsx)(QuillTable_1.default, { isLoading: isLoading, rows: report.rows ?? [], rowCount: rowCount, rowCountIsLoading: rowCountIsLoading, columns: report.includeCustomFields &&
|
|
56
|
+
report.columnsWithCustomFields &&
|
|
57
|
+
!report.pivot
|
|
58
|
+
? report.columnsWithCustomFields
|
|
59
|
+
: report.columns, rowsPerPage: report.pagination?.rowsPerPage ?? paginationProcessing_1.DEFAULT_PAGINATION.rowsPerPage, containerStyle: {
|
|
56
60
|
width: '100%',
|
|
57
61
|
height: '400px',
|
|
58
62
|
}, downloadCSV: () => {
|
|
@@ -225,7 +225,7 @@ function QuillMultiSelectSectionList({ options, width, onChange, label, sectionH
|
|
|
225
225
|
whiteSpace: 'nowrap',
|
|
226
226
|
overflow: 'hidden',
|
|
227
227
|
cursor: 'default',
|
|
228
|
-
}, children: emptyLabel ?? 'No options available' })] })), !isLoading ? Object.keys(filteredItems).map((key) => ((0, jsx_runtime_1.jsxs)(
|
|
228
|
+
}, children: emptyLabel ?? 'No options available' })] })), !isLoading ? Object.keys(filteredItems).map((key) => ((0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsxs)("button", { style: {
|
|
229
229
|
display: 'flex',
|
|
230
230
|
alignItems: 'center',
|
|
231
231
|
padding: 8,
|
|
@@ -244,8 +244,8 @@ function QuillMultiSelectSectionList({ options, width, onChange, label, sectionH
|
|
|
244
244
|
gap: 6,
|
|
245
245
|
overflow: 'hidden',
|
|
246
246
|
}, className: "quill-option", onClick: () => {
|
|
247
|
-
const updatedValue =
|
|
248
|
-
? [] :
|
|
247
|
+
const updatedValue = options[key]?.length === value[key]?.length
|
|
248
|
+
? [] : options[key]?.map((option) => option.value) ?? [];
|
|
249
249
|
const updatedChangeEvent = {
|
|
250
250
|
target: {
|
|
251
251
|
value: {
|
|
@@ -263,7 +263,7 @@ function QuillMultiSelectSectionList({ options, width, onChange, label, sectionH
|
|
|
263
263
|
.quill-option:hover {
|
|
264
264
|
background: #F4F4F5;
|
|
265
265
|
}
|
|
266
|
-
` }), (0, jsx_runtime_1.jsx)("input", { type: "checkbox", checked:
|
|
266
|
+
` }), (0, jsx_runtime_1.jsx)("input", { type: "checkbox", checked: options[key]?.length === value[key]?.length, style: { width: '14px', height: '14px', margin: 'auto 0' }, readOnly: true }), (0, jsx_runtime_1.jsx)("span", { style: {
|
|
267
267
|
textOverflow: 'ellipsis',
|
|
268
268
|
whiteSpace: 'nowrap',
|
|
269
269
|
overflow: 'hidden',
|
|
@@ -317,7 +317,7 @@ function QuillMultiSelectSectionList({ options, width, onChange, label, sectionH
|
|
|
317
317
|
textOverflow: 'ellipsis',
|
|
318
318
|
whiteSpace: 'nowrap',
|
|
319
319
|
overflow: 'hidden',
|
|
320
|
-
}, children: option.label })] }, "v-" + key + "-" + option.value)))] }))) : ((0, jsx_runtime_1.jsx)("div", { children: (0, jsx_runtime_1.jsx)(UiComponents_1.LoadingSpinner, {}) }))] }))] }));
|
|
320
|
+
}, children: option.label })] }, "v-" + key + "-" + option.value)))] }, 'sp-' + key))) : ((0, jsx_runtime_1.jsx)("div", { children: (0, jsx_runtime_1.jsx)(UiComponents_1.LoadingSpinner, {}) }))] }))] }));
|
|
321
321
|
}
|
|
322
322
|
const ListboxTextInput = ({ value, onChange, placeholder, }) => {
|
|
323
323
|
return ((0, jsx_runtime_1.jsxs)("div", { style: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QuillMultiSelectWithCombo.d.ts","sourceRoot":"","sources":["../../../src/components/QuillMultiSelectWithCombo.tsx"],"names":[],"mappings":"AACA,OAAO,EAAkB,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAC3E,OAAc,EAEZ,aAAa,EAMd,MAAM,OAAO,CAAC;AAGf;;GAEG;AACH,wBAAgB,kCAAkC,CAAC,EACjD,OAAO,EACP,KAAK,EACL,QAAQ,EACR,KAAK,EACL,KAAK,EACL,SAAS,EACT,QAAQ,EACR,UAAU,EACV,gBAAgB,EAChB,KAAK,GACN,EAAE,yBAAyB,GAAG;IAAE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,aAAa,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"QuillMultiSelectWithCombo.d.ts","sourceRoot":"","sources":["../../../src/components/QuillMultiSelectWithCombo.tsx"],"names":[],"mappings":"AACA,OAAO,EAAkB,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAC3E,OAAc,EAEZ,aAAa,EAMd,MAAM,OAAO,CAAC;AAGf;;GAEG;AACH,wBAAgB,kCAAkC,CAAC,EACjD,OAAO,EACP,KAAK,EACL,QAAQ,EACR,KAAK,EACL,KAAK,EACL,SAAS,EACT,QAAQ,EACR,UAAU,EACV,gBAAgB,EAChB,KAAK,GACN,EAAE,yBAAyB,GAAG;IAAE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,aAAa,CAAA;CAAE,2CA6flF;AAED,eAAO,MAAM,gBAAgB,sCAI1B;IACD,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9B,WAAW,EAAE,MAAM,CAAC;CACrB,4CAwDA,CAAC"}
|
|
@@ -130,9 +130,6 @@ function QuillMultiSelectComponentWithCombo({ options, width, onChange, label, v
|
|
|
130
130
|
// FIXME: Hacked this to display selected options that have been filtered out, which is good
|
|
131
131
|
// But they don't have their proper labels, since we haven't stored/passed in the label
|
|
132
132
|
const filteredItems = react_1.default.useMemo(() => {
|
|
133
|
-
const uuidRegex = /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$/;
|
|
134
|
-
const isUuid = potentialOptions?.[0]?.value?.toString()?.match(uuidRegex);
|
|
135
|
-
const isNumber = !isNaN(parseInt(potentialOptions?.[0]?.value ?? ''));
|
|
136
133
|
// Sort null to top
|
|
137
134
|
if (searchQuery === '') {
|
|
138
135
|
return potentialOptions
|
|
@@ -147,16 +144,20 @@ function QuillMultiSelectComponentWithCombo({ options, width, onChange, label, v
|
|
|
147
144
|
})
|
|
148
145
|
.slice(0, 20);
|
|
149
146
|
}
|
|
147
|
+
const uuidRegex = /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$/;
|
|
148
|
+
const isUuid = potentialOptions?.[0]?.value?.toString()?.match(uuidRegex);
|
|
149
|
+
const isNumber = typeof potentialOptions?.[0]?.value === 'number';
|
|
150
150
|
return potentialOptions
|
|
151
151
|
.filter((option) => {
|
|
152
152
|
if (!option) {
|
|
153
153
|
return false;
|
|
154
154
|
}
|
|
155
155
|
return option.label
|
|
156
|
+
.toString()
|
|
156
157
|
.toLowerCase()
|
|
157
158
|
.replace(/\s+/g, '')
|
|
158
159
|
.includes(searchQuery.toLowerCase().replace(/\s+/g, ''))
|
|
159
|
-
|| (isNumber || isUuid ? option.value
|
|
160
|
+
|| (isNumber || isUuid ? option.value.toString()
|
|
160
161
|
.toLowerCase()
|
|
161
162
|
.replace(/\s+/g, '')
|
|
162
163
|
.includes(searchQuery.toLowerCase().replace(/\s+/g, '')) : false);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QuillSelectWithCombo.d.ts","sourceRoot":"","sources":["../../../src/components/QuillSelectWithCombo.tsx"],"names":[],"mappings":"AACA,OAAO,EAAkB,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAWtE;;GAEG;AACH,wBAAgB,6BAA6B,CAAC,EAC5C,OAAO,EACP,KAAK,EACL,KAAK,EACL,QAAQ,EACR,KAAK,EACL,SAAS,EACT,eAAe,EACf,QAAQ,GACT,EAAE,oBAAoB,
|
|
1
|
+
{"version":3,"file":"QuillSelectWithCombo.d.ts","sourceRoot":"","sources":["../../../src/components/QuillSelectWithCombo.tsx"],"names":[],"mappings":"AACA,OAAO,EAAkB,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAWtE;;GAEG;AACH,wBAAgB,6BAA6B,CAAC,EAC5C,OAAO,EACP,KAAK,EACL,KAAK,EACL,QAAQ,EACR,KAAK,EACL,SAAS,EACT,eAAe,EACf,QAAQ,GACT,EAAE,oBAAoB,2CA+StB"}
|
|
@@ -52,13 +52,9 @@ function QuillSelectComponentWithCombo({ options, value, width, onChange, label,
|
|
|
52
52
|
// FIXME: Hacked this to display the option that has been filtered out, which is good
|
|
53
53
|
// But it doesn't have its proper label, since we haven't stored/passed in the label
|
|
54
54
|
const filteredItems = react_1.default.useMemo(() => {
|
|
55
|
-
const optionValues = new Set(options.map((opt) => opt.value));
|
|
56
55
|
// Sort null to top
|
|
57
56
|
if (searchQuery === '') {
|
|
58
|
-
return
|
|
59
|
-
? []
|
|
60
|
-
: [{ label: value === '' ? '-' : (value ?? '-'), value: value ?? '' }])
|
|
61
|
-
.concat(options)
|
|
57
|
+
return options
|
|
62
58
|
.sort((a, b) => {
|
|
63
59
|
if (a.value === null) {
|
|
64
60
|
return -1;
|
|
@@ -70,18 +66,23 @@ function QuillSelectComponentWithCombo({ options, value, width, onChange, label,
|
|
|
70
66
|
})
|
|
71
67
|
.slice(0, 20);
|
|
72
68
|
}
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
69
|
+
const uuidRegex = /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$/;
|
|
70
|
+
const isUuid = options?.[0]?.value?.toString()?.match(uuidRegex);
|
|
71
|
+
const isNumber = typeof options?.[0]?.value === 'number';
|
|
72
|
+
return options
|
|
77
73
|
.filter((option) => {
|
|
78
74
|
if (!option) {
|
|
79
75
|
return false;
|
|
80
76
|
}
|
|
81
|
-
return option.
|
|
77
|
+
return option.label
|
|
78
|
+
.toString()
|
|
82
79
|
.toLowerCase()
|
|
83
80
|
.replace(/\s+/g, '')
|
|
84
|
-
.includes(searchQuery.toLowerCase().replace(/\s+/g, ''))
|
|
81
|
+
.includes(searchQuery.toLowerCase().replace(/\s+/g, ''))
|
|
82
|
+
|| (isNumber || isUuid ? option.value.toString()
|
|
83
|
+
.toLowerCase()
|
|
84
|
+
.replace(/\s+/g, '')
|
|
85
|
+
.includes(searchQuery.toLowerCase().replace(/\s+/g, '')) : false);
|
|
85
86
|
})
|
|
86
87
|
.sort((a, b) => {
|
|
87
88
|
if (a.value === null) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AddColumnModal.d.ts","sourceRoot":"","sources":["../../../../src/components/ReportBuilder/AddColumnModal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAiB3D,OAAO,EAGL,uBAAuB,EACxB,MAAM,iBAAiB,CAAC;AAGzB,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EACrC,MAAM,EACN,kBAAkB,EAClB,qBAAqB,EACrB,eAAe,EACf,kBAAkB,EAClB,oBAAoB,EACpB,aAAa,EACb,YAAY,EACZ,OAAO,EACP,UAAU,EACV,KAAK,EACL,gBAAgB,EAChB,UAAU,EACV,YAAY,EACZ,QAAQ,EACR,aAAa,EACb,kBAAkB,EAClB,YAAY,EACZ,eAAe,EACf,MAAM,EACN,sBAAoD,EACpD,gBAAwC,GACzC,EAAE;IACD,MAAM,EAAE,GAAG,CAAC;IACZ,kBAAkB,EAAE,GAAG,CAAC;IACxB,qBAAqB,EAAE,GAAG,CAAC;IAC3B,eAAe,EAAE,GAAG,CAAC;IACrB,kBAAkB,EAAE,GAAG,CAAC;IACxB,oBAAoB,EAAE,GAAG,CAAC;IAC1B,aAAa,EAAE,GAAG,CAAC;IACnB,YAAY,EAAE,GAAG,CAAC;IAClB,OAAO,EAAE,GAAG,CAAC;IACb,UAAU,EAAE,GAAG,CAAC;IAChB,KAAK,EAAE,GAAG,CAAC;IACX,gBAAgB,EAAE,GAAG,CAAC;IACtB,UAAU,EAAE,GAAG,CAAC;IAChB,YAAY,EAAE,GAAG,CAAC;IAClB,QAAQ,EAAE,GAAG,CAAC;IACd,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,kBAAkB,EACd,CAAC,CAAC,KAAK,EAAE,uBAAuB,KAAK,GAAG,CAAC,OAAO,CAAC,GACjD,KAAK,CAAC,yBAAyB,CAC7B,uBAAuB,GAAG,KAAK,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAChE,CAAC;IACN,YAAY,EAAE,CAAC,KAAK,EAAE;QACpB,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,OAAO,CAAC;QACpB,WAAW,EAAE,MAAM,IAAI,CAAC;QACxB,UAAU,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE;YAAE,QAAQ,EAAE,MAAM,GAAG,CAAC,OAAO,CAAA;SAAE,KAAK,GAAG,CAAC,OAAO,CAAC;KAC5E,KAAK,GAAG,CAAC,OAAO,CAAC;IAClB,eAAe,EAAE,GAAG,CAAC;IACrB,MAAM,EAAE,GAAG,CAAC;IACZ,sBAAsB,EAAE,MAAM,GAAG,CAAC,OAAO,CAAC;IAC1C,gBAAgB,EAAE,MAAM,GAAG,CAAC,OAAO,CAAC;CACrC,
|
|
1
|
+
{"version":3,"file":"AddColumnModal.d.ts","sourceRoot":"","sources":["../../../../src/components/ReportBuilder/AddColumnModal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAiB3D,OAAO,EAGL,uBAAuB,EACxB,MAAM,iBAAiB,CAAC;AAGzB,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EACrC,MAAM,EACN,kBAAkB,EAClB,qBAAqB,EACrB,eAAe,EACf,kBAAkB,EAClB,oBAAoB,EACpB,aAAa,EACb,YAAY,EACZ,OAAO,EACP,UAAU,EACV,KAAK,EACL,gBAAgB,EAChB,UAAU,EACV,YAAY,EACZ,QAAQ,EACR,aAAa,EACb,kBAAkB,EAClB,YAAY,EACZ,eAAe,EACf,MAAM,EACN,sBAAoD,EACpD,gBAAwC,GACzC,EAAE;IACD,MAAM,EAAE,GAAG,CAAC;IACZ,kBAAkB,EAAE,GAAG,CAAC;IACxB,qBAAqB,EAAE,GAAG,CAAC;IAC3B,eAAe,EAAE,GAAG,CAAC;IACrB,kBAAkB,EAAE,GAAG,CAAC;IACxB,oBAAoB,EAAE,GAAG,CAAC;IAC1B,aAAa,EAAE,GAAG,CAAC;IACnB,YAAY,EAAE,GAAG,CAAC;IAClB,OAAO,EAAE,GAAG,CAAC;IACb,UAAU,EAAE,GAAG,CAAC;IAChB,KAAK,EAAE,GAAG,CAAC;IACX,gBAAgB,EAAE,GAAG,CAAC;IACtB,UAAU,EAAE,GAAG,CAAC;IAChB,YAAY,EAAE,GAAG,CAAC;IAClB,QAAQ,EAAE,GAAG,CAAC;IACd,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,kBAAkB,EACd,CAAC,CAAC,KAAK,EAAE,uBAAuB,KAAK,GAAG,CAAC,OAAO,CAAC,GACjD,KAAK,CAAC,yBAAyB,CAC7B,uBAAuB,GAAG,KAAK,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAChE,CAAC;IACN,YAAY,EAAE,CAAC,KAAK,EAAE;QACpB,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,OAAO,CAAC;QACpB,WAAW,EAAE,MAAM,IAAI,CAAC;QACxB,UAAU,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE;YAAE,QAAQ,EAAE,MAAM,GAAG,CAAC,OAAO,CAAA;SAAE,KAAK,GAAG,CAAC,OAAO,CAAC;KAC5E,KAAK,GAAG,CAAC,OAAO,CAAC;IAClB,eAAe,EAAE,GAAG,CAAC;IACrB,MAAM,EAAE,GAAG,CAAC;IACZ,sBAAsB,EAAE,MAAM,GAAG,CAAC,OAAO,CAAC;IAC1C,gBAAgB,EAAE,MAAM,GAAG,CAAC,OAAO,CAAC;CACrC,2CAsNA"}
|
|
@@ -89,7 +89,8 @@ function AddColumnModal({ onSave, orderedColumnNames, setOrderedColumnNames, sel
|
|
|
89
89
|
let tableName = initialTableName;
|
|
90
90
|
const orderedSelectedColumns = [];
|
|
91
91
|
for (const value of orderedColumnNames) {
|
|
92
|
-
const [table,
|
|
92
|
+
const [table, ...rest] = value.split('.');
|
|
93
|
+
const column = rest.join('.');
|
|
93
94
|
if (selectedColumns.includes(value)) {
|
|
94
95
|
tableName = table;
|
|
95
96
|
orderedSelectedColumns.push(column);
|