@quillsql/react 2.13.34 → 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.
Files changed (185) hide show
  1. package/dist/cjs/Chart.d.ts +0 -1
  2. package/dist/cjs/Chart.d.ts.map +1 -1
  3. package/dist/cjs/Chart.js +17 -14
  4. package/dist/cjs/ChartBuilder.d.ts +4 -1
  5. package/dist/cjs/ChartBuilder.d.ts.map +1 -1
  6. package/dist/cjs/ChartBuilder.js +182 -106
  7. package/dist/cjs/Context.d.ts.map +1 -1
  8. package/dist/cjs/Context.js +6 -8
  9. package/dist/cjs/Dashboard.js +17 -7
  10. package/dist/cjs/ReportBuilder.d.ts +2 -0
  11. package/dist/cjs/ReportBuilder.d.ts.map +1 -1
  12. package/dist/cjs/ReportBuilder.js +399 -272
  13. package/dist/cjs/SQLEditor.d.ts.map +1 -1
  14. package/dist/cjs/SQLEditor.js +34 -12
  15. package/dist/cjs/Table.d.ts.map +1 -1
  16. package/dist/cjs/Table.js +17 -1
  17. package/dist/cjs/components/Chart/InternalChart.d.ts +0 -1
  18. package/dist/cjs/components/Chart/InternalChart.d.ts.map +1 -1
  19. package/dist/cjs/components/Chart/InternalChart.js +6 -7
  20. package/dist/cjs/components/Dashboard/DataLoader.d.ts.map +1 -1
  21. package/dist/cjs/components/Dashboard/DataLoader.js +75 -30
  22. package/dist/cjs/components/QuillMultiSelectSectionList.d.ts.map +1 -1
  23. package/dist/cjs/components/QuillMultiSelectSectionList.js +21 -16
  24. package/dist/cjs/components/QuillMultiSelectWithCombo.js +18 -8
  25. package/dist/cjs/components/QuillSelectWithCombo.js +17 -7
  26. package/dist/cjs/components/ReportBuilder/AddLimitPopover.d.ts +1 -1
  27. package/dist/cjs/components/ReportBuilder/AddLimitPopover.d.ts.map +1 -1
  28. package/dist/cjs/components/ReportBuilder/AddLimitPopover.js +2 -2
  29. package/dist/cjs/components/ReportBuilder/AddSortPopover.d.ts +16 -4
  30. package/dist/cjs/components/ReportBuilder/AddSortPopover.d.ts.map +1 -1
  31. package/dist/cjs/components/ReportBuilder/AddSortPopover.js +9 -18
  32. package/dist/cjs/components/UiComponents.d.ts +2 -1
  33. package/dist/cjs/components/UiComponents.d.ts.map +1 -1
  34. package/dist/cjs/components/UiComponents.js +44 -28
  35. package/dist/cjs/hooks/useAskQuill.d.ts.map +1 -1
  36. package/dist/cjs/hooks/useAskQuill.js +28 -4
  37. package/dist/cjs/hooks/useQuill.d.ts.map +1 -1
  38. package/dist/cjs/hooks/useQuill.js +9 -1
  39. package/dist/cjs/hooks/useVirtualTables.d.ts.map +1 -1
  40. package/dist/cjs/hooks/useVirtualTables.js +11 -35
  41. package/dist/cjs/internals/ReportBuilder/PivotForm.d.ts.map +1 -1
  42. package/dist/cjs/internals/ReportBuilder/PivotForm.js +14 -2
  43. package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts +12 -11
  44. package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
  45. package/dist/cjs/internals/ReportBuilder/PivotModal.js +63 -18
  46. package/dist/cjs/models/Client.d.ts +4 -5
  47. package/dist/cjs/models/Client.d.ts.map +1 -1
  48. package/dist/cjs/models/Pivot.d.ts +10 -0
  49. package/dist/cjs/models/Pivot.d.ts.map +1 -1
  50. package/dist/cjs/models/Report.d.ts +13 -1
  51. package/dist/cjs/models/Report.d.ts.map +1 -1
  52. package/dist/cjs/utils/astFilterProcessing.d.ts +1 -1
  53. package/dist/cjs/utils/astFilterProcessing.d.ts.map +1 -1
  54. package/dist/cjs/utils/astFilterProcessing.js +799 -64
  55. package/dist/cjs/utils/astProcessing.d.ts +4 -1
  56. package/dist/cjs/utils/astProcessing.d.ts.map +1 -1
  57. package/dist/cjs/utils/astProcessing.js +2 -2
  58. package/dist/cjs/utils/client.d.ts.map +1 -1
  59. package/dist/cjs/utils/client.js +6 -3
  60. package/dist/cjs/utils/columnProcessing.d.ts +1 -0
  61. package/dist/cjs/utils/columnProcessing.d.ts.map +1 -1
  62. package/dist/cjs/utils/columnProcessing.js +1 -0
  63. package/dist/cjs/utils/dashboard.d.ts +2 -1
  64. package/dist/cjs/utils/dashboard.d.ts.map +1 -1
  65. package/dist/cjs/utils/dashboard.js +38 -10
  66. package/dist/cjs/utils/filterProcessing.d.ts +1 -1
  67. package/dist/cjs/utils/filterProcessing.d.ts.map +1 -1
  68. package/dist/cjs/utils/merge.d.ts +16 -0
  69. package/dist/cjs/utils/merge.d.ts.map +1 -1
  70. package/dist/cjs/utils/merge.js +210 -0
  71. package/dist/cjs/utils/paginationProcessing.d.ts +1 -1
  72. package/dist/cjs/utils/paginationProcessing.d.ts.map +1 -1
  73. package/dist/cjs/utils/paginationProcessing.js +3 -2
  74. package/dist/cjs/utils/pivotConstructor.d.ts +19 -9
  75. package/dist/cjs/utils/pivotConstructor.d.ts.map +1 -1
  76. package/dist/cjs/utils/pivotConstructor.js +90 -34
  77. package/dist/cjs/utils/queryConstructor.d.ts +8 -1
  78. package/dist/cjs/utils/queryConstructor.d.ts.map +1 -1
  79. package/dist/cjs/utils/queryConstructor.js +276 -310
  80. package/dist/cjs/utils/report.d.ts +25 -12
  81. package/dist/cjs/utils/report.d.ts.map +1 -1
  82. package/dist/cjs/utils/report.js +13 -7
  83. package/dist/cjs/utils/schema.d.ts +1 -1
  84. package/dist/cjs/utils/schema.d.ts.map +1 -1
  85. package/dist/cjs/utils/schema.js +3 -32
  86. package/dist/cjs/utils/tableProcessing.d.ts +43 -13
  87. package/dist/cjs/utils/tableProcessing.d.ts.map +1 -1
  88. package/dist/cjs/utils/tableProcessing.js +140 -75
  89. package/dist/cjs/utils/textProcessing.d.ts.map +1 -1
  90. package/dist/cjs/utils/textProcessing.js +10 -1
  91. package/dist/cjs/utils/valueFormatter.d.ts +2 -1
  92. package/dist/cjs/utils/valueFormatter.d.ts.map +1 -1
  93. package/dist/cjs/utils/valueFormatter.js +18 -14
  94. package/dist/esm/Chart.d.ts +0 -1
  95. package/dist/esm/Chart.d.ts.map +1 -1
  96. package/dist/esm/Chart.js +0 -6
  97. package/dist/esm/ChartBuilder.d.ts +4 -1
  98. package/dist/esm/ChartBuilder.d.ts.map +1 -1
  99. package/dist/esm/ChartBuilder.js +183 -107
  100. package/dist/esm/Context.d.ts.map +1 -1
  101. package/dist/esm/Context.js +7 -9
  102. package/dist/esm/ReportBuilder.d.ts +2 -0
  103. package/dist/esm/ReportBuilder.d.ts.map +1 -1
  104. package/dist/esm/ReportBuilder.js +400 -273
  105. package/dist/esm/SQLEditor.d.ts.map +1 -1
  106. package/dist/esm/SQLEditor.js +34 -12
  107. package/dist/esm/Table.d.ts.map +1 -1
  108. package/dist/esm/Table.js +17 -1
  109. package/dist/esm/components/Chart/InternalChart.d.ts +0 -1
  110. package/dist/esm/components/Chart/InternalChart.d.ts.map +1 -1
  111. package/dist/esm/components/Chart/InternalChart.js +6 -6
  112. package/dist/esm/components/Dashboard/DataLoader.d.ts.map +1 -1
  113. package/dist/esm/components/Dashboard/DataLoader.js +75 -30
  114. package/dist/esm/components/QuillMultiSelectSectionList.d.ts.map +1 -1
  115. package/dist/esm/components/QuillMultiSelectSectionList.js +5 -12
  116. package/dist/esm/components/QuillMultiSelectWithCombo.js +1 -1
  117. package/dist/esm/components/ReportBuilder/AddLimitPopover.d.ts +1 -1
  118. package/dist/esm/components/ReportBuilder/AddLimitPopover.d.ts.map +1 -1
  119. package/dist/esm/components/ReportBuilder/AddLimitPopover.js +2 -2
  120. package/dist/esm/components/ReportBuilder/AddSortPopover.d.ts +16 -4
  121. package/dist/esm/components/ReportBuilder/AddSortPopover.d.ts.map +1 -1
  122. package/dist/esm/components/ReportBuilder/AddSortPopover.js +9 -18
  123. package/dist/esm/components/UiComponents.d.ts +2 -1
  124. package/dist/esm/components/UiComponents.d.ts.map +1 -1
  125. package/dist/esm/components/UiComponents.js +27 -21
  126. package/dist/esm/hooks/useAskQuill.d.ts.map +1 -1
  127. package/dist/esm/hooks/useAskQuill.js +28 -4
  128. package/dist/esm/hooks/useQuill.d.ts.map +1 -1
  129. package/dist/esm/hooks/useQuill.js +10 -2
  130. package/dist/esm/hooks/useVirtualTables.d.ts.map +1 -1
  131. package/dist/esm/hooks/useVirtualTables.js +12 -36
  132. package/dist/esm/internals/ReportBuilder/PivotForm.d.ts.map +1 -1
  133. package/dist/esm/internals/ReportBuilder/PivotForm.js +14 -2
  134. package/dist/esm/internals/ReportBuilder/PivotModal.d.ts +12 -11
  135. package/dist/esm/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
  136. package/dist/esm/internals/ReportBuilder/PivotModal.js +63 -18
  137. package/dist/esm/models/Client.d.ts +4 -5
  138. package/dist/esm/models/Client.d.ts.map +1 -1
  139. package/dist/esm/models/Pivot.d.ts +10 -0
  140. package/dist/esm/models/Pivot.d.ts.map +1 -1
  141. package/dist/esm/models/Report.d.ts +13 -1
  142. package/dist/esm/models/Report.d.ts.map +1 -1
  143. package/dist/esm/utils/astFilterProcessing.d.ts +1 -1
  144. package/dist/esm/utils/astFilterProcessing.d.ts.map +1 -1
  145. package/dist/esm/utils/astFilterProcessing.js +799 -64
  146. package/dist/esm/utils/astProcessing.d.ts +4 -1
  147. package/dist/esm/utils/astProcessing.d.ts.map +1 -1
  148. package/dist/esm/utils/astProcessing.js +2 -2
  149. package/dist/esm/utils/client.d.ts.map +1 -1
  150. package/dist/esm/utils/client.js +6 -3
  151. package/dist/esm/utils/columnProcessing.d.ts +1 -0
  152. package/dist/esm/utils/columnProcessing.d.ts.map +1 -1
  153. package/dist/esm/utils/columnProcessing.js +1 -1
  154. package/dist/esm/utils/dashboard.d.ts +2 -1
  155. package/dist/esm/utils/dashboard.d.ts.map +1 -1
  156. package/dist/esm/utils/dashboard.js +39 -11
  157. package/dist/esm/utils/filterProcessing.d.ts +1 -1
  158. package/dist/esm/utils/filterProcessing.d.ts.map +1 -1
  159. package/dist/esm/utils/merge.d.ts +16 -0
  160. package/dist/esm/utils/merge.d.ts.map +1 -1
  161. package/dist/esm/utils/merge.js +207 -0
  162. package/dist/esm/utils/paginationProcessing.d.ts +1 -1
  163. package/dist/esm/utils/paginationProcessing.d.ts.map +1 -1
  164. package/dist/esm/utils/paginationProcessing.js +3 -2
  165. package/dist/esm/utils/pivotConstructor.d.ts +19 -9
  166. package/dist/esm/utils/pivotConstructor.d.ts.map +1 -1
  167. package/dist/esm/utils/pivotConstructor.js +91 -35
  168. package/dist/esm/utils/queryConstructor.d.ts +8 -1
  169. package/dist/esm/utils/queryConstructor.d.ts.map +1 -1
  170. package/dist/esm/utils/queryConstructor.js +274 -314
  171. package/dist/esm/utils/report.d.ts +25 -12
  172. package/dist/esm/utils/report.d.ts.map +1 -1
  173. package/dist/esm/utils/report.js +13 -7
  174. package/dist/esm/utils/schema.d.ts +1 -1
  175. package/dist/esm/utils/schema.d.ts.map +1 -1
  176. package/dist/esm/utils/schema.js +1 -30
  177. package/dist/esm/utils/tableProcessing.d.ts +43 -13
  178. package/dist/esm/utils/tableProcessing.d.ts.map +1 -1
  179. package/dist/esm/utils/tableProcessing.js +140 -75
  180. package/dist/esm/utils/textProcessing.d.ts.map +1 -1
  181. package/dist/esm/utils/textProcessing.js +10 -1
  182. package/dist/esm/utils/valueFormatter.d.ts +2 -1
  183. package/dist/esm/utils/valueFormatter.d.ts.map +1 -1
  184. package/dist/esm/utils/valueFormatter.js +18 -14
  185. package/package.json +1 -1
