@quillsql/react 2.14.14 → 2.14.16
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 +0 -12
- package/dist/cjs/ChartBuilder.d.ts +2 -3
- package/dist/cjs/ChartBuilder.d.ts.map +1 -1
- package/dist/cjs/ChartBuilder.js +23 -107
- package/dist/cjs/ChartEditor.d.ts.map +1 -1
- package/dist/cjs/ChartEditor.js +0 -2
- package/dist/cjs/Context.d.ts +2 -6
- package/dist/cjs/Context.d.ts.map +1 -1
- package/dist/cjs/Context.js +32 -159
- package/dist/cjs/Dashboard.d.ts.map +1 -1
- package/dist/cjs/Dashboard.js +16 -93
- package/dist/cjs/QuillProvider.d.ts +1 -38
- package/dist/cjs/QuillProvider.d.ts.map +1 -1
- package/dist/cjs/QuillProvider.js +2 -2
- package/dist/cjs/ReportBuilder.d.ts +1 -4
- package/dist/cjs/ReportBuilder.d.ts.map +1 -1
- package/dist/cjs/ReportBuilder.js +1270 -103
- package/dist/cjs/SQLEditor.d.ts.map +1 -1
- package/dist/cjs/SQLEditor.js +6 -50
- package/dist/cjs/Table.d.ts.map +1 -1
- package/dist/cjs/Table.js +0 -12
- package/dist/cjs/components/Chart/InternalChart.d.ts.map +1 -1
- package/dist/cjs/components/Chart/InternalChart.js +1 -24
- package/dist/cjs/components/Dashboard/DashboardTemplate.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/DashboardTemplate.js +1 -2
- package/dist/cjs/components/Dashboard/DataLoader.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/DataLoader.js +2 -73
- package/dist/cjs/components/Dashboard/util.d.ts +1 -2
- package/dist/cjs/components/Dashboard/util.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/util.js +1 -12
- package/dist/cjs/components/QuillTable.d.ts +1 -2
- package/dist/cjs/components/QuillTable.d.ts.map +1 -1
- package/dist/cjs/components/QuillTable.js +2 -2
- package/dist/cjs/components/ReportBuilder/AddColumnModal.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/AddColumnModal.js +1 -7
- package/dist/cjs/components/ReportBuilder/ui.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/ui.js +1 -3
- package/dist/cjs/components/UiComponents.d.ts +2 -5
- package/dist/cjs/components/UiComponents.d.ts.map +1 -1
- package/dist/cjs/components/UiComponents.js +5 -6
- package/dist/cjs/hooks/useAskQuill.d.ts.map +1 -1
- package/dist/cjs/hooks/useAskQuill.js +0 -38
- package/dist/cjs/hooks/useDashboard.d.ts.map +1 -1
- package/dist/cjs/hooks/useDashboard.js +4 -60
- package/dist/cjs/hooks/useExport.d.ts.map +1 -1
- package/dist/cjs/hooks/useExport.js +2 -5
- package/dist/cjs/hooks/useQuill.d.ts.map +1 -1
- package/dist/cjs/hooks/useQuill.js +1 -25
- package/dist/cjs/hooks/useVirtualTables.d.ts.map +1 -1
- package/dist/cjs/hooks/useVirtualTables.js +2 -27
- package/dist/cjs/index.d.ts +0 -11
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +1 -17
- package/dist/cjs/internals/ReportBuilder/PivotForm.d.ts +1 -14
- package/dist/cjs/internals/ReportBuilder/PivotForm.d.ts.map +1 -1
- package/dist/cjs/internals/ReportBuilder/PivotForm.js +4 -87
- package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts +2 -18
- package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
- package/dist/cjs/internals/ReportBuilder/PivotModal.js +141 -420
- package/dist/cjs/utils/astProcessing.d.ts +2 -4
- package/dist/cjs/utils/astProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/astProcessing.js +2 -25
- package/dist/cjs/utils/client.d.ts +1 -2
- package/dist/cjs/utils/client.d.ts.map +1 -1
- package/dist/cjs/utils/client.js +1 -12
- package/dist/cjs/utils/dashboard.d.ts +1 -3
- package/dist/cjs/utils/dashboard.d.ts.map +1 -1
- package/dist/cjs/utils/dashboard.js +3 -44
- package/dist/cjs/utils/filterProcessing.d.ts +1 -2
- package/dist/cjs/utils/filterProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/filterProcessing.js +1 -12
- package/dist/cjs/utils/pivotConstructor.d.ts.map +1 -1
- package/dist/cjs/utils/pivotConstructor.js +21 -15
- package/dist/cjs/utils/pivotProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/pivotProcessing.js +3 -1
- package/dist/cjs/utils/queryConstructor.d.ts.map +1 -1
- package/dist/cjs/utils/queryConstructor.js +19 -11
- package/dist/cjs/utils/report.d.ts +5 -10
- package/dist/cjs/utils/report.d.ts.map +1 -1
- package/dist/cjs/utils/report.js +7 -51
- package/dist/cjs/utils/reportBuilder.d.ts.map +1 -1
- package/dist/cjs/utils/reportBuilder.js +2 -5
- package/dist/cjs/utils/schema.d.ts +2 -5
- package/dist/cjs/utils/schema.d.ts.map +1 -1
- package/dist/cjs/utils/schema.js +2 -14
- package/dist/cjs/utils/tableProcessing.d.ts +10 -17
- package/dist/cjs/utils/tableProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/tableProcessing.js +17 -99
- package/dist/esm/Chart.d.ts.map +1 -1
- package/dist/esm/Chart.js +1 -13
- package/dist/esm/ChartBuilder.d.ts +2 -3
- package/dist/esm/ChartBuilder.d.ts.map +1 -1
- package/dist/esm/ChartBuilder.js +25 -109
- package/dist/esm/ChartEditor.d.ts.map +1 -1
- package/dist/esm/ChartEditor.js +1 -3
- package/dist/esm/Context.d.ts +2 -6
- package/dist/esm/Context.d.ts.map +1 -1
- package/dist/esm/Context.js +31 -158
- package/dist/esm/Dashboard.d.ts.map +1 -1
- package/dist/esm/Dashboard.js +17 -94
- package/dist/esm/QuillProvider.d.ts +1 -38
- package/dist/esm/QuillProvider.d.ts.map +1 -1
- package/dist/esm/QuillProvider.js +2 -2
- package/dist/esm/ReportBuilder.d.ts +1 -4
- package/dist/esm/ReportBuilder.d.ts.map +1 -1
- package/dist/esm/ReportBuilder.js +1270 -106
- package/dist/esm/SQLEditor.d.ts.map +1 -1
- package/dist/esm/SQLEditor.js +7 -51
- package/dist/esm/Table.d.ts.map +1 -1
- package/dist/esm/Table.js +1 -13
- package/dist/esm/components/Chart/InternalChart.d.ts.map +1 -1
- package/dist/esm/components/Chart/InternalChart.js +2 -25
- package/dist/esm/components/Dashboard/DashboardTemplate.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/DashboardTemplate.js +2 -3
- package/dist/esm/components/Dashboard/DataLoader.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/DataLoader.js +3 -74
- package/dist/esm/components/Dashboard/util.d.ts +1 -2
- package/dist/esm/components/Dashboard/util.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/util.js +1 -12
- package/dist/esm/components/QuillTable.d.ts +1 -2
- package/dist/esm/components/QuillTable.d.ts.map +1 -1
- package/dist/esm/components/QuillTable.js +2 -2
- package/dist/esm/components/ReportBuilder/AddColumnModal.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/AddColumnModal.js +1 -7
- package/dist/esm/components/ReportBuilder/ui.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/ui.js +2 -4
- package/dist/esm/components/UiComponents.d.ts +2 -5
- package/dist/esm/components/UiComponents.d.ts.map +1 -1
- package/dist/esm/components/UiComponents.js +5 -6
- package/dist/esm/hooks/useAskQuill.d.ts.map +1 -1
- package/dist/esm/hooks/useAskQuill.js +1 -39
- package/dist/esm/hooks/useDashboard.d.ts.map +1 -1
- package/dist/esm/hooks/useDashboard.js +5 -61
- package/dist/esm/hooks/useExport.d.ts.map +1 -1
- package/dist/esm/hooks/useExport.js +3 -6
- package/dist/esm/hooks/useQuill.d.ts.map +1 -1
- package/dist/esm/hooks/useQuill.js +2 -26
- package/dist/esm/hooks/useVirtualTables.d.ts.map +1 -1
- package/dist/esm/hooks/useVirtualTables.js +3 -28
- package/dist/esm/index.d.ts +0 -11
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +0 -8
- package/dist/esm/internals/ReportBuilder/PivotForm.d.ts +1 -14
- package/dist/esm/internals/ReportBuilder/PivotForm.d.ts.map +1 -1
- package/dist/esm/internals/ReportBuilder/PivotForm.js +5 -88
- package/dist/esm/internals/ReportBuilder/PivotModal.d.ts +2 -18
- package/dist/esm/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
- package/dist/esm/internals/ReportBuilder/PivotModal.js +143 -422
- package/dist/esm/utils/astProcessing.d.ts +2 -4
- package/dist/esm/utils/astProcessing.d.ts.map +1 -1
- package/dist/esm/utils/astProcessing.js +2 -25
- package/dist/esm/utils/client.d.ts +1 -2
- package/dist/esm/utils/client.d.ts.map +1 -1
- package/dist/esm/utils/client.js +1 -12
- package/dist/esm/utils/dashboard.d.ts +1 -3
- package/dist/esm/utils/dashboard.d.ts.map +1 -1
- package/dist/esm/utils/dashboard.js +3 -44
- package/dist/esm/utils/filterProcessing.d.ts +1 -2
- package/dist/esm/utils/filterProcessing.d.ts.map +1 -1
- package/dist/esm/utils/filterProcessing.js +1 -12
- package/dist/esm/utils/pivotConstructor.d.ts.map +1 -1
- package/dist/esm/utils/pivotConstructor.js +21 -15
- package/dist/esm/utils/pivotProcessing.d.ts.map +1 -1
- package/dist/esm/utils/pivotProcessing.js +3 -1
- package/dist/esm/utils/queryConstructor.d.ts.map +1 -1
- package/dist/esm/utils/queryConstructor.js +19 -11
- package/dist/esm/utils/report.d.ts +5 -10
- package/dist/esm/utils/report.d.ts.map +1 -1
- package/dist/esm/utils/report.js +7 -51
- package/dist/esm/utils/reportBuilder.d.ts.map +1 -1
- package/dist/esm/utils/reportBuilder.js +2 -5
- package/dist/esm/utils/schema.d.ts +2 -5
- package/dist/esm/utils/schema.d.ts.map +1 -1
- package/dist/esm/utils/schema.js +2 -14
- package/dist/esm/utils/tableProcessing.d.ts +10 -17
- package/dist/esm/utils/tableProcessing.d.ts.map +1 -1
- package/dist/esm/utils/tableProcessing.js +17 -99
- package/package.json +1 -1
- package/dist/cjs/components/ReportBuilder/ColumnComponent.d.ts +0 -48
- package/dist/cjs/components/ReportBuilder/ColumnComponent.d.ts.map +0 -1
- package/dist/cjs/components/ReportBuilder/ColumnComponent.js +0 -46
- package/dist/cjs/components/ReportBuilder/FilterComponent.d.ts +0 -65
- package/dist/cjs/components/ReportBuilder/FilterComponent.d.ts.map +0 -1
- package/dist/cjs/components/ReportBuilder/FilterComponent.js +0 -51
- package/dist/cjs/components/ReportBuilder/LimitComponent.d.ts +0 -42
- package/dist/cjs/components/ReportBuilder/LimitComponent.d.ts.map +0 -1
- package/dist/cjs/components/ReportBuilder/LimitComponent.js +0 -50
- package/dist/cjs/components/ReportBuilder/PivotComponent.d.ts +0 -66
- package/dist/cjs/components/ReportBuilder/PivotComponent.d.ts.map +0 -1
- package/dist/cjs/components/ReportBuilder/PivotComponent.js +0 -47
- package/dist/cjs/components/ReportBuilder/SaveReport.d.ts +0 -162
- package/dist/cjs/components/ReportBuilder/SaveReport.d.ts.map +0 -1
- package/dist/cjs/components/ReportBuilder/SaveReport.js +0 -31
- package/dist/cjs/components/ReportBuilder/SortComponent.d.ts +0 -42
- package/dist/cjs/components/ReportBuilder/SortComponent.d.ts.map +0 -1
- package/dist/cjs/components/ReportBuilder/SortComponent.js +0 -50
- package/dist/cjs/components/ReportBuilder/TableComponent.d.ts +0 -28
- package/dist/cjs/components/ReportBuilder/TableComponent.d.ts.map +0 -1
- package/dist/cjs/components/ReportBuilder/TableComponent.js +0 -24
- package/dist/cjs/hooks/useLongLoading.d.ts +0 -13
- package/dist/cjs/hooks/useLongLoading.d.ts.map +0 -1
- package/dist/cjs/hooks/useLongLoading.js +0 -67
- package/dist/cjs/hooks/useReportBuilder.d.ts +0 -178
- package/dist/cjs/hooks/useReportBuilder.d.ts.map +0 -1
- package/dist/cjs/hooks/useReportBuilder.js +0 -1476
- package/dist/esm/components/ReportBuilder/ColumnComponent.d.ts +0 -48
- package/dist/esm/components/ReportBuilder/ColumnComponent.d.ts.map +0 -1
- package/dist/esm/components/ReportBuilder/ColumnComponent.js +0 -39
- package/dist/esm/components/ReportBuilder/FilterComponent.d.ts +0 -65
- package/dist/esm/components/ReportBuilder/FilterComponent.d.ts.map +0 -1
- package/dist/esm/components/ReportBuilder/FilterComponent.js +0 -44
- package/dist/esm/components/ReportBuilder/LimitComponent.d.ts +0 -42
- package/dist/esm/components/ReportBuilder/LimitComponent.d.ts.map +0 -1
- package/dist/esm/components/ReportBuilder/LimitComponent.js +0 -46
- package/dist/esm/components/ReportBuilder/PivotComponent.d.ts +0 -66
- package/dist/esm/components/ReportBuilder/PivotComponent.d.ts.map +0 -1
- package/dist/esm/components/ReportBuilder/PivotComponent.js +0 -40
- package/dist/esm/components/ReportBuilder/SaveReport.d.ts +0 -162
- package/dist/esm/components/ReportBuilder/SaveReport.d.ts.map +0 -1
- package/dist/esm/components/ReportBuilder/SaveReport.js +0 -31
- package/dist/esm/components/ReportBuilder/SortComponent.d.ts +0 -42
- package/dist/esm/components/ReportBuilder/SortComponent.d.ts.map +0 -1
- package/dist/esm/components/ReportBuilder/SortComponent.js +0 -46
- package/dist/esm/components/ReportBuilder/TableComponent.d.ts +0 -28
- package/dist/esm/components/ReportBuilder/TableComponent.d.ts.map +0 -1
- package/dist/esm/components/ReportBuilder/TableComponent.js +0 -20
- package/dist/esm/hooks/useLongLoading.d.ts +0 -13
- package/dist/esm/hooks/useLongLoading.d.ts.map +0 -1
- package/dist/esm/hooks/useLongLoading.js +0 -64
- package/dist/esm/hooks/useReportBuilder.d.ts +0 -178
- package/dist/esm/hooks/useReportBuilder.d.ts.map +0 -1
- package/dist/esm/hooks/useReportBuilder.js +0 -1471
|
@@ -18,14 +18,14 @@ export const hasColumnAlias = (columns, referencedColumns) => {
|
|
|
18
18
|
}
|
|
19
19
|
return false;
|
|
20
20
|
};
|
|
21
|
-
export const getUniqueValuesByQuery = async ({ columns, query, client, getToken, tenants, customFields, filters, dashboardName,
|
|
21
|
+
export const getUniqueValuesByQuery = async ({ columns, query, client, getToken, tenants, customFields, filters, dashboardName, }) => {
|
|
22
22
|
const stringNames = columns.map((column) => column.field);
|
|
23
23
|
const uniqueValues = {};
|
|
24
24
|
if (stringNames.length === 0) {
|
|
25
25
|
return {};
|
|
26
26
|
}
|
|
27
27
|
const distinctValueQuery = generateDistinctQuery(stringNames, query, client.databaseType || 'postgresql');
|
|
28
|
-
const distinctStrings = await fetchDistinctStrings(distinctValueQuery, client, getToken, tenants,
|
|
28
|
+
const distinctStrings = await fetchDistinctStrings(distinctValueQuery, client, getToken, tenants, customFields, filters, dashboardName);
|
|
29
29
|
if (!distinctStrings) {
|
|
30
30
|
return {};
|
|
31
31
|
}
|
|
@@ -34,13 +34,13 @@ export const getUniqueValuesByQuery = async ({ columns, query, client, getToken,
|
|
|
34
34
|
}
|
|
35
35
|
return uniqueValues;
|
|
36
36
|
};
|
|
37
|
-
export const getUniqueStringValuesByColumn = async ({ columns, tableName, client, getToken, tenants, customFields, withExceededColumns, query, dashboardName,
|
|
37
|
+
export const getUniqueStringValuesByColumn = async ({ columns, tableName, client, getToken, tenants, customFields, withExceededColumns, query, dashboardName, }) => {
|
|
38
38
|
const convertedStringColumns = columns.filter((column) => {
|
|
39
39
|
return isStringType(column.fieldType);
|
|
40
40
|
});
|
|
41
41
|
const stringNames = convertedStringColumns.map((column) => processColumnReference(column.field, client.databaseType, undefined, true));
|
|
42
42
|
const { filteredColumns: smallStringColumns, exceededColumns } = stringNames.length > 0
|
|
43
|
-
? await getCountsByColumns(convertedStringColumns, query || `Select ${stringNames.join(', ')} from ${tableName}`, client, getToken, tenants, customFields ?? [],
|
|
43
|
+
? await getCountsByColumns(convertedStringColumns, query || `Select ${stringNames.join(', ')} from ${tableName}`, client, getToken, tenants, customFields ?? [], dashboardName)
|
|
44
44
|
: { filteredColumns: [], exceededColumns: undefined };
|
|
45
45
|
const smallStringNames = smallStringColumns.map((column) => processColumnReference(column.field, client.databaseType, undefined, true));
|
|
46
46
|
const newUniqueValues = query || smallStringColumns.length > 0
|
|
@@ -53,7 +53,6 @@ export const getUniqueStringValuesByColumn = async ({ columns, tableName, client
|
|
|
53
53
|
tenants,
|
|
54
54
|
customFields: customFields ?? [],
|
|
55
55
|
dashboardName,
|
|
56
|
-
eventTracking,
|
|
57
56
|
})
|
|
58
57
|
: null;
|
|
59
58
|
if (!newUniqueValues) {
|
|
@@ -68,7 +67,7 @@ export const getUniqueStringValuesByColumn = async ({ columns, tableName, client
|
|
|
68
67
|
}
|
|
69
68
|
return newUniqueValues;
|
|
70
69
|
};
|
|
71
|
-
export const getUniqueStringValuesByTable = async ({ tables, columns, client, getToken, tenants, dashboardName, customFields, withExceededColumns, queryTemplate,
|
|
70
|
+
export const getUniqueStringValuesByTable = async ({ tables, columns, client, getToken, tenants, dashboardName, customFields, withExceededColumns, queryTemplate, }) => {
|
|
72
71
|
const uniqueValues = {};
|
|
73
72
|
await Promise.all(tables.map(async (tableName) => {
|
|
74
73
|
const tableColumns = columns.filter((column) => {
|
|
@@ -90,13 +89,12 @@ export const getUniqueStringValuesByTable = async ({ tables, columns, client, ge
|
|
|
90
89
|
customFields,
|
|
91
90
|
withExceededColumns,
|
|
92
91
|
query,
|
|
93
|
-
eventTracking,
|
|
94
92
|
});
|
|
95
93
|
uniqueValues[tableName] = newUniqueValues;
|
|
96
94
|
}));
|
|
97
95
|
return uniqueValues;
|
|
98
96
|
};
|
|
99
|
-
export const getRelevantInfoFromQuery = async ({ tables, columns, aliasedColumns, reportBuilderColumns, client, getToken, tenants, query, queryTemplate, customFields, dashboardName,
|
|
97
|
+
export const getRelevantInfoFromQuery = async ({ tables, columns, aliasedColumns, reportBuilderColumns, client, getToken, tenants, query, queryTemplate, customFields, dashboardName, }) => {
|
|
100
98
|
let dateRanges = {};
|
|
101
99
|
let uniqueStrings = null;
|
|
102
100
|
const columnUniqueValues = {};
|
|
@@ -112,7 +110,6 @@ export const getRelevantInfoFromQuery = async ({ tables, columns, aliasedColumns
|
|
|
112
110
|
customFields,
|
|
113
111
|
withExceededColumns: true,
|
|
114
112
|
queryTemplate,
|
|
115
|
-
eventTracking,
|
|
116
113
|
});
|
|
117
114
|
reportBuilderColumns.forEach((column) => {
|
|
118
115
|
columnUniqueValues[column.alias || column.field] =
|
|
@@ -122,24 +119,13 @@ export const getRelevantInfoFromQuery = async ({ tables, columns, aliasedColumns
|
|
|
122
119
|
return column.fieldType === 'date';
|
|
123
120
|
});
|
|
124
121
|
if (dateColumns.length > 0) {
|
|
125
|
-
dateRanges = await getQueryDateRangeByColumns(dateColumns, query, client, getToken, tenants,
|
|
122
|
+
dateRanges = await getQueryDateRangeByColumns(dateColumns, query, client, getToken, tenants, customFields, dashboardName);
|
|
126
123
|
if (dateRanges === null) {
|
|
127
124
|
throw new Error("Couldn't fetch date ranges");
|
|
128
125
|
}
|
|
129
126
|
}
|
|
130
127
|
}
|
|
131
128
|
catch (e) {
|
|
132
|
-
eventTracking?.logError?.({
|
|
133
|
-
type: 'bug', // TODO: determine type
|
|
134
|
-
severity: 'high',
|
|
135
|
-
message: 'Error fetching pivot info',
|
|
136
|
-
errorMessage: e.message,
|
|
137
|
-
errorStack: e.stack,
|
|
138
|
-
errorData: {
|
|
139
|
-
caller: 'getRelevantInfoFromQuery',
|
|
140
|
-
function: 'getRelevantInfoFromQuery',
|
|
141
|
-
},
|
|
142
|
-
});
|
|
143
129
|
error = "Couldn't fetch pivot info";
|
|
144
130
|
}
|
|
145
131
|
return {
|
|
@@ -149,7 +135,7 @@ export const getRelevantInfoFromQuery = async ({ tables, columns, aliasedColumns
|
|
|
149
135
|
error,
|
|
150
136
|
};
|
|
151
137
|
};
|
|
152
|
-
export const getCountsByColumns = async (columns, query, client, getToken, tenants, customFields,
|
|
138
|
+
export const getCountsByColumns = async (columns, query, client, getToken, tenants, customFields, dashboardName) => {
|
|
153
139
|
const stringNames = columns.map((column) => column.field);
|
|
154
140
|
const countQuery = generateCountQuery(stringNames, query, client.databaseType || 'postgresql');
|
|
155
141
|
try {
|
|
@@ -188,21 +174,11 @@ export const getCountsByColumns = async (columns, query, client, getToken, tenan
|
|
|
188
174
|
return { filteredColumns, exceededColumns };
|
|
189
175
|
}
|
|
190
176
|
catch (e) {
|
|
191
|
-
|
|
192
|
-
type: 'bug', // TODO: determine type
|
|
193
|
-
severity: 'high',
|
|
194
|
-
message: 'Error fetching counts by columns',
|
|
195
|
-
errorMessage: e.message,
|
|
196
|
-
errorStack: e.stack,
|
|
197
|
-
errorData: {
|
|
198
|
-
caller: 'getCountsByColumns',
|
|
199
|
-
function: 'getCountsByColumns',
|
|
200
|
-
},
|
|
201
|
-
});
|
|
177
|
+
console.error(e);
|
|
202
178
|
return { filteredColumns: columns, exceededColumns: undefined };
|
|
203
179
|
}
|
|
204
180
|
};
|
|
205
|
-
const fetchDistinctStrings = async (query, client, getToken, tenants,
|
|
181
|
+
const fetchDistinctStrings = async (query, client, getToken, tenants, customFields, filters, dashboardName) => {
|
|
206
182
|
try {
|
|
207
183
|
const { data } = await quillFetch({
|
|
208
184
|
client,
|
|
@@ -255,29 +231,18 @@ const fetchDistinctStrings = async (query, client, getToken, tenants, eventTrack
|
|
|
255
231
|
return results;
|
|
256
232
|
}
|
|
257
233
|
catch (e) {
|
|
258
|
-
eventTracking?.logError?.({
|
|
259
|
-
type: 'bug', // TODO: determine type
|
|
260
|
-
severity: 'high',
|
|
261
|
-
message: 'Error fetching distinct strings',
|
|
262
|
-
errorMessage: e.message,
|
|
263
|
-
errorStack: e.stack,
|
|
264
|
-
errorData: {
|
|
265
|
-
caller: 'fetchDistinctStrings',
|
|
266
|
-
function: 'fetchDistinctStrings',
|
|
267
|
-
},
|
|
268
|
-
});
|
|
269
234
|
return null;
|
|
270
235
|
}
|
|
271
236
|
};
|
|
272
|
-
export const getQueryDateRangeByColumns = async (columns, query, client, getToken, tenants,
|
|
237
|
+
export const getQueryDateRangeByColumns = async (columns, query, client, getToken, tenants, customFields, dashboardName) => {
|
|
273
238
|
const columnNames = columns.map(
|
|
274
239
|
// @ts-ignore
|
|
275
240
|
(column) => column.field || column.name);
|
|
276
241
|
const distinctValueQuery = generateMinMaxDateRangeQueries(columnNames, query, client.databaseType || 'postgresql');
|
|
277
|
-
const dateRanges = await fetchQueryDateRanges(distinctValueQuery, client, getToken, tenants,
|
|
242
|
+
const dateRanges = await fetchQueryDateRanges(distinctValueQuery, client, getToken, tenants, customFields, dashboardName);
|
|
278
243
|
return dateRanges;
|
|
279
244
|
};
|
|
280
|
-
const fetchQueryDateRanges = async (query, client, getToken, tenants,
|
|
245
|
+
const fetchQueryDateRanges = async (query, client, getToken, tenants, customFields, dashboardName) => {
|
|
281
246
|
try {
|
|
282
247
|
const { data } = await quillFetch({
|
|
283
248
|
client,
|
|
@@ -305,22 +270,11 @@ const fetchQueryDateRanges = async (query, client, getToken, tenants, eventTrack
|
|
|
305
270
|
return results;
|
|
306
271
|
}
|
|
307
272
|
catch (e) {
|
|
308
|
-
eventTracking?.logError?.({
|
|
309
|
-
type: 'bug', // TODO: determine type
|
|
310
|
-
severity: 'high',
|
|
311
|
-
message: 'Error fetching query date ranges',
|
|
312
|
-
errorMessage: e.message,
|
|
313
|
-
errorStack: e.stack,
|
|
314
|
-
errorData: {
|
|
315
|
-
caller: 'fetchQueryDateRanges',
|
|
316
|
-
function: 'fetchQueryDateRanges',
|
|
317
|
-
},
|
|
318
|
-
});
|
|
319
273
|
return null;
|
|
320
274
|
}
|
|
321
275
|
};
|
|
322
276
|
// Unused?
|
|
323
|
-
export const getPaginatedRows = async (client, getToken,
|
|
277
|
+
export const getPaginatedRows = async (client, getToken, tenants, dashboardName, query, reportId, processing, filters, customFields) => {
|
|
324
278
|
if (query) {
|
|
325
279
|
return await fetchResultsByQuery({
|
|
326
280
|
query,
|
|
@@ -331,7 +285,6 @@ export const getPaginatedRows = async (client, getToken, eventTracking, tenants,
|
|
|
331
285
|
filters,
|
|
332
286
|
dashboardName,
|
|
333
287
|
getToken,
|
|
334
|
-
eventTracking,
|
|
335
288
|
});
|
|
336
289
|
}
|
|
337
290
|
else if (reportId) {
|
|
@@ -343,12 +296,11 @@ export const getPaginatedRows = async (client, getToken, eventTracking, tenants,
|
|
|
343
296
|
filters,
|
|
344
297
|
customFields,
|
|
345
298
|
getToken,
|
|
346
|
-
eventTracking,
|
|
347
299
|
});
|
|
348
300
|
}
|
|
349
301
|
return { rows: [], columns: [] };
|
|
350
302
|
};
|
|
351
|
-
export const fetchResultsByQuery = async ({ query, client, tenants, processing, customFields, filters, dateField, rowsOnly, rowCountOnly, filterMap, dashboardName, pivot, getPivotRowCount = true, comparisonQuery, getToken,
|
|
303
|
+
export const fetchResultsByQuery = async ({ query, client, tenants, processing, customFields, filters, dateField, rowsOnly, rowCountOnly, filterMap, dashboardName, pivot, getPivotRowCount = true, comparisonQuery, getToken, }) => {
|
|
352
304
|
let rows = [];
|
|
353
305
|
let columns = [];
|
|
354
306
|
let error = undefined;
|
|
@@ -457,17 +409,6 @@ export const fetchResultsByQuery = async ({ query, client, tenants, processing,
|
|
|
457
409
|
}
|
|
458
410
|
}
|
|
459
411
|
catch (e) {
|
|
460
|
-
eventTracking?.logError?.({
|
|
461
|
-
type: 'bug', // TODO: determine type
|
|
462
|
-
severity: 'high',
|
|
463
|
-
message: 'Error fetching results by query',
|
|
464
|
-
errorMessage: e.message,
|
|
465
|
-
errorStack: e.stack,
|
|
466
|
-
errorData: {
|
|
467
|
-
caller: 'fetchResultsByQuery',
|
|
468
|
-
function: 'fetchResultsByQuery',
|
|
469
|
-
},
|
|
470
|
-
});
|
|
471
412
|
rows = [];
|
|
472
413
|
columns = [];
|
|
473
414
|
error = e.message || e;
|
|
@@ -477,7 +418,7 @@ export const fetchResultsByQuery = async ({ query, client, tenants, processing,
|
|
|
477
418
|
}
|
|
478
419
|
return { rows, columns, rowCount, error, itemQuery, referencedTables };
|
|
479
420
|
};
|
|
480
|
-
export const fetchResultsByReport = async ({ reportId, client, tenants, processing, filters, customFields, rowsOnly, rowCountOnly, abortSignal, pivot, pivotQuery, comparisonPivotQuery, getPivotRowCount = true, getToken,
|
|
421
|
+
export const fetchResultsByReport = async ({ reportId, client, tenants, processing, filters, customFields, rowsOnly, rowCountOnly, abortSignal, pivot, pivotQuery, comparisonPivotQuery, getPivotRowCount = true, getToken, }) => {
|
|
481
422
|
if (pivot && pivotQuery) {
|
|
482
423
|
return fetchResultsByQuery({
|
|
483
424
|
query: pivotQuery,
|
|
@@ -490,7 +431,6 @@ export const fetchResultsByReport = async ({ reportId, client, tenants, processi
|
|
|
490
431
|
pivot,
|
|
491
432
|
getPivotRowCount,
|
|
492
433
|
getToken,
|
|
493
|
-
eventTracking,
|
|
494
434
|
});
|
|
495
435
|
}
|
|
496
436
|
const updatedProcessing = { ...processing };
|
|
@@ -554,17 +494,6 @@ export const fetchResultsByReport = async ({ reportId, client, tenants, processi
|
|
|
554
494
|
if (e instanceof Error && e.name === 'AbortError') {
|
|
555
495
|
throw e;
|
|
556
496
|
}
|
|
557
|
-
eventTracking?.logError?.({
|
|
558
|
-
type: 'bug', // TODO: determine type
|
|
559
|
-
severity: 'high',
|
|
560
|
-
message: 'Error fetching results by report',
|
|
561
|
-
errorMessage: e.message,
|
|
562
|
-
errorStack: e.stack,
|
|
563
|
-
errorData: {
|
|
564
|
-
caller: 'fetchResultsByReport',
|
|
565
|
-
function: 'fetchResultsByReport',
|
|
566
|
-
},
|
|
567
|
-
});
|
|
568
497
|
rows = [];
|
|
569
498
|
columns = [];
|
|
570
499
|
rowCount = 0;
|
|
@@ -575,7 +504,7 @@ export const fetchResultsByReport = async ({ reportId, client, tenants, processi
|
|
|
575
504
|
}
|
|
576
505
|
return { rows, columns, rowCount, error };
|
|
577
506
|
};
|
|
578
|
-
export const fetchTableByAST = async (ast, client, getToken, tenants,
|
|
507
|
+
export const fetchTableByAST = async (ast, client, getToken, tenants, dashboardName, processing, customFields, rowsOnly, rowCountOnly) => {
|
|
579
508
|
let rows = [];
|
|
580
509
|
let columns = [];
|
|
581
510
|
let rowCount;
|
|
@@ -628,17 +557,6 @@ export const fetchTableByAST = async (ast, client, getToken, tenants, eventTrack
|
|
|
628
557
|
}
|
|
629
558
|
}
|
|
630
559
|
catch (e) {
|
|
631
|
-
eventTracking?.logError?.({
|
|
632
|
-
type: 'bug', // TODO: determine type
|
|
633
|
-
severity: 'high',
|
|
634
|
-
message: 'Error fetching table by AST',
|
|
635
|
-
errorMessage: e.message,
|
|
636
|
-
errorStack: e.stack,
|
|
637
|
-
errorData: {
|
|
638
|
-
caller: 'fetchTableByAST',
|
|
639
|
-
function: 'fetchTableByAST',
|
|
640
|
-
},
|
|
641
|
-
});
|
|
642
560
|
rows = [];
|
|
643
561
|
columns = [];
|
|
644
562
|
rowCount = 0;
|
package/package.json
CHANGED
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import { ReportBuilder } from '../../hooks/useReportBuilder';
|
|
2
|
-
import { TextInputComponentProps } from '../UiComponents';
|
|
3
|
-
interface AddColumnsProps {
|
|
4
|
-
reportBuilder: ReportBuilder;
|
|
5
|
-
ModalComponent?: (props: {
|
|
6
|
-
isOpen: boolean;
|
|
7
|
-
setIsOpen: (isOpen: boolean) => void;
|
|
8
|
-
title?: string;
|
|
9
|
-
children: React.ReactNode;
|
|
10
|
-
}) => JSX.Element;
|
|
11
|
-
ButtonComponent?: (props: {
|
|
12
|
-
onClick: () => void;
|
|
13
|
-
label: string;
|
|
14
|
-
disabled?: boolean;
|
|
15
|
-
isLoading?: boolean;
|
|
16
|
-
}) => JSX.Element;
|
|
17
|
-
DraggableColumnComponent?: (props: {
|
|
18
|
-
label: string;
|
|
19
|
-
onDelete: () => void;
|
|
20
|
-
DragHandle: ({ dragIcon }: {
|
|
21
|
-
dragIcon: () => JSX.Element;
|
|
22
|
-
}) => JSX.Element;
|
|
23
|
-
deleteDisabled?: boolean;
|
|
24
|
-
}) => JSX.Element;
|
|
25
|
-
TextInputComponent?: ((props: TextInputComponentProps) => JSX.Element) | React.ForwardRefExoticComponent<TextInputComponentProps & React.RefAttributes<HTMLInputElement>>;
|
|
26
|
-
SelectColumnComponent?: (props: {
|
|
27
|
-
label: string;
|
|
28
|
-
isSelected: boolean;
|
|
29
|
-
setSelected: () => void;
|
|
30
|
-
DragHandle: ({ dragIcon }: {
|
|
31
|
-
dragIcon: () => JSX.Element;
|
|
32
|
-
}) => JSX.Element;
|
|
33
|
-
}) => JSX.Element;
|
|
34
|
-
SecondaryButtonComponent?: (props: {
|
|
35
|
-
onClick: () => void;
|
|
36
|
-
label: string;
|
|
37
|
-
disabled?: boolean;
|
|
38
|
-
isLoading?: boolean;
|
|
39
|
-
}) => JSX.Element;
|
|
40
|
-
ColumnSearchEmptyState?: () => JSX.Element;
|
|
41
|
-
LoadingComponent?: () => JSX.Element;
|
|
42
|
-
ColumnDisplay?: React.ReactNode;
|
|
43
|
-
ModalTrigger?: React.ReactNode;
|
|
44
|
-
Modal?: React.ReactNode;
|
|
45
|
-
}
|
|
46
|
-
export declare const AddColumns: ({ reportBuilder, ModalComponent, ButtonComponent, DraggableColumnComponent, TextInputComponent, SelectColumnComponent, SecondaryButtonComponent, ColumnSearchEmptyState, LoadingComponent, ColumnDisplay, ModalTrigger, Modal, }: AddColumnsProps) => import("react/jsx-runtime").JSX.Element;
|
|
47
|
-
export {};
|
|
48
|
-
//# sourceMappingURL=ColumnComponent.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ColumnComponent.d.ts","sourceRoot":"","sources":["../../../../src/components/ReportBuilder/ColumnComponent.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAE7D,OAAO,EAML,uBAAuB,EACxB,MAAM,iBAAiB,CAAC;AAKzB,UAAU,eAAe;IACvB,aAAa,EAAE,aAAa,CAAC;IAC7B,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE;QACvB,MAAM,EAAE,OAAO,CAAC;QAChB,SAAS,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;QACrC,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;KAC3B,KAAK,GAAG,CAAC,OAAO,CAAC;IAClB,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE;QACxB,OAAO,EAAE,MAAM,IAAI,CAAC;QACpB,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,SAAS,CAAC,EAAE,OAAO,CAAC;KACrB,KAAK,GAAG,CAAC,OAAO,CAAC;IAClB,wBAAwB,CAAC,EAAE,CAAC,KAAK,EAAE;QACjC,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,IAAI,CAAC;QACrB,UAAU,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE;YAAE,QAAQ,EAAE,MAAM,GAAG,CAAC,OAAO,CAAA;SAAE,KAAK,GAAG,CAAC,OAAO,CAAC;QAC3E,cAAc,CAAC,EAAE,OAAO,CAAC;KAC1B,KAAK,GAAG,CAAC,OAAO,CAAC;IAElB,kBAAkB,CAAC,EACf,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;IAEN,qBAAqB,CAAC,EAAE,CAAC,KAAK,EAAE;QAC9B,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;IAElB,wBAAwB,CAAC,EAAE,CAAC,KAAK,EAAE;QACjC,OAAO,EAAE,MAAM,IAAI,CAAC;QACpB,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,SAAS,CAAC,EAAE,OAAO,CAAC;KACrB,KAAK,GAAG,CAAC,OAAO,CAAC;IAClB,sBAAsB,CAAC,EAAE,MAAM,GAAG,CAAC,OAAO,CAAC;IAC3C,gBAAgB,CAAC,EAAE,MAAM,GAAG,CAAC,OAAO,CAAC;IAErC,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAChC,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC/B,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACzB;AAsID,eAAO,MAAM,UAAU,qOAkCpB,eAAe,4CAQjB,CAAC"}
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.AddColumns = void 0;
|
|
7
|
-
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
8
|
-
const ReportBuilder_1 = require("../../models/ReportBuilder");
|
|
9
|
-
const UiComponents_1 = require("../UiComponents");
|
|
10
|
-
const AddColumnModal_1 = __importDefault(require("./AddColumnModal"));
|
|
11
|
-
const DraggableColumns_1 = __importDefault(require("./DraggableColumns"));
|
|
12
|
-
const ui_1 = require("./ui");
|
|
13
|
-
const ColumnsDisplayWrapper = ({ reportBuilder, DraggableColumnComponent, }) => {
|
|
14
|
-
return ((0, jsx_runtime_1.jsx)(DraggableColumns_1.default, { columns: reportBuilder.columns, DraggableColumnComponent: DraggableColumnComponent, onColumnOrderChange: reportBuilder.handleColumnsChange, loading: reportBuilder.loading }));
|
|
15
|
-
};
|
|
16
|
-
const ModalTriggerWrapper = ({ reportBuilder, ButtonComponent, }) => {
|
|
17
|
-
return ((0, jsx_runtime_1.jsx)(ButtonComponent, { onClick: () => {
|
|
18
|
-
if (!reportBuilder.openPopover) {
|
|
19
|
-
reportBuilder.setOpenPopover('AddColumnModal');
|
|
20
|
-
}
|
|
21
|
-
}, label: "Select columns", disabled: reportBuilder.loading }));
|
|
22
|
-
};
|
|
23
|
-
const ModalWrapper = ({ reportBuilder, ModalComponent, TextInputComponent, SelectColumnComponent, SecondaryButtonComponent, ButtonComponent, ColumnSearchEmptyState, LoadingComponent, }) => {
|
|
24
|
-
return ((0, jsx_runtime_1.jsx)(ModalComponent, { isOpen: reportBuilder.openPopover === 'AddColumnModal', setIsOpen: (isOpen) => {
|
|
25
|
-
if (!isOpen) {
|
|
26
|
-
// delay onClose callback so onClick no-ops
|
|
27
|
-
setTimeout(() => {
|
|
28
|
-
reportBuilder.setOpenPopover(null);
|
|
29
|
-
}, 100);
|
|
30
|
-
}
|
|
31
|
-
}, title: "Select columns", children: (0, jsx_runtime_1.jsx)(AddColumnModal_1.default, { onSave: (tables, columns) => {
|
|
32
|
-
reportBuilder.handleMultiStateChange({
|
|
33
|
-
state: {
|
|
34
|
-
...ReportBuilder_1.EMPTY_REPORT_BUILDER_STATE,
|
|
35
|
-
tables,
|
|
36
|
-
columns,
|
|
37
|
-
},
|
|
38
|
-
fetchData: true,
|
|
39
|
-
});
|
|
40
|
-
reportBuilder.setOpenPopover(null);
|
|
41
|
-
}, selectedTables: reportBuilder.tables, selectedColumns: reportBuilder.columns, schema: reportBuilder.filteredSchema, foreignKeyMap: reportBuilder.foreignKeyMap, schemaLoading: reportBuilder.schemaData.isSchemaLoading, TextInputComponent: TextInputComponent, SelectColumn: SelectColumnComponent, SecondaryButton: SecondaryButtonComponent, Button: ButtonComponent, ColumnSearchEmptyState: ColumnSearchEmptyState, LoadingComponent: LoadingComponent }) }));
|
|
42
|
-
};
|
|
43
|
-
const AddColumns = ({ reportBuilder, ModalComponent = UiComponents_1.MemoizedModal, ButtonComponent = UiComponents_1.MemoizedSecondaryButton, DraggableColumnComponent = ui_1.QuillDraggableColumn, TextInputComponent = UiComponents_1.QuillTextInput, SelectColumnComponent = ui_1.QuillSelectColumn, SecondaryButtonComponent = UiComponents_1.MemoizedSecondaryButton, ColumnSearchEmptyState = UiComponents_1.QuillColumnSearchEmptyState, LoadingComponent = UiComponents_1.QuillLoadingComponent, ColumnDisplay = ((0, jsx_runtime_1.jsx)(ColumnsDisplayWrapper, { reportBuilder: reportBuilder, DraggableColumnComponent: DraggableColumnComponent })), ModalTrigger = ((0, jsx_runtime_1.jsx)(ModalTriggerWrapper, { reportBuilder: reportBuilder, ButtonComponent: SecondaryButtonComponent })), Modal = ((0, jsx_runtime_1.jsx)(ModalWrapper, { reportBuilder: reportBuilder, ModalComponent: ModalComponent, TextInputComponent: TextInputComponent, SelectColumnComponent: SelectColumnComponent, SecondaryButtonComponent: SecondaryButtonComponent, ColumnSearchEmptyState: ColumnSearchEmptyState, LoadingComponent: LoadingComponent, ButtonComponent: ButtonComponent })), }) => {
|
|
44
|
-
return ((0, jsx_runtime_1.jsxs)("div", { children: [ColumnDisplay, ModalTrigger, Modal] }));
|
|
45
|
-
};
|
|
46
|
-
exports.AddColumns = AddColumns;
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
import { ReportBuilder } from '../../hooks/useReportBuilder';
|
|
2
|
-
import { TextInputComponentProps, SelectComponentProps } from '../UiComponents';
|
|
3
|
-
interface AddFiltersProps {
|
|
4
|
-
reportBuilder: ReportBuilder;
|
|
5
|
-
FilterDisplay?: React.ReactNode;
|
|
6
|
-
PopoverTrigger?: React.ReactNode;
|
|
7
|
-
Popover?: React.ReactNode;
|
|
8
|
-
TabsComponent?: (props: {
|
|
9
|
-
options: {
|
|
10
|
-
label: string;
|
|
11
|
-
value: string;
|
|
12
|
-
}[];
|
|
13
|
-
value: string;
|
|
14
|
-
onChange: (event: React.ChangeEvent<HTMLSelectElement>) => void;
|
|
15
|
-
}) => JSX.Element;
|
|
16
|
-
FilterPopoverComponent?: (props: {
|
|
17
|
-
isOpen: boolean;
|
|
18
|
-
setIsOpen: (isOpen: boolean) => void;
|
|
19
|
-
popoverTitle?: string;
|
|
20
|
-
popoverChildren: React.ReactNode;
|
|
21
|
-
filterLabel: string;
|
|
22
|
-
onClickDelete: (e: React.MouseEvent<HTMLElement>) => void;
|
|
23
|
-
}) => JSX.Element;
|
|
24
|
-
ButtonComponent?: (props: {
|
|
25
|
-
onClick: () => void;
|
|
26
|
-
label: string;
|
|
27
|
-
disabled?: boolean;
|
|
28
|
-
icon?: React.ReactNode;
|
|
29
|
-
isLoading?: boolean;
|
|
30
|
-
tooltipText?: string;
|
|
31
|
-
}) => JSX.Element;
|
|
32
|
-
SecondaryButtonComponent?: (props: {
|
|
33
|
-
onClick: () => void;
|
|
34
|
-
label: string;
|
|
35
|
-
disabled?: boolean;
|
|
36
|
-
icon?: React.ReactNode;
|
|
37
|
-
tooltipText?: string;
|
|
38
|
-
}) => JSX.Element;
|
|
39
|
-
SelectComponent?: (props: SelectComponentProps) => JSX.Element;
|
|
40
|
-
TextInputComponent?: ((props: TextInputComponentProps) => JSX.Element) | React.ForwardRefExoticComponent<TextInputComponentProps & React.RefAttributes<HTMLInputElement>>;
|
|
41
|
-
MultiSelectComponent?: (props: {
|
|
42
|
-
label?: string;
|
|
43
|
-
width: number;
|
|
44
|
-
value: string[];
|
|
45
|
-
options: {
|
|
46
|
-
value: string;
|
|
47
|
-
label: string;
|
|
48
|
-
}[];
|
|
49
|
-
onChange: (event: React.ChangeEvent<HTMLSelectElement> | {
|
|
50
|
-
target: {
|
|
51
|
-
value: (string | null)[];
|
|
52
|
-
};
|
|
53
|
-
}) => void;
|
|
54
|
-
}) => JSX.Element;
|
|
55
|
-
PopoverComponent?: (props: {
|
|
56
|
-
isOpen: boolean;
|
|
57
|
-
setIsOpen: (isOpen: boolean) => void;
|
|
58
|
-
triggerLabel?: string;
|
|
59
|
-
popoverTitle?: string;
|
|
60
|
-
popoverChildren: React.ReactNode;
|
|
61
|
-
}) => JSX.Element;
|
|
62
|
-
}
|
|
63
|
-
export declare const AddFilters: ({ reportBuilder, TabsComponent, FilterPopoverComponent, ButtonComponent, SecondaryButtonComponent, SelectComponent, TextInputComponent, MultiSelectComponent, PopoverComponent, FilterDisplay, PopoverTrigger, Popover, }: AddFiltersProps) => import("react/jsx-runtime").JSX.Element;
|
|
64
|
-
export {};
|
|
65
|
-
//# sourceMappingURL=FilterComponent.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FilterComponent.d.ts","sourceRoot":"","sources":["../../../../src/components/ReportBuilder/FilterComponent.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.AddFilters = void 0;
|
|
7
|
-
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
8
|
-
const FilterStack_1 = __importDefault(require("./FilterStack"));
|
|
9
|
-
const FilterModal_1 = __importDefault(require("./FilterModal"));
|
|
10
|
-
const UiComponents_1 = require("../UiComponents");
|
|
11
|
-
const ui_1 = require("./ui");
|
|
12
|
-
const QuillSelect_1 = require("../QuillSelect");
|
|
13
|
-
const QuillMultiSelectWithCombo_1 = require("../QuillMultiSelectWithCombo");
|
|
14
|
-
const FilterDisplayWrapper = ({ reportBuilder, FilterStack, TabsComponent, FilterPopoverComponent, FilterModal, ButtonComponent, SecondaryButtonComponent, SelectComponent, TextInputComponent, MultiSelectComponent, }) => {
|
|
15
|
-
return reportBuilder.filterStack.length > 0 ? ((0, jsx_runtime_1.jsx)("div", { style: {
|
|
16
|
-
display: 'flex',
|
|
17
|
-
flexDirection: 'column',
|
|
18
|
-
gap: 8,
|
|
19
|
-
marginBottom: 12,
|
|
20
|
-
}, children: (0, jsx_runtime_1.jsx)(FilterStack, { client: reportBuilder.client, filterStack: reportBuilder.filterStack, handleFilterStackChange: reportBuilder.handleFilterStackChange, schemaData: reportBuilder.schemaData, uniqueValues: reportBuilder.unfilteredUniqueValues, uniqueValuesIsLoading: reportBuilder.unfilteredUniqueValuesIsLoading, tables: reportBuilder.tables, TabsComponent: TabsComponent, FilterPopoverComponent: FilterPopoverComponent, FilterModal: FilterModal, ButtonComponent: ButtonComponent, SecondaryButtonComponent: SecondaryButtonComponent, SelectComponent: SelectComponent, TextInputComponent: TextInputComponent, MultiSelectComponent: MultiSelectComponent, actionsEnabled: !reportBuilder.loading, dashboardName: reportBuilder.destinationDashboard, getToken: reportBuilder.getToken, reportBuilderColumns: reportBuilder.columns }) })) : null;
|
|
21
|
-
};
|
|
22
|
-
const PopoverTriggerWrapper = ({ reportBuilder, SecondaryButtonComponent, }) => {
|
|
23
|
-
return ((0, jsx_runtime_1.jsx)(SecondaryButtonComponent, { disabled: reportBuilder.columns.length === 0 || reportBuilder.loading, onClick: () => {
|
|
24
|
-
if (!reportBuilder.openPopover) {
|
|
25
|
-
reportBuilder.setOpenPopover('AddFilterPopover');
|
|
26
|
-
}
|
|
27
|
-
}, label: 'Add filter' }));
|
|
28
|
-
};
|
|
29
|
-
const PopoverWrapper = ({ reportBuilder, PopoverComponent, FilterModal, ButtonComponent, SelectComponent, TextInputComponent, MultiSelectComponent, }) => {
|
|
30
|
-
return ((0, jsx_runtime_1.jsx)("div", { style: {
|
|
31
|
-
position: 'relative',
|
|
32
|
-
...(reportBuilder.openPopover === 'AddFilterPopover' && { top: 12 }),
|
|
33
|
-
}, children: (0, jsx_runtime_1.jsx)(PopoverComponent, { isOpen: reportBuilder.openPopover === 'AddFilterPopover', setIsOpen: (isOpen) => {
|
|
34
|
-
if (!isOpen) {
|
|
35
|
-
reportBuilder.setOpenPopover(null);
|
|
36
|
-
}
|
|
37
|
-
}, popoverTitle: "Add filter", popoverChildren: (0, jsx_runtime_1.jsx)(FilterModal, { schema: reportBuilder.filteredSchema, tables: reportBuilder.tables.map((table) => table.name), fieldValuesMap: reportBuilder.filteredUniqueValues ??
|
|
38
|
-
reportBuilder.unfilteredUniqueValues, fieldValuesMapIsLoading: reportBuilder.filteredUniqueValuesIsLoading ||
|
|
39
|
-
reportBuilder.unfilteredUniqueValuesIsLoading, onSubmitFilter: (filter) => {
|
|
40
|
-
reportBuilder.setOpenPopover(null);
|
|
41
|
-
reportBuilder.handleFilterInsertion(filter);
|
|
42
|
-
}, hideTableName: reportBuilder.tables.length === 1, onDeleteFilter: () => { }, ButtonComponent: ButtonComponent, SelectComponent: SelectComponent, TextInputComponent: TextInputComponent, MultiSelectComponent: MultiSelectComponent, reportBuilderColumns: reportBuilder.columns }) }) }));
|
|
43
|
-
};
|
|
44
|
-
const AddFilters = ({ reportBuilder, TabsComponent = UiComponents_1.QuillTabs, FilterPopoverComponent = ui_1.QuillFilterPopover, ButtonComponent = UiComponents_1.MemoizedButton, SecondaryButtonComponent = UiComponents_1.MemoizedSecondaryButton, SelectComponent = QuillSelect_1.QuillSelectComponent, TextInputComponent = UiComponents_1.QuillTextInput, MultiSelectComponent = QuillMultiSelectWithCombo_1.QuillMultiSelectComponentWithCombo, PopoverComponent = UiComponents_1.MemoizedPopover, FilterDisplay = ((0, jsx_runtime_1.jsx)(FilterDisplayWrapper, { reportBuilder: reportBuilder, FilterStack: FilterStack_1.default, TabsComponent: TabsComponent, FilterPopoverComponent: FilterPopoverComponent, FilterModal: FilterModal_1.default, ButtonComponent: ButtonComponent, SecondaryButtonComponent: SecondaryButtonComponent, SelectComponent: SelectComponent, TextInputComponent: TextInputComponent, MultiSelectComponent: MultiSelectComponent })), PopoverTrigger = ((0, jsx_runtime_1.jsx)(PopoverTriggerWrapper, { reportBuilder: reportBuilder, SecondaryButtonComponent: SecondaryButtonComponent })), Popover = ((0, jsx_runtime_1.jsx)(PopoverWrapper, { reportBuilder: reportBuilder, PopoverComponent: PopoverComponent, FilterModal: FilterModal_1.default, ButtonComponent: ButtonComponent, SelectComponent: SelectComponent, TextInputComponent: TextInputComponent, MultiSelectComponent: MultiSelectComponent })), }) => {
|
|
45
|
-
return ((0, jsx_runtime_1.jsxs)("div", { children: [FilterDisplay, (0, jsx_runtime_1.jsxs)("div", { style: {
|
|
46
|
-
display: 'flex',
|
|
47
|
-
flexDirection: 'column',
|
|
48
|
-
alignItems: 'flex-start',
|
|
49
|
-
}, children: [PopoverTrigger, Popover] })] }));
|
|
50
|
-
};
|
|
51
|
-
exports.AddFilters = AddFilters;
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import { ReportBuilder } from '../../hooks/useReportBuilder';
|
|
2
|
-
import { TextInputComponentProps } from '../UiComponents';
|
|
3
|
-
interface AddLimitProps {
|
|
4
|
-
reportBuilder: ReportBuilder;
|
|
5
|
-
LimitDisplay?: React.ReactNode;
|
|
6
|
-
PopoverTrigger?: React.ReactNode;
|
|
7
|
-
Popover?: React.ReactNode;
|
|
8
|
-
ButtonComponent?: (props: {
|
|
9
|
-
onClick: () => void;
|
|
10
|
-
label: string;
|
|
11
|
-
disabled?: boolean;
|
|
12
|
-
icon?: React.ReactNode;
|
|
13
|
-
isLoading?: boolean;
|
|
14
|
-
tooltipText?: string;
|
|
15
|
-
}) => JSX.Element;
|
|
16
|
-
SecondaryButtonComponent?: (props: {
|
|
17
|
-
onClick: () => void;
|
|
18
|
-
label: string;
|
|
19
|
-
disabled?: boolean;
|
|
20
|
-
icon?: React.ReactNode;
|
|
21
|
-
tooltipText?: string;
|
|
22
|
-
}) => JSX.Element;
|
|
23
|
-
TextInputComponent?: ((props: TextInputComponentProps) => JSX.Element) | React.ForwardRefExoticComponent<TextInputComponentProps & React.RefAttributes<HTMLInputElement>>;
|
|
24
|
-
PopoverComponent?: (props: {
|
|
25
|
-
isOpen: boolean;
|
|
26
|
-
setIsOpen: (isOpen: boolean) => void;
|
|
27
|
-
triggerLabel?: string;
|
|
28
|
-
popoverTitle?: string;
|
|
29
|
-
popoverChildren: React.ReactNode;
|
|
30
|
-
}) => JSX.Element;
|
|
31
|
-
LimitPopoverComponent?: (props: {
|
|
32
|
-
isOpen: boolean;
|
|
33
|
-
setIsOpen: (isOpen: boolean) => void;
|
|
34
|
-
popoverTitle?: string;
|
|
35
|
-
popoverChildren: React.ReactNode;
|
|
36
|
-
limitLabel: string;
|
|
37
|
-
onClickDelete: (e: React.MouseEvent<HTMLElement>) => void;
|
|
38
|
-
}) => JSX.Element;
|
|
39
|
-
}
|
|
40
|
-
export declare const AddLimit: ({ reportBuilder, ButtonComponent, SecondaryButtonComponent, TextInputComponent, PopoverComponent, LimitPopoverComponent, LimitDisplay, PopoverTrigger, Popover, }: AddLimitProps) => import("react/jsx-runtime").JSX.Element;
|
|
41
|
-
export {};
|
|
42
|
-
//# sourceMappingURL=LimitComponent.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"LimitComponent.d.ts","sourceRoot":"","sources":["../../../../src/components/ReportBuilder/LimitComponent.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EACL,uBAAuB,EAIxB,MAAM,iBAAiB,CAAC;AAKzB,UAAU,aAAa;IACrB,aAAa,EAAE,aAAa,CAAC;IAC7B,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC/B,cAAc,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACjC,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAG1B,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE;QACxB,OAAO,EAAE,MAAM,IAAI,CAAC;QACpB,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;QACvB,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,KAAK,GAAG,CAAC,OAAO,CAAC;IAClB,wBAAwB,CAAC,EAAE,CAAC,KAAK,EAAE;QACjC,OAAO,EAAE,MAAM,IAAI,CAAC;QACpB,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;QACvB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,KAAK,GAAG,CAAC,OAAO,CAAC;IAClB,kBAAkB,CAAC,EACf,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,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE;QACzB,MAAM,EAAE,OAAO,CAAC;QAChB,SAAS,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;QACrC,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,eAAe,EAAE,KAAK,CAAC,SAAS,CAAC;KAClC,KAAK,GAAG,CAAC,OAAO,CAAC;IAClB,qBAAqB,CAAC,EAAE,CAAC,KAAK,EAAE;QAC9B,MAAM,EAAE,OAAO,CAAC;QAChB,SAAS,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;QACrC,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,eAAe,EAAE,KAAK,CAAC,SAAS,CAAC;QACjC,UAAU,EAAE,MAAM,CAAC;QACnB,aAAa,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;KAC3D,KAAK,GAAG,CAAC,OAAO,CAAC;CACnB;AAsHD,eAAO,MAAM,QAAQ,sKAmClB,aAAa,4CAkBf,CAAC"}
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.AddLimit = void 0;
|
|
4
|
-
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
-
const UiComponents_1 = require("../UiComponents");
|
|
6
|
-
const AddLimitPopover_1 = require("./AddLimitPopover");
|
|
7
|
-
const UiComponents_2 = require("../UiComponents");
|
|
8
|
-
const ui_1 = require("./ui");
|
|
9
|
-
const LimitDisplayWrapper = ({ reportBuilder, LimitSentence, setOpenPopover, LimitPopover, EditPopover, TextInput, Button, SecondaryButton, }) => {
|
|
10
|
-
return reportBuilder.limit ? ((0, jsx_runtime_1.jsx)("div", { style: {
|
|
11
|
-
display: 'flex',
|
|
12
|
-
flexDirection: 'column',
|
|
13
|
-
gap: 8,
|
|
14
|
-
marginBottom: 12,
|
|
15
|
-
}, children: (0, jsx_runtime_1.jsx)(LimitSentence, { limit: reportBuilder.limit?.value || 0, setOpenPopover: setOpenPopover, LimitPopover: LimitPopover, EditPopover: EditPopover, handleDelete: () => {
|
|
16
|
-
reportBuilder.onLimitChange(null, false);
|
|
17
|
-
setOpenPopover(null);
|
|
18
|
-
}, onSave: (limit) => {
|
|
19
|
-
reportBuilder.onLimitChange(limit, false);
|
|
20
|
-
setOpenPopover(null);
|
|
21
|
-
}, TextInput: TextInput, Button: Button, SecondaryButton: SecondaryButton, disabled: reportBuilder.loading }) })) : null;
|
|
22
|
-
};
|
|
23
|
-
const PopoverTriggerWrapper = ({ reportBuilder, SecondaryButtonComponent, }) => {
|
|
24
|
-
return ((0, jsx_runtime_1.jsx)(SecondaryButtonComponent, { disabled: reportBuilder.columns.length === 0 || reportBuilder.loading, onClick: () => {
|
|
25
|
-
if (!reportBuilder.openPopover) {
|
|
26
|
-
reportBuilder.setOpenPopover('AddLimitPopover');
|
|
27
|
-
}
|
|
28
|
-
}, label: 'Add limit' }));
|
|
29
|
-
};
|
|
30
|
-
const PopoverWrapper = ({ reportBuilder, PopoverComponent, AddLimitPopover, TextInputComponent, ButtonComponent, SecondaryButtonComponent, }) => {
|
|
31
|
-
return ((0, jsx_runtime_1.jsx)("div", { style: {
|
|
32
|
-
position: 'relative',
|
|
33
|
-
...(reportBuilder.openPopover === 'AddLimitPopover' && { top: 12 }),
|
|
34
|
-
}, children: (0, jsx_runtime_1.jsx)(PopoverComponent, { isOpen: reportBuilder.openPopover === 'AddLimitPopover', setIsOpen: (isOpen) => {
|
|
35
|
-
if (!isOpen) {
|
|
36
|
-
reportBuilder.setOpenPopover(null);
|
|
37
|
-
}
|
|
38
|
-
}, popoverTitle: "Add limit", popoverChildren: (0, jsx_runtime_1.jsx)(AddLimitPopover, { TextInputComponent: TextInputComponent, ButtonComponent: ButtonComponent, SecondaryButtonComponent: SecondaryButtonComponent, onSave: (limit) => {
|
|
39
|
-
reportBuilder.onLimitChange(limit, false);
|
|
40
|
-
reportBuilder.setOpenPopover(null);
|
|
41
|
-
} }) }) }));
|
|
42
|
-
};
|
|
43
|
-
const AddLimit = ({ reportBuilder, ButtonComponent = UiComponents_1.MemoizedButton, SecondaryButtonComponent = UiComponents_1.MemoizedSecondaryButton, TextInputComponent = UiComponents_2.QuillTextInput, PopoverComponent = UiComponents_1.MemoizedPopover, LimitPopoverComponent = ui_1.QuillLimitPopover, LimitDisplay = reportBuilder.limit ? ((0, jsx_runtime_1.jsx)(LimitDisplayWrapper, { reportBuilder: reportBuilder, LimitSentence: AddLimitPopover_1.LimitSentence, setOpenPopover: reportBuilder.setOpenPopover, LimitPopover: LimitPopoverComponent, EditPopover: AddLimitPopover_1.AddLimitPopover, TextInput: TextInputComponent, Button: ButtonComponent, SecondaryButton: SecondaryButtonComponent })) : null, PopoverTrigger = ((0, jsx_runtime_1.jsx)(PopoverTriggerWrapper, { reportBuilder: reportBuilder, SecondaryButtonComponent: SecondaryButtonComponent })), Popover = ((0, jsx_runtime_1.jsx)(PopoverWrapper, { reportBuilder: reportBuilder, PopoverComponent: PopoverComponent, AddLimitPopover: AddLimitPopover_1.AddLimitPopover, TextInputComponent: TextInputComponent, ButtonComponent: ButtonComponent, SecondaryButtonComponent: SecondaryButtonComponent })), }) => {
|
|
44
|
-
return ((0, jsx_runtime_1.jsxs)("div", { children: [LimitDisplay, !reportBuilder.limit && ((0, jsx_runtime_1.jsxs)("div", { style: {
|
|
45
|
-
display: 'flex',
|
|
46
|
-
flexDirection: 'column',
|
|
47
|
-
alignItems: 'flex-start',
|
|
48
|
-
}, children: [PopoverTrigger, Popover] }))] }));
|
|
49
|
-
};
|
|
50
|
-
exports.AddLimit = AddLimit;
|