@quillsql/react 2.13.43 → 2.13.45
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.map +1 -1
- package/dist/cjs/Chart.js +2 -2
- package/dist/cjs/ChartBuilder.d.ts +1 -0
- package/dist/cjs/ChartBuilder.d.ts.map +1 -1
- package/dist/cjs/ChartBuilder.js +48 -14
- package/dist/cjs/ChartEditor.d.ts +1 -1
- package/dist/cjs/ChartEditor.d.ts.map +1 -1
- package/dist/cjs/ChartEditor.js +2 -2
- package/dist/cjs/Context.d.ts.map +1 -1
- package/dist/cjs/Context.js +37 -26
- package/dist/cjs/Dashboard.d.ts +8 -2
- package/dist/cjs/Dashboard.d.ts.map +1 -1
- package/dist/cjs/Dashboard.js +117 -101
- package/dist/cjs/ReportBuilder.d.ts.map +1 -1
- package/dist/cjs/ReportBuilder.js +871 -1574
- package/dist/cjs/SQLEditor.d.ts.map +1 -1
- package/dist/cjs/SQLEditor.js +23 -4
- package/dist/cjs/Table.d.ts.map +1 -1
- package/dist/cjs/components/Chart/CustomReferenceLine.js +1 -1
- package/dist/cjs/components/Chart/GaugeChart.js +0 -6
- package/dist/cjs/components/Dashboard/DashboardFilter.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/DashboardFilter.js +3 -3
- package/dist/cjs/components/Dashboard/DashboardSection.d.ts +1 -1
- package/dist/cjs/components/Dashboard/DashboardSection.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/DashboardSection.js +20 -19
- package/dist/cjs/components/Dashboard/MetricComponent.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/MetricComponent.js +1 -0
- package/dist/cjs/components/Dashboard/TableComponent.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/TableComponent.js +5 -1
- package/dist/cjs/components/QuillMultiSelectWithCombo.d.ts.map +1 -1
- package/dist/cjs/components/QuillMultiSelectWithCombo.js +58 -8
- package/dist/cjs/components/QuillSelect.d.ts.map +1 -1
- package/dist/cjs/components/QuillSelect.js +91 -14
- package/dist/cjs/components/QuillSelectWithCombo.js +6 -6
- package/dist/cjs/components/ReportBuilder/AddColumnModal.d.ts +6 -16
- package/dist/cjs/components/ReportBuilder/AddColumnModal.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/AddColumnModal.js +172 -75
- package/dist/cjs/components/ReportBuilder/AddSortPopover.d.ts +1 -5
- package/dist/cjs/components/ReportBuilder/AddSortPopover.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/AddSortPopover.js +2 -9
- package/dist/cjs/components/ReportBuilder/DraggableColumns.d.ts +17 -0
- package/dist/cjs/components/ReportBuilder/DraggableColumns.d.ts.map +1 -0
- package/dist/cjs/components/ReportBuilder/DraggableColumns.js +52 -0
- package/dist/cjs/components/ReportBuilder/DraggableItem.d.ts +17 -0
- package/dist/cjs/components/ReportBuilder/DraggableItem.d.ts.map +1 -0
- package/dist/cjs/components/ReportBuilder/DraggableItem.js +17 -0
- package/dist/cjs/components/ReportBuilder/FilterModal.d.ts +6 -12
- package/dist/cjs/components/ReportBuilder/FilterModal.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/FilterModal.js +29 -20
- package/dist/cjs/components/ReportBuilder/FilterStack.d.ts +8 -17
- package/dist/cjs/components/ReportBuilder/FilterStack.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/FilterStack.js +20 -86
- package/dist/cjs/components/ReportBuilder/convert.js +6 -6
- package/dist/cjs/components/ReportBuilder/ui.d.ts +8 -9
- package/dist/cjs/components/ReportBuilder/ui.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/ui.js +30 -8
- package/dist/cjs/components/ReportBuilder/util.d.ts +2 -5
- package/dist/cjs/components/ReportBuilder/util.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/util.js +1 -1
- package/dist/cjs/components/UiComponents.d.ts +3 -2
- package/dist/cjs/components/UiComponents.d.ts.map +1 -1
- package/dist/cjs/components/UiComponents.js +13 -13
- package/dist/cjs/hooks/useAskQuill.d.ts +1 -1
- package/dist/cjs/hooks/useAskQuill.d.ts.map +1 -1
- package/dist/cjs/hooks/useAskQuill.js +14 -12
- package/dist/cjs/hooks/useDashboard.d.ts +5 -3
- package/dist/cjs/hooks/useDashboard.d.ts.map +1 -1
- package/dist/cjs/hooks/useDashboard.js +8 -6
- package/dist/cjs/hooks/useOnClickOutside.d.ts +1 -0
- package/dist/cjs/hooks/useOnClickOutside.d.ts.map +1 -1
- package/dist/cjs/hooks/useOnClickOutside.js +33 -0
- package/dist/cjs/internals/ReportBuilder/PivotForm.d.ts +2 -1
- package/dist/cjs/internals/ReportBuilder/PivotForm.d.ts.map +1 -1
- package/dist/cjs/internals/ReportBuilder/PivotForm.js +22 -15
- package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts +7 -5
- package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
- package/dist/cjs/internals/ReportBuilder/PivotModal.js +100 -48
- package/dist/cjs/models/Client.d.ts +4 -0
- package/dist/cjs/models/Client.d.ts.map +1 -1
- package/dist/cjs/models/Dashboard.d.ts +1 -0
- package/dist/cjs/models/Dashboard.d.ts.map +1 -1
- package/dist/cjs/models/Report.d.ts +2 -0
- package/dist/cjs/models/Report.d.ts.map +1 -1
- package/dist/cjs/models/ReportBuilder.d.ts +46 -0
- package/dist/cjs/models/ReportBuilder.d.ts.map +1 -0
- package/dist/cjs/models/ReportBuilder.js +19 -0
- package/dist/cjs/models/Tables.d.ts +5 -5
- package/dist/cjs/models/Tables.d.ts.map +1 -1
- package/dist/cjs/utils/astFilterProcessing.d.ts +4 -0
- package/dist/cjs/utils/astFilterProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/astFilterProcessing.js +301 -97
- package/dist/cjs/utils/astProcessing.d.ts +14 -4
- package/dist/cjs/utils/astProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/astProcessing.js +38 -4
- package/dist/cjs/utils/dashboard.d.ts.map +1 -1
- package/dist/cjs/utils/dashboard.js +18 -3
- package/dist/cjs/utils/dataFetcher.d.ts.map +1 -1
- package/dist/cjs/utils/dataFetcher.js +4 -3
- package/dist/cjs/utils/filterProcessing.d.ts +2 -11
- package/dist/cjs/utils/filterProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/filterProcessing.js +4 -16
- package/dist/cjs/utils/pivotConstructor.d.ts +2 -1
- package/dist/cjs/utils/pivotConstructor.d.ts.map +1 -1
- package/dist/cjs/utils/pivotConstructor.js +4 -2
- package/dist/cjs/utils/pivotProcessing.d.ts +17 -7
- package/dist/cjs/utils/pivotProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/pivotProcessing.js +60 -51
- package/dist/cjs/utils/queryConstructor.d.ts.map +1 -1
- package/dist/cjs/utils/queryConstructor.js +15 -2
- package/dist/cjs/utils/report.d.ts +12 -9
- package/dist/cjs/utils/report.d.ts.map +1 -1
- package/dist/cjs/utils/report.js +114 -47
- package/dist/cjs/utils/reportBuilder.d.ts +88 -0
- package/dist/cjs/utils/reportBuilder.d.ts.map +1 -0
- package/dist/cjs/utils/reportBuilder.js +395 -0
- package/dist/cjs/utils/schema.d.ts +7 -0
- package/dist/cjs/utils/schema.d.ts.map +1 -1
- package/dist/cjs/utils/schema.js +36 -2
- package/dist/cjs/utils/tableProcessing.d.ts +59 -29
- package/dist/cjs/utils/tableProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/tableProcessing.js +75 -90
- package/dist/cjs/utils/ui.d.ts +2 -0
- package/dist/cjs/utils/ui.d.ts.map +1 -0
- package/dist/cjs/utils/ui.js +18 -0
- package/dist/esm/Chart.d.ts.map +1 -1
- package/dist/esm/Chart.js +2 -2
- package/dist/esm/ChartBuilder.d.ts +1 -0
- package/dist/esm/ChartBuilder.d.ts.map +1 -1
- package/dist/esm/ChartBuilder.js +49 -15
- package/dist/esm/ChartEditor.d.ts +1 -1
- package/dist/esm/ChartEditor.d.ts.map +1 -1
- package/dist/esm/ChartEditor.js +2 -2
- package/dist/esm/Context.d.ts.map +1 -1
- package/dist/esm/Context.js +37 -26
- package/dist/esm/Dashboard.d.ts +8 -2
- package/dist/esm/Dashboard.d.ts.map +1 -1
- package/dist/esm/Dashboard.js +121 -105
- package/dist/esm/ReportBuilder.d.ts.map +1 -1
- package/dist/esm/ReportBuilder.js +878 -1581
- package/dist/esm/SQLEditor.d.ts.map +1 -1
- package/dist/esm/SQLEditor.js +23 -4
- package/dist/esm/Table.d.ts.map +1 -1
- package/dist/esm/components/Chart/CustomReferenceLine.js +1 -1
- package/dist/esm/components/Chart/GaugeChart.js +0 -6
- package/dist/esm/components/Dashboard/DashboardFilter.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/DashboardFilter.js +3 -3
- package/dist/esm/components/Dashboard/DashboardSection.d.ts +1 -1
- package/dist/esm/components/Dashboard/DashboardSection.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/DashboardSection.js +21 -20
- package/dist/esm/components/Dashboard/MetricComponent.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/MetricComponent.js +1 -0
- package/dist/esm/components/Dashboard/TableComponent.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/TableComponent.js +5 -1
- package/dist/esm/components/QuillMultiSelectWithCombo.d.ts.map +1 -1
- package/dist/esm/components/QuillMultiSelectWithCombo.js +57 -7
- package/dist/esm/components/QuillSelect.d.ts.map +1 -1
- package/dist/esm/components/QuillSelect.js +58 -14
- package/dist/esm/components/QuillSelectWithCombo.js +6 -6
- package/dist/esm/components/ReportBuilder/AddColumnModal.d.ts +6 -16
- package/dist/esm/components/ReportBuilder/AddColumnModal.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/AddColumnModal.js +173 -76
- package/dist/esm/components/ReportBuilder/AddSortPopover.d.ts +1 -5
- package/dist/esm/components/ReportBuilder/AddSortPopover.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/AddSortPopover.js +2 -9
- package/dist/esm/components/ReportBuilder/DraggableColumns.d.ts +17 -0
- package/dist/esm/components/ReportBuilder/DraggableColumns.d.ts.map +1 -0
- package/dist/esm/components/ReportBuilder/DraggableColumns.js +46 -0
- package/dist/esm/components/ReportBuilder/DraggableItem.d.ts +17 -0
- package/dist/esm/components/ReportBuilder/DraggableItem.d.ts.map +1 -0
- package/dist/esm/components/ReportBuilder/DraggableItem.js +14 -0
- package/dist/esm/components/ReportBuilder/FilterModal.d.ts +6 -12
- package/dist/esm/components/ReportBuilder/FilterModal.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/FilterModal.js +29 -20
- package/dist/esm/components/ReportBuilder/FilterStack.d.ts +8 -17
- package/dist/esm/components/ReportBuilder/FilterStack.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/FilterStack.js +21 -87
- package/dist/esm/components/ReportBuilder/convert.js +6 -6
- package/dist/esm/components/ReportBuilder/ui.d.ts +8 -9
- package/dist/esm/components/ReportBuilder/ui.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/ui.js +33 -11
- package/dist/esm/components/ReportBuilder/util.d.ts +2 -5
- package/dist/esm/components/ReportBuilder/util.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/util.js +1 -1
- package/dist/esm/components/UiComponents.d.ts +3 -2
- package/dist/esm/components/UiComponents.d.ts.map +1 -1
- package/dist/esm/components/UiComponents.js +13 -13
- package/dist/esm/hooks/useAskQuill.d.ts +1 -1
- package/dist/esm/hooks/useAskQuill.d.ts.map +1 -1
- package/dist/esm/hooks/useAskQuill.js +14 -12
- package/dist/esm/hooks/useDashboard.d.ts +5 -3
- package/dist/esm/hooks/useDashboard.d.ts.map +1 -1
- package/dist/esm/hooks/useDashboard.js +8 -6
- package/dist/esm/hooks/useOnClickOutside.d.ts +1 -0
- package/dist/esm/hooks/useOnClickOutside.d.ts.map +1 -1
- package/dist/esm/hooks/useOnClickOutside.js +31 -0
- package/dist/esm/internals/ReportBuilder/PivotForm.d.ts +2 -1
- package/dist/esm/internals/ReportBuilder/PivotForm.d.ts.map +1 -1
- package/dist/esm/internals/ReportBuilder/PivotForm.js +23 -16
- package/dist/esm/internals/ReportBuilder/PivotModal.d.ts +7 -5
- package/dist/esm/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
- package/dist/esm/internals/ReportBuilder/PivotModal.js +101 -49
- package/dist/esm/models/Client.d.ts +4 -0
- package/dist/esm/models/Client.d.ts.map +1 -1
- package/dist/esm/models/Dashboard.d.ts +1 -0
- package/dist/esm/models/Dashboard.d.ts.map +1 -1
- package/dist/esm/models/Report.d.ts +2 -0
- package/dist/esm/models/Report.d.ts.map +1 -1
- package/dist/esm/models/ReportBuilder.d.ts +46 -0
- package/dist/esm/models/ReportBuilder.d.ts.map +1 -0
- package/dist/esm/models/ReportBuilder.js +16 -0
- package/dist/esm/models/Tables.d.ts +5 -5
- package/dist/esm/models/Tables.d.ts.map +1 -1
- package/dist/esm/utils/astFilterProcessing.d.ts +4 -0
- package/dist/esm/utils/astFilterProcessing.d.ts.map +1 -1
- package/dist/esm/utils/astFilterProcessing.js +300 -97
- package/dist/esm/utils/astProcessing.d.ts +14 -4
- package/dist/esm/utils/astProcessing.d.ts.map +1 -1
- package/dist/esm/utils/astProcessing.js +38 -5
- package/dist/esm/utils/dashboard.d.ts.map +1 -1
- package/dist/esm/utils/dashboard.js +18 -3
- package/dist/esm/utils/dataFetcher.d.ts.map +1 -1
- package/dist/esm/utils/dataFetcher.js +4 -3
- package/dist/esm/utils/filterProcessing.d.ts +2 -11
- package/dist/esm/utils/filterProcessing.d.ts.map +1 -1
- package/dist/esm/utils/filterProcessing.js +4 -15
- package/dist/esm/utils/pivotConstructor.d.ts +2 -1
- package/dist/esm/utils/pivotConstructor.d.ts.map +1 -1
- package/dist/esm/utils/pivotConstructor.js +4 -2
- package/dist/esm/utils/pivotProcessing.d.ts +17 -7
- package/dist/esm/utils/pivotProcessing.d.ts.map +1 -1
- package/dist/esm/utils/pivotProcessing.js +58 -49
- package/dist/esm/utils/queryConstructor.d.ts.map +1 -1
- package/dist/esm/utils/queryConstructor.js +15 -2
- package/dist/esm/utils/report.d.ts +12 -9
- package/dist/esm/utils/report.d.ts.map +1 -1
- package/dist/esm/utils/report.js +116 -46
- package/dist/esm/utils/reportBuilder.d.ts +88 -0
- package/dist/esm/utils/reportBuilder.d.ts.map +1 -0
- package/dist/esm/utils/reportBuilder.js +386 -0
- package/dist/esm/utils/schema.d.ts +7 -0
- package/dist/esm/utils/schema.d.ts.map +1 -1
- package/dist/esm/utils/schema.js +34 -1
- package/dist/esm/utils/tableProcessing.d.ts +59 -29
- package/dist/esm/utils/tableProcessing.d.ts.map +1 -1
- package/dist/esm/utils/tableProcessing.js +71 -86
- package/dist/esm/utils/ui.d.ts +2 -0
- package/dist/esm/utils/ui.d.ts.map +1 -0
- package/dist/esm/utils/ui.js +14 -0
- package/package.json +1 -1
|
@@ -0,0 +1,386 @@
|
|
|
1
|
+
import { convertASTToPivotData } from '../components/ReportBuilder/convert';
|
|
2
|
+
import { deepCopy } from '../components/ReportBuilder/util';
|
|
3
|
+
import { astToFilterTree, filterTreeToAst, getFieldFromExpression, } from './astFilterProcessing';
|
|
4
|
+
import { getDateFormatFromBucket } from './dates';
|
|
5
|
+
import { filterStackToFilterTree, generateFilterStack, } from './filterProcessing';
|
|
6
|
+
import { getPossiblePivotFieldOptions, isValidPivot } from './pivotProcessing';
|
|
7
|
+
import { DATE_FORMAT_TYPES, quillFormat } from './valueFormatter';
|
|
8
|
+
const baseAstForReportBuilder = {
|
|
9
|
+
with: null,
|
|
10
|
+
type: 'select',
|
|
11
|
+
options: null,
|
|
12
|
+
distinct: {
|
|
13
|
+
type: null,
|
|
14
|
+
},
|
|
15
|
+
columns: [],
|
|
16
|
+
into: {
|
|
17
|
+
position: null,
|
|
18
|
+
},
|
|
19
|
+
from: [],
|
|
20
|
+
where: null,
|
|
21
|
+
groupby: null,
|
|
22
|
+
having: null,
|
|
23
|
+
orderby: null,
|
|
24
|
+
limit: null,
|
|
25
|
+
window: null,
|
|
26
|
+
};
|
|
27
|
+
// Primary conversion functions
|
|
28
|
+
export const reportBuilderStateToAst = (reportBuilderState, databaseType) => {
|
|
29
|
+
const astFrom = tableToAstFrom(reportBuilderState.tables);
|
|
30
|
+
const astColumns = columnsToAstColumns(reportBuilderState.columns);
|
|
31
|
+
const filterTree = reportBuilderState.filterStack && reportBuilderState.filterStack.length > 0
|
|
32
|
+
? filterStackToFilterTree(reportBuilderState.filterStack)
|
|
33
|
+
: null;
|
|
34
|
+
const astWhere = filterTree
|
|
35
|
+
? filterTreeToAst(filterTree, databaseType)
|
|
36
|
+
: null;
|
|
37
|
+
const astOrderby = sortToAstOrderBy(reportBuilderState.sort);
|
|
38
|
+
const astLimit = limitToAstLimit(reportBuilderState.limit, databaseType);
|
|
39
|
+
return {
|
|
40
|
+
...baseAstForReportBuilder,
|
|
41
|
+
from: astFrom,
|
|
42
|
+
columns: astColumns,
|
|
43
|
+
where: astWhere,
|
|
44
|
+
orderby: astOrderby,
|
|
45
|
+
limit: databaseType.toLowerCase() === 'mssql' ? null : astLimit,
|
|
46
|
+
top: databaseType.toLowerCase() === 'mssql' ? astLimit : null,
|
|
47
|
+
};
|
|
48
|
+
};
|
|
49
|
+
export const astToReportBuilderState = (ast, databaseType, schema) => {
|
|
50
|
+
const tables = astFromToTables(ast.from);
|
|
51
|
+
const defaultTable = tables.length === 1 ? tables[0]?.name : undefined;
|
|
52
|
+
const columns = astColumnsToColumns(ast.columns, defaultTable);
|
|
53
|
+
const relevantColumns = tables.flatMap((table) => {
|
|
54
|
+
const schemaTable = schema.find((s) => s.name === table.name);
|
|
55
|
+
return schemaTable ? schemaTable.columns : [];
|
|
56
|
+
});
|
|
57
|
+
const pivot = astGroupByToPivot(ast.groupby, relevantColumns);
|
|
58
|
+
const sort = astOrderByToSort(ast.orderby);
|
|
59
|
+
const limit = astLimitToLimit(ast.limit);
|
|
60
|
+
const filterStack = generateFilterStack(astToFilterTree(ast.where, databaseType.toLowerCase()));
|
|
61
|
+
return {
|
|
62
|
+
tables,
|
|
63
|
+
columns,
|
|
64
|
+
filterStack,
|
|
65
|
+
pivot,
|
|
66
|
+
sort,
|
|
67
|
+
limit,
|
|
68
|
+
};
|
|
69
|
+
};
|
|
70
|
+
// Helper conversion functions
|
|
71
|
+
const astColumnsToColumns = (node, defaultTable) => {
|
|
72
|
+
// expected
|
|
73
|
+
/*
|
|
74
|
+
[
|
|
75
|
+
{
|
|
76
|
+
"expr": {
|
|
77
|
+
"type": "column_ref",
|
|
78
|
+
"table": null,
|
|
79
|
+
"column": "field"
|
|
80
|
+
},
|
|
81
|
+
"as": null
|
|
82
|
+
},
|
|
83
|
+
]
|
|
84
|
+
*/
|
|
85
|
+
if (!node || !node.length || node.length === 0) {
|
|
86
|
+
return [];
|
|
87
|
+
}
|
|
88
|
+
return node.map((node) => {
|
|
89
|
+
return {
|
|
90
|
+
field: getFieldFromExpression(node.expr),
|
|
91
|
+
table: node.expr.table ?? defaultTable ?? null,
|
|
92
|
+
alias: node.as ?? null,
|
|
93
|
+
};
|
|
94
|
+
});
|
|
95
|
+
};
|
|
96
|
+
const astGroupByToPivot = (node, columnInfo) => {
|
|
97
|
+
if (!node) {
|
|
98
|
+
return null;
|
|
99
|
+
}
|
|
100
|
+
return convertASTToPivotData(node, columnInfo);
|
|
101
|
+
};
|
|
102
|
+
const astFromToTables = (node) => {
|
|
103
|
+
// expected
|
|
104
|
+
/*
|
|
105
|
+
[
|
|
106
|
+
{
|
|
107
|
+
"db": null,
|
|
108
|
+
"table": "all_tenant_data",
|
|
109
|
+
"as": null,
|
|
110
|
+
"join": 'INNER JOIN',
|
|
111
|
+
}
|
|
112
|
+
]
|
|
113
|
+
*/
|
|
114
|
+
if (!node) {
|
|
115
|
+
return [];
|
|
116
|
+
}
|
|
117
|
+
return node.map((_node) => {
|
|
118
|
+
return {
|
|
119
|
+
name: _node.table,
|
|
120
|
+
alias: _node.as ?? null,
|
|
121
|
+
join: _node.join
|
|
122
|
+
? {
|
|
123
|
+
type: _node.join,
|
|
124
|
+
condition: {
|
|
125
|
+
operator: _node.on.operator,
|
|
126
|
+
left: {
|
|
127
|
+
field: getFieldFromExpression(_node.on.left.column.expr || _node.on.left.column),
|
|
128
|
+
table: _node.on.left.table,
|
|
129
|
+
},
|
|
130
|
+
right: {
|
|
131
|
+
field: getFieldFromExpression(_node.on.right.column.expr || _node.on.right.column),
|
|
132
|
+
table: _node.on.right.table,
|
|
133
|
+
},
|
|
134
|
+
},
|
|
135
|
+
}
|
|
136
|
+
: null,
|
|
137
|
+
};
|
|
138
|
+
});
|
|
139
|
+
};
|
|
140
|
+
const astOrderByToSort = (node) => {
|
|
141
|
+
// expected
|
|
142
|
+
/*
|
|
143
|
+
[
|
|
144
|
+
{
|
|
145
|
+
"expr": {
|
|
146
|
+
"type": "column_ref",
|
|
147
|
+
"table": null,
|
|
148
|
+
"column": "county_id"
|
|
149
|
+
},
|
|
150
|
+
"type": "DESC"
|
|
151
|
+
}
|
|
152
|
+
]
|
|
153
|
+
*/
|
|
154
|
+
if (!node) {
|
|
155
|
+
return [];
|
|
156
|
+
}
|
|
157
|
+
return node
|
|
158
|
+
.map((node) => {
|
|
159
|
+
return node.expr?.column
|
|
160
|
+
? { field: node.expr.column, direction: node.type ?? 'ASC' }
|
|
161
|
+
: null;
|
|
162
|
+
})
|
|
163
|
+
.filter((node) => node);
|
|
164
|
+
};
|
|
165
|
+
const astLimitToLimit = (node) => {
|
|
166
|
+
// expected
|
|
167
|
+
/*
|
|
168
|
+
{
|
|
169
|
+
"seperator": "",
|
|
170
|
+
"value": [
|
|
171
|
+
{
|
|
172
|
+
"type": "number",
|
|
173
|
+
"value": 10
|
|
174
|
+
}
|
|
175
|
+
]
|
|
176
|
+
}
|
|
177
|
+
*/
|
|
178
|
+
if (!node ||
|
|
179
|
+
!node.value ||
|
|
180
|
+
node.value.length === 0 ||
|
|
181
|
+
!node.value?.[0]?.value) {
|
|
182
|
+
return null;
|
|
183
|
+
}
|
|
184
|
+
return { value: node.value[0].value };
|
|
185
|
+
};
|
|
186
|
+
const createOperatorFromJoinCondition = (condition) => {
|
|
187
|
+
return {
|
|
188
|
+
type: 'binary_expr',
|
|
189
|
+
operator: condition.operator,
|
|
190
|
+
left: {
|
|
191
|
+
type: 'column_ref',
|
|
192
|
+
table: condition.left.table,
|
|
193
|
+
column: condition.left.field,
|
|
194
|
+
},
|
|
195
|
+
right: {
|
|
196
|
+
type: 'column_ref',
|
|
197
|
+
table: condition.right.table,
|
|
198
|
+
column: condition.right.field,
|
|
199
|
+
},
|
|
200
|
+
};
|
|
201
|
+
};
|
|
202
|
+
const tableToAstFrom = (tables) => {
|
|
203
|
+
return tables.map((table) => {
|
|
204
|
+
return {
|
|
205
|
+
db: null,
|
|
206
|
+
table: table.name,
|
|
207
|
+
as: table.alias ?? null,
|
|
208
|
+
join: table.join ? table.join.type : null,
|
|
209
|
+
on: table.join
|
|
210
|
+
? createOperatorFromJoinCondition(table.join.condition)
|
|
211
|
+
: null,
|
|
212
|
+
};
|
|
213
|
+
});
|
|
214
|
+
};
|
|
215
|
+
const columnsToAstColumns = (columns) => {
|
|
216
|
+
if (!columns) {
|
|
217
|
+
return null;
|
|
218
|
+
}
|
|
219
|
+
return columns.map((column) => {
|
|
220
|
+
return {
|
|
221
|
+
expr: {
|
|
222
|
+
type: 'column_ref',
|
|
223
|
+
table: column.table ?? null,
|
|
224
|
+
column: column.field,
|
|
225
|
+
},
|
|
226
|
+
as: column.alias ?? null,
|
|
227
|
+
};
|
|
228
|
+
});
|
|
229
|
+
};
|
|
230
|
+
const sortToAstOrderBy = (sort) => {
|
|
231
|
+
if (!sort || sort.length === 0) {
|
|
232
|
+
return null;
|
|
233
|
+
}
|
|
234
|
+
return sort.map((sort) => {
|
|
235
|
+
return {
|
|
236
|
+
expr: {
|
|
237
|
+
type: 'column_ref',
|
|
238
|
+
table: null,
|
|
239
|
+
column: sort.field,
|
|
240
|
+
},
|
|
241
|
+
type: sort.direction,
|
|
242
|
+
};
|
|
243
|
+
});
|
|
244
|
+
};
|
|
245
|
+
const limitToAstLimit = (limit, databaseType) => {
|
|
246
|
+
if (!limit) {
|
|
247
|
+
return null;
|
|
248
|
+
}
|
|
249
|
+
if (databaseType.toLowerCase() === 'mssql') {
|
|
250
|
+
return {
|
|
251
|
+
value: limit.value,
|
|
252
|
+
percent: null,
|
|
253
|
+
};
|
|
254
|
+
}
|
|
255
|
+
return {
|
|
256
|
+
seperator: '',
|
|
257
|
+
value: [
|
|
258
|
+
{
|
|
259
|
+
type: 'number',
|
|
260
|
+
value: limit.value,
|
|
261
|
+
},
|
|
262
|
+
],
|
|
263
|
+
};
|
|
264
|
+
};
|
|
265
|
+
// Validation
|
|
266
|
+
export const isValidPivotForReport = (pivot, uniqueValuesByColumn, reportColumns) => {
|
|
267
|
+
if (!isValidPivot(pivot).valid) {
|
|
268
|
+
return false;
|
|
269
|
+
}
|
|
270
|
+
// check that pivot rows and columns
|
|
271
|
+
const pivotColumns = reportColumns;
|
|
272
|
+
const possibleOptions = getPossiblePivotFieldOptions(pivotColumns, uniqueValuesByColumn);
|
|
273
|
+
if (pivot.rowField &&
|
|
274
|
+
pivot.columnField &&
|
|
275
|
+
pivot.rowField === pivot.columnField) {
|
|
276
|
+
return false;
|
|
277
|
+
}
|
|
278
|
+
if (pivot.rowField && !possibleOptions.rowFields.includes(pivot.rowField)) {
|
|
279
|
+
return false;
|
|
280
|
+
}
|
|
281
|
+
if (pivot.columnField &&
|
|
282
|
+
!possibleOptions.columnFields.includes(pivot.columnField)) {
|
|
283
|
+
return false;
|
|
284
|
+
}
|
|
285
|
+
for (const agg of pivot.aggregations ?? []) {
|
|
286
|
+
if (agg.valueField &&
|
|
287
|
+
!possibleOptions.valueFields.includes(agg.valueField)) {
|
|
288
|
+
return false;
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
if (!pivot.aggregations || pivot.aggregations.length === 0) {
|
|
292
|
+
return false;
|
|
293
|
+
}
|
|
294
|
+
return true;
|
|
295
|
+
};
|
|
296
|
+
export const makePivotValid = (pivot, uniqueValuesForPivot, reportColumns) => {
|
|
297
|
+
if (!pivot) {
|
|
298
|
+
return { pivot: null, hint: '' };
|
|
299
|
+
}
|
|
300
|
+
// try flipping row and column field
|
|
301
|
+
let newPivot = {
|
|
302
|
+
...pivot,
|
|
303
|
+
rowField: pivot.columnField,
|
|
304
|
+
columnField: pivot.rowField,
|
|
305
|
+
};
|
|
306
|
+
if (isValidPivotForReport(newPivot, uniqueValuesForPivot, reportColumns)) {
|
|
307
|
+
newPivot = setTypesOnPivot(newPivot, reportColumns);
|
|
308
|
+
return {
|
|
309
|
+
pivot: newPivot,
|
|
310
|
+
hint: 'Flipping pivot row and column fields to maintain validity',
|
|
311
|
+
};
|
|
312
|
+
}
|
|
313
|
+
// try removing column field
|
|
314
|
+
newPivot = {
|
|
315
|
+
...pivot,
|
|
316
|
+
rowField: pivot.rowField,
|
|
317
|
+
columnField: undefined,
|
|
318
|
+
};
|
|
319
|
+
if (isValidPivotForReport(newPivot, uniqueValuesForPivot, reportColumns)) {
|
|
320
|
+
newPivot = setTypesOnPivot(newPivot, reportColumns);
|
|
321
|
+
return {
|
|
322
|
+
pivot: newPivot,
|
|
323
|
+
hint: 'Removing column field to maintain validity',
|
|
324
|
+
};
|
|
325
|
+
}
|
|
326
|
+
return { pivot: null, hint: '' };
|
|
327
|
+
};
|
|
328
|
+
export const formatRows = (rows, columns, pivot, aggregationType, dateBucket) => {
|
|
329
|
+
const copiedRows = deepCopy(rows);
|
|
330
|
+
if (pivot) {
|
|
331
|
+
const formattedRows = copiedRows.map((row) => {
|
|
332
|
+
const formattedRow = row;
|
|
333
|
+
Object.keys(row).forEach((key) => {
|
|
334
|
+
const column = columns.find((c) => c.field === key);
|
|
335
|
+
let format = 'string';
|
|
336
|
+
if (!column) {
|
|
337
|
+
format =
|
|
338
|
+
aggregationType === 'count' ? 'whole_number' : 'two_decimal_places';
|
|
339
|
+
}
|
|
340
|
+
else {
|
|
341
|
+
format = DATE_FORMAT_TYPES.includes(column.format)
|
|
342
|
+
? dateBucket
|
|
343
|
+
? getDateFormatFromBucket(dateBucket)
|
|
344
|
+
: 'MMM_yyyy'
|
|
345
|
+
: 'string';
|
|
346
|
+
}
|
|
347
|
+
const formattedValue = quillFormat({
|
|
348
|
+
value: row[key],
|
|
349
|
+
format,
|
|
350
|
+
});
|
|
351
|
+
formattedRow[key] = formattedValue;
|
|
352
|
+
});
|
|
353
|
+
return formattedRow;
|
|
354
|
+
});
|
|
355
|
+
return formattedRows;
|
|
356
|
+
}
|
|
357
|
+
else {
|
|
358
|
+
const formattedRows = copiedRows.map((row) => {
|
|
359
|
+
return columns.reduce((formattedRow, column) => {
|
|
360
|
+
// Apply the format function to each field in the row
|
|
361
|
+
const formattedValue = quillFormat({
|
|
362
|
+
value: row[column.field],
|
|
363
|
+
format: column.format,
|
|
364
|
+
});
|
|
365
|
+
formattedRow[column.field] = formattedValue;
|
|
366
|
+
return formattedRow;
|
|
367
|
+
}, {});
|
|
368
|
+
});
|
|
369
|
+
return formattedRows;
|
|
370
|
+
}
|
|
371
|
+
};
|
|
372
|
+
export const setTypesOnPivot = (newPivot, searchColumns) => ({
|
|
373
|
+
...newPivot,
|
|
374
|
+
aggregations: newPivot.aggregations?.map((agg) => ({
|
|
375
|
+
...agg,
|
|
376
|
+
valueFieldType: searchColumns.find((c) => c.field === agg.valueField)
|
|
377
|
+
?.jsType,
|
|
378
|
+
valueField2Type: searchColumns.find((c) => c.field === agg.valueField2)
|
|
379
|
+
?.jsType,
|
|
380
|
+
})),
|
|
381
|
+
valueField: newPivot.aggregations?.[0]?.valueField,
|
|
382
|
+
valueField2: newPivot.aggregations?.[0]?.valueField2,
|
|
383
|
+
aggregationType: newPivot.aggregations?.[0]?.aggregationType,
|
|
384
|
+
valueFieldType: searchColumns.find((c) => c.field === newPivot.aggregations?.[0]?.valueField)?.jsType,
|
|
385
|
+
valueField2Type: searchColumns.find((c) => c.field === newPivot.aggregations?.[0]?.valueField2)?.jsType,
|
|
386
|
+
});
|
|
@@ -30,4 +30,11 @@ export declare const getSchemaInfo: ({ client, caller, tenants, tableIds, abortS
|
|
|
30
30
|
schemaWithCustomFields: Table[];
|
|
31
31
|
}>;
|
|
32
32
|
export declare const customFieldToColumnInternal: (customField: CustomField) => ColumnInternal;
|
|
33
|
+
export declare const getSchemaForeignKeyMapping: (schema: Table[]) => {
|
|
34
|
+
[table: string]: {
|
|
35
|
+
foreignTable: string;
|
|
36
|
+
foreignTablePrimaryKey: string;
|
|
37
|
+
foreignKey: string;
|
|
38
|
+
}[];
|
|
39
|
+
};
|
|
33
40
|
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/utils/schema.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AA8BzC,eAAO,MAAM,kBAAkB,8CAK5B;IACD,MAAM,EAAE,mBAAmB,CAAC;IAC5B,OAAO,EACH;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;KAAE,EAAE,GACzD,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B,KAAG,OAAO,CAAC;IAAE,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,EAAE,CAAA;CAAE,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/utils/schema.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AA8BzC,eAAO,MAAM,kBAAkB,8CAK5B;IACD,MAAM,EAAE,mBAAmB,CAAC;IAC5B,OAAO,EACH;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;KAAE,EAAE,GACzD,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B,KAAG,OAAO,CAAC;IAAE,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,EAAE,CAAA;CAAE,GAAG,IAAI,CAwFxD,CAAC;AAEF,eAAO,MAAM,aAAa,wDAMvB;IACD,MAAM,EAAE,mBAAmB,CAAC;IAC5B,OAAO,CAAC,EACJ;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;KAAE,EAAE,GACzD,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B,KAAG,OAAO,CAAC;IACV,UAAU,EAAE,KAAK,EAAE,CAAC;IACpB,mBAAmB,EAAE;QAAE,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,EAAE,CAAA;KAAE,GAAG,IAAI,CAAC;IACnE,sBAAsB,EAAE,KAAK,EAAE,CAAC;CACjC,CAgEA,CAAC;AA2BF,eAAO,MAAM,2BAA2B,gBACzB,WAAW,KACvB,cAaF,CAAC;AAIF,eAAO,MAAM,0BAA0B,WAC7B,KAAK,EAAE,KACd;IACD,CAAC,KAAK,EAAE,MAAM,GAAG;QACf,YAAY,EAAE,MAAM,CAAC;QACrB,sBAAsB,EAAE,MAAM,CAAC;QAC/B,UAAU,EAAE,MAAM,CAAC;KACpB,EAAE,CAAC;CAiCL,CAAC"}
|
package/dist/esm/utils/schema.js
CHANGED
|
@@ -77,7 +77,12 @@ export const getCustomFieldInfo = async ({ client, tenants, caller = 'se', abort
|
|
|
77
77
|
item.type)) {
|
|
78
78
|
return false;
|
|
79
79
|
}
|
|
80
|
-
customFieldsByTableSet.add(item.viewName +
|
|
80
|
+
customFieldsByTableSet.add(item.viewName +
|
|
81
|
+
item.refTable +
|
|
82
|
+
item.refField +
|
|
83
|
+
item.field +
|
|
84
|
+
item.refColumn +
|
|
85
|
+
item.type);
|
|
81
86
|
return true;
|
|
82
87
|
});
|
|
83
88
|
}
|
|
@@ -172,6 +177,7 @@ function convertSchemaInfoToTable(schemaData) {
|
|
|
172
177
|
displayName: table.displayName,
|
|
173
178
|
broken: table.broken,
|
|
174
179
|
error: table.error,
|
|
180
|
+
ownerTenantFields: table.ownerTenantFields,
|
|
175
181
|
};
|
|
176
182
|
tables.push(newTable);
|
|
177
183
|
});
|
|
@@ -189,3 +195,30 @@ export const customFieldToColumnInternal = (customField) => {
|
|
|
189
195
|
jsType: isNumberType(customField.type || 'varchar') ? 'number' : 'string',
|
|
190
196
|
};
|
|
191
197
|
};
|
|
198
|
+
// TODO: This function is highly speculative and needs generalization
|
|
199
|
+
// NOTE: EXPERIMENTAL FUNCTION, DON'T USE FOR SENSITIVE STUFF
|
|
200
|
+
export const getSchemaForeignKeyMapping = (schema) => {
|
|
201
|
+
const map = {};
|
|
202
|
+
schema.forEach((table) => {
|
|
203
|
+
table.columns.forEach((column) => {
|
|
204
|
+
if (column.field.toLowerCase().endsWith('_id')) {
|
|
205
|
+
const foreignTableName = `${column.field.slice(0, -3)}s`;
|
|
206
|
+
const foreignTable = schema.find((t) => t.name === foreignTableName);
|
|
207
|
+
if (foreignTable &&
|
|
208
|
+
foreignTable.columns.some((c) => c.field === 'id')) {
|
|
209
|
+
const foreignTablePrimaryKey = 'id';
|
|
210
|
+
const foreignKey = column.field;
|
|
211
|
+
if (!map[table.name]) {
|
|
212
|
+
map[table.name] = [];
|
|
213
|
+
}
|
|
214
|
+
map[table.name]?.push({
|
|
215
|
+
foreignTable: foreignTableName,
|
|
216
|
+
foreignTablePrimaryKey,
|
|
217
|
+
foreignKey,
|
|
218
|
+
});
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
});
|
|
222
|
+
});
|
|
223
|
+
return map;
|
|
224
|
+
};
|
|
@@ -4,8 +4,9 @@ import { Column, ColumnInternal } from '../models/Columns';
|
|
|
4
4
|
import { DashboardFilter } from '../models/Filter';
|
|
5
5
|
import { Pagination } from '../models/Pagination';
|
|
6
6
|
import { Pivot } from '../models/Pivot';
|
|
7
|
+
import { ReportBuilderColumn } from '../models/ReportBuilder';
|
|
7
8
|
import { CustomField } from '../models/Schema';
|
|
8
|
-
import { DateRangesByColumn } from '../models/Tables';
|
|
9
|
+
import { DateRangesByColumn, UniqueValuesByTable, UniqueValuesByColumn } from '../models/Tables';
|
|
9
10
|
export interface AdditionalProcessing {
|
|
10
11
|
sort?: {
|
|
11
12
|
field: string;
|
|
@@ -15,29 +16,65 @@ export interface AdditionalProcessing {
|
|
|
15
16
|
last?: number;
|
|
16
17
|
}
|
|
17
18
|
export declare const hasColumnAlias: (columns: Column[], referencedColumns: string[]) => boolean;
|
|
18
|
-
export declare const
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
19
|
+
export declare const getUniqueValuesByQuery: ({ columns, query, client, tenants, customFields, filters, dashboardName, }: {
|
|
20
|
+
columns: Column[];
|
|
21
|
+
query: string;
|
|
22
|
+
client: QuillProviderClient;
|
|
23
|
+
tenants: {
|
|
24
|
+
tenantField: string;
|
|
25
|
+
tenantIds: (string | number)[];
|
|
26
|
+
}[] | (string | number)[] | undefined;
|
|
27
|
+
customFields: {
|
|
28
|
+
[table: string]: CustomField[];
|
|
26
29
|
};
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
30
|
+
filters?: DashboardFilter[];
|
|
31
|
+
dashboardName: string;
|
|
32
|
+
}) => Promise<UniqueValuesByColumn | null>;
|
|
33
|
+
export declare const getUniqueStringValuesByColumn: ({ columns, tableName, client, tenants, customFields, withExceededColumns, query, dashboardName, }: {
|
|
34
|
+
columns: ColumnInternal[];
|
|
35
|
+
tableName: string;
|
|
36
|
+
client: any;
|
|
37
|
+
tenants?: {
|
|
38
|
+
tenantField: string;
|
|
39
|
+
tenantIds: (string | number)[];
|
|
40
|
+
}[] | (string | number)[];
|
|
41
|
+
customFields?: any;
|
|
42
|
+
withExceededColumns?: boolean;
|
|
43
|
+
query?: string;
|
|
44
|
+
dashboardName: string;
|
|
45
|
+
}) => Promise<UniqueValuesByColumn>;
|
|
46
|
+
export declare const getUniqueStringValuesByTable: ({ tables, columns, client, tenants, dashboardName, customFields, withExceededColumns, queryTemplate, }: {
|
|
47
|
+
tables: string[];
|
|
48
|
+
columns: ColumnInternal[];
|
|
49
|
+
client: QuillProviderClient;
|
|
50
|
+
tenants?: {
|
|
51
|
+
tenantField: string;
|
|
52
|
+
tenantIds: (string | number)[];
|
|
53
|
+
}[] | (string | number)[];
|
|
54
|
+
dashboardName: string;
|
|
55
|
+
customFields?: {
|
|
56
|
+
[table: string]: CustomField[];
|
|
40
57
|
};
|
|
58
|
+
withExceededColumns?: boolean;
|
|
59
|
+
queryTemplate?: string;
|
|
60
|
+
}) => Promise<UniqueValuesByTable>;
|
|
61
|
+
export declare const getRelevantInfoFromQuery: ({ tables, columns, aliasedColumns, reportBuilderColumns, client, tenants, query, queryTemplate, customFields, dashboardName, }: {
|
|
62
|
+
tables: string[];
|
|
63
|
+
columns: ColumnInternal[];
|
|
64
|
+
aliasedColumns: ColumnInternal[];
|
|
65
|
+
reportBuilderColumns: ReportBuilderColumn[];
|
|
66
|
+
client: QuillProviderClient;
|
|
67
|
+
tenants: {
|
|
68
|
+
tenantField: string;
|
|
69
|
+
tenantIds: (string | number)[];
|
|
70
|
+
}[] | (string | number)[] | undefined;
|
|
71
|
+
query: string;
|
|
72
|
+
queryTemplate: string;
|
|
73
|
+
customFields?: any;
|
|
74
|
+
dashboardName: string;
|
|
75
|
+
}) => Promise<{
|
|
76
|
+
uniqueStrings?: UniqueValuesByTable;
|
|
77
|
+
columnUniqueValues?: UniqueValuesByColumn;
|
|
41
78
|
dateRanges?: DateRangesByColumn;
|
|
42
79
|
error?: string;
|
|
43
80
|
}>;
|
|
@@ -140,11 +177,4 @@ export declare const fetchTableByAST: (ast: NodeSQLParser.Select, client: QuillP
|
|
|
140
177
|
itemQuery?: string[];
|
|
141
178
|
referencedTables?: string[];
|
|
142
179
|
}>;
|
|
143
|
-
export declare const convertUniqueValuesByColumnToUniqueValueStrings: (uniqueValuesByColumns: {
|
|
144
|
-
[column: string]: {
|
|
145
|
-
[value: string]: boolean;
|
|
146
|
-
};
|
|
147
|
-
}) => {
|
|
148
|
-
[columnName: string]: string[];
|
|
149
|
-
};
|
|
150
180
|
//# sourceMappingURL=tableProcessing.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tableProcessing.d.ts","sourceRoot":"","sources":["../../../src/utils/tableProcessing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"tableProcessing.d.ts","sourceRoot":"","sources":["../../../src/utils/tableProcessing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACrB,MAAM,kBAAkB,CAAC;AAoB1B,MAAM,WAAW,oBAAoB;IACnC,IAAI,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5C,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,cAAc,YAChB,MAAM,EAAE,qBACE,MAAM,EAAE,KAC1B,OAUF,CAAC;AAEF,eAAO,MAAM,sBAAsB,+EAQhC;IACD,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,mBAAmB,CAAC;IAC5B,OAAO,EACH;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;KAAE,EAAE,GACzD,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GACnB,SAAS,CAAC;IACd,YAAY,EAAE;QAAE,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,EAAE,CAAA;KAAE,CAAC;IACjD,OAAO,CAAC,EAAE,eAAe,EAAE,CAAC;IAC5B,aAAa,EAAE,MAAM,CAAC;CACvB,KAAG,OAAO,CAAC,oBAAoB,GAAG,IAAI,CA0BtC,CAAC;AAEF,eAAO,MAAM,6BAA6B,sGASvC;IACD,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,GAAG,CAAC;IACZ,OAAO,CAAC,EACJ;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;KAAE,EAAE,GACzD,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IACxB,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;CACvB,KAAG,OAAO,CAAC,oBAAoB,CA+C/B,CAAC;AAEF,eAAO,MAAM,4BAA4B,2GAStC;IACD,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,MAAM,EAAE,mBAAmB,CAAC;IAC5B,OAAO,CAAC,EACJ;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;KAAE,EAAE,GACzD,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE;QAAE,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,EAAE,CAAA;KAAE,CAAC;IAClD,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,KAAG,OAAO,CAAC,mBAAmB,CA4B9B,CAAC;AAEF,eAAO,MAAM,wBAAwB,mIAWlC;IACD,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,cAAc,EAAE,cAAc,EAAE,CAAC;IACjC,oBAAoB,EAAE,mBAAmB,EAAE,CAAC;IAC5C,MAAM,EAAE,mBAAmB,CAAC;IAC5B,OAAO,EACH;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;KAAE,EAAE,GACzD,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GACnB,SAAS,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;CACvB,KAAG,OAAO,CAAC;IACV,aAAa,CAAC,EAAE,mBAAmB,CAAC;IACpC,kBAAkB,CAAC,EAAE,oBAAoB,CAAC;IAC1C,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAoDA,CAAC;AAEF,eAAO,MAAM,kBAAkB,YACpB,MAAM,EAAE,SACV,MAAM,UACL,mBAAmB,WAEvB;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;CAAE,EAAE,GACzD,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GACnB,SAAS,gBACC;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,EAAE,CAAA;CAAE,kBAChC,MAAM,KACrB,OAAO,CAAC;IACT,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,eAAe,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;CACvC,CAsDA,CAAC;AAmFF,eAAO,MAAM,0BAA0B,YAC5B,MAAM,EAAE,SACV,MAAM,UACL,mBAAmB,WAEvB;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;CAAE,EAAE,GACzD,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GACnB,SAAS,gBACC;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,EAAE,CAAA;CAAE,kBAChC,MAAM,KACrB,OAAO,CAAC;IACT,CAAC,MAAM,EAAE,MAAM,GAAG;QAAE,SAAS,EAAE;YAAE,KAAK,EAAE,IAAI,CAAC;YAAC,GAAG,EAAE,IAAI,CAAA;SAAE,CAAA;KAAE,CAAC;CAC7D,GAAG,IAAI,CAkBP,CAAC;AA4DF,eAAO,MAAM,gBAAgB,WACnB,mBAAmB,WAEvB;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;CAAE,EAAE,GACzD,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GACnB,SAAS,UACL,MAAM,aACH,MAAM,eACJ,oBAAoB,YACvB,GAAG,iBACE,GAAG,kBACF,MAAM,KACrB,OAAO,CAAC;IACT,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAsBA,CAAC;AAIF,eAAO,MAAM,mBAAmB,0KAe7B;IACD,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,mBAAmB,CAAC;IAC5B,OAAO,EACH;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;KAAE,EAAE,GACzD,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GACnB,SAAS,CAAC;IACd,UAAU,CAAC,EAAE,oBAAoB,CAAC;IAClC,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB,OAAO,CAAC,EAAE,eAAe,EAAE,CAAC;IAC5B,SAAS,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACpD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC;IAChE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC;IACrB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,KAAG,OAAO,CAAC;IACV,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC7B,CAqIA,CAAC;AAEF,eAAO,MAAM,oBAAoB,sKAc9B;IACD,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,mBAAmB,CAAC;IAC5B,OAAO,EACH;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;KAAE,EAAE,GACzD,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GACnB,SAAS,CAAC;IACd,UAAU,CAAC,EAAE,oBAAoB,CAAC;IAClC,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B,KAAG,OAAO,CAAC;IACV,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CA+FA,CAAC;AAEF,eAAO,MAAM,eAAe,QACrB,aAAa,CAAC,MAAM,UACjB,mBAAmB,WAEvB;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;CAAE,EAAE,GACzD,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GACnB,SAAS,eACA,oBAAoB,iBAClB,GAAG,aACP,OAAO,iBACH,OAAO,kBACN,MAAM,KACrB,OAAO,CAAC;IACT,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC7B,CAuEA,CAAC"}
|