@@ -2,11 +2,21 @@ import { getDateString } from '../internals/ReportBuilder/PivotModal';
2
2
  import { isStringType, processColumnName } from './columnProcessing';
3
3
  import { MAX_PIVOT_UNIQUE_VALUES } from './constants';
4
4
  import { getData } from './dataFetcher';
5
+ import { parseValueFromBigQueryDates } from './dataProcessing';
5
6
  import { getComparisonInterval } from './dates';
6
- import { generatePivotQuery } from './queryConstructor';
7
+ import { mergeComparisonPivotColumns, mergeComparisonPivotRows } from './merge';
8
+ import { additionalProcessingOnPivotQuery, generatePivotQuery, generateRowCountQuery, } from './queryConstructor';
7
9
  import { snakeCaseToTitleCase } from './textProcessing';
8
- import { compareValues } from './valueFormatter';
9
- export async function generatePivotWithSQL(pivot, report, client, dateBucket, dateFilter, distinctStrings, rowLimit, dashboardName, tenants) {
10
+ export async function generatePivotWithSQL({ pivot, report, client, dateBucket, dateFilter, distinctStrings, dashboardName, tenants, additionalProcessing, pivotQuery, comparisonPivotQuery, getPivotRowCount = true, }) {
11
+ let sqlQuery = pivotQuery;
12
+ let comparisonPivotSql = comparisonPivotQuery;
13
+ const databaseType = client.databaseType || 'postgresql';
14
+ if (!pivotQuery &&
15
+ pivot.columnField &&
16
+ !pivot.columnValues &&
17
+ !distinctStrings) {
18
+ throw 'No distinct strings provided for column field';
19
+ }
10
20
  let comparisonInterval = undefined;
11
21
  if (dateFilter && dateFilter.comparisonRange) {
12
22
  comparisonInterval = getComparisonInterval({
@@ -15,31 +25,48 @@ export async function generatePivotWithSQL(pivot, report, client, dateBucket, da
15
25
  }, dateBucket);
16
26
  }
17
27
  if (pivot.rowField && !pivot.rowFieldType) {
18
- const rowColumn = report.columns.find((column) => column.field === pivot.rowField);
28
+ const rowColumn = report?.columns.find((column) => column.field === pivot.rowField);
19
29
  pivot.rowFieldType = rowColumn?.format || 'string';
20
30
  }
21
- let distinctStringValues = undefined;
22
- if (!distinctStrings && report.rows && pivot.columnField) {
23
- const distinctValues = Array.from(new Set(report.rows.map((row) => row[pivot.columnField])));
24
- distinctStringValues = distinctValues
25
- .filter((value) => value !== null && value !== undefined)
26
- .map((value) => value.toString());
27
- }
28
- if (!report.itemQuery) {
29
- throw Error('No item query found in report');
30
- }
31
31
  const filteredDistinctStrings = distinctStrings?.filter((value) => value !== null && value !== undefined);
32
- const sqlQuery = generatePivotQuery(pivot, report.itemQuery, client.databaseType || 'postgresql', comparisonInterval, filteredDistinctStrings?.slice(0, MAX_PIVOT_UNIQUE_VALUES) ??
33
- distinctStringValues?.slice(0, MAX_PIVOT_UNIQUE_VALUES), dateBucket, rowLimit);
32
+ const pivotColumnFields = filteredDistinctStrings?.slice(0, MAX_PIVOT_UNIQUE_VALUES);
33
+ if (!pivotQuery && report) {
34
+ if (!report.itemQuery) {
35
+ throw Error('No item query found in report');
36
+ }
37
+ const itemQuery = report.itemQuery[0];
38
+ const comparisonQuery = report.itemQuery[1];
39
+ if (!itemQuery) {
40
+ throw Error('No item query found in report');
41
+ }
42
+ sqlQuery =
43
+ pivotQuery ??
44
+ generatePivotQuery(pivot, itemQuery, databaseType, pivotColumnFields, dateBucket);
45
+ comparisonPivotSql = comparisonQuery
46
+ ? generatePivotQuery(pivot, comparisonQuery, databaseType, pivotColumnFields, dateBucket)
47
+ : '';
48
+ }
34
49
  if (!sqlQuery) {
35
50
  throw 'Error generating pivot query';
36
51
  }
52
+ const paginatedSqlQuery = additionalProcessingOnPivotQuery(pivot, sqlQuery, additionalProcessing, client.databaseType);
53
+ const paginatedComparisonQuery = comparisonPivotSql
54
+ ? additionalProcessingOnPivotQuery(pivot, comparisonPivotSql, additionalProcessing, client.databaseType)
55
+ : '';
56
+ const preQueries = [paginatedSqlQuery];
57
+ if (getPivotRowCount && report?.chartType === 'table') {
58
+ const pivotRowCountQuery = generateRowCountQuery(sqlQuery, client.databaseType);
59
+ preQueries.push(pivotRowCountQuery);
60
+ }
61
+ if (paginatedComparisonQuery) {
62
+ preQueries.push(paginatedComparisonQuery);
63
+ }
37
64
  const hostedBody = {
38
65
  metadata: {
39
- preQueries: [sqlQuery],
66
+ preQueries,
40
67
  task: 'query',
41
68
  clientId: client.publicKey,
42
- databaseType: client?.databaseType,
69
+ databaseType: databaseType,
43
70
  getCustomFields: false,
44
71
  runQueryConfig: {
45
72
  overridePost: true,
@@ -55,10 +82,33 @@ export async function generatePivotWithSQL(pivot, report, client, dateBucket, da
55
82
  if (resp.success === false) {
56
83
  throw resp.errorMessage;
57
84
  }
58
- // With our current design we have to remove the second row field but leave the first for comparison purposes.
85
+ const queryResponseRows = resp?.queryResults?.[0]?.rows || [];
86
+ const queryResponseFields = resp?.queryResults?.[0]?.fields || [];
87
+ const queryComparisonResponseRows = (getPivotRowCount
88
+ ? resp?.queryResults?.[2]?.rows
89
+ : resp?.queryResults?.[1]?.rows) || [];
90
+ const queryComparisonResponseFields = (getPivotRowCount
91
+ ? resp?.queryResults?.[2]?.fields
92
+ : resp?.queryResults?.[1]?.fields) || [];
93
+ parseValueFromBigQueryDates(queryResponseRows, queryResponseFields);
94
+ parseValueFromBigQueryDates(queryComparisonResponseRows, queryComparisonResponseFields);
95
+ const responseRows = mergeComparisonPivotRows({
96
+ pivot,
97
+ rows: queryResponseRows,
98
+ compRows: queryComparisonResponseRows,
99
+ databaseType,
100
+ dateBucket,
101
+ comparisonInterval,
102
+ columnFieldValues: pivotColumnFields,
103
+ });
104
+ const responseFields = mergeComparisonPivotColumns({
105
+ pivot,
106
+ rows: queryResponseFields,
107
+ compRows: queryComparisonResponseFields,
108
+ });
59
109
  const rows = pivot.rowField
60
- ? (resp?.queryResults?.[0]?.rows || []).map((row) => !row[pivot.rowField] ? { ...row, [pivot.rowField]: '-' } : row)
61
- : resp?.queryResults?.[0]?.rows || [];
110
+ ? responseRows.map((row) => !row[pivot.rowField] ? { ...row, [pivot.rowField]: '-' } : row)
111
+ : responseRows;
62
112
  if (pivot.columnField && client.databaseType?.toLowerCase() === 'bigquery') {
63
113
  rows.forEach((row) => {
64
114
  Object.keys(row).forEach((key) => {
@@ -70,14 +120,14 @@ export async function generatePivotWithSQL(pivot, report, client, dateBucket, da
70
120
  });
71
121
  });
72
122
  }
73
- const columns = resp?.queryResults?.[0]?.fields
123
+ const columns = responseFields
74
124
  ?.map((field) => ({
75
125
  field: processColumnName(field.name),
76
126
  label: snakeCaseToTitleCase(processColumnName(field.name.replace('comparison_', 'comparison '))),
77
127
  format: field.name === pivot.rowField
78
128
  ? 'string'
79
129
  : (pivot.valueFieldType ?? pivot.aggregationType === 'percentage')
80
- ? 'percentage'
130
+ ? 'percent'
81
131
  : 'whole_number',
82
132
  fieldType: field.fieldType,
83
133
  jsType: field.jsType,
@@ -116,7 +166,7 @@ export async function generatePivotWithSQL(pivot, report, client, dateBucket, da
116
166
  }
117
167
  const dateString = getDateString(value, dateFilter?.startDate && dateFilter?.endDate
118
168
  ? { start: dateFilter.startDate, end: dateFilter.endDate }
119
- : undefined, dateBucket);
169
+ : undefined, dateBucket, databaseType);
120
170
  row[pivot.rowField || ''] = dateString;
121
171
  });
122
172
  // add a row for each date in the range that doesn't have a value
@@ -128,7 +178,7 @@ export async function generatePivotWithSQL(pivot, report, client, dateBucket, da
128
178
  const dateSet = new Set(rows.map((row) => row[pivot.rowField || '']));
129
179
  // create a loop that will go through each formatted date and add a row if it doesn't exist going to the current date
130
180
  for (let date = dateFilter.startDate; date <= dateFilter.endDate; date = new Date(date.getTime() + 24 * 60 * 60 * 1000)) {
131
- const formattedDate = getDateString(date.toISOString(), { start: dateFilter.startDate, end: dateFilter.endDate }, dateBucket);
181
+ const formattedDate = getDateString(date.toISOString(), { start: dateFilter.startDate, end: dateFilter.endDate }, dateBucket, databaseType);
132
182
  if (!dateSet.has(formattedDate)) {
133
183
  const newRow = {};
134
184
  newRow[pivot.rowField] = formattedDate;
@@ -153,16 +203,16 @@ export async function generatePivotWithSQL(pivot, report, client, dateBucket, da
153
203
  // delete row.__quillRawDate;
154
204
  // });
155
205
  }
156
- if (pivot.sort) {
157
- rows.sort((a, b) => {
158
- if (pivot.sortDirection === 'ASC') {
159
- return compareValues(a, b, pivot.sortField || '');
160
- }
161
- else {
162
- return compareValues(b, a, pivot.sortField || '');
163
- }
164
- });
165
- }
206
+ // should be doing this in the query
207
+ // if (pivot.sort) {
208
+ // rows.sort((a: any, b: any) => {
209
+ // if (pivot.sortDirection === 'ASC') {
210
+ // return compareValues(a, b, pivot.sortField || '');
211
+ // } else {
212
+ // return compareValues(b, a, pivot.sortField || '');
213
+ // }
214
+ // });
215
+ // }
166
216
  // for the case of count agg on no value field
167
217
  columns?.forEach((column) => {
168
218
  if (column.label &&
@@ -182,5 +232,11 @@ export async function generatePivotWithSQL(pivot, report, client, dateBucket, da
182
232
  return {
183
233
  rows: rows,
184
234
  columns: columns ?? [],
235
+ rowCount: getPivotRowCount
236
+ ? (Number(resp?.queryResults?.[1]?.rows?.[0]?.['row_count']) ??
237
+ rows.length)
238
+ : 0,
239
+ pivotQuery: sqlQuery,
240
+ comparisonPivotQuery: comparisonPivotSql,
185
241
  };
186
242
  }
@@ -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, itemQueries: string[], databaseType: string, comparisonInterval?: string, distinctStrings?: string[], dateBucket?: string, rowLimit?: number): string | undefined;
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;AA0BxC,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,UA+EjC;AAED,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,MAAM,UAE1D;AAkED,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,UAYrB;AAiDD,wBAAgB,8BAA8B,CAC5C,YAAY,EAAE,MAAM,EAAE,EACtB,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,MAAM,UAgBrB;AAED,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,MAAM,EAAE,EACrB,YAAY,EAAE,MAAM,EACpB,kBAAkB,CAAC,EAAE,MAAM,EAC3B,eAAe,CAAC,EAAE,MAAM,EAAE,EAC1B,UAAU,CAAC,EAAE,MAAM,EACnB,QAAQ,CAAC,EAAE,MAAM,GAChB,MAAM,GAAG,SAAS,CAgCpB"}
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"}