@quillsql/react 2.13.45 → 2.13.47
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 +3 -1
- package/dist/cjs/Chart.d.ts.map +1 -1
- package/dist/cjs/Chart.js +27 -30
- package/dist/cjs/ChartBuilder.d.ts +1 -2
- package/dist/cjs/ChartBuilder.d.ts.map +1 -1
- package/dist/cjs/ChartBuilder.js +46 -26
- package/dist/cjs/ChartEditor.d.ts +1 -1
- package/dist/cjs/ChartEditor.d.ts.map +1 -1
- package/dist/cjs/ChartEditor.js +6 -8
- package/dist/cjs/Context.d.ts +18 -6
- package/dist/cjs/Context.d.ts.map +1 -1
- package/dist/cjs/Context.js +98 -54
- package/dist/cjs/Dashboard.d.ts.map +1 -1
- package/dist/cjs/Dashboard.js +67 -17
- package/dist/cjs/ReportBuilder.d.ts.map +1 -1
- package/dist/cjs/ReportBuilder.js +201 -76
- package/dist/cjs/Table.d.ts.map +1 -1
- package/dist/cjs/Table.js +3 -3
- package/dist/cjs/components/Chart/BarChart.d.ts.map +1 -1
- package/dist/cjs/components/Chart/BarChart.js +1 -2
- package/dist/cjs/components/Chart/GaugeChart.js +1 -1
- package/dist/cjs/components/Chart/LineChart.js +1 -1
- package/dist/cjs/components/Chart/MapChart.js +1 -1
- package/dist/cjs/components/Chart/PieChart.js +1 -1
- package/dist/cjs/components/Dashboard/DashboardFilter.js +6 -4
- package/dist/cjs/components/Dashboard/DashboardSection.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/DashboardSection.js +0 -1
- package/dist/cjs/components/Dashboard/DashboardSectionContainer.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/DashboardSectionContainer.js +0 -1
- 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 +108 -139
- package/dist/cjs/components/QuillTable.d.ts.map +1 -1
- package/dist/cjs/components/QuillTable.js +61 -59
- package/dist/cjs/components/ReportBuilder/AddColumnModal.d.ts +4 -1
- package/dist/cjs/components/ReportBuilder/AddColumnModal.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/AddColumnModal.js +59 -63
- package/dist/cjs/components/ReportBuilder/schema.d.ts +7 -0
- package/dist/cjs/components/ReportBuilder/schema.d.ts.map +1 -1
- package/dist/cjs/components/UiComponents.d.ts.map +1 -1
- package/dist/cjs/components/UiComponents.js +11 -3
- package/dist/cjs/hooks/useDashboard.d.ts +23 -2
- package/dist/cjs/hooks/useDashboard.d.ts.map +1 -1
- package/dist/cjs/hooks/useDashboard.js +133 -3
- package/dist/cjs/hooks/useExport.js +3 -3
- package/dist/cjs/hooks/useQuill.d.ts.map +1 -1
- package/dist/cjs/hooks/useQuill.js +8 -7
- package/dist/cjs/hooks/useReport.d.ts.map +1 -1
- package/dist/cjs/hooks/useReport.js +13 -12
- 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/models/Client.d.ts +1 -0
- package/dist/cjs/models/Client.d.ts.map +1 -1
- package/dist/cjs/models/Dashboard.d.ts +5 -1
- package/dist/cjs/models/Dashboard.d.ts.map +1 -1
- package/dist/cjs/models/Filter.d.ts.map +1 -1
- package/dist/cjs/models/Filter.js +0 -2
- package/dist/cjs/models/Report.d.ts +1 -2
- package/dist/cjs/models/Report.d.ts.map +1 -1
- package/dist/cjs/utils/client.d.ts.map +1 -1
- package/dist/cjs/utils/dashboard.js +1 -1
- package/dist/cjs/utils/report.d.ts.map +1 -1
- package/dist/cjs/utils/report.js +2 -2
- package/dist/cjs/utils/reportBuilder.d.ts +11 -2
- package/dist/cjs/utils/reportBuilder.d.ts.map +1 -1
- package/dist/cjs/utils/reportBuilder.js +127 -1
- package/dist/cjs/utils/schema.d.ts +2 -7
- package/dist/cjs/utils/schema.d.ts.map +1 -1
- package/dist/cjs/utils/schema.js +4 -0
- package/dist/esm/Chart.d.ts +3 -1
- package/dist/esm/Chart.d.ts.map +1 -1
- package/dist/esm/Chart.js +28 -31
- package/dist/esm/ChartBuilder.d.ts +1 -2
- package/dist/esm/ChartBuilder.d.ts.map +1 -1
- package/dist/esm/ChartBuilder.js +47 -27
- package/dist/esm/ChartEditor.d.ts +1 -1
- package/dist/esm/ChartEditor.d.ts.map +1 -1
- package/dist/esm/ChartEditor.js +7 -9
- package/dist/esm/Context.d.ts +18 -6
- package/dist/esm/Context.d.ts.map +1 -1
- package/dist/esm/Context.js +100 -56
- package/dist/esm/Dashboard.d.ts.map +1 -1
- package/dist/esm/Dashboard.js +67 -17
- package/dist/esm/ReportBuilder.d.ts.map +1 -1
- package/dist/esm/ReportBuilder.js +206 -81
- package/dist/esm/Table.d.ts.map +1 -1
- package/dist/esm/Table.js +3 -3
- package/dist/esm/components/Chart/BarChart.d.ts.map +1 -1
- package/dist/esm/components/Chart/BarChart.js +1 -2
- package/dist/esm/components/Chart/GaugeChart.js +1 -1
- package/dist/esm/components/Chart/LineChart.js +1 -1
- package/dist/esm/components/Chart/MapChart.js +1 -1
- package/dist/esm/components/Chart/PieChart.js +1 -1
- package/dist/esm/components/Dashboard/DashboardFilter.js +6 -4
- package/dist/esm/components/Dashboard/DashboardSection.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/DashboardSection.js +0 -1
- package/dist/esm/components/Dashboard/DashboardSectionContainer.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/DashboardSectionContainer.js +0 -1
- 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 +109 -140
- package/dist/esm/components/QuillTable.d.ts.map +1 -1
- package/dist/esm/components/QuillTable.js +61 -59
- package/dist/esm/components/ReportBuilder/AddColumnModal.d.ts +4 -1
- package/dist/esm/components/ReportBuilder/AddColumnModal.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/AddColumnModal.js +59 -63
- package/dist/esm/components/ReportBuilder/schema.d.ts +7 -0
- package/dist/esm/components/ReportBuilder/schema.d.ts.map +1 -1
- package/dist/esm/components/UiComponents.d.ts.map +1 -1
- package/dist/esm/components/UiComponents.js +11 -3
- package/dist/esm/hooks/useDashboard.d.ts +23 -2
- package/dist/esm/hooks/useDashboard.d.ts.map +1 -1
- package/dist/esm/hooks/useDashboard.js +131 -3
- package/dist/esm/hooks/useExport.js +4 -4
- package/dist/esm/hooks/useQuill.d.ts.map +1 -1
- package/dist/esm/hooks/useQuill.js +9 -8
- package/dist/esm/hooks/useReport.d.ts.map +1 -1
- package/dist/esm/hooks/useReport.js +14 -13
- 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/models/Client.d.ts +1 -0
- package/dist/esm/models/Client.d.ts.map +1 -1
- package/dist/esm/models/Dashboard.d.ts +5 -1
- package/dist/esm/models/Dashboard.d.ts.map +1 -1
- package/dist/esm/models/Filter.d.ts.map +1 -1
- package/dist/esm/models/Filter.js +0 -2
- package/dist/esm/models/Report.d.ts +1 -2
- package/dist/esm/models/Report.d.ts.map +1 -1
- package/dist/esm/utils/client.d.ts.map +1 -1
- package/dist/esm/utils/dashboard.js +1 -1
- package/dist/esm/utils/report.d.ts.map +1 -1
- package/dist/esm/utils/report.js +2 -2
- package/dist/esm/utils/reportBuilder.d.ts +11 -2
- package/dist/esm/utils/reportBuilder.d.ts.map +1 -1
- package/dist/esm/utils/reportBuilder.js +124 -0
- package/dist/esm/utils/schema.d.ts +2 -7
- package/dist/esm/utils/schema.d.ts.map +1 -1
- package/dist/esm/utils/schema.js +4 -0
- package/package.json +1 -1
|
@@ -37,6 +37,9 @@ const DraggableColumns_1 = __importDefault(require("./components/ReportBuilder/D
|
|
|
37
37
|
const AddColumnModal_1 = __importDefault(require("./components/ReportBuilder/AddColumnModal"));
|
|
38
38
|
const reportBuilder_1 = require("./utils/reportBuilder");
|
|
39
39
|
const dataFetcher_1 = require("./utils/dataFetcher");
|
|
40
|
+
const useDashboard_2 = require("./hooks/useDashboard");
|
|
41
|
+
const schema_1 = require("./utils/schema");
|
|
42
|
+
const filterProcessing_1 = require("./utils/filterProcessing");
|
|
40
43
|
/**
|
|
41
44
|
* Quill Report Builder
|
|
42
45
|
*
|
|
@@ -108,7 +111,7 @@ function ReportBuilder({ initialTableName = '', onSubmitEditReport = () => void
|
|
|
108
111
|
// isChartBuilderHorizontalView: whether the chart builder is in horizontal view mode
|
|
109
112
|
// onClickChartElement: a callback function triggered when a chart element is clicked
|
|
110
113
|
// Contexts
|
|
111
|
-
const
|
|
114
|
+
const { dashboardReports: dashboard } = (0, useDashboard_2.useDashboardReports)(destinationDashboard);
|
|
112
115
|
const [schemaData] = (0, react_1.useContext)(Context_1.SchemaDataContext);
|
|
113
116
|
const { dashboards } = (0, useDashboard_1.useDashboards)();
|
|
114
117
|
const destinationDashboardConfig = (0, react_1.useMemo)(() => {
|
|
@@ -120,7 +123,10 @@ function ReportBuilder({ initialTableName = '', onSubmitEditReport = () => void
|
|
|
120
123
|
table.ownerTenantFields?.length === 0 ||
|
|
121
124
|
table.ownerTenantFields?.includes(destinationDashboardConfig?.tenantKeys?.[0] ?? ''));
|
|
122
125
|
});
|
|
123
|
-
}, [
|
|
126
|
+
}, [
|
|
127
|
+
schemaData.schemaWithCustomFields,
|
|
128
|
+
destinationDashboardConfig?.tenantKeys,
|
|
129
|
+
]);
|
|
124
130
|
const { tenants } = (0, react_1.useContext)(Context_1.TenantContext);
|
|
125
131
|
const [theme] = (0, react_1.useContext)(Context_1.ThemeContext);
|
|
126
132
|
const [client] = (0, react_1.useContext)(Context_1.ClientContext);
|
|
@@ -143,6 +149,7 @@ function ReportBuilder({ initialTableName = '', onSubmitEditReport = () => void
|
|
|
143
149
|
const [errorMessage, setErrorMessage] = (0, react_1.useState)('');
|
|
144
150
|
const [unresolvedReportMessage, setUnresolvedReportMessage] = (0, react_1.useState)('');
|
|
145
151
|
// Core Report states
|
|
152
|
+
// Table order matters for joins. For now, assumed to have one 'primary' table (the first one)
|
|
146
153
|
const [tables, setTables] = (0, react_1.useState)([]);
|
|
147
154
|
const [columns, setColumns] = (0, react_1.useState)([]);
|
|
148
155
|
const [filterStack, setFilterStack] = (0, react_1.useState)([]);
|
|
@@ -159,10 +166,12 @@ function ReportBuilder({ initialTableName = '', onSubmitEditReport = () => void
|
|
|
159
166
|
limit,
|
|
160
167
|
};
|
|
161
168
|
}, [columns, filterStack, limit, pivot, sort, tables]);
|
|
162
|
-
|
|
169
|
+
// For undo/redo
|
|
163
170
|
const [stateStack, setStateStack] = (0, react_1.useState)([]);
|
|
171
|
+
const [poppedStateStack, setPoppedStateStack] = (0, react_1.useState)([]);
|
|
164
172
|
// Other Report states
|
|
165
173
|
const [activeQuery, setActiveQuery] = (0, react_1.useState)('');
|
|
174
|
+
const [queryOutOfSync, setQueryOutOfSync] = (0, react_1.useState)(false);
|
|
166
175
|
const [unfilteredUniqueValues, setUnfilteredUniqueValues] = (0, react_1.useState)({}); // unique values before filtering
|
|
167
176
|
const [unfilteredUniqueValuesIsLoading, setUnfilteredUniqueValuesIsLoading] = (0, react_1.useState)(false);
|
|
168
177
|
const [filteredUniqueValues, setFilteredUniqueValues] = (0, react_1.useState)(null); // unique values after filtering
|
|
@@ -225,8 +234,8 @@ function ReportBuilder({ initialTableName = '', onSubmitEditReport = () => void
|
|
|
225
234
|
if (tables.length === 1) {
|
|
226
235
|
// Check if all columns are selected
|
|
227
236
|
const totalColumnLength = tables.reduce((acc, table) => {
|
|
228
|
-
const tableColumns = filteredSchema.find((t) => t.name === table.name)
|
|
229
|
-
|
|
237
|
+
const tableColumns = filteredSchema.find((t) => t.name === table.name)?.columns.length ??
|
|
238
|
+
0;
|
|
230
239
|
return acc + tableColumns;
|
|
231
240
|
}, 0);
|
|
232
241
|
return totalColumnLength === columns.length;
|
|
@@ -245,11 +254,22 @@ function ReportBuilder({ initialTableName = '', onSubmitEditReport = () => void
|
|
|
245
254
|
return 'Please add a limit.';
|
|
246
255
|
}
|
|
247
256
|
}, [client, limit, pivot]);
|
|
257
|
+
const foreignKeyMap = (0, react_1.useMemo)(() => {
|
|
258
|
+
return (0, schema_1.getSchemaForeignKeyMapping)(filteredSchema);
|
|
259
|
+
}, [filteredSchema]);
|
|
248
260
|
// State changing functions
|
|
249
|
-
const clearAllState = () => {
|
|
261
|
+
const clearAllState = (resetStateStack = true) => {
|
|
250
262
|
setActiveQuery('');
|
|
251
|
-
|
|
252
|
-
|
|
263
|
+
setQueryOutOfSync(false);
|
|
264
|
+
handleMultiStateChange({
|
|
265
|
+
state: ReportBuilder_1.EMPTY_REPORT_BUILDER_STATE,
|
|
266
|
+
fetchData: false,
|
|
267
|
+
updateStateStack: true,
|
|
268
|
+
});
|
|
269
|
+
if (resetStateStack) {
|
|
270
|
+
setStateStack([]);
|
|
271
|
+
setPoppedStateStack([]);
|
|
272
|
+
}
|
|
253
273
|
setFilteredUniqueValues(null);
|
|
254
274
|
setUnfilteredUniqueValues({});
|
|
255
275
|
setColumnUniqueValues({});
|
|
@@ -292,54 +312,99 @@ function ReportBuilder({ initialTableName = '', onSubmitEditReport = () => void
|
|
|
292
312
|
...prevStack,
|
|
293
313
|
{ ...reportBuilderState, tables: newTables },
|
|
294
314
|
]);
|
|
315
|
+
setPoppedStateStack([]);
|
|
295
316
|
}
|
|
296
317
|
};
|
|
297
|
-
const handleColumnsChange = (newColumns, fetchData, updateStateStack = true) => {
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
if (
|
|
306
|
-
|
|
318
|
+
const handleColumnsChange = (newColumns, fetchData, updateStateStack = true, bypassConfirmation = false) => {
|
|
319
|
+
const validReportBuilderState = bypassConfirmation
|
|
320
|
+
? { ...reportBuilderState, columns: newColumns }
|
|
321
|
+
: (0, reportBuilder_1.validatedReportBuilderState)({
|
|
322
|
+
...reportBuilderState,
|
|
323
|
+
columns: newColumns,
|
|
324
|
+
}, foreignKeyMap);
|
|
325
|
+
if (validReportBuilderState.tables.length === 0 && !bypassConfirmation) {
|
|
326
|
+
if (!confirm('Removing all columns will clear all state. Are you sure you want to continue?')) {
|
|
327
|
+
return;
|
|
307
328
|
}
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
if (agg.valueField2) {
|
|
314
|
-
referencedColumns.push(agg.valueField2);
|
|
315
|
-
}
|
|
329
|
+
else {
|
|
330
|
+
handleMultiStateChange({
|
|
331
|
+
state: ReportBuilder_1.EMPTY_REPORT_BUILDER_STATE,
|
|
332
|
+
fetchData: false,
|
|
333
|
+
updateStateStack: true,
|
|
316
334
|
});
|
|
335
|
+
return;
|
|
317
336
|
}
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
337
|
+
}
|
|
338
|
+
const tablesAffected = tables.length - validReportBuilderState.tables.length >= 2;
|
|
339
|
+
const filtersAffected = validReportBuilderState.filterStack.length !== filterStack.length;
|
|
340
|
+
const deletedTables = tables
|
|
341
|
+
.filter((table) => {
|
|
342
|
+
return !validReportBuilderState.tables.some((t) => t.name === table.name);
|
|
343
|
+
})
|
|
344
|
+
.map((table) => table.name);
|
|
345
|
+
const deletedFilters = filterStack
|
|
346
|
+
.filter((filter) => filter.value)
|
|
347
|
+
.filter((filter) => {
|
|
348
|
+
return deletedTables.some((table) => table === filter.value.table);
|
|
349
|
+
})
|
|
350
|
+
.map((filter) => (0, filterProcessing_1.filterSentence)(filter.value));
|
|
351
|
+
if (tablesAffected && filtersAffected) {
|
|
352
|
+
if (!confirm(`Removing this column will remove the following table${deletedTables.length > 1 ? 's' : ''}:
|
|
353
|
+
${deletedTables.join(', ')}.
|
|
354
|
+
It will also remove the following filter${deletedFilters.length > 1 ? 's' : ''}:
|
|
355
|
+
${deletedFilters.join(', ')}.
|
|
356
|
+
Are you sure you want to continue?
|
|
357
|
+
`
|
|
358
|
+
.replace(/\s+/g, ' ')
|
|
359
|
+
.trim())) {
|
|
360
|
+
return;
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
else if (tablesAffected) {
|
|
364
|
+
if (!confirm(`Removing this column will remove the following table${deletedTables.length > 1 ? 's' : ''}:
|
|
365
|
+
${deletedTables.join(', ')}.
|
|
366
|
+
Are you sure you want to continue?
|
|
367
|
+
`
|
|
368
|
+
.replace(/\s+/g, ' ')
|
|
369
|
+
.trim())) {
|
|
370
|
+
return;
|
|
371
|
+
}
|
|
372
|
+
}
|
|
373
|
+
else if (filtersAffected) {
|
|
374
|
+
if (!confirm(`Removing this column will remove the following filter${deletedFilters.length > 1 ? 's' : ''}:
|
|
375
|
+
${deletedFilters.join(', ')}.
|
|
376
|
+
Are you sure you want to continue?
|
|
377
|
+
`
|
|
378
|
+
.replace(/\s+/g, ' ')
|
|
379
|
+
.trim())) {
|
|
380
|
+
return;
|
|
328
381
|
}
|
|
329
382
|
}
|
|
330
|
-
|
|
383
|
+
if (validReportBuilderState.tables.length !== tables.length) {
|
|
384
|
+
handleTablesChange(validReportBuilderState.tables, false);
|
|
385
|
+
fetchData = true;
|
|
386
|
+
}
|
|
387
|
+
if (validReportBuilderState.filterStack.length !== filterStack.length) {
|
|
388
|
+
handleFilterStackChange(validReportBuilderState.filterStack, false, false);
|
|
389
|
+
fetchData = true;
|
|
390
|
+
}
|
|
391
|
+
if (validReportBuilderState.sort.length !== sort.length) {
|
|
392
|
+
handleSortChange(validReportBuilderState.sort, false, false);
|
|
393
|
+
fetchData = true;
|
|
394
|
+
}
|
|
395
|
+
if (pivot && !validReportBuilderState.pivot) {
|
|
396
|
+
handlePivotChange(validReportBuilderState.pivot, false, false);
|
|
397
|
+
}
|
|
398
|
+
setColumns(validReportBuilderState.columns);
|
|
331
399
|
if (updateStateStack) {
|
|
332
|
-
setStateStack((prevStack) => [
|
|
333
|
-
|
|
334
|
-
{ ...reportBuilderState, columns: newColumns },
|
|
335
|
-
]);
|
|
400
|
+
setStateStack((prevStack) => [...prevStack, validReportBuilderState]);
|
|
401
|
+
setPoppedStateStack([]);
|
|
336
402
|
}
|
|
337
403
|
if (fetchData) {
|
|
338
|
-
fetchDataFromReportBuilderState(
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
});
|
|
404
|
+
fetchDataFromReportBuilderState(validReportBuilderState);
|
|
405
|
+
}
|
|
406
|
+
else {
|
|
407
|
+
setQueryOutOfSync(true);
|
|
343
408
|
}
|
|
344
409
|
};
|
|
345
410
|
const handleFilterInsertion = (newFilter) => {
|
|
@@ -373,6 +438,7 @@ function ReportBuilder({ initialTableName = '', onSubmitEditReport = () => void
|
|
|
373
438
|
...prevStack,
|
|
374
439
|
{ ...reportBuilderState, filterStack: newFilterStack },
|
|
375
440
|
]);
|
|
441
|
+
setPoppedStateStack([]);
|
|
376
442
|
}
|
|
377
443
|
if (fetchData) {
|
|
378
444
|
fetchDataFromReportBuilderState({
|
|
@@ -409,6 +475,7 @@ function ReportBuilder({ initialTableName = '', onSubmitEditReport = () => void
|
|
|
409
475
|
limit: resetSortAndLimit ? null : limit,
|
|
410
476
|
},
|
|
411
477
|
]);
|
|
478
|
+
setPoppedStateStack([]);
|
|
412
479
|
}
|
|
413
480
|
if (fetchData) {
|
|
414
481
|
fetchDataFromReportBuilderState({
|
|
@@ -464,6 +531,7 @@ function ReportBuilder({ initialTableName = '', onSubmitEditReport = () => void
|
|
|
464
531
|
...prevStack,
|
|
465
532
|
{ ...reportBuilderState, sort: newSort },
|
|
466
533
|
]);
|
|
534
|
+
setPoppedStateStack([]);
|
|
467
535
|
}
|
|
468
536
|
if (fetchData) {
|
|
469
537
|
fetchDataFromReportBuilderState({
|
|
@@ -479,6 +547,7 @@ function ReportBuilder({ initialTableName = '', onSubmitEditReport = () => void
|
|
|
479
547
|
...prevStack,
|
|
480
548
|
{ ...reportBuilderState, limit: newLimit },
|
|
481
549
|
]);
|
|
550
|
+
setPoppedStateStack([]);
|
|
482
551
|
}
|
|
483
552
|
if (fetchData) {
|
|
484
553
|
fetchDataFromReportBuilderState({
|
|
@@ -487,12 +556,12 @@ function ReportBuilder({ initialTableName = '', onSubmitEditReport = () => void
|
|
|
487
556
|
});
|
|
488
557
|
}
|
|
489
558
|
};
|
|
490
|
-
const handleMultiStateChange = (state, fetchData, updateStateStack = true) => {
|
|
559
|
+
const handleMultiStateChange = ({ state, fetchData, updateStateStack = true, report, }) => {
|
|
491
560
|
if (state.tables !== undefined) {
|
|
492
561
|
handleTablesChange(state.tables, false);
|
|
493
562
|
}
|
|
494
563
|
if (state.columns !== undefined) {
|
|
495
|
-
handleColumnsChange(state.columns, false, false);
|
|
564
|
+
handleColumnsChange(state.columns, false, false, true);
|
|
496
565
|
}
|
|
497
566
|
if (state.filterStack !== undefined) {
|
|
498
567
|
handleFilterStackChange(state.filterStack, false, false);
|
|
@@ -511,9 +580,10 @@ function ReportBuilder({ initialTableName = '', onSubmitEditReport = () => void
|
|
|
511
580
|
...prevStack,
|
|
512
581
|
{ ...reportBuilderState, ...state },
|
|
513
582
|
]);
|
|
583
|
+
setPoppedStateStack([]);
|
|
514
584
|
}
|
|
515
585
|
if (fetchData) {
|
|
516
|
-
fetchDataFromReportBuilderState({ ...reportBuilderState, ...state }, !!state.filterStack, !!state.tables);
|
|
586
|
+
fetchDataFromReportBuilderState({ ...reportBuilderState, ...state }, !!state.filterStack, !!state.tables, report);
|
|
517
587
|
}
|
|
518
588
|
};
|
|
519
589
|
const handleUndo = () => {
|
|
@@ -521,10 +591,33 @@ function ReportBuilder({ initialTableName = '', onSubmitEditReport = () => void
|
|
|
521
591
|
return;
|
|
522
592
|
}
|
|
523
593
|
const previousState = stateStack[stateStack.length - 2];
|
|
594
|
+
setPoppedStateStack((prevStack) => [
|
|
595
|
+
...prevStack,
|
|
596
|
+
stateStack[stateStack.length - 1],
|
|
597
|
+
]);
|
|
524
598
|
setStateStack((prevStack) => prevStack.slice(0, -1));
|
|
525
|
-
|
|
599
|
+
// Only fetch data if the previous state has columns
|
|
600
|
+
handleMultiStateChange({
|
|
601
|
+
state: previousState,
|
|
602
|
+
fetchData: previousState.columns.length > 0,
|
|
603
|
+
updateStateStack: false,
|
|
604
|
+
});
|
|
605
|
+
};
|
|
606
|
+
const handleRedo = () => {
|
|
607
|
+
if (poppedStateStack.length === 0) {
|
|
608
|
+
return;
|
|
609
|
+
}
|
|
610
|
+
const lastState = poppedStateStack[poppedStateStack.length - 1];
|
|
611
|
+
setStateStack((prevStack) => [...prevStack, lastState]);
|
|
612
|
+
setPoppedStateStack((prevStack) => prevStack.slice(0, -1));
|
|
613
|
+
// Only fetch data if the last state has columns
|
|
614
|
+
handleMultiStateChange({
|
|
615
|
+
state: lastState,
|
|
616
|
+
fetchData: lastState.columns.length > 0,
|
|
617
|
+
updateStateStack: false,
|
|
618
|
+
});
|
|
526
619
|
};
|
|
527
|
-
const fetchDataFromReportBuilderState = (state, filtersChanged, tablesChanged) => {
|
|
620
|
+
const fetchDataFromReportBuilderState = (state, filtersChanged, tablesChanged, report) => {
|
|
528
621
|
if (!client) {
|
|
529
622
|
return;
|
|
530
623
|
}
|
|
@@ -532,11 +625,12 @@ function ReportBuilder({ initialTableName = '', onSubmitEditReport = () => void
|
|
|
532
625
|
fetchReportFromASTHelper({
|
|
533
626
|
ast,
|
|
534
627
|
pivot: state.pivot,
|
|
628
|
+
previousReport: report,
|
|
535
629
|
requiresNewFilteredUniqueValues: filtersChanged,
|
|
536
630
|
requiresNewUnfilteredUniqueValues: tablesChanged,
|
|
537
631
|
});
|
|
538
632
|
};
|
|
539
|
-
const fetchReportFromASTHelper = async ({ ast, pivot, previousReport, requiresNewFilteredUniqueValues = false, requiresNewUnfilteredUniqueValues = false, }) => {
|
|
633
|
+
const fetchReportFromASTHelper = async ({ ast, pivot, previousReport = tempReport, requiresNewFilteredUniqueValues = false, requiresNewUnfilteredUniqueValues = false, }) => {
|
|
540
634
|
let reportBuilderInfo = undefined;
|
|
541
635
|
setErrorMessage('');
|
|
542
636
|
const schema = filteredSchema;
|
|
@@ -598,6 +692,7 @@ function ReportBuilder({ initialTableName = '', onSubmitEditReport = () => void
|
|
|
598
692
|
pagination: REPORT_BUILDER_PAGINATION,
|
|
599
693
|
});
|
|
600
694
|
setActiveQuery(reportBuilderInfo.query);
|
|
695
|
+
setQueryOutOfSync(false);
|
|
601
696
|
// table data
|
|
602
697
|
fetchRowCountFromAST(ast, ast.where);
|
|
603
698
|
setReportRows(reportBuilderInfo.rows);
|
|
@@ -740,7 +835,10 @@ function ReportBuilder({ initialTableName = '', onSubmitEditReport = () => void
|
|
|
740
835
|
}
|
|
741
836
|
setAskAILoading(false);
|
|
742
837
|
const newState = (0, reportBuilder_1.astToReportBuilderState)(astInfo.ast, client.databaseType || 'postgresql', filteredSchema);
|
|
743
|
-
handleMultiStateChange({
|
|
838
|
+
handleMultiStateChange({
|
|
839
|
+
state: { ...newState, pivot: astInfo.pivot },
|
|
840
|
+
fetchData: true,
|
|
841
|
+
});
|
|
744
842
|
};
|
|
745
843
|
const fetchGlobalUniqueValues = async (columns, tables) => {
|
|
746
844
|
if (!client) {
|
|
@@ -759,6 +857,15 @@ function ReportBuilder({ initialTableName = '', onSubmitEditReport = () => void
|
|
|
759
857
|
setUnfilteredUniqueValues(uniqueStrings);
|
|
760
858
|
setUnfilteredUniqueValuesIsLoading(false);
|
|
761
859
|
};
|
|
860
|
+
const fetchQueryFromReportBuilderState = async (state) => {
|
|
861
|
+
if (!client) {
|
|
862
|
+
return '';
|
|
863
|
+
}
|
|
864
|
+
const ast = (0, reportBuilder_1.reportBuilderStateToAst)(state, client.databaseType?.toLowerCase() || 'postgresql');
|
|
865
|
+
const query = await (0, dataFetcher_1.fetchSqlQuery)(ast, client);
|
|
866
|
+
setActiveQuery(query.query);
|
|
867
|
+
return query.query;
|
|
868
|
+
};
|
|
762
869
|
const resetProcessing = () => {
|
|
763
870
|
setCurrentProcessing({ page: REPORT_BUILDER_PAGINATION });
|
|
764
871
|
setPreviousPage(0);
|
|
@@ -949,9 +1056,13 @@ function ReportBuilder({ initialTableName = '', onSubmitEditReport = () => void
|
|
|
949
1056
|
const initialState = (0, reportBuilder_1.astToReportBuilderState)(newAst, client.databaseType || 'postgresql', filteredSchema);
|
|
950
1057
|
setTempReport(report);
|
|
951
1058
|
handleMultiStateChange({
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
|
|
1059
|
+
state: {
|
|
1060
|
+
...initialState,
|
|
1061
|
+
pivot: newPivot ?? null,
|
|
1062
|
+
},
|
|
1063
|
+
fetchData: true,
|
|
1064
|
+
report,
|
|
1065
|
+
});
|
|
955
1066
|
}
|
|
956
1067
|
catch (err) {
|
|
957
1068
|
console.error(err);
|
|
@@ -969,13 +1080,16 @@ function ReportBuilder({ initialTableName = '', onSubmitEditReport = () => void
|
|
|
969
1080
|
})?.columns ?? [];
|
|
970
1081
|
if (tableColumns.length > 0) {
|
|
971
1082
|
handleMultiStateChange({
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
1083
|
+
state: {
|
|
1084
|
+
...ReportBuilder_1.EMPTY_REPORT_BUILDER_STATE,
|
|
1085
|
+
tables: [{ name: initialTableName }],
|
|
1086
|
+
columns: tableColumns.map((col) => ({
|
|
1087
|
+
field: col.field,
|
|
1088
|
+
table: initialTableName,
|
|
1089
|
+
})),
|
|
1090
|
+
},
|
|
1091
|
+
fetchData: true,
|
|
1092
|
+
});
|
|
979
1093
|
}
|
|
980
1094
|
}
|
|
981
1095
|
}, [filteredSchema, initialTableName]);
|
|
@@ -1005,14 +1119,15 @@ function ReportBuilder({ initialTableName = '', onSubmitEditReport = () => void
|
|
|
1005
1119
|
}
|
|
1006
1120
|
}, title: "Select columns", children: (0, jsx_runtime_1.jsx)(AddColumnModal_1.default, { onSave: (tables, columns) => {
|
|
1007
1121
|
handleMultiStateChange({
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1122
|
+
state: {
|
|
1123
|
+
...ReportBuilder_1.EMPTY_REPORT_BUILDER_STATE,
|
|
1124
|
+
tables,
|
|
1125
|
+
columns,
|
|
1126
|
+
},
|
|
1127
|
+
fetchData: true,
|
|
1128
|
+
});
|
|
1012
1129
|
setOpenPopover(null);
|
|
1013
|
-
},
|
|
1014
|
-
// selectedTables={tables} // Bring back after select table join UI
|
|
1015
|
-
selectedColumns: columns, schema: filteredSchema, schemaLoading: schemaData.isSchemaLoading, TextInputComponent: TextInputComponent, SelectColumn: SelectColumnComponent, SecondaryButton: SecondaryButtonComponent, Button: ButtonComponent, ColumnSearchEmptyState: ColumnSearchEmptyState, LoadingComponent: LoadingComponent }) })] }), (0, jsx_runtime_1.jsxs)("div", { style: { width: '100%' }, children: [(0, jsx_runtime_1.jsx)(SidebarHeadingComponent, { label: "Filters" }), filterStack.length > 0 && ((0, jsx_runtime_1.jsx)("div", { style: {
|
|
1130
|
+
}, selectedTables: tables, selectedColumns: columns, schema: filteredSchema, foreignKeyMap: foreignKeyMap, schemaLoading: schemaData.isSchemaLoading, TextInputComponent: TextInputComponent, SelectColumn: SelectColumnComponent, SecondaryButton: SecondaryButtonComponent, Button: ButtonComponent, ColumnSearchEmptyState: ColumnSearchEmptyState, LoadingComponent: LoadingComponent }) })] }), (0, jsx_runtime_1.jsxs)("div", { style: { width: '100%' }, children: [(0, jsx_runtime_1.jsx)(SidebarHeadingComponent, { label: "Filters" }), filterStack.length > 0 && ((0, jsx_runtime_1.jsx)("div", { style: {
|
|
1016
1131
|
display: 'flex',
|
|
1017
1132
|
flexDirection: 'column',
|
|
1018
1133
|
gap: 8,
|
|
@@ -1134,7 +1249,7 @@ function ReportBuilder({ initialTableName = '', onSubmitEditReport = () => void
|
|
|
1134
1249
|
if (tables.length <= 1) {
|
|
1135
1250
|
fetchAstFromPromptHelper();
|
|
1136
1251
|
}
|
|
1137
|
-
}, isLoading: askAILoading && columns.length === 0, label: 'Ask AI' }) }), !reportId && ((0, jsx_runtime_1.jsx)(SecondaryButtonComponent, { label: 'New report', onClick: clearAllState, disabled: columns.length === 0 || loading }))] }) })), columns.length > 0 && ((0, jsx_runtime_1.jsx)(TableComponent, { isLoading: tableLoading || (loading && errorMessage.length === 0), rows: formattedRows, rowCount: pivot ? pivotData?.rowCount : numberOfRows, rowCountIsLoading: rowCountIsLoading, rowsPerPage: 20, columns: pivot
|
|
1252
|
+
}, isLoading: askAILoading && columns.length === 0, label: 'Ask AI' }) }), !reportId && ((0, jsx_runtime_1.jsx)(SecondaryButtonComponent, { label: 'New report', onClick: () => clearAllState(false), disabled: columns.length === 0 || loading }))] }) })), columns.length > 0 && ((0, jsx_runtime_1.jsx)(TableComponent, { isLoading: tableLoading || (loading && errorMessage.length === 0), rows: formattedRows, rowCount: pivot ? pivotData?.rowCount : numberOfRows, rowCountIsLoading: rowCountIsLoading, rowsPerPage: 20, columns: pivot
|
|
1138
1253
|
? pivotData?.columns || []
|
|
1139
1254
|
: reportColumnsToStateColumns.map((col) => {
|
|
1140
1255
|
return {
|
|
@@ -1161,7 +1276,12 @@ function ReportBuilder({ initialTableName = '', onSubmitEditReport = () => void
|
|
|
1161
1276
|
alignItems: 'center',
|
|
1162
1277
|
}, children: [(0, jsx_runtime_1.jsx)(ErrorMessageComponent, { errorMessage: errorMessage || pivotError }), (0, jsx_runtime_1.jsx)(SecondaryButtonComponent, { onClick: () => {
|
|
1163
1278
|
fetchAstFromPromptHelper();
|
|
1164
|
-
}, label: 'Retry' }), (0, jsx_runtime_1.jsx)(SecondaryButtonComponent, { onClick: clearAllState, label: 'Reset' })] })) : ((0, jsx_runtime_1.jsx)("div", { style: { width: '100%' } })),
|
|
1279
|
+
}, label: 'Retry' }), (0, jsx_runtime_1.jsx)(SecondaryButtonComponent, { onClick: () => clearAllState(false), label: 'Reset' })] })) : ((0, jsx_runtime_1.jsx)("div", { style: { width: '100%' } })), stateStack.length > 0 && ((0, jsx_runtime_1.jsx)(SecondaryButtonComponent, { onClick: handleUndo, label: "", icon: (0, jsx_runtime_1.jsx)("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", strokeWidth: 1.5, stroke: "currentColor", className: "size-6", children: (0, jsx_runtime_1.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M9 15 3 9m0 0 6-6M3 9h12a6 6 0 0 1 0 12h-3" }) }), disabled: stateStack.length <= 1 || loading })), stateStack.length > 0 && ((0, jsx_runtime_1.jsx)(SecondaryButtonComponent, { onClick: handleRedo, label: "", icon: (0, jsx_runtime_1.jsx)("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", strokeWidth: 1.5, stroke: "currentColor", className: "size-6", children: (0, jsx_runtime_1.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "m15 15 6-6m0 0-6-6m6 6H9a6 6 0 0 0 0 12h3" }) }), disabled: poppedStateStack.length < 1 || loading })), columns.length > 0 && activeQuery && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [onDiscardChanges && ((0, jsx_runtime_1.jsx)(SecondaryButtonComponent, { onClick: onDiscardChanges, label: "Discard changes" })), !hideCopySQL && ((0, jsx_runtime_1.jsx)(SecondaryButtonComponent, { label: isCopying ? 'Copied' : 'Copy SQL', onClick: () => copySQLToClipboard() })), !isAdminEnabled ? null : ((0, jsx_runtime_1.jsx)(SecondaryButtonComponent, { onClick: async () => {
|
|
1280
|
+
let tempReportQuery = activeQuery;
|
|
1281
|
+
if (queryOutOfSync) {
|
|
1282
|
+
tempReportQuery =
|
|
1283
|
+
await fetchQueryFromReportBuilderState(reportBuilderState);
|
|
1284
|
+
}
|
|
1165
1285
|
const tempReportColumns = columns
|
|
1166
1286
|
.map((column) => {
|
|
1167
1287
|
return reportColumnsToStateColumns.find((col) => col.field === (column.alias || column.field));
|
|
@@ -1199,8 +1319,8 @@ function ReportBuilder({ initialTableName = '', onSubmitEditReport = () => void
|
|
|
1199
1319
|
})
|
|
1200
1320
|
: tempReportColumns,
|
|
1201
1321
|
queryString: isSelectStar
|
|
1202
|
-
? (0, convert_1.convertQueryToSelectStar)(
|
|
1203
|
-
:
|
|
1322
|
+
? (0, convert_1.convertQueryToSelectStar)(tempReportQuery)
|
|
1323
|
+
: tempReportQuery,
|
|
1204
1324
|
includeCustomFields: isSelectStar,
|
|
1205
1325
|
rows: reportRows,
|
|
1206
1326
|
pivotRows: pivotData?.rows,
|
|
@@ -1216,6 +1336,11 @@ function ReportBuilder({ initialTableName = '', onSubmitEditReport = () => void
|
|
|
1216
1336
|
tableLoading ||
|
|
1217
1337
|
loading ||
|
|
1218
1338
|
!!unresolvedReportMessage, label: 'Save query', tooltipText: unresolvedReportMessage })), (0, jsx_runtime_1.jsx)(ButtonComponent, { onClick: async () => {
|
|
1339
|
+
let tempReportQuery = activeQuery;
|
|
1340
|
+
if (queryOutOfSync) {
|
|
1341
|
+
tempReportQuery =
|
|
1342
|
+
await fetchQueryFromReportBuilderState(reportBuilderState);
|
|
1343
|
+
}
|
|
1219
1344
|
onSaveChanges && onSaveChanges();
|
|
1220
1345
|
const tempReportColumns = columns
|
|
1221
1346
|
.map((column) => {
|
|
@@ -1254,8 +1379,8 @@ function ReportBuilder({ initialTableName = '', onSubmitEditReport = () => void
|
|
|
1254
1379
|
})
|
|
1255
1380
|
: tempReportColumns,
|
|
1256
1381
|
queryString: isSelectStar
|
|
1257
|
-
? (0, convert_1.convertQueryToSelectStar)(
|
|
1258
|
-
:
|
|
1382
|
+
? (0, convert_1.convertQueryToSelectStar)(tempReportQuery)
|
|
1383
|
+
: tempReportQuery,
|
|
1259
1384
|
includeCustomFields: isSelectStar,
|
|
1260
1385
|
rows: reportRows,
|
|
1261
1386
|
pivotRows: pivotData?.rows,
|
package/dist/cjs/Table.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Table.d.ts","sourceRoot":"","sources":["../../src/Table.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Table.d.ts","sourceRoot":"","sources":["../../src/Table.tsx"],"names":[],"mappings":"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"}
|
package/dist/cjs/Table.js
CHANGED
|
@@ -57,8 +57,8 @@ const Table = ({ TableComponent = TableComponent_1.default, ...props }) => {
|
|
|
57
57
|
reportFilters } = (0, react_1.useContext)(Context_1.ReportFiltersContext);
|
|
58
58
|
const specificReportFilters = (0, react_1.useMemo)(() => {
|
|
59
59
|
return Object.values(reportFilters[props.reportId ?? ''] ??
|
|
60
|
-
(dashboard[
|
|
61
|
-
? dashboardFilters[
|
|
60
|
+
(dashboard[report?.dashboardName ?? '']?.[report?.id ?? '']
|
|
61
|
+
? dashboardFilters[report.dashboardName]
|
|
62
62
|
: null) ??
|
|
63
63
|
{}).map((f) => f.filter);
|
|
64
64
|
}, [reportFilters[props.reportId ?? '']]);
|
|
@@ -77,6 +77,6 @@ const Table = ({ TableComponent = TableComponent_1.default, ...props }) => {
|
|
|
77
77
|
}
|
|
78
78
|
return ((0, jsx_runtime_1.jsx)(DataLoader_1.default, { item: report, filters: specificReportFilters, userFilters: userFilters?.map(Filter_1.convertCustomFilter), additionalProcessing: {
|
|
79
79
|
page: paginationProcessing_1.DEFAULT_PAGINATION,
|
|
80
|
-
},
|
|
80
|
+
}, children: ({ isLoading, error, onPageChange, onSortChange, data, rowCount, rowCountIsLoading, }) => (0, jsx_runtime_1.jsx)(TableComponent, { report: data, isLoading: isLoading, error: error, rowCount: rowCount ?? data?.rowCount ?? data?.rows?.length ?? 0, rowCountIsLoading: rowCountIsLoading, onPageChange: (page) => onPageChange(page), onSortChange: (sort) => onSortChange(sort), hideName: true }) }));
|
|
81
81
|
};
|
|
82
82
|
exports.default = Table;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BarChart.d.ts","sourceRoot":"","sources":["../../../../src/components/Chart/BarChart.tsx"],"names":[],"mappings":"AAeA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAI7C,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,EAC/B,MAAM,EACN,QAAQ,EACR,WAAW,EACX,IAAI,EACJ,cAAc,EACd,SAAS,EACT,UAAU,EACV,WAAW,EACX,KAAK,EACL,UAAU,EACV,SAAS,EACT,iBAAwB,EACxB,SAAiB,EACjB,SAAiB,EACjB,iBAAyB,EACzB,mBAAmB,EACnB,UAAU,EACV,cAAc,GACf,EAAE;IACD,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,WAAW,EAAE,GAAG,EAAE,CAAC;IACnB,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,cAAc,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,UAAU,CAAC;IACxB,KAAK,EAAE,GAAG,CAAC;IACX,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,mBAAmB,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IACvC,UAAU,CAAC,EAAE,GAAG,CAAC;IACjB,cAAc,CAAC,EAAE;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,EAAE,CAAA;KAAC,EAAE,CAAC;CACrD,
|
|
1
|
+
{"version":3,"file":"BarChart.d.ts","sourceRoot":"","sources":["../../../../src/components/Chart/BarChart.tsx"],"names":[],"mappings":"AAeA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAI7C,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,EAC/B,MAAM,EACN,QAAQ,EACR,WAAW,EACX,IAAI,EACJ,cAAc,EACd,SAAS,EACT,UAAU,EACV,WAAW,EACX,KAAK,EACL,UAAU,EACV,SAAS,EACT,iBAAwB,EACxB,SAAiB,EACjB,SAAiB,EACjB,iBAAyB,EACzB,mBAAmB,EACnB,UAAU,EACV,cAAc,GACf,EAAE;IACD,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,WAAW,EAAE,GAAG,EAAE,CAAC;IACnB,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,cAAc,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,UAAU,CAAC;IACxB,KAAK,EAAE,GAAG,CAAC;IACX,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,mBAAmB,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IACvC,UAAU,CAAC,EAAE,GAAG,CAAC;IACjB,cAAc,CAAC,EAAE;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,EAAE,CAAA;KAAC,EAAE,CAAC;CACrD,2CAiNA"}
|
|
@@ -35,7 +35,6 @@ function BarChart({ colors, colorMap, yAxisFields, data, containerStyle, classNa
|
|
|
35
35
|
display: 'flex',
|
|
36
36
|
flex: '1 0 auto',
|
|
37
37
|
height: '100%',
|
|
38
|
-
margin: 'auto',
|
|
39
38
|
justifyContent: 'center',
|
|
40
39
|
alignItems: 'center',
|
|
41
40
|
fontSize: 13,
|
|
@@ -46,7 +45,7 @@ function BarChart({ colors, colorMap, yAxisFields, data, containerStyle, classNa
|
|
|
46
45
|
return ((0, jsx_runtime_1.jsx)("div", { style: {
|
|
47
46
|
boxSizing: 'content-box',
|
|
48
47
|
...containerStyle,
|
|
49
|
-
}, className: className, children: (0, jsx_runtime_1.jsx)(recharts_1.ResponsiveContainer, { width: "100%", height: "100%", children: (0, jsx_runtime_1.jsxs)(recharts_1.BarChart, { data: data ?? [], layout: 'horizontal', onClick: (event) => onClickChartElement
|
|
48
|
+
}, className: className, children: (0, jsx_runtime_1.jsx)(recharts_1.ResponsiveContainer, { width: "100%", height: "100%", minWidth: 0, minHeight: 0, children: (0, jsx_runtime_1.jsxs)(recharts_1.BarChart, { data: data ?? [], layout: 'horizontal', onClick: (event) => onClickChartElement
|
|
50
49
|
? onClickChartElement(event?.activePayload
|
|
51
50
|
? event.activePayload[0].payload
|
|
52
51
|
: undefined)
|
|
@@ -138,7 +138,7 @@ function D3Gauge({ percentage, containerStyle, xAxisFormat, colors, isAnimationA
|
|
|
138
138
|
const gaugeHeight = Math.min(ch, cw / 1.2);
|
|
139
139
|
const gaugeWidth = gaugeHeight * 1.2;
|
|
140
140
|
const radius = gaugeHeight / 2;
|
|
141
|
-
const innerRadius = radius * 0.
|
|
141
|
+
const innerRadius = radius * 0.6;
|
|
142
142
|
// const arcWidth = radius - innerRadius;
|
|
143
143
|
// Vertical offset to visually center the 270° arc.
|
|
144
144
|
const verticalOffset = gaugeHeight * 0.05;
|
|
@@ -78,7 +78,7 @@ function LineChart({ colors, colorMap = {}, yAxisFields, data, containerStyle, c
|
|
|
78
78
|
return sum + 1;
|
|
79
79
|
return sum;
|
|
80
80
|
}, 0);
|
|
81
|
-
return ((0, jsx_runtime_1.jsx)("div", { style: { ...containerStyle }, className: className, children: (0, jsx_runtime_1.jsx)(recharts_1.ResponsiveContainer, { width: "100%", height: '100%', children: (0, jsx_runtime_1.jsxs)(recharts_1.ComposedChart, { data: formattedData, onClick: (event) => onClickChartElement(event?.activePayload ? event.activePayload[0].payload : undefined), children: [!hideCartesianGrid && ((0, jsx_runtime_1.jsx)(recharts_1.CartesianGrid, { horizontal: !hideHorizontalCartesianGrid, vertical: !hideVerticalCartesianGrid, stroke: cartesianGridLineColor ?? '#e5e7eb', strokeDasharray: cartesianGridLineStyle === 'dashed' ? '5 5' : undefined })), (0, jsx_runtime_1.jsx)(recharts_1.XAxis, { dataKey: xAxisField, hide: hideXAxis, tick: { transform: 'translate(0, 6)' }, style: {
|
|
81
|
+
return ((0, jsx_runtime_1.jsx)("div", { style: { ...containerStyle }, className: className, children: (0, jsx_runtime_1.jsx)(recharts_1.ResponsiveContainer, { width: "100%", height: '100%', minWidth: 0, minHeight: 0, children: (0, jsx_runtime_1.jsxs)(recharts_1.ComposedChart, { data: formattedData, onClick: (event) => onClickChartElement(event?.activePayload ? event.activePayload[0].payload : undefined), children: [!hideCartesianGrid && ((0, jsx_runtime_1.jsx)(recharts_1.CartesianGrid, { horizontal: !hideHorizontalCartesianGrid, vertical: !hideVerticalCartesianGrid, stroke: cartesianGridLineColor ?? '#e5e7eb', strokeDasharray: cartesianGridLineStyle === 'dashed' ? '5 5' : undefined })), (0, jsx_runtime_1.jsx)(recharts_1.XAxis, { dataKey: xAxisField, hide: hideXAxis, tick: { transform: 'translate(0, 6)' }, style: {
|
|
82
82
|
fontSize: '12px',
|
|
83
83
|
fontFamily: theme?.chartLabelFontFamily ||
|
|
84
84
|
theme?.fontFamily ||
|
|
@@ -406,7 +406,7 @@ function USMap({ theme, data, xAxisField, xAxisFormat, yAxisFields, onClickChart
|
|
|
406
406
|
return ((0, jsx_runtime_1.jsxs)("div", { ref: containerRef, className: className, style: {
|
|
407
407
|
width: "100%",
|
|
408
408
|
height: "auto",
|
|
409
|
-
marginTop: '-5%',
|
|
409
|
+
marginTop: '-6.5%',
|
|
410
410
|
zIndex: 0,
|
|
411
411
|
...containerStyle,
|
|
412
412
|
position: "relative",
|
|
@@ -204,7 +204,7 @@ const PieChartWrapper = react_1.default.forwardRef((props, ref) => {
|
|
|
204
204
|
justifyContent: 'center',
|
|
205
205
|
boxSizing: 'content-box',
|
|
206
206
|
...containerStyle,
|
|
207
|
-
}, ...other, children: (0, jsx_runtime_1.jsx)(recharts_1.ResponsiveContainer, { width: "100%", height: "100%", children: (0, jsx_runtime_1.jsxs)(recharts_1.PieChart, { children: [(0, jsx_runtime_1.jsx)(recharts_1.Pie, { data: (0, exports.parseData)(data, (colorMap[category] &&
|
|
207
|
+
}, ...other, children: (0, jsx_runtime_1.jsx)(recharts_1.ResponsiveContainer, { width: "100%", height: "100%", minWidth: 0, minHeight: 0, children: (0, jsx_runtime_1.jsxs)(recharts_1.PieChart, { children: [(0, jsx_runtime_1.jsx)(recharts_1.Pie, { data: (0, exports.parseData)(data, (colorMap[category] &&
|
|
208
208
|
colorMap[category]['primary'] &&
|
|
209
209
|
(0, color_1.generateArrayFromColor)(colorMap[category]['primary'], data.length)) ??
|
|
210
210
|
(colors.length >= data.length
|
|
@@ -19,10 +19,12 @@ function DashboardFilter({ filter, onChangeFilter, SelectComponent = QuillSelect
|
|
|
19
19
|
const presetRange = filter.presetRanges?.find((range) => range.value === (filter.preset?.value ?? filter.primaryRange.value)) ?? dateRangePickerUtils_1.PRIMARY_RANGE[filter.preset?.value ?? filter.primaryRange.value];
|
|
20
20
|
if (!presetRange)
|
|
21
21
|
return filter.preset?.value ?? filter.primaryRange.value;
|
|
22
|
-
if (
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
22
|
+
// if (
|
|
23
|
+
// presetRange.startDate !== filter.startDate ||
|
|
24
|
+
// presetRange.endDate !== filter.endDate
|
|
25
|
+
// ) {
|
|
26
|
+
// return '';
|
|
27
|
+
// }
|
|
26
28
|
return filter.preset?.value ?? filter.primaryRange.value;
|
|
27
29
|
}
|
|
28
30
|
return '';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DashboardSection.d.ts","sourceRoot":"","sources":["../../../../src/components/Dashboard/DashboardSection.tsx"],"names":[],"mappings":"AAEA,MAAM,WAAW,8BAA8B;IAC7C,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EACvC,OAAO,EACP,QAAQ,GACT,EAAE,8BAA8B,GAAG,GAAG,CAAC,OAAO,
|
|
1
|
+
{"version":3,"file":"DashboardSection.d.ts","sourceRoot":"","sources":["../../../../src/components/Dashboard/DashboardSection.tsx"],"names":[],"mappings":"AAEA,MAAM,WAAW,8BAA8B;IAC7C,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EACvC,OAAO,EACP,QAAQ,GACT,EAAE,8BAA8B,GAAG,GAAG,CAAC,OAAO,CAmC9C"}
|
|
@@ -12,7 +12,6 @@ function DashboardSection({ section, children, }) {
|
|
|
12
12
|
fontFamily: theme?.fontFamily,
|
|
13
13
|
fontWeight: 'bold',
|
|
14
14
|
marginTop: 20,
|
|
15
|
-
marginBottom: -20,
|
|
16
15
|
textAlign: 'left',
|
|
17
16
|
}, children: section }) })), (0, jsx_runtime_1.jsx)("div", { style: {
|
|
18
17
|
boxSizing: 'content-box',
|