@quillsql/react 2.11.16 → 2.11.17

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 (203) hide show
  1. package/dist/cjs/Chart.d.ts +117 -42
  2. package/dist/cjs/Chart.d.ts.map +1 -1
  3. package/dist/cjs/Chart.js +44 -18
  4. package/dist/cjs/ChartBuilder.d.ts +194 -30
  5. package/dist/cjs/ChartBuilder.d.ts.map +1 -1
  6. package/dist/cjs/ChartBuilder.js +122 -62
  7. package/dist/cjs/ChartEditor.d.ts +114 -18
  8. package/dist/cjs/ChartEditor.d.ts.map +1 -1
  9. package/dist/cjs/ChartEditor.js +47 -15
  10. package/dist/cjs/Dashboard.d.ts +148 -91
  11. package/dist/cjs/Dashboard.d.ts.map +1 -1
  12. package/dist/cjs/Dashboard.js +46 -152
  13. package/dist/cjs/DateRangePicker/QuillDateRangePicker.d.ts +21 -1
  14. package/dist/cjs/DateRangePicker/QuillDateRangePicker.d.ts.map +1 -1
  15. package/dist/cjs/DateRangePicker/QuillDateRangePicker.js +5 -2
  16. package/dist/cjs/DateRangePicker/dateRangePickerUtils.js +1 -1
  17. package/dist/cjs/QuillProvider.d.ts +105 -2
  18. package/dist/cjs/QuillProvider.d.ts.map +1 -1
  19. package/dist/cjs/QuillProvider.js +59 -0
  20. package/dist/cjs/ReportBuilder.d.ts +188 -42
  21. package/dist/cjs/ReportBuilder.d.ts.map +1 -1
  22. package/dist/cjs/ReportBuilder.js +466 -394
  23. package/dist/cjs/SQLEditor.d.ts +158 -23
  24. package/dist/cjs/SQLEditor.d.ts.map +1 -1
  25. package/dist/cjs/SQLEditor.js +35 -30
  26. package/dist/cjs/Table.d.ts +119 -15
  27. package/dist/cjs/Table.d.ts.map +1 -1
  28. package/dist/cjs/Table.js +37 -6
  29. package/dist/cjs/TableChart.d.ts.map +1 -1
  30. package/dist/cjs/TableChart.js +0 -194
  31. package/dist/cjs/{BarList.d.ts → components/Chart/BarList.d.ts} +1 -1
  32. package/dist/cjs/components/Chart/BarList.d.ts.map +1 -0
  33. package/dist/cjs/{BarList.js → components/Chart/BarList.js} +1 -1
  34. package/dist/cjs/components/Chart/LineChart.d.ts +2 -3
  35. package/dist/cjs/components/Chart/LineChart.d.ts.map +1 -1
  36. package/dist/cjs/components/Chart/LineChart.js +3 -3
  37. package/dist/cjs/components/Chart/PieChart.d.ts.map +1 -0
  38. package/dist/cjs/{PieChart.js → components/Chart/PieChart.js} +1 -1
  39. package/dist/cjs/components/Dashboard/ChartComponent.d.ts +2 -1
  40. package/dist/cjs/components/Dashboard/ChartComponent.d.ts.map +1 -1
  41. package/dist/cjs/components/Dashboard/ChartComponent.js +6 -7
  42. package/dist/cjs/components/Dashboard/DashboardFilter.d.ts +22 -0
  43. package/dist/cjs/components/Dashboard/DashboardFilter.d.ts.map +1 -0
  44. package/dist/cjs/components/Dashboard/DashboardFilter.js +75 -0
  45. package/dist/cjs/components/Dashboard/DataLoader.d.ts +1 -1
  46. package/dist/cjs/components/Dashboard/DataLoader.d.ts.map +1 -1
  47. package/dist/cjs/components/Dashboard/DataLoader.js +1 -1
  48. package/dist/cjs/components/Dashboard/MetricComponent.d.ts +2 -12
  49. package/dist/cjs/components/Dashboard/MetricComponent.d.ts.map +1 -1
  50. package/dist/cjs/components/Dashboard/MetricComponent.js +39 -17
  51. package/dist/cjs/components/Dashboard/TableComponent.d.ts +2 -1
  52. package/dist/cjs/components/Dashboard/TableComponent.d.ts.map +1 -1
  53. package/dist/cjs/components/Dashboard/TableComponent.js +6 -9
  54. package/dist/cjs/components/QuillSelect.d.ts +4 -1
  55. package/dist/cjs/components/QuillSelect.d.ts.map +1 -1
  56. package/dist/cjs/components/QuillSelect.js +13 -8
  57. package/dist/cjs/components/QuillTable.d.ts +16 -2
  58. package/dist/cjs/components/QuillTable.d.ts.map +1 -1
  59. package/dist/cjs/components/QuillTable.js +4 -4
  60. package/dist/cjs/components/ReportBuilder/AddColumnPopover.d.ts +9 -3
  61. package/dist/cjs/components/ReportBuilder/AddColumnPopover.d.ts.map +1 -1
  62. package/dist/cjs/components/ReportBuilder/AddColumnPopover.js +8 -6
  63. package/dist/cjs/components/ReportBuilder/AddLimitPopover.d.ts +13 -1
  64. package/dist/cjs/components/ReportBuilder/AddLimitPopover.d.ts.map +1 -1
  65. package/dist/cjs/components/ReportBuilder/AddLimitPopover.js +4 -14
  66. package/dist/cjs/components/ReportBuilder/AddSortPopover.d.ts +21 -1
  67. package/dist/cjs/components/ReportBuilder/AddSortPopover.d.ts.map +1 -1
  68. package/dist/cjs/components/ReportBuilder/AddSortPopover.js +15 -17
  69. package/dist/cjs/components/ReportBuilder/bigDateMap.js +1 -1
  70. package/dist/cjs/components/ReportBuilder/convert.d.ts +2 -1
  71. package/dist/cjs/components/ReportBuilder/convert.d.ts.map +1 -1
  72. package/dist/cjs/components/ReportBuilder/convert.js +40 -20
  73. package/dist/cjs/components/ReportBuilder/pivot.d.ts +2 -1
  74. package/dist/cjs/components/ReportBuilder/pivot.d.ts.map +1 -1
  75. package/dist/cjs/components/ReportBuilder/ui.d.ts +83 -18
  76. package/dist/cjs/components/ReportBuilder/ui.d.ts.map +1 -1
  77. package/dist/cjs/components/ReportBuilder/ui.js +52 -100
  78. package/dist/cjs/components/ReportBuilder/util.d.ts +2 -1
  79. package/dist/cjs/components/ReportBuilder/util.d.ts.map +1 -1
  80. package/dist/cjs/components/ReportBuilder/util.js +16 -9
  81. package/dist/cjs/components/UiComponents.d.ts +86 -86
  82. package/dist/cjs/components/UiComponents.d.ts.map +1 -1
  83. package/dist/cjs/components/UiComponents.js +118 -103
  84. package/dist/cjs/hooks/index.d.ts +1 -0
  85. package/dist/cjs/hooks/index.d.ts.map +1 -1
  86. package/dist/cjs/hooks/index.js +3 -1
  87. package/dist/cjs/hooks/useTheme.d.ts +7 -0
  88. package/dist/cjs/hooks/useTheme.d.ts.map +1 -0
  89. package/dist/cjs/hooks/useTheme.js +12 -0
  90. package/dist/cjs/index.d.ts +10 -2
  91. package/dist/cjs/index.d.ts.map +1 -1
  92. package/dist/cjs/internals/ReportBuilder/PivotList.d.ts.map +1 -1
  93. package/dist/cjs/internals/ReportBuilder/PivotList.js +10 -10
  94. package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts +29 -14
  95. package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
  96. package/dist/cjs/internals/ReportBuilder/PivotModal.js +73 -49
  97. package/dist/cjs/utils/dataFetcher.d.ts.map +1 -1
  98. package/dist/cjs/utils/dataFetcher.js +2 -0
  99. package/dist/esm/Chart.d.ts +117 -42
  100. package/dist/esm/Chart.d.ts.map +1 -1
  101. package/dist/esm/Chart.js +45 -19
  102. package/dist/esm/ChartBuilder.d.ts +194 -30
  103. package/dist/esm/ChartBuilder.d.ts.map +1 -1
  104. package/dist/esm/ChartBuilder.js +122 -62
  105. package/dist/esm/ChartEditor.d.ts +114 -18
  106. package/dist/esm/ChartEditor.d.ts.map +1 -1
  107. package/dist/esm/ChartEditor.js +51 -19
  108. package/dist/esm/Dashboard.d.ts +148 -91
  109. package/dist/esm/Dashboard.d.ts.map +1 -1
  110. package/dist/esm/Dashboard.js +49 -153
  111. package/dist/esm/DateRangePicker/QuillDateRangePicker.d.ts +21 -1
  112. package/dist/esm/DateRangePicker/QuillDateRangePicker.d.ts.map +1 -1
  113. package/dist/esm/DateRangePicker/QuillDateRangePicker.js +6 -3
  114. package/dist/esm/DateRangePicker/dateRangePickerUtils.js +1 -1
  115. package/dist/esm/QuillProvider.d.ts +105 -2
  116. package/dist/esm/QuillProvider.d.ts.map +1 -1
  117. package/dist/esm/QuillProvider.js +59 -0
  118. package/dist/esm/ReportBuilder.d.ts +188 -42
  119. package/dist/esm/ReportBuilder.d.ts.map +1 -1
  120. package/dist/esm/ReportBuilder.js +468 -396
  121. package/dist/esm/SQLEditor.d.ts +158 -23
  122. package/dist/esm/SQLEditor.d.ts.map +1 -1
  123. package/dist/esm/SQLEditor.js +35 -30
  124. package/dist/esm/Table.d.ts +119 -15
  125. package/dist/esm/Table.d.ts.map +1 -1
  126. package/dist/esm/Table.js +38 -7
  127. package/dist/esm/TableChart.d.ts.map +1 -1
  128. package/dist/esm/TableChart.js +0 -194
  129. package/dist/esm/{BarList.d.ts → components/Chart/BarList.d.ts} +1 -1
  130. package/dist/esm/components/Chart/BarList.d.ts.map +1 -0
  131. package/dist/esm/{BarList.js → components/Chart/BarList.js} +1 -1
  132. package/dist/esm/components/Chart/LineChart.d.ts +2 -3
  133. package/dist/esm/components/Chart/LineChart.d.ts.map +1 -1
  134. package/dist/esm/components/Chart/LineChart.js +3 -3
  135. package/dist/esm/components/Chart/PieChart.d.ts.map +1 -0
  136. package/dist/esm/{PieChart.js → components/Chart/PieChart.js} +1 -1
  137. package/dist/esm/components/Dashboard/ChartComponent.d.ts +2 -1
  138. package/dist/esm/components/Dashboard/ChartComponent.d.ts.map +1 -1
  139. package/dist/esm/components/Dashboard/ChartComponent.js +5 -6
  140. package/dist/esm/components/Dashboard/DashboardFilter.d.ts +22 -0
  141. package/dist/esm/components/Dashboard/DashboardFilter.d.ts.map +1 -0
  142. package/dist/esm/components/Dashboard/DashboardFilter.js +71 -0
  143. package/dist/esm/components/Dashboard/DataLoader.d.ts +1 -1
  144. package/dist/esm/components/Dashboard/DataLoader.d.ts.map +1 -1
  145. package/dist/esm/components/Dashboard/DataLoader.js +1 -1
  146. package/dist/esm/components/Dashboard/MetricComponent.d.ts +2 -12
  147. package/dist/esm/components/Dashboard/MetricComponent.d.ts.map +1 -1
  148. package/dist/esm/components/Dashboard/MetricComponent.js +39 -17
  149. package/dist/esm/components/Dashboard/TableComponent.d.ts +2 -1
  150. package/dist/esm/components/Dashboard/TableComponent.d.ts.map +1 -1
  151. package/dist/esm/components/Dashboard/TableComponent.js +6 -9
  152. package/dist/esm/components/QuillSelect.d.ts +4 -1
  153. package/dist/esm/components/QuillSelect.d.ts.map +1 -1
  154. package/dist/esm/components/QuillSelect.js +14 -9
  155. package/dist/esm/components/QuillTable.d.ts +16 -2
  156. package/dist/esm/components/QuillTable.d.ts.map +1 -1
  157. package/dist/esm/components/QuillTable.js +4 -4
  158. package/dist/esm/components/ReportBuilder/AddColumnPopover.d.ts +9 -3
  159. package/dist/esm/components/ReportBuilder/AddColumnPopover.d.ts.map +1 -1
  160. package/dist/esm/components/ReportBuilder/AddColumnPopover.js +8 -6
  161. package/dist/esm/components/ReportBuilder/AddLimitPopover.d.ts +13 -1
  162. package/dist/esm/components/ReportBuilder/AddLimitPopover.d.ts.map +1 -1
  163. package/dist/esm/components/ReportBuilder/AddLimitPopover.js +4 -14
  164. package/dist/esm/components/ReportBuilder/AddSortPopover.d.ts +21 -1
  165. package/dist/esm/components/ReportBuilder/AddSortPopover.d.ts.map +1 -1
  166. package/dist/esm/components/ReportBuilder/AddSortPopover.js +17 -19
  167. package/dist/esm/components/ReportBuilder/bigDateMap.js +1 -1
  168. package/dist/esm/components/ReportBuilder/convert.d.ts +2 -1
  169. package/dist/esm/components/ReportBuilder/convert.d.ts.map +1 -1
  170. package/dist/esm/components/ReportBuilder/convert.js +33 -13
  171. package/dist/esm/components/ReportBuilder/pivot.d.ts +2 -1
  172. package/dist/esm/components/ReportBuilder/pivot.d.ts.map +1 -1
  173. package/dist/esm/components/ReportBuilder/ui.d.ts +83 -18
  174. package/dist/esm/components/ReportBuilder/ui.d.ts.map +1 -1
  175. package/dist/esm/components/ReportBuilder/ui.js +50 -98
  176. package/dist/esm/components/ReportBuilder/util.d.ts +2 -1
  177. package/dist/esm/components/ReportBuilder/util.d.ts.map +1 -1
  178. package/dist/esm/components/ReportBuilder/util.js +14 -8
  179. package/dist/esm/components/UiComponents.d.ts +86 -86
  180. package/dist/esm/components/UiComponents.d.ts.map +1 -1
  181. package/dist/esm/components/UiComponents.js +111 -101
  182. package/dist/esm/hooks/index.d.ts +1 -0
  183. package/dist/esm/hooks/index.d.ts.map +1 -1
  184. package/dist/esm/hooks/index.js +1 -0
  185. package/dist/esm/hooks/useTheme.d.ts +7 -0
  186. package/dist/esm/hooks/useTheme.d.ts.map +1 -0
  187. package/dist/esm/hooks/useTheme.js +10 -0
  188. package/dist/esm/index.d.ts +10 -2
  189. package/dist/esm/index.d.ts.map +1 -1
  190. package/dist/esm/internals/ReportBuilder/PivotList.d.ts.map +1 -1
  191. package/dist/esm/internals/ReportBuilder/PivotList.js +10 -10
  192. package/dist/esm/internals/ReportBuilder/PivotModal.d.ts +29 -14
  193. package/dist/esm/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
  194. package/dist/esm/internals/ReportBuilder/PivotModal.js +73 -49
  195. package/dist/esm/utils/dataFetcher.d.ts.map +1 -1
  196. package/dist/esm/utils/dataFetcher.js +2 -0
  197. package/package.json +1 -1
  198. package/dist/cjs/BarList.d.ts.map +0 -1
  199. package/dist/cjs/PieChart.d.ts.map +0 -1
  200. package/dist/esm/BarList.d.ts.map +0 -1
  201. package/dist/esm/PieChart.d.ts.map +0 -1
  202. /package/dist/cjs/{PieChart.d.ts → components/Chart/PieChart.d.ts} +0 -0
  203. /package/dist/esm/{PieChart.d.ts → components/Chart/PieChart.d.ts} +0 -0
