@quillsql/react 2.13.35 → 2.13.37

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 (196) 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 +1 -0
  5. package/dist/cjs/ChartBuilder.d.ts.map +1 -1
  6. package/dist/cjs/ChartBuilder.js +178 -96
  7. package/dist/cjs/Context.d.ts.map +1 -1
  8. package/dist/cjs/Context.js +6 -8
  9. package/dist/cjs/Dashboard.d.ts +2 -1
  10. package/dist/cjs/Dashboard.d.ts.map +1 -1
  11. package/dist/cjs/Dashboard.js +18 -8
  12. package/dist/cjs/ReportBuilder.d.ts +2 -0
  13. package/dist/cjs/ReportBuilder.d.ts.map +1 -1
  14. package/dist/cjs/ReportBuilder.js +398 -271
  15. package/dist/cjs/SQLEditor.d.ts.map +1 -1
  16. package/dist/cjs/SQLEditor.js +33 -11
  17. package/dist/cjs/Table.d.ts.map +1 -1
  18. package/dist/cjs/Table.js +17 -1
  19. package/dist/cjs/components/Chart/InternalChart.d.ts +0 -1
  20. package/dist/cjs/components/Chart/InternalChart.d.ts.map +1 -1
  21. package/dist/cjs/components/Chart/InternalChart.js +6 -7
  22. package/dist/cjs/components/Dashboard/DataLoader.d.ts.map +1 -1
  23. package/dist/cjs/components/Dashboard/DataLoader.js +75 -30
  24. package/dist/cjs/components/Dashboard/MetricComponent.d.ts +1 -1
  25. package/dist/cjs/components/Dashboard/MetricComponent.d.ts.map +1 -1
  26. package/dist/cjs/components/Dashboard/MetricComponent.js +98 -106
  27. package/dist/cjs/components/QuillMultiSelectSectionList.d.ts.map +1 -1
  28. package/dist/cjs/components/QuillMultiSelectSectionList.js +21 -16
  29. package/dist/cjs/components/QuillMultiSelectWithCombo.js +18 -8
  30. package/dist/cjs/components/QuillSelectWithCombo.js +17 -7
  31. package/dist/cjs/components/ReportBuilder/AddLimitPopover.d.ts +1 -1
  32. package/dist/cjs/components/ReportBuilder/AddLimitPopover.d.ts.map +1 -1
  33. package/dist/cjs/components/ReportBuilder/AddLimitPopover.js +2 -2
  34. package/dist/cjs/components/ReportBuilder/AddSortPopover.d.ts +16 -4
  35. package/dist/cjs/components/ReportBuilder/AddSortPopover.d.ts.map +1 -1
  36. package/dist/cjs/components/ReportBuilder/AddSortPopover.js +9 -18
  37. package/dist/cjs/components/UiComponents.d.ts +2 -1
  38. package/dist/cjs/components/UiComponents.d.ts.map +1 -1
  39. package/dist/cjs/components/UiComponents.js +44 -28
  40. package/dist/cjs/hooks/useAskQuill.d.ts.map +1 -1
  41. package/dist/cjs/hooks/useAskQuill.js +28 -4
  42. package/dist/cjs/hooks/useQuill.d.ts.map +1 -1
  43. package/dist/cjs/hooks/useQuill.js +9 -1
  44. package/dist/cjs/hooks/useVirtualTables.d.ts.map +1 -1
  45. package/dist/cjs/hooks/useVirtualTables.js +11 -35
  46. package/dist/cjs/internals/ReportBuilder/PivotForm.d.ts.map +1 -1
  47. package/dist/cjs/internals/ReportBuilder/PivotForm.js +14 -2
  48. package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts +12 -11
  49. package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
  50. package/dist/cjs/internals/ReportBuilder/PivotModal.js +63 -18
  51. package/dist/cjs/models/Client.d.ts +4 -5
  52. package/dist/cjs/models/Client.d.ts.map +1 -1
  53. package/dist/cjs/models/Pivot.d.ts +10 -0
  54. package/dist/cjs/models/Pivot.d.ts.map +1 -1
  55. package/dist/cjs/models/Report.d.ts +13 -1
  56. package/dist/cjs/models/Report.d.ts.map +1 -1
  57. package/dist/cjs/utils/astFilterProcessing.d.ts +1 -1
  58. package/dist/cjs/utils/astFilterProcessing.d.ts.map +1 -1
  59. package/dist/cjs/utils/astFilterProcessing.js +799 -64
  60. package/dist/cjs/utils/astProcessing.d.ts +4 -1
  61. package/dist/cjs/utils/astProcessing.d.ts.map +1 -1
  62. package/dist/cjs/utils/astProcessing.js +2 -2
  63. package/dist/cjs/utils/client.d.ts.map +1 -1
  64. package/dist/cjs/utils/client.js +6 -3
  65. package/dist/cjs/utils/columnProcessing.d.ts +1 -0
  66. package/dist/cjs/utils/columnProcessing.d.ts.map +1 -1
  67. package/dist/cjs/utils/columnProcessing.js +1 -0
  68. package/dist/cjs/utils/dashboard.d.ts +2 -1
  69. package/dist/cjs/utils/dashboard.d.ts.map +1 -1
  70. package/dist/cjs/utils/dashboard.js +38 -10
  71. package/dist/cjs/utils/filterProcessing.d.ts +1 -1
  72. package/dist/cjs/utils/filterProcessing.d.ts.map +1 -1
  73. package/dist/cjs/utils/merge.d.ts +16 -0
  74. package/dist/cjs/utils/merge.d.ts.map +1 -1
  75. package/dist/cjs/utils/merge.js +210 -0
  76. package/dist/cjs/utils/paginationProcessing.d.ts +1 -1
  77. package/dist/cjs/utils/paginationProcessing.d.ts.map +1 -1
  78. package/dist/cjs/utils/paginationProcessing.js +3 -2
  79. package/dist/cjs/utils/pivotConstructor.d.ts +19 -9
  80. package/dist/cjs/utils/pivotConstructor.d.ts.map +1 -1
  81. package/dist/cjs/utils/pivotConstructor.js +90 -34
  82. package/dist/cjs/utils/queryConstructor.d.ts +8 -1
  83. package/dist/cjs/utils/queryConstructor.d.ts.map +1 -1
  84. package/dist/cjs/utils/queryConstructor.js +276 -310
  85. package/dist/cjs/utils/report.d.ts +25 -12
  86. package/dist/cjs/utils/report.d.ts.map +1 -1
  87. package/dist/cjs/utils/report.js +13 -7
  88. package/dist/cjs/utils/schema.d.ts +1 -1
  89. package/dist/cjs/utils/schema.d.ts.map +1 -1
  90. package/dist/cjs/utils/schema.js +3 -32
  91. package/dist/cjs/utils/tableProcessing.d.ts +43 -13
  92. package/dist/cjs/utils/tableProcessing.d.ts.map +1 -1
  93. package/dist/cjs/utils/tableProcessing.js +140 -75
  94. package/dist/cjs/utils/textProcessing.d.ts.map +1 -1
  95. package/dist/cjs/utils/textProcessing.js +10 -1
  96. package/dist/cjs/utils/valueFormatter.d.ts +2 -1
  97. package/dist/cjs/utils/valueFormatter.d.ts.map +1 -1
  98. package/dist/cjs/utils/valueFormatter.js +18 -14
  99. package/dist/esm/Chart.d.ts +0 -1
  100. package/dist/esm/Chart.d.ts.map +1 -1
  101. package/dist/esm/Chart.js +0 -6
  102. package/dist/esm/ChartBuilder.d.ts +1 -0
  103. package/dist/esm/ChartBuilder.d.ts.map +1 -1
  104. package/dist/esm/ChartBuilder.js +179 -97
  105. package/dist/esm/Context.d.ts.map +1 -1
  106. package/dist/esm/Context.js +7 -9
  107. package/dist/esm/Dashboard.d.ts +2 -1
  108. package/dist/esm/Dashboard.d.ts.map +1 -1
  109. package/dist/esm/Dashboard.js +1 -1
  110. package/dist/esm/ReportBuilder.d.ts +2 -0
  111. package/dist/esm/ReportBuilder.d.ts.map +1 -1
  112. package/dist/esm/ReportBuilder.js +399 -272
  113. package/dist/esm/SQLEditor.d.ts.map +1 -1
  114. package/dist/esm/SQLEditor.js +33 -11
  115. package/dist/esm/Table.d.ts.map +1 -1
  116. package/dist/esm/Table.js +17 -1
  117. package/dist/esm/components/Chart/InternalChart.d.ts +0 -1
  118. package/dist/esm/components/Chart/InternalChart.d.ts.map +1 -1
  119. package/dist/esm/components/Chart/InternalChart.js +6 -6
  120. package/dist/esm/components/Dashboard/DataLoader.d.ts.map +1 -1
  121. package/dist/esm/components/Dashboard/DataLoader.js +75 -30
  122. package/dist/esm/components/Dashboard/MetricComponent.d.ts +1 -1
  123. package/dist/esm/components/Dashboard/MetricComponent.d.ts.map +1 -1
  124. package/dist/esm/components/Dashboard/MetricComponent.js +98 -106
  125. package/dist/esm/components/QuillMultiSelectSectionList.d.ts.map +1 -1
  126. package/dist/esm/components/QuillMultiSelectSectionList.js +5 -12
  127. package/dist/esm/components/QuillMultiSelectWithCombo.js +1 -1
  128. package/dist/esm/components/ReportBuilder/AddLimitPopover.d.ts +1 -1
  129. package/dist/esm/components/ReportBuilder/AddLimitPopover.d.ts.map +1 -1
  130. package/dist/esm/components/ReportBuilder/AddLimitPopover.js +2 -2
  131. package/dist/esm/components/ReportBuilder/AddSortPopover.d.ts +16 -4
  132. package/dist/esm/components/ReportBuilder/AddSortPopover.d.ts.map +1 -1
  133. package/dist/esm/components/ReportBuilder/AddSortPopover.js +9 -18
  134. package/dist/esm/components/UiComponents.d.ts +2 -1
  135. package/dist/esm/components/UiComponents.d.ts.map +1 -1
  136. package/dist/esm/components/UiComponents.js +27 -21
  137. package/dist/esm/hooks/useAskQuill.d.ts.map +1 -1
  138. package/dist/esm/hooks/useAskQuill.js +28 -4
  139. package/dist/esm/hooks/useQuill.d.ts.map +1 -1
  140. package/dist/esm/hooks/useQuill.js +10 -2
  141. package/dist/esm/hooks/useVirtualTables.d.ts.map +1 -1
  142. package/dist/esm/hooks/useVirtualTables.js +12 -36
  143. package/dist/esm/internals/ReportBuilder/PivotForm.d.ts.map +1 -1
  144. package/dist/esm/internals/ReportBuilder/PivotForm.js +14 -2
  145. package/dist/esm/internals/ReportBuilder/PivotModal.d.ts +12 -11
  146. package/dist/esm/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
  147. package/dist/esm/internals/ReportBuilder/PivotModal.js +63 -18
  148. package/dist/esm/models/Client.d.ts +4 -5
  149. package/dist/esm/models/Client.d.ts.map +1 -1
  150. package/dist/esm/models/Pivot.d.ts +10 -0
  151. package/dist/esm/models/Pivot.d.ts.map +1 -1
  152. package/dist/esm/models/Report.d.ts +13 -1
  153. package/dist/esm/models/Report.d.ts.map +1 -1
  154. package/dist/esm/utils/astFilterProcessing.d.ts +1 -1
  155. package/dist/esm/utils/astFilterProcessing.d.ts.map +1 -1
  156. package/dist/esm/utils/astFilterProcessing.js +799 -64
  157. package/dist/esm/utils/astProcessing.d.ts +4 -1
  158. package/dist/esm/utils/astProcessing.d.ts.map +1 -1
  159. package/dist/esm/utils/astProcessing.js +2 -2
  160. package/dist/esm/utils/client.d.ts.map +1 -1
  161. package/dist/esm/utils/client.js +6 -3
  162. package/dist/esm/utils/columnProcessing.d.ts +1 -0
  163. package/dist/esm/utils/columnProcessing.d.ts.map +1 -1
  164. package/dist/esm/utils/columnProcessing.js +1 -1
  165. package/dist/esm/utils/dashboard.d.ts +2 -1
  166. package/dist/esm/utils/dashboard.d.ts.map +1 -1
  167. package/dist/esm/utils/dashboard.js +39 -11
  168. package/dist/esm/utils/filterProcessing.d.ts +1 -1
  169. package/dist/esm/utils/filterProcessing.d.ts.map +1 -1
  170. package/dist/esm/utils/merge.d.ts +16 -0
  171. package/dist/esm/utils/merge.d.ts.map +1 -1
  172. package/dist/esm/utils/merge.js +207 -0
  173. package/dist/esm/utils/paginationProcessing.d.ts +1 -1
  174. package/dist/esm/utils/paginationProcessing.d.ts.map +1 -1
  175. package/dist/esm/utils/paginationProcessing.js +3 -2
  176. package/dist/esm/utils/pivotConstructor.d.ts +19 -9
  177. package/dist/esm/utils/pivotConstructor.d.ts.map +1 -1
  178. package/dist/esm/utils/pivotConstructor.js +91 -35
  179. package/dist/esm/utils/queryConstructor.d.ts +8 -1
  180. package/dist/esm/utils/queryConstructor.d.ts.map +1 -1
  181. package/dist/esm/utils/queryConstructor.js +274 -314
  182. package/dist/esm/utils/report.d.ts +25 -12
  183. package/dist/esm/utils/report.d.ts.map +1 -1
  184. package/dist/esm/utils/report.js +13 -7
  185. package/dist/esm/utils/schema.d.ts +1 -1
  186. package/dist/esm/utils/schema.d.ts.map +1 -1
  187. package/dist/esm/utils/schema.js +1 -30
  188. package/dist/esm/utils/tableProcessing.d.ts +43 -13
  189. package/dist/esm/utils/tableProcessing.d.ts.map +1 -1
  190. package/dist/esm/utils/tableProcessing.js +140 -75
  191. package/dist/esm/utils/textProcessing.d.ts.map +1 -1
  192. package/dist/esm/utils/textProcessing.js +10 -1
  193. package/dist/esm/utils/valueFormatter.d.ts +2 -1
  194. package/dist/esm/utils/valueFormatter.d.ts.map +1 -1
  195. package/dist/esm/utils/valueFormatter.js +18 -14
  196. 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
