@quillsql/react 2.13.35 → 2.13.36
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 +0 -1
- package/dist/cjs/Chart.d.ts.map +1 -1
- package/dist/cjs/Chart.js +17 -14
- package/dist/cjs/ChartBuilder.d.ts +1 -0
- package/dist/cjs/ChartBuilder.d.ts.map +1 -1
- package/dist/cjs/ChartBuilder.js +178 -96
- package/dist/cjs/Context.d.ts.map +1 -1
- package/dist/cjs/Context.js +6 -8
- package/dist/cjs/Dashboard.js +17 -7
- package/dist/cjs/ReportBuilder.d.ts +2 -0
- package/dist/cjs/ReportBuilder.d.ts.map +1 -1
- package/dist/cjs/ReportBuilder.js +398 -271
- package/dist/cjs/SQLEditor.d.ts.map +1 -1
- package/dist/cjs/SQLEditor.js +33 -11
- package/dist/cjs/Table.d.ts.map +1 -1
- package/dist/cjs/Table.js +17 -1
- package/dist/cjs/components/Chart/InternalChart.d.ts +0 -1
- package/dist/cjs/components/Chart/InternalChart.d.ts.map +1 -1
- package/dist/cjs/components/Chart/InternalChart.js +6 -7
- package/dist/cjs/components/Dashboard/DataLoader.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/DataLoader.js +75 -30
- package/dist/cjs/components/QuillMultiSelectSectionList.d.ts.map +1 -1
- package/dist/cjs/components/QuillMultiSelectSectionList.js +21 -16
- package/dist/cjs/components/QuillMultiSelectWithCombo.js +18 -8
- package/dist/cjs/components/QuillSelectWithCombo.js +17 -7
- package/dist/cjs/components/ReportBuilder/AddLimitPopover.d.ts +1 -1
- package/dist/cjs/components/ReportBuilder/AddLimitPopover.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/AddLimitPopover.js +2 -2
- package/dist/cjs/components/ReportBuilder/AddSortPopover.d.ts +16 -4
- package/dist/cjs/components/ReportBuilder/AddSortPopover.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/AddSortPopover.js +9 -18
- package/dist/cjs/components/UiComponents.d.ts +2 -1
- package/dist/cjs/components/UiComponents.d.ts.map +1 -1
- package/dist/cjs/components/UiComponents.js +44 -28
- package/dist/cjs/hooks/useAskQuill.d.ts.map +1 -1
- package/dist/cjs/hooks/useAskQuill.js +28 -4
- package/dist/cjs/hooks/useQuill.d.ts.map +1 -1
- package/dist/cjs/hooks/useQuill.js +9 -1
- package/dist/cjs/hooks/useVirtualTables.d.ts.map +1 -1
- package/dist/cjs/hooks/useVirtualTables.js +11 -35
- package/dist/cjs/internals/ReportBuilder/PivotForm.d.ts.map +1 -1
- package/dist/cjs/internals/ReportBuilder/PivotForm.js +14 -2
- package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts +12 -11
- package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
- package/dist/cjs/internals/ReportBuilder/PivotModal.js +63 -18
- package/dist/cjs/models/Client.d.ts +4 -5
- package/dist/cjs/models/Client.d.ts.map +1 -1
- package/dist/cjs/models/Pivot.d.ts +10 -0
- package/dist/cjs/models/Pivot.d.ts.map +1 -1
- package/dist/cjs/models/Report.d.ts +13 -1
- package/dist/cjs/models/Report.d.ts.map +1 -1
- package/dist/cjs/utils/astFilterProcessing.d.ts +1 -1
- package/dist/cjs/utils/astFilterProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/astFilterProcessing.js +799 -64
- package/dist/cjs/utils/astProcessing.d.ts +4 -1
- package/dist/cjs/utils/astProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/astProcessing.js +2 -2
- package/dist/cjs/utils/client.d.ts.map +1 -1
- package/dist/cjs/utils/client.js +6 -3
- package/dist/cjs/utils/columnProcessing.d.ts +1 -0
- package/dist/cjs/utils/columnProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/columnProcessing.js +1 -0
- package/dist/cjs/utils/dashboard.d.ts +2 -1
- package/dist/cjs/utils/dashboard.d.ts.map +1 -1
- package/dist/cjs/utils/dashboard.js +38 -10
- package/dist/cjs/utils/filterProcessing.d.ts +1 -1
- package/dist/cjs/utils/filterProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/merge.d.ts +16 -0
- package/dist/cjs/utils/merge.d.ts.map +1 -1
- package/dist/cjs/utils/merge.js +210 -0
- package/dist/cjs/utils/paginationProcessing.d.ts +1 -1
- package/dist/cjs/utils/paginationProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/paginationProcessing.js +3 -2
- package/dist/cjs/utils/pivotConstructor.d.ts +19 -9
- package/dist/cjs/utils/pivotConstructor.d.ts.map +1 -1
- package/dist/cjs/utils/pivotConstructor.js +90 -34
- package/dist/cjs/utils/queryConstructor.d.ts +8 -1
- package/dist/cjs/utils/queryConstructor.d.ts.map +1 -1
- package/dist/cjs/utils/queryConstructor.js +276 -310
- package/dist/cjs/utils/report.d.ts +25 -12
- package/dist/cjs/utils/report.d.ts.map +1 -1
- package/dist/cjs/utils/report.js +13 -7
- package/dist/cjs/utils/schema.d.ts +1 -1
- package/dist/cjs/utils/schema.d.ts.map +1 -1
- package/dist/cjs/utils/schema.js +3 -32
- package/dist/cjs/utils/tableProcessing.d.ts +43 -13
- package/dist/cjs/utils/tableProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/tableProcessing.js +140 -75
- package/dist/cjs/utils/textProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/textProcessing.js +10 -1
- package/dist/cjs/utils/valueFormatter.d.ts +2 -1
- package/dist/cjs/utils/valueFormatter.d.ts.map +1 -1
- package/dist/cjs/utils/valueFormatter.js +18 -14
- package/dist/esm/Chart.d.ts +0 -1
- package/dist/esm/Chart.d.ts.map +1 -1
- package/dist/esm/Chart.js +0 -6
- package/dist/esm/ChartBuilder.d.ts +1 -0
- package/dist/esm/ChartBuilder.d.ts.map +1 -1
- package/dist/esm/ChartBuilder.js +179 -97
- package/dist/esm/Context.d.ts.map +1 -1
- package/dist/esm/Context.js +7 -9
- package/dist/esm/ReportBuilder.d.ts +2 -0
- package/dist/esm/ReportBuilder.d.ts.map +1 -1
- package/dist/esm/ReportBuilder.js +399 -272
- package/dist/esm/SQLEditor.d.ts.map +1 -1
- package/dist/esm/SQLEditor.js +33 -11
- package/dist/esm/Table.d.ts.map +1 -1
- package/dist/esm/Table.js +17 -1
- package/dist/esm/components/Chart/InternalChart.d.ts +0 -1
- package/dist/esm/components/Chart/InternalChart.d.ts.map +1 -1
- package/dist/esm/components/Chart/InternalChart.js +6 -6
- package/dist/esm/components/Dashboard/DataLoader.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/DataLoader.js +75 -30
- package/dist/esm/components/QuillMultiSelectSectionList.d.ts.map +1 -1
- package/dist/esm/components/QuillMultiSelectSectionList.js +5 -12
- package/dist/esm/components/QuillMultiSelectWithCombo.js +1 -1
- package/dist/esm/components/ReportBuilder/AddLimitPopover.d.ts +1 -1
- package/dist/esm/components/ReportBuilder/AddLimitPopover.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/AddLimitPopover.js +2 -2
- package/dist/esm/components/ReportBuilder/AddSortPopover.d.ts +16 -4
- package/dist/esm/components/ReportBuilder/AddSortPopover.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/AddSortPopover.js +9 -18
- package/dist/esm/components/UiComponents.d.ts +2 -1
- package/dist/esm/components/UiComponents.d.ts.map +1 -1
- package/dist/esm/components/UiComponents.js +27 -21
- package/dist/esm/hooks/useAskQuill.d.ts.map +1 -1
- package/dist/esm/hooks/useAskQuill.js +28 -4
- package/dist/esm/hooks/useQuill.d.ts.map +1 -1
- package/dist/esm/hooks/useQuill.js +10 -2
- package/dist/esm/hooks/useVirtualTables.d.ts.map +1 -1
- package/dist/esm/hooks/useVirtualTables.js +12 -36
- package/dist/esm/internals/ReportBuilder/PivotForm.d.ts.map +1 -1
- package/dist/esm/internals/ReportBuilder/PivotForm.js +14 -2
- package/dist/esm/internals/ReportBuilder/PivotModal.d.ts +12 -11
- package/dist/esm/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
- package/dist/esm/internals/ReportBuilder/PivotModal.js +63 -18
- package/dist/esm/models/Client.d.ts +4 -5
- package/dist/esm/models/Client.d.ts.map +1 -1
- package/dist/esm/models/Pivot.d.ts +10 -0
- package/dist/esm/models/Pivot.d.ts.map +1 -1
- package/dist/esm/models/Report.d.ts +13 -1
- package/dist/esm/models/Report.d.ts.map +1 -1
- package/dist/esm/utils/astFilterProcessing.d.ts +1 -1
- package/dist/esm/utils/astFilterProcessing.d.ts.map +1 -1
- package/dist/esm/utils/astFilterProcessing.js +799 -64
- package/dist/esm/utils/astProcessing.d.ts +4 -1
- package/dist/esm/utils/astProcessing.d.ts.map +1 -1
- package/dist/esm/utils/astProcessing.js +2 -2
- package/dist/esm/utils/client.d.ts.map +1 -1
- package/dist/esm/utils/client.js +6 -3
- package/dist/esm/utils/columnProcessing.d.ts +1 -0
- package/dist/esm/utils/columnProcessing.d.ts.map +1 -1
- package/dist/esm/utils/columnProcessing.js +1 -1
- package/dist/esm/utils/dashboard.d.ts +2 -1
- package/dist/esm/utils/dashboard.d.ts.map +1 -1
- package/dist/esm/utils/dashboard.js +39 -11
- package/dist/esm/utils/filterProcessing.d.ts +1 -1
- package/dist/esm/utils/filterProcessing.d.ts.map +1 -1
- package/dist/esm/utils/merge.d.ts +16 -0
- package/dist/esm/utils/merge.d.ts.map +1 -1
- package/dist/esm/utils/merge.js +207 -0
- package/dist/esm/utils/paginationProcessing.d.ts +1 -1
- package/dist/esm/utils/paginationProcessing.d.ts.map +1 -1
- package/dist/esm/utils/paginationProcessing.js +3 -2
- package/dist/esm/utils/pivotConstructor.d.ts +19 -9
- package/dist/esm/utils/pivotConstructor.d.ts.map +1 -1
- package/dist/esm/utils/pivotConstructor.js +91 -35
- package/dist/esm/utils/queryConstructor.d.ts +8 -1
- package/dist/esm/utils/queryConstructor.d.ts.map +1 -1
- package/dist/esm/utils/queryConstructor.js +274 -314
- package/dist/esm/utils/report.d.ts +25 -12
- package/dist/esm/utils/report.d.ts.map +1 -1
- package/dist/esm/utils/report.js +13 -7
- package/dist/esm/utils/schema.d.ts +1 -1
- package/dist/esm/utils/schema.d.ts.map +1 -1
- package/dist/esm/utils/schema.js +1 -30
- package/dist/esm/utils/tableProcessing.d.ts +43 -13
- package/dist/esm/utils/tableProcessing.d.ts.map +1 -1
- package/dist/esm/utils/tableProcessing.js +140 -75
- package/dist/esm/utils/textProcessing.d.ts.map +1 -1
- package/dist/esm/utils/textProcessing.js +10 -1
- package/dist/esm/utils/valueFormatter.d.ts +2 -1
- package/dist/esm/utils/valueFormatter.d.ts.map +1 -1
- package/dist/esm/utils/valueFormatter.js +18 -14
- package/package.json +1 -1
|
@@ -5,11 +5,21 @@ const PivotModal_1 = require("../internals/ReportBuilder/PivotModal");
|
|
|
5
5
|
const columnProcessing_1 = require("./columnProcessing");
|
|
6
6
|
const constants_1 = require("./constants");
|
|
7
7
|
const dataFetcher_1 = require("./dataFetcher");
|
|
8
|
+
const dataProcessing_1 = require("./dataProcessing");
|
|
8
9
|
const dates_1 = require("./dates");
|
|
10
|
+
const merge_1 = require("./merge");
|
|
9
11
|
const queryConstructor_1 = require("./queryConstructor");
|
|
10
12
|
const textProcessing_1 = require("./textProcessing");
|
|
11
|
-
|
|
12
|
-
|
|
13
|
+
async function generatePivotWithSQL({ pivot, report, client, dateBucket, dateFilter, distinctStrings, dashboardName, tenants, additionalProcessing, pivotQuery, comparisonPivotQuery, getPivotRowCount = true, }) {
|
|
14
|
+
let sqlQuery = pivotQuery;
|
|
15
|
+
let comparisonPivotSql = comparisonPivotQuery;
|
|
16
|
+
const databaseType = client.databaseType || 'postgresql';
|
|
17
|
+
if (!pivotQuery &&
|
|
18
|
+
pivot.columnField &&
|
|
19
|
+
!pivot.columnValues &&
|
|
20
|
+
!distinctStrings) {
|
|
21
|
+
throw 'No distinct strings provided for column field';
|
|
22
|
+
}
|
|
13
23
|
let comparisonInterval = undefined;
|
|
14
24
|
if (dateFilter && dateFilter.comparisonRange) {
|
|
15
25
|
comparisonInterval = (0, dates_1.getComparisonInterval)({
|
|
@@ -18,31 +28,48 @@ async function generatePivotWithSQL(pivot, report, client, dateBucket, dateFilte
|
|
|
18
28
|
}, dateBucket);
|
|
19
29
|
}
|
|
20
30
|
if (pivot.rowField && !pivot.rowFieldType) {
|
|
21
|
-
const rowColumn = report
|
|
31
|
+
const rowColumn = report?.columns.find((column) => column.field === pivot.rowField);
|
|
22
32
|
pivot.rowFieldType = rowColumn?.format || 'string';
|
|
23
33
|
}
|
|
24
|
-
let distinctStringValues = undefined;
|
|
25
|
-
if (!distinctStrings && report.rows && pivot.columnField) {
|
|
26
|
-
const distinctValues = Array.from(new Set(report.rows.map((row) => row[pivot.columnField])));
|
|
27
|
-
distinctStringValues = distinctValues
|
|
28
|
-
.filter((value) => value !== null && value !== undefined)
|
|
29
|
-
.map((value) => value.toString());
|
|
30
|
-
}
|
|
31
|
-
if (!report.itemQuery) {
|
|
32
|
-
throw Error('No item query found in report');
|
|
33
|
-
}
|
|
34
34
|
const filteredDistinctStrings = distinctStrings?.filter((value) => value !== null && value !== undefined);
|
|
35
|
-
const
|
|
36
|
-
|
|
35
|
+
const pivotColumnFields = filteredDistinctStrings?.slice(0, constants_1.MAX_PIVOT_UNIQUE_VALUES);
|
|
36
|
+
if (!pivotQuery && report) {
|
|
37
|
+
if (!report.itemQuery) {
|
|
38
|
+
throw Error('No item query found in report');
|
|
39
|
+
}
|
|
40
|
+
const itemQuery = report.itemQuery[0];
|
|
41
|
+
const comparisonQuery = report.itemQuery[1];
|
|
42
|
+
if (!itemQuery) {
|
|
43
|
+
throw Error('No item query found in report');
|
|
44
|
+
}
|
|
45
|
+
sqlQuery =
|
|
46
|
+
pivotQuery ??
|
|
47
|
+
(0, queryConstructor_1.generatePivotQuery)(pivot, itemQuery, databaseType, pivotColumnFields, dateBucket);
|
|
48
|
+
comparisonPivotSql = comparisonQuery
|
|
49
|
+
? (0, queryConstructor_1.generatePivotQuery)(pivot, comparisonQuery, databaseType, pivotColumnFields, dateBucket)
|
|
50
|
+
: '';
|
|
51
|
+
}
|
|
37
52
|
if (!sqlQuery) {
|
|
38
53
|
throw 'Error generating pivot query';
|
|
39
54
|
}
|
|
55
|
+
const paginatedSqlQuery = (0, queryConstructor_1.additionalProcessingOnPivotQuery)(pivot, sqlQuery, additionalProcessing, client.databaseType);
|
|
56
|
+
const paginatedComparisonQuery = comparisonPivotSql
|
|
57
|
+
? (0, queryConstructor_1.additionalProcessingOnPivotQuery)(pivot, comparisonPivotSql, additionalProcessing, client.databaseType)
|
|
58
|
+
: '';
|
|
59
|
+
const preQueries = [paginatedSqlQuery];
|
|
60
|
+
if (getPivotRowCount && report?.chartType === 'table') {
|
|
61
|
+
const pivotRowCountQuery = (0, queryConstructor_1.generateRowCountQuery)(sqlQuery, client.databaseType);
|
|
62
|
+
preQueries.push(pivotRowCountQuery);
|
|
63
|
+
}
|
|
64
|
+
if (paginatedComparisonQuery) {
|
|
65
|
+
preQueries.push(paginatedComparisonQuery);
|
|
66
|
+
}
|
|
40
67
|
const hostedBody = {
|
|
41
68
|
metadata: {
|
|
42
|
-
preQueries
|
|
69
|
+
preQueries,
|
|
43
70
|
task: 'query',
|
|
44
71
|
clientId: client.publicKey,
|
|
45
|
-
databaseType:
|
|
72
|
+
databaseType: databaseType,
|
|
46
73
|
getCustomFields: false,
|
|
47
74
|
runQueryConfig: {
|
|
48
75
|
overridePost: true,
|
|
@@ -58,10 +85,33 @@ async function generatePivotWithSQL(pivot, report, client, dateBucket, dateFilte
|
|
|
58
85
|
if (resp.success === false) {
|
|
59
86
|
throw resp.errorMessage;
|
|
60
87
|
}
|
|
61
|
-
|
|
88
|
+
const queryResponseRows = resp?.queryResults?.[0]?.rows || [];
|
|
89
|
+
const queryResponseFields = resp?.queryResults?.[0]?.fields || [];
|
|
90
|
+
const queryComparisonResponseRows = (getPivotRowCount
|
|
91
|
+
? resp?.queryResults?.[2]?.rows
|
|
92
|
+
: resp?.queryResults?.[1]?.rows) || [];
|
|
93
|
+
const queryComparisonResponseFields = (getPivotRowCount
|
|
94
|
+
? resp?.queryResults?.[2]?.fields
|
|
95
|
+
: resp?.queryResults?.[1]?.fields) || [];
|
|
96
|
+
(0, dataProcessing_1.parseValueFromBigQueryDates)(queryResponseRows, queryResponseFields);
|
|
97
|
+
(0, dataProcessing_1.parseValueFromBigQueryDates)(queryComparisonResponseRows, queryComparisonResponseFields);
|
|
98
|
+
const responseRows = (0, merge_1.mergeComparisonPivotRows)({
|
|
99
|
+
pivot,
|
|
100
|
+
rows: queryResponseRows,
|
|
101
|
+
compRows: queryComparisonResponseRows,
|
|
102
|
+
databaseType,
|
|
103
|
+
dateBucket,
|
|
104
|
+
comparisonInterval,
|
|
105
|
+
columnFieldValues: pivotColumnFields,
|
|
106
|
+
});
|
|
107
|
+
const responseFields = (0, merge_1.mergeComparisonPivotColumns)({
|
|
108
|
+
pivot,
|
|
109
|
+
rows: queryResponseFields,
|
|
110
|
+
compRows: queryComparisonResponseFields,
|
|
111
|
+
});
|
|
62
112
|
const rows = pivot.rowField
|
|
63
|
-
?
|
|
64
|
-
:
|
|
113
|
+
? responseRows.map((row) => !row[pivot.rowField] ? { ...row, [pivot.rowField]: '-' } : row)
|
|
114
|
+
: responseRows;
|
|
65
115
|
if (pivot.columnField && client.databaseType?.toLowerCase() === 'bigquery') {
|
|
66
116
|
rows.forEach((row) => {
|
|
67
117
|
Object.keys(row).forEach((key) => {
|
|
@@ -73,14 +123,14 @@ async function generatePivotWithSQL(pivot, report, client, dateBucket, dateFilte
|
|
|
73
123
|
});
|
|
74
124
|
});
|
|
75
125
|
}
|
|
76
|
-
const columns =
|
|
126
|
+
const columns = responseFields
|
|
77
127
|
?.map((field) => ({
|
|
78
128
|
field: (0, columnProcessing_1.processColumnName)(field.name),
|
|
79
129
|
label: (0, textProcessing_1.snakeCaseToTitleCase)((0, columnProcessing_1.processColumnName)(field.name.replace('comparison_', 'comparison '))),
|
|
80
130
|
format: field.name === pivot.rowField
|
|
81
131
|
? 'string'
|
|
82
132
|
: (pivot.valueFieldType ?? pivot.aggregationType === 'percentage')
|
|
83
|
-
? '
|
|
133
|
+
? 'percent'
|
|
84
134
|
: 'whole_number',
|
|
85
135
|
fieldType: field.fieldType,
|
|
86
136
|
jsType: field.jsType,
|
|
@@ -119,7 +169,7 @@ async function generatePivotWithSQL(pivot, report, client, dateBucket, dateFilte
|
|
|
119
169
|
}
|
|
120
170
|
const dateString = (0, PivotModal_1.getDateString)(value, dateFilter?.startDate && dateFilter?.endDate
|
|
121
171
|
? { start: dateFilter.startDate, end: dateFilter.endDate }
|
|
122
|
-
: undefined, dateBucket);
|
|
172
|
+
: undefined, dateBucket, databaseType);
|
|
123
173
|
row[pivot.rowField || ''] = dateString;
|
|
124
174
|
});
|
|
125
175
|
// add a row for each date in the range that doesn't have a value
|
|
@@ -131,7 +181,7 @@ async function generatePivotWithSQL(pivot, report, client, dateBucket, dateFilte
|
|
|
131
181
|
const dateSet = new Set(rows.map((row) => row[pivot.rowField || '']));
|
|
132
182
|
// create a loop that will go through each formatted date and add a row if it doesn't exist going to the current date
|
|
133
183
|
for (let date = dateFilter.startDate; date <= dateFilter.endDate; date = new Date(date.getTime() + 24 * 60 * 60 * 1000)) {
|
|
134
|
-
const formattedDate = (0, PivotModal_1.getDateString)(date.toISOString(), { start: dateFilter.startDate, end: dateFilter.endDate }, dateBucket);
|
|
184
|
+
const formattedDate = (0, PivotModal_1.getDateString)(date.toISOString(), { start: dateFilter.startDate, end: dateFilter.endDate }, dateBucket, databaseType);
|
|
135
185
|
if (!dateSet.has(formattedDate)) {
|
|
136
186
|
const newRow = {};
|
|
137
187
|
newRow[pivot.rowField] = formattedDate;
|
|
@@ -156,16 +206,16 @@ async function generatePivotWithSQL(pivot, report, client, dateBucket, dateFilte
|
|
|
156
206
|
// delete row.__quillRawDate;
|
|
157
207
|
// });
|
|
158
208
|
}
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
}
|
|
209
|
+
// should be doing this in the query
|
|
210
|
+
// if (pivot.sort) {
|
|
211
|
+
// rows.sort((a: any, b: any) => {
|
|
212
|
+
// if (pivot.sortDirection === 'ASC') {
|
|
213
|
+
// return compareValues(a, b, pivot.sortField || '');
|
|
214
|
+
// } else {
|
|
215
|
+
// return compareValues(b, a, pivot.sortField || '');
|
|
216
|
+
// }
|
|
217
|
+
// });
|
|
218
|
+
// }
|
|
169
219
|
// for the case of count agg on no value field
|
|
170
220
|
columns?.forEach((column) => {
|
|
171
221
|
if (column.label &&
|
|
@@ -185,5 +235,11 @@ async function generatePivotWithSQL(pivot, report, client, dateBucket, dateFilte
|
|
|
185
235
|
return {
|
|
186
236
|
rows: rows,
|
|
187
237
|
columns: columns ?? [],
|
|
238
|
+
rowCount: getPivotRowCount
|
|
239
|
+
? (Number(resp?.queryResults?.[1]?.rows?.[0]?.['row_count']) ??
|
|
240
|
+
rows.length)
|
|
241
|
+
: 0,
|
|
242
|
+
pivotQuery: sqlQuery,
|
|
243
|
+
comparisonPivotQuery: comparisonPivotSql,
|
|
188
244
|
};
|
|
189
245
|
}
|
|
@@ -1,8 +1,15 @@
|
|
|
1
1
|
import { Pivot } from '../models/Pivot';
|
|
2
|
+
import { AdditionalProcessing } from './tableProcessing';
|
|
3
|
+
export declare function processSingleQuotes(value: string, databaseType: string): string;
|
|
4
|
+
export declare function processAggType(aggType: string, hasColumnField?: boolean): string;
|
|
2
5
|
export declare function processColumnReference(column: string, databaseType: string, fallbackOnNull?: string, isPivotColumnFieldAlias?: boolean, isPivotValueFieldAlias?: boolean): string;
|
|
3
6
|
export declare function replaceSpacesWithUnderscores(column: string): string;
|
|
7
|
+
export declare function processDateTrunc(dateBucket: string, rowField: string, databaseType: string, comparisonInterval?: string): string;
|
|
8
|
+
export declare function processValueField(aggType: string, databaseType: string, valueField: string): string;
|
|
4
9
|
export declare function generateCountQuery(fields: string[], query: string, databaseType: string): string;
|
|
5
10
|
export declare function generateDistinctQuery(stringFields: string[], query: string, databaseType: string): string;
|
|
6
11
|
export declare function generateMinMaxDateRangeQueries(columnFields: string[], query: string, databaseType: string): string;
|
|
7
|
-
export declare function generatePivotQuery(pivot: Pivot,
|
|
12
|
+
export declare function generatePivotQuery(pivot: Pivot, itemQuery: string, databaseType: string, distinctStrings?: string[], dateBucket?: string): string | undefined;
|
|
13
|
+
export declare function additionalProcessingOnPivotQuery(pivot: Pivot, query?: string, additionalProcessing?: AdditionalProcessing, databaseType?: string): string | undefined;
|
|
14
|
+
export declare function generateRowCountQuery(query?: string, databaseType?: string): string | undefined;
|
|
8
15
|
//# sourceMappingURL=queryConstructor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queryConstructor.d.ts","sourceRoot":"","sources":["../../../src/utils/queryConstructor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"queryConstructor.d.ts","sourceRoot":"","sources":["../../../src/utils/queryConstructor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAIxC,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAGzD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,UAStE;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,cAAc,UAAQ,UAGrE;AAMD,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,EACpB,cAAc,CAAC,EAAE,MAAM,EAEvB,uBAAuB,CAAC,EAAE,OAAO,EACjC,sBAAsB,CAAC,EAAE,OAAO,UAkGjC;AAED,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,MAAM,UAE1D;AAmBD,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,kBAAkB,CAAC,EAAE,MAAM,UA8B5B;AAED,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,UAYnB;AAED,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,MAAM,EAAE,EAChB,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,MAAM,UAsBrB;AAED,wBAAgB,qBAAqB,CACnC,YAAY,EAAE,MAAM,EAAE,EACtB,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,MAAM,UAcrB;AAmFD,wBAAgB,8BAA8B,CAC5C,YAAY,EAAE,MAAM,EAAE,EACtB,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,MAAM,UAkBrB;AAED,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,eAAe,CAAC,EAAE,MAAM,EAAE,EAC1B,UAAU,CAAC,EAAE,MAAM,GAClB,MAAM,GAAG,SAAS,CAkBpB;AA6aD,wBAAgB,gCAAgC,CAC9C,KAAK,EAAE,KAAK,EACZ,KAAK,CAAC,EAAE,MAAM,EACd,oBAAoB,CAAC,EAAE,oBAAoB,EAC3C,YAAY,SAAe,sBAmD5B;AAED,wBAAgB,qBAAqB,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,sBAqB1E"}
|