@@ -180,8 +180,11 @@ function convertGroupBy(ast, prevPivot = null, schemaTables) {
180
180
  else if (column.expr?.args?.expr) {
181
181
  columnName = column.expr?.args?.expr?.value;
182
182
  }
183
- if (column.expr.type === 'aggr_func' && !isIdColumn(columnName)) {
183
+ if (column.expr.type === 'aggr_func' && !(0, util_1.isIdColumn)(columnName)) {
184
184
  pivot.aggregationType = column.expr.name.toLowerCase();
185
+ if (pivot.aggregationType === 'avg') {
186
+ pivot.aggregationType = 'average';
187
+ }
185
188
  pivot.valueField =
186
189
  column.expr.args?.expr?.value || column.expr.args?.expr?.column;
187
190
  if (column.expr.args.expr.type === 'column_ref') {
@@ -197,15 +200,23 @@ function convertGroupBy(ast, prevPivot = null, schemaTables) {
197
200
  }
198
201
  }
199
202
  if (columnName === '*') {
200
- // TODO: make valueField be a number
203
+ // Use the first numeric column found, if none found, use the first column
204
+ let columnForValueField = columns.find((c) => {
205
+ return (0, ast_1.isNumericColumnType)(c.fieldType) && !(0, util_1.isIdColumn)(c.field);
206
+ });
207
+ if (!columnForValueField) {
208
+ columnForValueField = columns[0];
209
+ }
201
210
  for (let i = 0; i < columns.length; i++) {
202
- if (!isIdColumn(columns[i]?.field) &&
211
+ if (!(0, util_1.isIdColumn)(columns[i]?.field) &&
203
212
  (0, ast_1.isNumericColumnType)(columns[i]?.fieldType)) {
204
- pivot.valueField = columns[i].field;
205
- columnName = columns[i].field;
213
+ columnForValueField = columns[i];
206
214
  break;
207
215
  }
208
216
  }
217
+ pivot.valueField = columnForValueField.field;
218
+ pivot.valueFieldType = 'number';
219
+ columnName = columnForValueField.field;
209
220
  }
210
221
  newColumns.push({
211
222
  type: 'expr',
@@ -234,9 +245,12 @@ function convertGroupBy(ast, prevPivot = null, schemaTables) {
234
245
  // The result of the CASE is the column to use
235
246
  const columnNode = column.expr?.args?.expr?.args[0]?.result;
236
247
  const columnName = columnNode?.value ?? columnNode?.column;
237
- if (!isIdColumn(columnName)) {
248
+ if (!(0, util_1.isIdColumn)(columnName)) {
238
249
  pivot.valueField = columnName;
239
250
  pivot.aggregationType = column?.expr?.name?.toLowerCase();
251
+ if (pivot.aggregationType === 'avg') {
252
+ pivot.aggregationType = 'average';
253
+ }
240
254
  }
241
255
  const findByName = (x) => [x.expr?.value, x.expr?.column].includes(columnName);
242
256
  if (!newColumns.find(findByName)) {
@@ -254,7 +268,7 @@ function convertGroupBy(ast, prevPivot = null, schemaTables) {
254
268
  // the CASE and we'll use that as the columnField in our pivot.
255
269
  const condNode = column.expr?.args?.expr?.args[0]?.cond;
256
270
  const condColumnName = condNode.left?.column ?? condNode.left?.value;
257
- if (!isIdColumn(condColumnName)) {
271
+ if (!(0, util_1.isIdColumn)(condColumnName)) {
258
272
  pivot.columnField = condColumnName;
259
273
  }
260
274
  const findByColName = (x) => [x.expr?.value, x.expr?.column].includes(condColumnName);
@@ -283,19 +297,27 @@ function convertGroupBy(ast, prevPivot = null, schemaTables) {
283
297
  const columnName = columnNode?.value || columnNode?.column;
284
298
  // if count(*), make the value field an actual column
285
299
  if (columnName === '*') {
286
- const numericColumn = columns.find((c) => {
287
- return (0, ast_1.isNumericColumnType)(c.fieldType) && !isIdColumn(c.field);
300
+ let columnForValueField = columns.find((c) => {
301
+ return (0, ast_1.isNumericColumnType)(c.fieldType) && !(0, util_1.isIdColumn)(c.field);
288
302
  });
289
- pivot.valueField = numericColumn?.field;
303
+ // if there aren't any numeric columns use the first column
304
+ if (!column) {
305
+ columnForValueField = columns[0];
306
+ }
307
+ pivot.valueField = columnForValueField?.field;
308
+ pivot.valueFieldType = 'number';
290
309
  pivot.aggregationType = column?.expr?.name.toLowerCase();
291
- const findByName = (x) => [x.expr?.value, x.expr?.column].includes(numericColumn.field);
310
+ if (pivot.aggregationType === 'avg') {
311
+ pivot.aggregationType = 'average';
312
+ }
313
+ const findByName = (x) => [x.expr?.value, x.expr?.column].includes(columnForValueField.field);
292
314
  if (!newColumns.find(findByName)) {
293
315
  newColumns.push({
294
316
  type: 'expr',
295
317
  expr: {
296
318
  type: 'column_ref',
297
319
  table: null,
298
- column: numericColumn?.field || '',
320
+ column: columnForValueField?.field || '',
299
321
  },
300
322
  as: null,
301
323
  });
@@ -304,9 +326,12 @@ function convertGroupBy(ast, prevPivot = null, schemaTables) {
304
326
  else {
305
327
  // ONLY SET VALUE FIELD IF THE FIELD TYPE IS A NUMBER
306
328
  if ((0, ast_1.isNumericColumnType)(field?.fieldType) &&
307
- !isIdColumn(columnName)) {
329
+ !(0, util_1.isIdColumn)(columnName)) {
308
330
  pivot.valueField = columnName;
309
331
  pivot.aggregationType = column?.expr?.name.toLowerCase();
332
+ if (pivot.aggregationType === 'avg') {
333
+ pivot.aggregationType = 'average';
334
+ }
310
335
  }
311
336
  const findByName = (x) => [x.expr?.value, x.expr?.column].includes(columnName);
312
337
  if (!newColumns.find(findByName)) {
@@ -459,7 +484,7 @@ function convertGroupBy(ast, prevPivot = null, schemaTables) {
459
484
  for (let j = 0; j < ast.groupby.length; j++) {
460
485
  const group = ast.groupby[j];
461
486
  let groupValue = (0, ast_1.extractColumnish)(group);
462
- if (!groupValue || isIdColumn(groupValue)) {
487
+ if (!groupValue || (0, util_1.isIdColumn)(groupValue)) {
463
488
  continue;
464
489
  }
465
490
  // check if this value is an alias, if so use concrete value
@@ -501,7 +526,7 @@ function convertGroupBy(ast, prevPivot = null, schemaTables) {
501
526
  newAst.columns[i].expr?.value ||
502
527
  undefined;
503
528
  if (columnName &&
504
- !isIdColumn(columnName) &&
529
+ !(0, util_1.isIdColumn)(columnName) &&
505
530
  (0, ast_1.isNumericColumnType)(columns.find((c) => c.field === columnName)?.fieldType)) {
506
531
  pivot.valueField = columnName;
507
532
  pivot.aggregationType = 'sum';
@@ -782,8 +807,3 @@ function convertRemoveSimpleParentheses(ast) {
782
807
  return { ...ast, where: node };
783
808
  }
784
809
  exports.convertRemoveSimpleParentheses = convertRemoveSimpleParentheses;
785
- function isIdColumn(columnName) {
786
- return (columnName &&
787
- (columnName.toLowerCase() === 'id' ||
788
- columnName.toLowerCase().endsWith('_id')));
789
- }
@@ -2,8 +2,9 @@
2
2
  * Represents the metadata of a pivot table.
3
3
  */
4
4
  export type Pivot = {
5
- aggregationType: 'sum' | 'average' | 'min' | 'max' | 'count';
5
+ aggregationType: 'sum' | 'average' | 'min' | 'max' | 'count' | 'avg';
6
6
  valueField: string;
7
+ valueFieldType?: string;
7
8
  rowField?: string;
8
9
  rowFieldType?: string;
9
10
  columnField?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"pivot.d.ts","sourceRoot":"","sources":["../../../../src/components/ReportBuilder/pivot.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,KAAK,GAAG;IAClB,eAAe,EAAE,KAAK,GAAG,SAAS,GAAG,KAAK,GAAG,KAAK,GAAG,OAAO,CAAC;IAC7D,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,OAAO,CAAC;IACd,aAAa,EAAE,KAAK,GAAG,MAAM,CAAC;CAC/B,GAAG,IAAI,CAAC"}
1
+ {"version":3,"file":"pivot.d.ts","sourceRoot":"","sources":["../../../../src/components/ReportBuilder/pivot.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,KAAK,GAAG;IAClB,eAAe,EAAE,KAAK,GAAG,SAAS,GAAG,KAAK,GAAG,KAAK,GAAG,OAAO,GAAG,KAAK,CAAC;IACrE,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,OAAO,CAAC;IACd,aAAa,EAAE,KAAK,GAAG,MAAM,CAAC;CAC/B,GAAG,IAAI,CAAC"}
@@ -1,4 +1,5 @@
1
- /// <reference types="react" />
1
+ import { ReactNode } from 'react';
2
+ import { SidebarComponentProps, ContainerComponentProps } from '../UiComponents';
2
3
  /**
3
4
  * This file is a collection of basic UI components that conform to the shape
4
5
  * expected by the Report Builder. Where possible, we use our existing
@@ -9,26 +10,90 @@ export declare const QuillButton: ({ children, ...props }: any) => import("react
9
10
  export declare const QuillSecondaryButton: ({ children, ...props }: any) => import("react/jsx-runtime").JSX.Element;
10
11
  export declare const QuillReportBuilderTable: ({ rows, columns, error, ...props }: any) => import("react/jsx-runtime").JSX.Element;
11
12
  export declare const QuillTag: import("react").ForwardRefExoticComponent<Omit<any, "ref"> & import("react").RefAttributes<unknown>>;
12
- export declare const QuillSidebarHeading: ({ label }: any) => import("react/jsx-runtime").JSX.Element;
13
- export declare const QuillSidebarSubHeading: ({ label }: any) => import("react/jsx-runtime").JSX.Element;
14
- export declare const QuillSidebar: import("react").ForwardRefExoticComponent<Omit<any, "ref"> & import("react").RefAttributes<unknown>>;
15
- export declare const CustomContainer: import("react").ForwardRefExoticComponent<Omit<any, "ref"> & import("react").RefAttributes<unknown>>;
16
- export declare const QuillSelect: ({ onChange, ...props }: any) => import("react/jsx-runtime").JSX.Element;
17
- export declare function MemoizedPopover({ onClose, children, style, trigger, isOpen, }: any): import("react/jsx-runtime").JSX.Element;
18
- export declare const QuillPopover: import("react").ForwardRefExoticComponent<Omit<any, "ref"> & import("react").RefAttributes<unknown>>;
13
+ export interface SidebarHeadingComponentProps {
14
+ label: string;
15
+ }
16
+ export declare const QuillSidebarHeading: ({ label, }: SidebarHeadingComponentProps) => import("react/jsx-runtime").JSX.Element;
17
+ export declare const QuillSidebar: ({ children }: SidebarComponentProps) => import("react/jsx-runtime").JSX.Element;
18
+ export declare const CustomContainer: ({ children }: ContainerComponentProps) => import("react/jsx-runtime").JSX.Element;
19
19
  export declare const QuillHandleButton: () => import("react/jsx-runtime").JSX.Element;
20
- export declare const QuillSelectColumn: ({ label, selected, setSelected, children, }: any) => import("react/jsx-runtime").JSX.Element;
21
- export declare const QuillDraggableColumn: ({ label, children, onDelete }: any) => import("react/jsx-runtime").JSX.Element;
20
+ export interface SelectColumnComponentProps {
21
+ label: string;
22
+ isSelected: boolean;
23
+ setSelected: () => void;
24
+ DragHandle: ({ dragIcon }: {
25
+ dragIcon: () => JSX.Element;
26
+ }) => JSX.Element;
27
+ }
28
+ export declare const QuillSelectColumn: ({ label, isSelected, setSelected, DragHandle, }: SelectColumnComponentProps) => import("react/jsx-runtime").JSX.Element;
29
+ /**
30
+ * Props for a draggable card with a grab-handle and a column name.
31
+ */
32
+ export interface DraggableColumnComponentProps {
33
+ label: string;
34
+ onDelete: () => void;
35
+ DragHandle: ({ dragIcon }: {
36
+ dragIcon: () => JSX.Element;
37
+ }) => JSX.Element;
38
+ }
39
+ /**
40
+ * A draggable card with a grab-handle and a column name
41
+ */
42
+ export declare const QuillDraggableColumn: ({ label, onDelete, DragHandle, }: DraggableColumnComponentProps) => import("react/jsx-runtime").JSX.Element;
22
43
  export declare const QuillButtonLoadingState: () => import("react/jsx-runtime").JSX.Element;
23
44
  export declare const QuillTableLoadingState: () => import("react/jsx-runtime").JSX.Element;
24
- export declare const DEFAULT_TAB_OPTIONS: {
25
- label: string;
26
- value: string;
27
- }[];
28
- export declare const QuillTabs: import("react").ForwardRefExoticComponent<Omit<any, "ref"> & import("react").RefAttributes<unknown>>;
29
45
  export declare const EditPopover: ({ onSave, onDelete, Button, renderNode, activeEditItem, }: any) => import("react/jsx-runtime").JSX.Element;
30
- export declare const QuillFilterPopover: ({ filterLabel, onClickDeleteFilter, popoverTitle, popoverChildren, isOpen, setIsOpen, }: any) => import("react/jsx-runtime").JSX.Element;
31
- export declare const QuillSortPopover: ({ filterLabel, onClickDelete, popoverTitle, popoverChildren, isOpen, setIsOpen, }: any) => import("react/jsx-runtime").JSX.Element;
32
- export declare const TagWrapper: ({ isCard, isRow, editPopoverKey, keyPrefix, formData, activeEditItem, setEditPopoverKey, setActiveEditItem, setActivePath, setOpenPopover, setIsPending, clearCheckboxes, fetchSqlQuery, handleDelete, setCheckboxes, handleReplaceSubtree, FilterPopover, getByKey, EditPopover, Button, renderNode, children, }: any) => import("react/jsx-runtime").JSX.Element;
46
+ export interface FilterPopoverComponentProps {
47
+ isOpen: boolean;
48
+ setIsOpen: (isOpen: boolean) => void;
49
+ popoverTitle?: string;
50
+ popoverChildren: ReactNode;
51
+ filterLabel: string;
52
+ onClickDelete: (e: React.MouseEvent<HTMLElement>) => void;
53
+ }
54
+ export declare const QuillFilterPopover: ({ filterLabel, onClickDelete, popoverTitle, popoverChildren, isOpen, setIsOpen, }: FilterPopoverComponentProps) => import("react/jsx-runtime").JSX.Element;
55
+ export interface SortPopoverComponentProps {
56
+ isOpen: boolean;
57
+ setIsOpen: (isOpen: boolean) => void;
58
+ popoverTitle?: string;
59
+ popoverChildren: ReactNode;
60
+ sortLabel: string;
61
+ onClickDelete: (e: React.MouseEvent<HTMLElement>) => void;
62
+ }
63
+ export declare const QuillSortPopover: ({ sortLabel, onClickDelete, popoverTitle, popoverChildren, isOpen, setIsOpen, }: SortPopoverComponentProps) => import("react/jsx-runtime").JSX.Element;
64
+ export interface LimitPopoverComponentProps {
65
+ isOpen: boolean;
66
+ setIsOpen: (isOpen: boolean) => void;
67
+ popoverTitle?: string;
68
+ popoverChildren: ReactNode;
69
+ limitLabel: string;
70
+ onClickDelete: (e: React.MouseEvent<HTMLElement>) => void;
71
+ }
72
+ export declare const QuillLimitPopover: ({ limitLabel, onClickDelete, popoverTitle, popoverChildren, isOpen, setIsOpen, }: LimitPopoverComponentProps) => import("react/jsx-runtime").JSX.Element;
73
+ export interface TagWrapperProps {
74
+ isCard: boolean;
75
+ isRow: boolean;
76
+ editPopoverKey: string;
77
+ keyPrefix: string;
78
+ formData: any;
79
+ activeEditItem: any;
80
+ setEditPopoverKey: any;
81
+ setActiveEditItem: any;
82
+ setActivePath: any;
83
+ setOpenPopover: any;
84
+ setIsPending: any;
85
+ clearCheckboxes: any;
86
+ fetchSqlQuery: any;
87
+ handleDelete: any;
88
+ setCheckboxes: any;
89
+ handleReplaceSubtree: any;
90
+ FilterPopover: (props: FilterPopoverComponentProps) => JSX.Element;
91
+ getByKey: any;
92
+ EditPopover: any;
93
+ Button: any;
94
+ renderNode: any;
95
+ children: any;
96
+ }
97
+ export declare const TagWrapper: ({ isCard, isRow, editPopoverKey, keyPrefix, formData, activeEditItem, setEditPopoverKey, setActiveEditItem, setActivePath, setOpenPopover, setIsPending, clearCheckboxes, fetchSqlQuery, handleDelete, setCheckboxes, handleReplaceSubtree, FilterPopover, getByKey, EditPopover, Button, renderNode, children, }: TagWrapperProps) => import("react/jsx-runtime").JSX.Element;
33
98
  export declare const AddFilterPopover: ({ onSave, Button, renderNode, activeEditItem, }: any) => import("react/jsx-runtime").JSX.Element;
34
99
  //# sourceMappingURL=ui.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../../../src/components/ReportBuilder/ui.tsx"],"names":[],"mappings":";AAiBA;;;;;GAKG;AAEH,eAAO,MAAM,WAAW,2BAA4B,GAAG,4CA2BtD,CAAC;AAEF,eAAO,MAAM,oBAAoB,2BAA4B,GAAG,4CA2B/D,CAAC;AAEF,eAAO,MAAM,uBAAuB,uCAKjC,GAAG,4CAiBL,CAAC;AAEF,eAAO,MAAM,QAAQ,sGAoFpB,CAAC;AAGF,eAAO,MAAM,mBAAmB,cAAe,GAAG,4CAEjD,CAAC;AAGF,eAAO,MAAM,sBAAsB,cAAe,GAAG,4CAEpD,CAAC;AAGF,eAAO,MAAM,YAAY,sGAiBxB,CAAC;AAGF,eAAO,MAAM,eAAe,sGAuB3B,CAAC;AAEF,eAAO,MAAM,WAAW,2BAA4B,GAAG,4CAUtD,CAAC;AAEF,wBAAgB,eAAe,CAAC,EAC9B,OAAO,EACP,QAAQ,EACR,KAAU,EACV,OAAO,EACP,MAAM,GACP,EAAE,GAAG,2CAgDL;AAED,eAAO,MAAM,YAAY,sGAkCxB,CAAC;AAGF,eAAO,MAAM,iBAAiB,+CAwE7B,CAAC;AAEF,eAAO,MAAM,iBAAiB,gDAK3B,GAAG,4CA6CL,CAAC;AAGF,eAAO,MAAM,oBAAoB,kCAAmC,GAAG,4CAiDtE,CAAC;AAGF,eAAO,MAAM,uBAAuB,+CAMnC,CAAC;AAGF,eAAO,MAAM,sBAAsB,+CAMlC,CAAC;AAEF,eAAO,MAAM,mBAAmB;;;GAG/B,CAAC;AAEF,eAAO,MAAM,SAAS,sGAIrB,CAAC;AAEF,eAAO,MAAM,WAAW,8DAMrB,GAAG,4CA+BL,CAAC;AAEF,eAAO,MAAM,kBAAkB,4FAO5B,GAAG,4CAqBL,CAAC;AAEF,eAAO,MAAM,gBAAgB,sFAO1B,GAAG,4CAqBL,CAAC;AAEF,eAAO,MAAM,UAAU,sTAuBpB,GAAG,4CAqFL,CAAC;AAEF,eAAO,MAAM,gBAAgB,oDAK1B,GAAG,4CAsBL,CAAC"}
1
+ {"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../../../src/components/ReportBuilder/ui.tsx"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.AddFilterPopover = exports.TagWrapper = exports.QuillSortPopover = exports.QuillFilterPopover = exports.EditPopover = exports.QuillTabs = exports.DEFAULT_TAB_OPTIONS = exports.QuillTableLoadingState = exports.QuillButtonLoadingState = exports.QuillDraggableColumn = exports.QuillSelectColumn = exports.QuillHandleButton = exports.QuillPopover = exports.MemoizedPopover = exports.QuillSelect = exports.CustomContainer = exports.QuillSidebar = exports.QuillSidebarSubHeading = exports.QuillSidebarHeading = exports.QuillTag = exports.QuillReportBuilderTable = exports.QuillSecondaryButton = exports.QuillButton = void 0;
6
+ exports.AddFilterPopover = exports.TagWrapper = exports.QuillLimitPopover = exports.QuillSortPopover = exports.QuillFilterPopover = exports.EditPopover = exports.QuillTableLoadingState = exports.QuillButtonLoadingState = exports.QuillDraggableColumn = exports.QuillSelectColumn = exports.QuillHandleButton = exports.CustomContainer = exports.QuillSidebar = exports.QuillSidebarHeading = exports.QuillTag = exports.QuillReportBuilderTable = exports.QuillSecondaryButton = exports.QuillButton = void 0;
7
7
  const jsx_runtime_1 = require("react/jsx-runtime");
8
8
  const react_1 = require("react");
9
9
  const UiComponents_1 = require("../UiComponents");
@@ -60,6 +60,7 @@ const QuillSecondaryButton = ({ children, ...props }) => {
60
60
  }, children: children }));
61
61
  };
62
62
  exports.QuillSecondaryButton = QuillSecondaryButton;
63
+ // TODO: remove this, I think it is unused.
63
64
  const QuillReportBuilderTable = ({ rows, columns, error, ...props }) => {
64
65
  const reformattedColumns = columns.map((c) => ({ label: c, field: c }));
65
66
  return ((0, jsx_runtime_1.jsx)("div", { style: { height: '100%', overflow: 'auto' }, children: (0, jsx_runtime_1.jsx)(QuillTable_1.default, { rows: rows, columns: reformattedColumns, rowsPerPage: 10, showDownloadCSVButton: rows?.length > 0, downloadCSV: () => (0, csv_1.downloadCSV)({ rows, fields: reformattedColumns, name: 'my_report' }), emptyStateLabel: error || 'No results', ...props }) }));
@@ -105,22 +106,20 @@ exports.QuillTag = (0, react_1.forwardRef)(({ label, onClick, children, onClickD
105
106
  }, children: (0, jsx_runtime_1.jsx)("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 20 20", fill: theme?.secondaryButtonColor || 'currentColor', style: { width: 16, height: 16 }, children: (0, jsx_runtime_1.jsx)("path", { d: "M6.28 5.22a.75.75 0 0 0-1.06 1.06L8.94 10l-3.72 3.72a.75.75 0 1 0 1.06 1.06L10 11.06l3.72 3.72a.75.75 0 1 0 1.06-1.06L11.06 10l3.72-3.72a.75.75 0 0 0-1.06-1.06L10 8.94 6.28 5.22Z" }) }) }) }))] }));
106
107
  });
107
108
  // A heading element in the sidebar (eg. "Filters")
108
- const QuillSidebarHeading = ({ label }) => ((0, jsx_runtime_1.jsx)(UiComponents_1.MemoizedHeader, { children: label }));
109
+ const QuillSidebarHeading = ({ label, }) => (0, jsx_runtime_1.jsx)(UiComponents_1.MemoizedHeader, { label: label });
109
110
  exports.QuillSidebarHeading = QuillSidebarHeading;
110
- // A sub-heading element in the sidebar (eg. "Filters")
111
- const QuillSidebarSubHeading = ({ label }) => ((0, jsx_runtime_1.jsx)(UiComponents_1.MemoizedLabel, { children: label }));
112
- exports.QuillSidebarSubHeading = QuillSidebarSubHeading;
113
111
  // The gray thing on the left.
114
- exports.QuillSidebar = (0, react_1.forwardRef)(({ children, ...props }, forwardedRef) => ((0, jsx_runtime_1.jsx)("div", { style: {
112
+ const QuillSidebar = ({ children }) => ((0, jsx_runtime_1.jsx)("div", { style: {
115
113
  overflowX: 'visible',
116
114
  padding: '12px',
117
115
  width: '25%',
118
116
  height: '100%',
119
117
  maxWidth: '300px',
120
118
  boxSizing: 'border-box',
121
- }, ref: forwardedRef, ...props, children: children })));
119
+ }, children: children }));
120
+ exports.QuillSidebar = QuillSidebar;
122
121
  // A big wrapper around the main content (ie. Input, Button, and Table)
123
- exports.CustomContainer = (0, react_1.forwardRef)(({ children, ...props }, forwardedRef) => ((0, jsx_runtime_1.jsx)("div", { style: {
122
+ const CustomContainer = ({ children }) => ((0, jsx_runtime_1.jsx)("div", { style: {
124
123
  position: 'sticky',
125
124
  top: 0,
126
125
  display: 'flex',
@@ -133,61 +132,8 @@ exports.CustomContainer = (0, react_1.forwardRef)(({ children, ...props }, forwa
133
132
  width: '75%',
134
133
  height: '100%',
135
134
  boxSizing: 'border-box',
136
- }, ref: forwardedRef, ...props, children: children })));
137
- const QuillSelect = ({ onChange, ...props }) => {
138
- const handleOnChange = (value) => {
139
- if (!onChange)
140
- return;
141
- const option = props.options.find((opt) => opt.value === value);
142
- if (option) {
143
- onChange(option.value);
144
- }
145
- };
146
- return (0, jsx_runtime_1.jsx)(UiComponents_1.MemoizedSelect, { ...props, onChange: handleOnChange });
147
- };
148
- exports.QuillSelect = QuillSelect;
149
- function MemoizedPopover({ onClose, children, style = {}, trigger, isOpen, }) {
150
- const modalRef = (0, react_1.useRef)(null);
151
- const [theme] = (0, react_1.useContext)(Context_1.ThemeContext);
152
- (0, react_1.useEffect)(() => {
153
- const listener = (event) => {
154
- if (modalRef?.current && !modalRef?.current?.contains(event.target)) {
155
- onClose(event);
156
- }
157
- };
158
- document.addEventListener('mousedown', listener);
159
- return () => {
160
- document.removeEventListener('mousedown', listener);
161
- };
162
- }, [modalRef, onClose]);
163
- return ((0, jsx_runtime_1.jsxs)("div", { children: [trigger, isOpen && ((0, jsx_runtime_1.jsx)("div", { id: "quill-popover-modal", ref: modalRef, style: { position: 'relative' }, children: (0, jsx_runtime_1.jsx)("div", { style: {
164
- background: theme?.backgroundColor || 'white',
165
- position: 'absolute',
166
- boxShadow: '0px 1px 12px 0px rgba(56, 65, 81, 0.1)',
167
- border: theme
168
- ? `${theme.borderWidth || 1}px solid ${theme.borderColor || '#e7e7e7'}`
169
- : '1px solid #e7e7e7',
170
- boxSizing: 'content-box',
171
- zIndex: 999,
172
- top: 12,
173
- borderRadius: 6,
174
- padding: 20,
175
- ...style,
176
- }, children: children }) }))] }));
177
- }
178
- exports.MemoizedPopover = MemoizedPopover;
179
- exports.QuillPopover = (0, react_1.forwardRef)(({ children, trigger, isOpen, onClose = () => { }, title = undefined }, ref) => {
180
- const [theme] = (0, react_1.useContext)(Context_1.ThemeContext);
181
- return ((0, jsx_runtime_1.jsxs)(MemoizedPopover, { isOpen: isOpen, onClose: onClose, trigger: trigger, parentRef: ref, ref: ref, children: [title && ((0, jsx_runtime_1.jsx)("h1", { style: {
182
- fontWeight: '600',
183
- fontSize: 18,
184
- margin: 0,
185
- textAlign: 'left',
186
- marginBottom: 5,
187
- color: theme?.primaryTextColor,
188
- fontFamily: theme?.fontFamily,
189
- }, children: title })), children] }));
190
- });
135
+ }, children: children }));
136
+ exports.CustomContainer = CustomContainer;
191
137
  // The six-dot grab-handle icon.
192
138
  const QuillHandleButton = () => {
193
139
  const [theme] = (0, react_1.useContext)(Context_1.ThemeContext);
@@ -233,7 +179,7 @@ const QuillHandleButton = () => {
233
179
  } })] })] }));
234
180
  };
235
181
  exports.QuillHandleButton = QuillHandleButton;
236
- const QuillSelectColumn = ({ label, selected, setSelected, children, }) => {
182
+ const QuillSelectColumn = ({ label, isSelected, setSelected, DragHandle, }) => {
237
183
  const [theme] = (0, react_1.useContext)(Context_1.ThemeContext);
238
184
  return ((0, jsx_runtime_1.jsxs)("div", { title: label, style: {
239
185
  boxShadow: '0px 1px 4px #e2e8f005',
@@ -245,13 +191,13 @@ const QuillSelectColumn = ({ label, selected, setSelected, children, }) => {
245
191
  display: 'flex',
246
192
  alignItems: 'center',
247
193
  backgroundColor: theme?.backgroundColor || 'white',
248
- }, children: [(0, jsx_runtime_1.jsx)("div", { children: children }), (0, jsx_runtime_1.jsxs)("label", { style: {
194
+ }, children: [(0, jsx_runtime_1.jsx)(DragHandle, { dragIcon: exports.QuillHandleButton }), (0, jsx_runtime_1.jsxs)("label", { style: {
249
195
  display: 'flex',
250
196
  gap: 2,
251
197
  whiteSpace: 'nowrap',
252
198
  textOverflow: 'ellipsis',
253
199
  overflow: 'hidden',
254
- }, children: [(0, jsx_runtime_1.jsx)(UiComponents_1.MemoizedCheckbox, { checked: selected, onChange: () => setSelected() }), (0, jsx_runtime_1.jsx)("span", { style: {
200
+ }, children: [(0, jsx_runtime_1.jsx)(UiComponents_1.MemoizedCheckbox, { isChecked: isSelected, onChange: () => setSelected() }), (0, jsx_runtime_1.jsx)("span", { style: {
255
201
  marginLeft: 6,
256
202
  display: 'block',
257
203
  whiteSpace: 'nowrap',
@@ -262,8 +208,10 @@ const QuillSelectColumn = ({ label, selected, setSelected, children, }) => {
262
208
  }, children: (0, textProcessing_1.snakeCaseToTitleCase)(label) })] })] }));
263
209
  };
264
210
  exports.QuillSelectColumn = QuillSelectColumn;
265
- // A draggable card with a grab-handle and a column name
266
- const QuillDraggableColumn = ({ label, children, onDelete }) => {
211
+ /**
212
+ * A draggable card with a grab-handle and a column name
213
+ */
214
+ const QuillDraggableColumn = ({ label, onDelete, DragHandle, }) => {
267
215
  const [theme] = (0, react_1.useContext)(Context_1.ThemeContext);
268
216
  return ((0, jsx_runtime_1.jsxs)("div", { style: {
269
217
  boxShadow: '0px 1px 4px #e2e8f005',
@@ -272,13 +220,14 @@ const QuillDraggableColumn = ({ label, children, onDelete }) => {
272
220
  display: 'flex',
273
221
  alignItems: 'center',
274
222
  backgroundColor: theme?.backgroundColor || 'white',
275
- }, children: [(0, jsx_runtime_1.jsx)("div", { children: children }), (0, jsx_runtime_1.jsx)("div", { style: {
223
+ }, children: [(0, jsx_runtime_1.jsx)(DragHandle, { dragIcon: exports.QuillHandleButton }), (0, jsx_runtime_1.jsx)("div", { style: {
276
224
  marginLeft: 2,
277
225
  marginRight: 'auto',
278
226
  fontSize: 14,
279
227
  display: 'block',
280
228
  whiteSpace: 'nowrap',
281
229
  textOverflow: 'ellipsis',
230
+ overflow: 'hidden',
282
231
  fontFamily: theme?.fontFamily,
283
232
  }, children: label }), (0, jsx_runtime_1.jsx)("button", { onClick: onDelete, style: {
284
233
  paddingRight: 4,
@@ -299,11 +248,6 @@ const QuillTableLoadingState = () => {
299
248
  return ((0, jsx_runtime_1.jsx)("div", { style: { display: 'flex', flexDirection: 'column', margin: 'auto' }, children: (0, jsx_runtime_1.jsx)(UiComponents_1.LoadingSpinner, {}) }));
300
249
  };
301
250
  exports.QuillTableLoadingState = QuillTableLoadingState;
302
- exports.DEFAULT_TAB_OPTIONS = [
303
- { label: 'or', value: 'OR' },
304
- { label: 'and', value: 'AND' },
305
- ];
306
- exports.QuillTabs = (0, react_1.forwardRef)(({ options = exports.DEFAULT_TAB_OPTIONS, ...props }, ref) => ((0, jsx_runtime_1.jsx)(UiComponents_1.MemoizedTabs, { ref: ref, options: options, ...props })));
307
251
  const EditPopover = ({ onSave, onDelete, Button, renderNode, activeEditItem, }) => {
308
252
  const handleOnClick = () => {
309
253
  if (!(0, util_1.allNumericNodesValidInTree)(activeEditItem)) {
@@ -325,41 +269,48 @@ const EditPopover = ({ onSave, onDelete, Button, renderNode, activeEditItem, })
325
269
  }, children: [(0, jsx_runtime_1.jsx)(UiComponents_1.MemoizedSecondaryButton, { onClick: onDelete, label: "Delete" }), (0, jsx_runtime_1.jsx)(Button, { onClick: handleOnClick, label: "Save" })] })] }));
326
270
  };
327
271
  exports.EditPopover = EditPopover;
328
- const QuillFilterPopover = ({ filterLabel, onClickDeleteFilter, popoverTitle, popoverChildren, isOpen, setIsOpen, }) => {
329
- return ((0, jsx_runtime_1.jsx)(exports.QuillPopover, { isOpen: isOpen, title: popoverTitle, trigger: (0, jsx_runtime_1.jsx)(exports.QuillTag, { label: filterLabel, onClickDelete: onClickDeleteFilter, onClick: () => {
330
- setIsOpen((isOpen) => !isOpen);
331
- } }), onClose: () => {
332
- setIsOpen(false);
333
- }, children: popoverChildren }));
272
+ const QuillFilterPopover = ({ filterLabel, onClickDelete, popoverTitle, popoverChildren, isOpen, setIsOpen, }) => {
273
+ const handleSetIsOpen = (isOpen) => {
274
+ setIsOpen(isOpen);
275
+ };
276
+ return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(exports.QuillTag, { label: filterLabel, onClickDelete: onClickDelete, onClick: () => setIsOpen(!isOpen) }), (0, jsx_runtime_1.jsx)(UiComponents_1.MemoizedPopover, { isOpen: isOpen, setIsOpen: handleSetIsOpen, popoverTitle: popoverTitle, popoverChildren: popoverChildren })] }));
334
277
  };
335
278
  exports.QuillFilterPopover = QuillFilterPopover;
336
- const QuillSortPopover = ({ filterLabel, onClickDelete, popoverTitle, popoverChildren, isOpen, setIsOpen, }) => {
337
- return ((0, jsx_runtime_1.jsx)(exports.QuillPopover, { isOpen: isOpen, title: popoverTitle, trigger: (0, jsx_runtime_1.jsx)(exports.QuillTag, { label: filterLabel, onClickDelete: onClickDelete, onClick: () => {
338
- setIsOpen((isOpen) => !isOpen);
339
- } }), onClose: () => {
340
- setIsOpen(false);
341
- }, children: popoverChildren }));
279
+ const QuillSortPopover = ({ sortLabel, onClickDelete, popoverTitle, popoverChildren, isOpen, setIsOpen, }) => {
280
+ return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(exports.QuillTag, { label: sortLabel, onClickDelete: onClickDelete, onClick: () => {
281
+ setIsOpen(!isOpen);
282
+ } }), (0, jsx_runtime_1.jsx)(UiComponents_1.MemoizedPopover, { isOpen: isOpen, popoverTitle: popoverTitle, setIsOpen: setIsOpen, popoverChildren: popoverChildren })] }));
342
283
  };
343
284
  exports.QuillSortPopover = QuillSortPopover;
285
+ const QuillLimitPopover = ({ limitLabel, onClickDelete, popoverTitle, popoverChildren, isOpen, setIsOpen, }) => {
286
+ return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(exports.QuillTag, { label: limitLabel, onClickDelete: onClickDelete, onClick: () => {
287
+ setIsOpen(!isOpen);
288
+ } }), (0, jsx_runtime_1.jsx)(UiComponents_1.MemoizedPopover, { isOpen: isOpen, popoverTitle: popoverTitle, setIsOpen: setIsOpen, popoverChildren: popoverChildren })] }));
289
+ };
290
+ exports.QuillLimitPopover = QuillLimitPopover;
344
291
  const TagWrapper = ({ isCard, isRow, editPopoverKey, keyPrefix, formData, activeEditItem, setEditPopoverKey, setActiveEditItem, setActivePath, setOpenPopover, setIsPending, clearCheckboxes, fetchSqlQuery, handleDelete, setCheckboxes, handleReplaceSubtree, FilterPopover, getByKey, EditPopover, Button, renderNode, children, }) => {
345
292
  const [isOpen, setIsOpen] = (0, react_1.useState)(false);
293
+ const onOpen = () => {
294
+ setActiveEditItem(getByKey(formData, keyPrefix));
295
+ setActivePath(keyPrefix);
296
+ setIsPending(true);
297
+ setEditPopoverKey(keyPrefix);
298
+ setCheckboxes(getByKey(formData, keyPrefix));
299
+ };
300
+ const onClose = () => {
301
+ setEditPopoverKey(null);
302
+ setIsPending(false);
303
+ setActiveEditItem(null);
304
+ setActivePath(null);
305
+ setOpenPopover(null);
306
+ clearCheckboxes();
307
+ };
346
308
  (0, react_1.useEffect)(() => {
347
309
  if (isOpen) {
348
- // open
349
- setActiveEditItem(getByKey(formData, keyPrefix));
350
- setActivePath(keyPrefix);
351
- setIsPending(true);
352
- setEditPopoverKey(keyPrefix);
353
- setCheckboxes(getByKey(formData, keyPrefix));
310
+ onOpen();
354
311
  }
355
312
  else {
356
- // closed
357
- setEditPopoverKey(null);
358
- setIsPending(false);
359
- setActiveEditItem(null);
360
- setActivePath(null);
361
- setOpenPopover(null);
362
- clearCheckboxes();
313
+ onClose();
363
314
  }
364
315
  }, [isOpen]);
365
316
  if (isCard && isRow) {
@@ -371,9 +322,10 @@ const TagWrapper = ({ isCard, isRow, editPopoverKey, keyPrefix, formData, active
371
322
  setActivePath(null);
372
323
  setOpenPopover(null);
373
324
  setEditPopoverKey(null);
325
+ fetchSqlQuery();
374
326
  clearCheckboxes();
375
327
  };
376
- return ((0, jsx_runtime_1.jsx)("div", { style: { width: '100%' }, children: (0, jsx_runtime_1.jsx)(FilterPopover, { isOpen: editPopoverKey === keyPrefix, popoverTitle: "Edit Filter", filterLabel: children, onClickDeleteFilter: handleClickDelete, setIsOpen: setIsOpen, popoverChildren: (0, jsx_runtime_1.jsx)(EditPopover, { Button: Button, renderNode: renderNode, activeEditItem: activeEditItem, onSave: () => {
328
+ return ((0, jsx_runtime_1.jsx)("div", { style: { width: '100%' }, children: (0, jsx_runtime_1.jsx)(FilterPopover, { isOpen: editPopoverKey === keyPrefix, popoverTitle: "Edit Filter", filterLabel: children, onClickDelete: handleClickDelete, setIsOpen: setIsOpen, popoverChildren: (0, jsx_runtime_1.jsx)(EditPopover, { Button: Button, renderNode: renderNode, activeEditItem: activeEditItem, onSave: () => {
377
329
  if ((0, util_1.isNodeEmptyCollection)(activeEditItem)) {
378
330
  setIsPending(false);
379
331
  setActiveEditItem(null);
@@ -73,6 +73,7 @@ export declare const getDateFilterInfo: (node: any) => {
73
73
  intervalType: any;
74
74
  intervalPaths: any;
75
75
  };
76
- export declare function removeNonSelectedTableReferences(ast: any, table: string): any;
76
+ export declare function removeNonSelectedTableReferences(ast: any, table: string, columns: string[]): any;
77
77
  export declare function allNumericNodesValidInTree(node: any): boolean;
78
+ export declare function isIdColumn(columnName?: string): boolean | "" | undefined;
78
79
  //# sourceMappingURL=util.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../../src/components/ReportBuilder/util.ts"],"names":[],"mappings":"AAOA;;GAEG;AACH,eAAO,MAAM,qBAAqB,SAAU,GAAG,YAW9C,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,GAAG,WAa1C;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,GAAG,WAK5C;AAGD,eAAO,MAAM,WAAW,SAAU,GAAG,YAuBpC,CAAC;AAKF,eAAO,MAAM,oBAAoB,SAAU,GAAG,QAE7C,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,GAAG;;;;;;;;EAU3C;AAKD,eAAO,MAAM,eAAe,QAAS,GAAG,QAMvC,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,WAiBvD;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,GAAG,iBAQjD;AAED,wBAAgB,+BAA+B,CAC7C,IAAI,EAAE,GAAG,EACT,YAAY,EAAE,MAAM,GACnB,MAAM,GAAG,IAAI,CAOf;AAQD,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,GAAG,EACT,YAAY,EAAE,MAAM,GACnB,MAAM,GAAG,IAAI,CAWf;AAED,wBAAgB,gCAAgC,CAC9C,IAAI,EAAE,GAAG,EACT,YAAY,EAAE,MAAM,GACnB,MAAM,GAAG,IAAI,CAOf;AAMD,eAAO,MAAM,mBAAmB,SAAU,GAAG,gBAAgB,MAAM,YA4BlE,CAAC;AAIF,eAAO,MAAM,2BAA2B,SAAU,GAAG,YAUpD,CAAC;AAIF,eAAO,MAAM,oBAAoB,SACzB,GAAG,gBACK,MAAM,KACnB,OAoBF,CAAC;AAEF,eAAO,MAAM,qBAAqB,SAAU,GAAG,gBAAgB,MAAM,QAYpE,CAAC;AAEF,eAAO,MAAM,4BAA4B,SAAU,GAAG,KAAG,OAUxD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,SAAU,GAAG,QA4B3C,CAAC;AAGF,eAAO,MAAM,UAAU,eAAgB,MAAM,SAe5C,CAAC;AAmBF;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,GAAG,EAAE,YAAY,CAAC,EAAE,MAAM,UAsBvE;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,GAAG,UAgB9C;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,GAAG,EAAE,YAAY,CAAC,EAAE,MAAM,sBAmBtE;AAED;;;GAGG;AACH,eAAO,MAAM,iBAAiB,SAAU,GAAG,YAU1C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,SAAU,GAAG,YAOxC,CAAC;AAEF,wBAAgB,aAAa,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,WAehD;AAED,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,GAAG,GACV,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,CAyB1C;AAED,eAAO,MAAM,QAAQ,QAAS,GAAG,QAAoC,CAAC;AAEtE,eAAO,MAAM,QAAQ,MAAO,MAAM,WAA2C,CAAC;AA4L9E,eAAO,MAAM,iBAAiB,SAAU,GAAG;;;;;;;CAc1C,CAAC;AAqCF,wBAAgB,gCAAgC,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,OAQvE;AAED,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAe7D"}
1
+ {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../../src/components/ReportBuilder/util.ts"],"names":[],"mappings":"AAOA;;GAEG;AACH,eAAO,MAAM,qBAAqB,SAAU,GAAG,YAW9C,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,GAAG,WAa1C;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,GAAG,WAK5C;AAGD,eAAO,MAAM,WAAW,SAAU,GAAG,YAuBpC,CAAC;AAKF,eAAO,MAAM,oBAAoB,SAAU,GAAG,QAE7C,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,GAAG;;;;;;;;EAU3C;AAKD,eAAO,MAAM,eAAe,QAAS,GAAG,QAMvC,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,WAiBvD;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,GAAG,iBAQjD;AAED,wBAAgB,+BAA+B,CAC7C,IAAI,EAAE,GAAG,EACT,YAAY,EAAE,MAAM,GACnB,MAAM,GAAG,IAAI,CAOf;AAQD,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,GAAG,EACT,YAAY,EAAE,MAAM,GACnB,MAAM,GAAG,IAAI,CAWf;AAED,wBAAgB,gCAAgC,CAC9C,IAAI,EAAE,GAAG,EACT,YAAY,EAAE,MAAM,GACnB,MAAM,GAAG,IAAI,CAOf;AAMD,eAAO,MAAM,mBAAmB,SAAU,GAAG,gBAAgB,MAAM,YA4BlE,CAAC;AAIF,eAAO,MAAM,2BAA2B,SAAU,GAAG,YAUpD,CAAC;AAIF,eAAO,MAAM,oBAAoB,SACzB,GAAG,gBACK,MAAM,KACnB,OAoBF,CAAC;AAEF,eAAO,MAAM,qBAAqB,SAAU,GAAG,gBAAgB,MAAM,QAYpE,CAAC;AAEF,eAAO,MAAM,4BAA4B,SAAU,GAAG,KAAG,OAUxD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,SAAU,GAAG,QA4B3C,CAAC;AAGF,eAAO,MAAM,UAAU,eAAgB,MAAM,SAe5C,CAAC;AAmBF;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,GAAG,EAAE,YAAY,CAAC,EAAE,MAAM,UAsBvE;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,GAAG,UAgB9C;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,GAAG,EAAE,YAAY,CAAC,EAAE,MAAM,sBAmBtE;AAED;;;GAGG;AACH,eAAO,MAAM,iBAAiB,SAAU,GAAG,YAU1C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,SAAU,GAAG,YAOxC,CAAC;AAEF,wBAAgB,aAAa,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,WAehD;AAED,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,GAAG,GACV,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,CAyB1C;AAED,eAAO,MAAM,QAAQ,QAAS,GAAG,QAAoC,CAAC;AAEtE,eAAO,MAAM,QAAQ,MAAO,MAAM,WAA2C,CAAC;AA4L9E,eAAO,MAAM,iBAAiB,SAAU,GAAG;;;;;;;CAc1C,CAAC;AA6CF,wBAAgB,gCAAgC,CAC9C,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EAAE,OAQlB;AAED,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAc7D;AAED,wBAAgB,UAAU,CAAC,UAAU,CAAC,EAAE,MAAM,4BAO7C"}