- const valueFormatter_1 = require("./valueFormatter");
12
- async function generatePivotWithSQL(pivot, report, client, dateBucket, dateFilter, distinctStrings, rowLimit, dashboardName, tenants) {
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.columns.find((column) => column.field === pivot.rowField);
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 sqlQuery = (0, queryConstructor_1.generatePivotQuery)(pivot, report.itemQuery, client.databaseType || 'postgresql', comparisonInterval, filteredDistinctStrings?.slice(0, constants_1.MAX_PIVOT_UNIQUE_VALUES) ??
36
- distinctStringValues?.slice(0, constants_1.MAX_PIVOT_UNIQUE_VALUES), dateBucket, rowLimit);
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: [sqlQuery],
69
+ preQueries,
43
70
  task: 'query',
44
71
  clientId: client.publicKey,
45
- databaseType: client?.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
- // With our current design we have to remove the second row field but leave the first for comparison purposes.
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
- ? (resp?.queryResults?.[0]?.rows || []).map((row) => !row[pivot.rowField] ? { ...row, [pivot.rowField]: '-' } : row)
64
- : resp?.queryResults?.[0]?.rows || [];
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 = resp?.queryResults?.[0]?.fields
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
- ? 'percentage'
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
- if (pivot.sort) {
160
- rows.sort((a, b) => {
161
- if (pivot.sortDirection === 'ASC') {
162
- return (0, valueFormatter_1.compareValues)(a, b, pivot.sortField || '');
163
- }
164
- else {
165
- return (0, valueFormatter_1.compareValues)(b, a, pivot.sortField || '');
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, 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"}