@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
|
@@ -29,7 +29,16 @@ const constructReportFromItem = (item) => {
|
|
|
29
29
|
};
|
|
30
30
|
function filterValuesEquivalent(filters1, filters2) {
|
|
31
31
|
if (filters1.length !== filters2.length) {
|
|
32
|
-
return false
|
|
32
|
+
// Find the odd filters out and return false ONLY if they have a selected value
|
|
33
|
+
const filters1Labels = filters1.map((f) => f.label);
|
|
34
|
+
const filters2Labels = filters2.map((f) => f.label);
|
|
35
|
+
const oddFilters = filters1Labels.filter((label) => !filters2Labels.includes(label));
|
|
36
|
+
for (const filter of oddFilters) {
|
|
37
|
+
const filter1 = filters1.find((f) => f.label === filter);
|
|
38
|
+
if (filter1?.selectedValue) {
|
|
39
|
+
return false;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
33
42
|
}
|
|
34
43
|
// The two filters arrays aren't necessarily in the same order
|
|
35
44
|
// we can build two dictionaries of [label, filter] and compare them
|
|
@@ -123,6 +132,9 @@ function tenantsEquivalent(tenants1, tenants2) {
|
|
|
123
132
|
}
|
|
124
133
|
return true;
|
|
125
134
|
}
|
|
135
|
+
function customFieldsEquivalent(customFields1, customFields2) {
|
|
136
|
+
return equal(customFields1, customFields2);
|
|
137
|
+
}
|
|
126
138
|
export default function DataLoader({ item, children, filters, userFilters, additionalProcessing: defaultAdditionalProcessing, reportMode = false, }) {
|
|
127
139
|
const [client] = useContext(ClientContext);
|
|
128
140
|
const [dashboard, dispatch] = useContext(DashboardContext);
|
|
@@ -153,9 +165,10 @@ export default function DataLoader({ item, children, filters, userFilters, addit
|
|
|
153
165
|
reportFilters,
|
|
154
166
|
dashboardFilters,
|
|
155
167
|
]);
|
|
156
|
-
const
|
|
157
|
-
const
|
|
158
|
-
const
|
|
168
|
+
const previousFilters = useRef(filters);
|
|
169
|
+
const previousUserFilters = useRef(userFilters);
|
|
170
|
+
const previousTenants = useRef(tenants);
|
|
171
|
+
const previousCustomFields = useRef(schemaData.customFields);
|
|
159
172
|
const [rowCountIsLoading, setRowCountIsLoading] = useState(false);
|
|
160
173
|
const rowsRequestId = useRef(0);
|
|
161
174
|
const rowsAbortController = useRef(null);
|
|
@@ -348,13 +361,22 @@ export default function DataLoader({ item, children, filters, userFilters, addit
|
|
|
348
361
|
setLoading(true);
|
|
349
362
|
const fetchRowsRequestId = rowsRequestId.current + 1;
|
|
350
363
|
rowsRequestId.current = fetchRowsRequestId;
|
|
351
|
-
previousUserFilters.current = userFilters
|
|
364
|
+
previousUserFilters.current = userFilters;
|
|
352
365
|
rowsAbortController.current?.abort();
|
|
353
366
|
rowsAbortController.current = new AbortController();
|
|
354
367
|
try {
|
|
355
368
|
if (reportMode) {
|
|
356
369
|
try {
|
|
357
|
-
await fetchIndividualReport(
|
|
370
|
+
await fetchIndividualReport({
|
|
371
|
+
reportId: item.id,
|
|
372
|
+
initiator: 'Chart',
|
|
373
|
+
fetchRows: true,
|
|
374
|
+
dashboardFilters: filters,
|
|
375
|
+
customFilters: userFilters,
|
|
376
|
+
additionalProcessing: processing,
|
|
377
|
+
reportAbortController: rowsAbortController.current,
|
|
378
|
+
customFields: schemaData.customFields,
|
|
379
|
+
});
|
|
358
380
|
rowsAbortController.current = null;
|
|
359
381
|
setError(undefined);
|
|
360
382
|
}
|
|
@@ -363,7 +385,19 @@ export default function DataLoader({ item, children, filters, userFilters, addit
|
|
|
363
385
|
}
|
|
364
386
|
}
|
|
365
387
|
else {
|
|
366
|
-
const { report: fetchedReport, error } = await fetchReport(
|
|
388
|
+
const { report: fetchedReport, error } = await fetchReport({
|
|
389
|
+
reportId: item.id,
|
|
390
|
+
client,
|
|
391
|
+
tenants,
|
|
392
|
+
flags,
|
|
393
|
+
useReportTask: true,
|
|
394
|
+
filters: filters.concat(userFilters ?? []),
|
|
395
|
+
additionalProcessing: processing,
|
|
396
|
+
customFields: schemaData.customFields,
|
|
397
|
+
rowsOnly: true,
|
|
398
|
+
rowCountOnly: false,
|
|
399
|
+
abortSignal: rowsAbortController.current.signal,
|
|
400
|
+
});
|
|
367
401
|
dispatch({
|
|
368
402
|
type: 'ADD_DASHBOARD_ITEM',
|
|
369
403
|
id: item.id,
|
|
@@ -398,23 +432,30 @@ export default function DataLoader({ item, children, filters, userFilters, addit
|
|
|
398
432
|
// TODO: this is getting ridiculous
|
|
399
433
|
// we should be fetching this data directly when mutating filters/tenants rather than using a magical effect
|
|
400
434
|
useEffect(() => {
|
|
401
|
-
if (
|
|
402
|
-
(
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
if (!rowsAbortController.current)
|
|
435
|
+
if (schemaData.isSchemaLoading ||
|
|
436
|
+
(filterValuesEquivalent(previousFilters.current ?? contextFilters(), filters) &&
|
|
437
|
+
userFilterValuesEquivalent(previousUserFilters.current ?? [], userFilters ?? []) &&
|
|
438
|
+
tenantsEquivalent(previousTenants.current ?? [], tenants ?? []) &&
|
|
439
|
+
customFieldsEquivalent(previousCustomFields.current, schemaData.customFields) &&
|
|
440
|
+
((reportMode ? reports : dashboard)[item.id]?.rows?.length || rowsAbortController.current))) {
|
|
441
|
+
if (!rowsAbortController.current && !schemaData.isSchemaLoading)
|
|
408
442
|
setLoading(false);
|
|
409
|
-
previousFilters.current = filters;
|
|
410
443
|
return;
|
|
411
444
|
}
|
|
412
445
|
previousFilters.current = filters;
|
|
413
446
|
previousUserFilters.current = userFilters ?? [];
|
|
414
|
-
previousTenants.current = tenants
|
|
447
|
+
previousTenants.current = tenants;
|
|
448
|
+
previousCustomFields.current = schemaData.customFields;
|
|
415
449
|
setPreviousPage(0);
|
|
416
450
|
fetchReportHelper(additionalProcessing);
|
|
417
|
-
}, [
|
|
451
|
+
}, [
|
|
452
|
+
filters,
|
|
453
|
+
userFilters,
|
|
454
|
+
item.id,
|
|
455
|
+
tenants,
|
|
456
|
+
schemaData.customFields,
|
|
457
|
+
schemaData.isSchemaLoading,
|
|
458
|
+
]);
|
|
418
459
|
useEffect(() => {
|
|
419
460
|
const tempReport = (reportMode ? reports : dashboard)[item.id];
|
|
420
461
|
if (tempReport?.triggerReload) {
|
|
@@ -423,7 +464,7 @@ export default function DataLoader({ item, children, filters, userFilters, addit
|
|
|
423
464
|
else if (tempReport?.error) {
|
|
424
465
|
setError(tempReport.error);
|
|
425
466
|
}
|
|
426
|
-
}, [(reportMode ? reports : dashboard)[item.id]]);
|
|
467
|
+
}, [(reportMode ? reports : dashboard)[item.id]?.triggerReload, (reportMode ? reports : dashboard)[item.id]?.error]);
|
|
427
468
|
return (_jsx(_Fragment, { children: children({
|
|
428
469
|
isLoading: loading,
|
|
429
470
|
error,
|
|
@@ -451,10 +492,11 @@ export const ChartDataLoader = ({ item, children, dateBucket, additionalProcessi
|
|
|
451
492
|
const [error, setError] = useState(undefined);
|
|
452
493
|
const [client] = useContext(ClientContext);
|
|
453
494
|
const [schemaData] = useContext(SchemaDataContext);
|
|
454
|
-
const previousFilters = useRef(
|
|
455
|
-
const previousUserFilters = useRef(
|
|
456
|
-
const previousDateBucket = useRef(
|
|
457
|
-
const previousTenants = useRef(
|
|
495
|
+
const previousFilters = useRef(filters);
|
|
496
|
+
const previousUserFilters = useRef(userFilters);
|
|
497
|
+
const previousDateBucket = useRef(dateBucket);
|
|
498
|
+
const previousTenants = useRef(tenants);
|
|
499
|
+
const previousCustomFields = useRef(schemaData.customFields);
|
|
458
500
|
const fetchReportAbortController = useRef(null);
|
|
459
501
|
const rowsRequestId = useRef(0);
|
|
460
502
|
const chartReport = useMemo(() => {
|
|
@@ -476,7 +518,7 @@ export const ChartDataLoader = ({ item, children, dateBucket, additionalProcessi
|
|
|
476
518
|
}
|
|
477
519
|
const fetchRowsRequestId = rowsRequestId.current + 1;
|
|
478
520
|
rowsRequestId.current = fetchRowsRequestId;
|
|
479
|
-
previousUserFilters.current = userFilters
|
|
521
|
+
previousUserFilters.current = userFilters;
|
|
480
522
|
previousDateBucket.current = dateBucket;
|
|
481
523
|
setLoading(true);
|
|
482
524
|
fetchReportAbortController.current?.abort();
|
|
@@ -484,10 +526,20 @@ export const ChartDataLoader = ({ item, children, dateBucket, additionalProcessi
|
|
|
484
526
|
try {
|
|
485
527
|
if (reportMode) {
|
|
486
528
|
try {
|
|
487
|
-
await fetchIndividualReport(
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
529
|
+
await fetchIndividualReport({
|
|
530
|
+
reportId: item.id,
|
|
531
|
+
initiator: 'Chart',
|
|
532
|
+
fetchRows: true,
|
|
533
|
+
dashboardFilters: filters,
|
|
534
|
+
customFilters: userFilters,
|
|
535
|
+
additionalProcessing: {
|
|
536
|
+
...additionalProcessing,
|
|
537
|
+
...{ page: DEFAULT_PAGINATION },
|
|
538
|
+
},
|
|
539
|
+
dateBucket,
|
|
540
|
+
reportAbortController: fetchReportAbortController.current,
|
|
541
|
+
customFields: schemaData.customFields,
|
|
542
|
+
});
|
|
491
543
|
setError(undefined);
|
|
492
544
|
}
|
|
493
545
|
catch (e) {
|
|
@@ -495,10 +547,21 @@ export const ChartDataLoader = ({ item, children, dateBucket, additionalProcessi
|
|
|
495
547
|
}
|
|
496
548
|
}
|
|
497
549
|
else {
|
|
498
|
-
const { report, error } = await fetchReport(
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
550
|
+
const { report, error } = await fetchReport({
|
|
551
|
+
reportId: item.id,
|
|
552
|
+
client,
|
|
553
|
+
tenants,
|
|
554
|
+
flags,
|
|
555
|
+
useReportTask,
|
|
556
|
+
filters: filters.concat(userFilters ?? []),
|
|
557
|
+
additionalProcessing: {
|
|
558
|
+
...additionalProcessing,
|
|
559
|
+
...{ page: DEFAULT_PAGINATION },
|
|
560
|
+
},
|
|
561
|
+
dateBucket,
|
|
562
|
+
customFields: schemaData.customFields,
|
|
563
|
+
abortSignal: fetchReportAbortController.current.signal,
|
|
564
|
+
});
|
|
502
565
|
dispatch({
|
|
503
566
|
type: 'ADD_DASHBOARD_ITEM',
|
|
504
567
|
id: item.id,
|
|
@@ -529,23 +592,32 @@ export const ChartDataLoader = ({ item, children, dateBucket, additionalProcessi
|
|
|
529
592
|
if (!filters) {
|
|
530
593
|
return;
|
|
531
594
|
}
|
|
532
|
-
if (
|
|
533
|
-
(
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
if (!fetchReportAbortController.current)
|
|
595
|
+
if (schemaData.isSchemaLoading ||
|
|
596
|
+
(filterValuesEquivalent(previousFilters.current ?? contextFilters(), filters) &&
|
|
597
|
+
userFilterValuesEquivalent(previousUserFilters.current ?? [], userFilters ?? []) &&
|
|
598
|
+
tenantsEquivalent(tenants ?? [], previousTenants.current ?? []) &&
|
|
599
|
+
previousDateBucket.current === dateBucket &&
|
|
600
|
+
customFieldsEquivalent(previousCustomFields.current, schemaData.customFields) &&
|
|
601
|
+
((reportMode ? reports : dashboard)[item.id]?.rows?.length || fetchReportAbortController.current))) {
|
|
602
|
+
if (!fetchReportAbortController.current && !schemaData.isSchemaLoading)
|
|
540
603
|
setLoading(false);
|
|
541
604
|
return;
|
|
542
605
|
}
|
|
543
606
|
previousDateBucket.current = dateBucket;
|
|
544
607
|
previousUserFilters.current = userFilters ?? [];
|
|
545
|
-
previousTenants.current = tenants
|
|
608
|
+
previousTenants.current = tenants;
|
|
546
609
|
previousFilters.current = filters;
|
|
610
|
+
previousCustomFields.current = schemaData.customFields;
|
|
547
611
|
fetchReportHelper();
|
|
548
|
-
}, [
|
|
612
|
+
}, [
|
|
613
|
+
filters,
|
|
614
|
+
userFilters,
|
|
615
|
+
item.id,
|
|
616
|
+
dateBucket,
|
|
617
|
+
tenants,
|
|
618
|
+
schemaData.customFields,
|
|
619
|
+
schemaData.isSchemaLoading,
|
|
620
|
+
]);
|
|
549
621
|
useEffect(() => {
|
|
550
622
|
const tempReport = (reportMode ? reports : dashboard)[item.id];
|
|
551
623
|
if (tempReport && tempReport.triggerReload) {
|
|
@@ -554,7 +626,7 @@ export const ChartDataLoader = ({ item, children, dateBucket, additionalProcessi
|
|
|
554
626
|
else if (tempReport?.error) {
|
|
555
627
|
setError(tempReport.error);
|
|
556
628
|
}
|
|
557
|
-
}, [(reportMode ? reports : dashboard)[item.id]]);
|
|
629
|
+
}, [(reportMode ? reports : dashboard)[item.id]?.triggerReload, (reportMode ? reports : dashboard)[item.id]?.error]);
|
|
558
630
|
return children({
|
|
559
631
|
isLoading: !chartReport || loading,
|
|
560
632
|
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"}
|
|
@@ -14,7 +14,7 @@ export default function QuillMetricComponent({ report, onClick, error, isLoading
|
|
|
14
14
|
cursor: !onClick ? 'default' : 'pointer',
|
|
15
15
|
boxSizing: 'content-box',
|
|
16
16
|
borderRadius: 8,
|
|
17
|
-
paddingBottom:
|
|
17
|
+
paddingBottom: 0,
|
|
18
18
|
width: '100%',
|
|
19
19
|
}, children: _jsx("div", { style: {
|
|
20
20
|
width: '100%',
|
|
@@ -70,58 +70,61 @@ export default function QuillMetricComponent({ report, onClick, error, isLoading
|
|
|
70
70
|
color: theme?.secondaryTextColor,
|
|
71
71
|
maxWidth: '100%',
|
|
72
72
|
width: '100%',
|
|
73
|
-
}, children: "No results" })) : (_jsx(
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
73
|
+
}, children: "No results" })) : (_jsx(MetricDisplay, { dateFilter: dateFilter, primaryMetricLabel: primaryMetricLabel, comparisonLabel: comparisonLabel, theme: theme, children: children }))] }) }) }, report?.name));
|
|
74
|
+
}
|
|
75
|
+
const MetricDisplay = ({ children, dateFilter, primaryMetricLabel, comparisonLabel, theme, }) => {
|
|
76
|
+
return _jsx("div", { style: {
|
|
77
|
+
padding: 0,
|
|
78
|
+
height: '100%',
|
|
79
|
+
width: '100%',
|
|
80
|
+
boxSizing: 'content-box',
|
|
81
|
+
}, children: _jsxs("div", { style: {
|
|
82
|
+
fontFamily: theme?.fontFamily,
|
|
83
|
+
fontSize: 32,
|
|
84
|
+
color: theme?.primaryTextColor,
|
|
85
|
+
fontWeight: '600',
|
|
86
|
+
textOverflow: 'ellipsis',
|
|
87
|
+
margin: 0,
|
|
88
|
+
whiteSpace: 'nowrap',
|
|
89
|
+
boxSizing: 'content-box',
|
|
90
|
+
maxWidth: '100%',
|
|
91
|
+
textAlign: 'left',
|
|
92
|
+
overflow: 'hidden',
|
|
93
|
+
height: '100%',
|
|
94
|
+
display: 'flex',
|
|
95
|
+
width: '100%',
|
|
96
|
+
flexDirection: 'row',
|
|
97
|
+
}, children: [_jsxs("div", { style: {
|
|
98
|
+
display: 'flex',
|
|
99
|
+
gap: 4,
|
|
100
|
+
alignItems: 'baseline',
|
|
101
|
+
marginRight: 'auto',
|
|
102
|
+
}, children: [_jsx("span", { children: children }), dateFilter?.comparison && (_jsx("span", { style: {
|
|
103
|
+
fontSize: 13,
|
|
104
|
+
fontWeight: '500',
|
|
79
105
|
fontFamily: theme?.fontFamily,
|
|
80
|
-
fontSize: 32,
|
|
81
106
|
color: theme?.primaryTextColor,
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
? `in ${primaryMetricLabel.toLowerCase()}`
|
|
107
|
-
: 'this period' }))] }), dateFilter?.comparison && (_jsxs("div", { style: {
|
|
108
|
-
display: 'flex',
|
|
109
|
-
gap: 4,
|
|
110
|
-
alignItems: 'baseline',
|
|
111
|
-
paddingTop: 4,
|
|
112
|
-
color: theme?.secondaryTextColor,
|
|
113
|
-
}, children: [_jsx("span", { style: {
|
|
114
|
-
fontSize: 28,
|
|
115
|
-
fontWeight: '500',
|
|
116
|
-
fontFamily: theme?.fontFamily,
|
|
117
|
-
color: theme?.secondaryTextColor,
|
|
118
|
-
}, children: children }), _jsx("span", { style: {
|
|
119
|
-
fontSize: 13,
|
|
120
|
-
fontWeight: '500',
|
|
121
|
-
fontFamily: theme?.fontFamily,
|
|
122
|
-
color: theme?.secondaryTextColor,
|
|
123
|
-
marginLeft: 2,
|
|
124
|
-
}, children: comparisonLabel
|
|
125
|
-
? 'in ' + comparisonLabel.toLowerCase()
|
|
126
|
-
: 'previous period' })] }))] }) }))] }) }) }, report?.name));
|
|
127
|
-
}
|
|
107
|
+
marginLeft: 2,
|
|
108
|
+
}, children: primaryMetricLabel
|
|
109
|
+
? `in ${primaryMetricLabel.toLowerCase()}`
|
|
110
|
+
: 'this period' }))] }), dateFilter?.comparison && (_jsxs("div", { style: {
|
|
111
|
+
display: 'flex',
|
|
112
|
+
gap: 4,
|
|
113
|
+
alignItems: 'baseline',
|
|
114
|
+
paddingTop: 4,
|
|
115
|
+
color: theme?.secondaryTextColor,
|
|
116
|
+
}, children: [_jsx("span", { style: {
|
|
117
|
+
fontSize: 28,
|
|
118
|
+
fontWeight: '500',
|
|
119
|
+
fontFamily: theme?.fontFamily,
|
|
120
|
+
color: theme?.secondaryTextColor,
|
|
121
|
+
}, children: children }), _jsx("span", { style: {
|
|
122
|
+
fontSize: 13,
|
|
123
|
+
fontWeight: '500',
|
|
124
|
+
fontFamily: theme?.fontFamily,
|
|
125
|
+
color: theme?.secondaryTextColor,
|
|
126
|
+
marginLeft: 2,
|
|
127
|
+
}, children: comparisonLabel
|
|
128
|
+
? 'in ' + comparisonLabel.toLowerCase()
|
|
129
|
+
: 'previous period' })] }))] }) });
|
|
130
|
+
};
|
|
@@ -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"}
|
|
@@ -46,7 +46,11 @@ export default function QuillTableComponent({ report, onClick, isLoading, error,
|
|
|
46
46
|
} })) : error ? (_jsx("div", { style: {
|
|
47
47
|
width: '100%',
|
|
48
48
|
height: '400px',
|
|
49
|
-
}, children: _jsx(ChartError, { errorMessage: error }) })) : (_jsx(QuillTable, { isLoading: isLoading, rows: report.rows ?? [], rowCount: rowCount, rowCountIsLoading: rowCountIsLoading, columns: report.
|
|
49
|
+
}, children: _jsx(ChartError, { errorMessage: error }) })) : (_jsx(QuillTable, { isLoading: isLoading, rows: report.rows ?? [], rowCount: rowCount, rowCountIsLoading: rowCountIsLoading, columns: report.includeCustomFields &&
|
|
50
|
+
report.columnsWithCustomFields &&
|
|
51
|
+
!report.pivot
|
|
52
|
+
? report.columnsWithCustomFields
|
|
53
|
+
: report.columns, rowsPerPage: report.pagination?.rowsPerPage ?? DEFAULT_PAGINATION.rowsPerPage, containerStyle: {
|
|
50
54
|
width: '100%',
|
|
51
55
|
height: '400px',
|
|
52
56
|
}, downloadCSV: () => {
|
|
@@ -188,7 +188,7 @@ export function QuillMultiSelectSectionList({ options, width, onChange, label, s
|
|
|
188
188
|
whiteSpace: 'nowrap',
|
|
189
189
|
overflow: 'hidden',
|
|
190
190
|
cursor: 'default',
|
|
191
|
-
}, children: emptyLabel ?? 'No options available' })] })), !isLoading ? Object.keys(filteredItems).map((key) => (_jsxs(
|
|
191
|
+
}, children: emptyLabel ?? 'No options available' })] })), !isLoading ? Object.keys(filteredItems).map((key) => (_jsxs("div", { children: [_jsxs("button", { style: {
|
|
192
192
|
display: 'flex',
|
|
193
193
|
alignItems: 'center',
|
|
194
194
|
padding: 8,
|
|
@@ -207,8 +207,8 @@ export function QuillMultiSelectSectionList({ options, width, onChange, label, s
|
|
|
207
207
|
gap: 6,
|
|
208
208
|
overflow: 'hidden',
|
|
209
209
|
}, className: "quill-option", onClick: () => {
|
|
210
|
-
const updatedValue =
|
|
211
|
-
? [] :
|
|
210
|
+
const updatedValue = options[key]?.length === value[key]?.length
|
|
211
|
+
? [] : options[key]?.map((option) => option.value) ?? [];
|
|
212
212
|
const updatedChangeEvent = {
|
|
213
213
|
target: {
|
|
214
214
|
value: {
|
|
@@ -226,7 +226,7 @@ export function QuillMultiSelectSectionList({ options, width, onChange, label, s
|
|
|
226
226
|
.quill-option:hover {
|
|
227
227
|
background: #F4F4F5;
|
|
228
228
|
}
|
|
229
|
-
` }), _jsx("input", { type: "checkbox", checked:
|
|
229
|
+
` }), _jsx("input", { type: "checkbox", checked: options[key]?.length === value[key]?.length, style: { width: '14px', height: '14px', margin: 'auto 0' }, readOnly: true }), _jsx("span", { style: {
|
|
230
230
|
textOverflow: 'ellipsis',
|
|
231
231
|
whiteSpace: 'nowrap',
|
|
232
232
|
overflow: 'hidden',
|
|
@@ -280,7 +280,7 @@ export function QuillMultiSelectSectionList({ options, width, onChange, label, s
|
|
|
280
280
|
textOverflow: 'ellipsis',
|
|
281
281
|
whiteSpace: 'nowrap',
|
|
282
282
|
overflow: 'hidden',
|
|
283
|
-
}, children: option.label })] }, "v-" + key + "-" + option.value)))] }))) : (_jsx("div", { children: _jsx(LoadingSpinner, {}) }))] }))] }));
|
|
283
|
+
}, children: option.label })] }, "v-" + key + "-" + option.value)))] }, 'sp-' + key))) : (_jsx("div", { children: _jsx(LoadingSpinner, {}) }))] }))] }));
|
|
284
284
|
}
|
|
285
285
|
export const ListboxTextInput = ({ value, onChange, placeholder, }) => {
|
|
286
286
|
return (_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"}
|
|
@@ -93,9 +93,6 @@ export function QuillMultiSelectComponentWithCombo({ options, width, onChange, l
|
|
|
93
93
|
// FIXME: Hacked this to display selected options that have been filtered out, which is good
|
|
94
94
|
// But they don't have their proper labels, since we haven't stored/passed in the label
|
|
95
95
|
const filteredItems = React.useMemo(() => {
|
|
96
|
-
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}$/;
|
|
97
|
-
const isUuid = potentialOptions?.[0]?.value?.toString()?.match(uuidRegex);
|
|
98
|
-
const isNumber = !isNaN(parseInt(potentialOptions?.[0]?.value ?? ''));
|
|
99
96
|
// Sort null to top
|
|
100
97
|
if (searchQuery === '') {
|
|
101
98
|
return potentialOptions
|
|
@@ -110,16 +107,20 @@ export function QuillMultiSelectComponentWithCombo({ options, width, onChange, l
|
|
|
110
107
|
})
|
|
111
108
|
.slice(0, 20);
|
|
112
109
|
}
|
|
110
|
+
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}$/;
|
|
111
|
+
const isUuid = potentialOptions?.[0]?.value?.toString()?.match(uuidRegex);
|
|
112
|
+
const isNumber = typeof potentialOptions?.[0]?.value === 'number';
|
|
113
113
|
return potentialOptions
|
|
114
114
|
.filter((option) => {
|
|
115
115
|
if (!option) {
|
|
116
116
|
return false;
|
|
117
117
|
}
|
|
118
118
|
return option.label
|
|
119
|
+
.toString()
|
|
119
120
|
.toLowerCase()
|
|
120
121
|
.replace(/\s+/g, '')
|
|
121
122
|
.includes(searchQuery.toLowerCase().replace(/\s+/g, ''))
|
|
122
|
-
|| (isNumber || isUuid ? option.value
|
|
123
|
+
|| (isNumber || isUuid ? option.value.toString()
|
|
123
124
|
.toLowerCase()
|
|
124
125
|
.replace(/\s+/g, '')
|
|
125
126
|
.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"}
|
|
@@ -16,13 +16,9 @@ export function QuillSelectComponentWithCombo({ options, value, width, onChange,
|
|
|
16
16
|
// FIXME: Hacked this to display the option that has been filtered out, which is good
|
|
17
17
|
// But it doesn't have its proper label, since we haven't stored/passed in the label
|
|
18
18
|
const filteredItems = React.useMemo(() => {
|
|
19
|
-
const optionValues = new Set(options.map((opt) => opt.value));
|
|
20
19
|
// Sort null to top
|
|
21
20
|
if (searchQuery === '') {
|
|
22
|
-
return
|
|
23
|
-
? []
|
|
24
|
-
: [{ label: value === '' ? '-' : (value ?? '-'), value: value ?? '' }])
|
|
25
|
-
.concat(options)
|
|
21
|
+
return options
|
|
26
22
|
.sort((a, b) => {
|
|
27
23
|
if (a.value === null) {
|
|
28
24
|
return -1;
|
|
@@ -34,18 +30,23 @@ export function QuillSelectComponentWithCombo({ options, value, width, onChange,
|
|
|
34
30
|
})
|
|
35
31
|
.slice(0, 20);
|
|
36
32
|
}
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
33
|
+
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}$/;
|
|
34
|
+
const isUuid = options?.[0]?.value?.toString()?.match(uuidRegex);
|
|
35
|
+
const isNumber = typeof options?.[0]?.value === 'number';
|
|
36
|
+
return options
|
|
41
37
|
.filter((option) => {
|
|
42
38
|
if (!option) {
|
|
43
39
|
return false;
|
|
44
40
|
}
|
|
45
|
-
return option.
|
|
41
|
+
return option.label
|
|
42
|
+
.toString()
|
|
46
43
|
.toLowerCase()
|
|
47
44
|
.replace(/\s+/g, '')
|
|
48
|
-
.includes(searchQuery.toLowerCase().replace(/\s+/g, ''))
|
|
45
|
+
.includes(searchQuery.toLowerCase().replace(/\s+/g, ''))
|
|
46
|
+
|| (isNumber || isUuid ? option.value.toString()
|
|
47
|
+
.toLowerCase()
|
|
48
|
+
.replace(/\s+/g, '')
|
|
49
|
+
.includes(searchQuery.toLowerCase().replace(/\s+/g, '')) : false);
|
|
49
50
|
})
|
|
50
51
|
.sort((a, b) => {
|
|
51
52
|
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"}
|
|
@@ -86,7 +86,8 @@ export default function AddColumnModal({ onSave, orderedColumnNames, setOrderedC
|
|
|
86
86
|
let tableName = initialTableName;
|
|
87
87
|
const orderedSelectedColumns = [];
|
|
88
88
|
for (const value of orderedColumnNames) {
|
|
89
|
-
const [table,
|
|
89
|
+
const [table, ...rest] = value.split('.');
|
|
90
|
+
const column = rest.join('.');
|
|
90
91
|
if (selectedColumns.includes(value)) {
|
|
91
92
|
tableName = table;
|
|
92
93
|
orderedSelectedColumns.push(column);
|