@quillsql/react 2.13.42 → 2.13.44

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 (257) hide show
  1. package/dist/cjs/Chart.d.ts.map +1 -1
  2. package/dist/cjs/Chart.js +2 -2
  3. package/dist/cjs/ChartBuilder.d.ts +1 -0
  4. package/dist/cjs/ChartBuilder.d.ts.map +1 -1
  5. package/dist/cjs/ChartBuilder.js +48 -14
  6. package/dist/cjs/ChartEditor.d.ts +1 -1
  7. package/dist/cjs/ChartEditor.d.ts.map +1 -1
  8. package/dist/cjs/ChartEditor.js +2 -2
  9. package/dist/cjs/Context.d.ts.map +1 -1
  10. package/dist/cjs/Context.js +37 -26
  11. package/dist/cjs/Dashboard.d.ts +2 -2
  12. package/dist/cjs/Dashboard.d.ts.map +1 -1
  13. package/dist/cjs/Dashboard.js +115 -99
  14. package/dist/cjs/ReportBuilder.d.ts.map +1 -1
  15. package/dist/cjs/ReportBuilder.js +871 -1574
  16. package/dist/cjs/SQLEditor.d.ts.map +1 -1
  17. package/dist/cjs/SQLEditor.js +23 -4
  18. package/dist/cjs/Table.d.ts.map +1 -1
  19. package/dist/cjs/components/Chart/CustomReferenceLine.js +1 -1
  20. package/dist/cjs/components/Chart/GaugeChart.d.ts.map +1 -1
  21. package/dist/cjs/components/Chart/GaugeChart.js +64 -12
  22. package/dist/cjs/components/Chart/InternalChart.js +1 -1
  23. package/dist/cjs/components/Chart/MapChart.d.ts.map +1 -1
  24. package/dist/cjs/components/Chart/MapChart.js +65 -7
  25. package/dist/cjs/components/Dashboard/DashboardFilter.d.ts.map +1 -1
  26. package/dist/cjs/components/Dashboard/DashboardFilter.js +3 -3
  27. package/dist/cjs/components/Dashboard/DashboardSection.d.ts +1 -1
  28. package/dist/cjs/components/Dashboard/DashboardSection.d.ts.map +1 -1
  29. package/dist/cjs/components/Dashboard/DashboardSection.js +20 -19
  30. package/dist/cjs/components/Dashboard/MetricComponent.d.ts.map +1 -1
  31. package/dist/cjs/components/Dashboard/MetricComponent.js +1 -0
  32. package/dist/cjs/components/Dashboard/TableComponent.d.ts.map +1 -1
  33. package/dist/cjs/components/Dashboard/TableComponent.js +5 -1
  34. package/dist/cjs/components/QuillMultiSelectWithCombo.d.ts.map +1 -1
  35. package/dist/cjs/components/QuillMultiSelectWithCombo.js +58 -8
  36. package/dist/cjs/components/QuillSelect.d.ts.map +1 -1
  37. package/dist/cjs/components/QuillSelect.js +91 -14
  38. package/dist/cjs/components/QuillSelectWithCombo.js +6 -6
  39. package/dist/cjs/components/ReportBuilder/AddColumnModal.d.ts +6 -16
  40. package/dist/cjs/components/ReportBuilder/AddColumnModal.d.ts.map +1 -1
  41. package/dist/cjs/components/ReportBuilder/AddColumnModal.js +172 -75
  42. package/dist/cjs/components/ReportBuilder/AddSortPopover.d.ts +1 -5
  43. package/dist/cjs/components/ReportBuilder/AddSortPopover.d.ts.map +1 -1
  44. package/dist/cjs/components/ReportBuilder/AddSortPopover.js +2 -9
  45. package/dist/cjs/components/ReportBuilder/DraggableColumns.d.ts +17 -0
  46. package/dist/cjs/components/ReportBuilder/DraggableColumns.d.ts.map +1 -0
  47. package/dist/cjs/components/ReportBuilder/DraggableColumns.js +52 -0
  48. package/dist/cjs/components/ReportBuilder/DraggableItem.d.ts +17 -0
  49. package/dist/cjs/components/ReportBuilder/DraggableItem.d.ts.map +1 -0
  50. package/dist/cjs/components/ReportBuilder/DraggableItem.js +17 -0
  51. package/dist/cjs/components/ReportBuilder/FilterModal.d.ts +6 -12
  52. package/dist/cjs/components/ReportBuilder/FilterModal.d.ts.map +1 -1
  53. package/dist/cjs/components/ReportBuilder/FilterModal.js +29 -20
  54. package/dist/cjs/components/ReportBuilder/FilterStack.d.ts +8 -17
  55. package/dist/cjs/components/ReportBuilder/FilterStack.d.ts.map +1 -1
  56. package/dist/cjs/components/ReportBuilder/FilterStack.js +20 -86
  57. package/dist/cjs/components/ReportBuilder/convert.js +6 -6
  58. package/dist/cjs/components/ReportBuilder/ui.d.ts +8 -9
  59. package/dist/cjs/components/ReportBuilder/ui.d.ts.map +1 -1
  60. package/dist/cjs/components/ReportBuilder/ui.js +30 -8
  61. package/dist/cjs/components/ReportBuilder/util.d.ts +2 -5
  62. package/dist/cjs/components/ReportBuilder/util.d.ts.map +1 -1
  63. package/dist/cjs/components/ReportBuilder/util.js +1 -1
  64. package/dist/cjs/components/UiComponents.d.ts +3 -2
  65. package/dist/cjs/components/UiComponents.d.ts.map +1 -1
  66. package/dist/cjs/components/UiComponents.js +13 -13
  67. package/dist/cjs/hooks/useAskQuill.d.ts +1 -1
  68. package/dist/cjs/hooks/useAskQuill.d.ts.map +1 -1
  69. package/dist/cjs/hooks/useAskQuill.js +14 -12
  70. package/dist/cjs/hooks/useDashboard.d.ts +5 -3
  71. package/dist/cjs/hooks/useDashboard.d.ts.map +1 -1
  72. package/dist/cjs/hooks/useDashboard.js +8 -6
  73. package/dist/cjs/hooks/useOnClickOutside.d.ts +1 -0
  74. package/dist/cjs/hooks/useOnClickOutside.d.ts.map +1 -1
  75. package/dist/cjs/hooks/useOnClickOutside.js +33 -0
  76. package/dist/cjs/internals/ReportBuilder/PivotForm.d.ts +2 -1
  77. package/dist/cjs/internals/ReportBuilder/PivotForm.d.ts.map +1 -1
  78. package/dist/cjs/internals/ReportBuilder/PivotForm.js +22 -15
  79. package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts +7 -5
  80. package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
  81. package/dist/cjs/internals/ReportBuilder/PivotModal.js +100 -48
  82. package/dist/cjs/models/Client.d.ts +4 -0
  83. package/dist/cjs/models/Client.d.ts.map +1 -1
  84. package/dist/cjs/models/Dashboard.d.ts +1 -0
  85. package/dist/cjs/models/Dashboard.d.ts.map +1 -1
  86. package/dist/cjs/models/Report.d.ts +2 -0
  87. package/dist/cjs/models/Report.d.ts.map +1 -1
  88. package/dist/cjs/models/ReportBuilder.d.ts +46 -0
  89. package/dist/cjs/models/ReportBuilder.d.ts.map +1 -0
  90. package/dist/cjs/models/ReportBuilder.js +19 -0
  91. package/dist/cjs/models/Tables.d.ts +5 -5
  92. package/dist/cjs/models/Tables.d.ts.map +1 -1
  93. package/dist/cjs/utils/astFilterProcessing.d.ts +4 -0
  94. package/dist/cjs/utils/astFilterProcessing.d.ts.map +1 -1
  95. package/dist/cjs/utils/astFilterProcessing.js +301 -97
  96. package/dist/cjs/utils/astProcessing.d.ts +14 -4
  97. package/dist/cjs/utils/astProcessing.d.ts.map +1 -1
  98. package/dist/cjs/utils/astProcessing.js +38 -4
  99. package/dist/cjs/utils/dashboard.d.ts.map +1 -1
  100. package/dist/cjs/utils/dashboard.js +18 -3
  101. package/dist/cjs/utils/dataFetcher.d.ts.map +1 -1
  102. package/dist/cjs/utils/dataFetcher.js +4 -3
  103. package/dist/cjs/utils/filterProcessing.d.ts +2 -11
  104. package/dist/cjs/utils/filterProcessing.d.ts.map +1 -1
  105. package/dist/cjs/utils/filterProcessing.js +4 -16
  106. package/dist/cjs/utils/pivotConstructor.d.ts +2 -1
  107. package/dist/cjs/utils/pivotConstructor.d.ts.map +1 -1
  108. package/dist/cjs/utils/pivotConstructor.js +4 -2
  109. package/dist/cjs/utils/pivotProcessing.d.ts +17 -7
  110. package/dist/cjs/utils/pivotProcessing.d.ts.map +1 -1
  111. package/dist/cjs/utils/pivotProcessing.js +60 -51
  112. package/dist/cjs/utils/queryConstructor.d.ts.map +1 -1
  113. package/dist/cjs/utils/queryConstructor.js +15 -2
  114. package/dist/cjs/utils/report.d.ts +12 -9
  115. package/dist/cjs/utils/report.d.ts.map +1 -1
  116. package/dist/cjs/utils/report.js +114 -47
  117. package/dist/cjs/utils/reportBuilder.d.ts +88 -0
  118. package/dist/cjs/utils/reportBuilder.d.ts.map +1 -0
  119. package/dist/cjs/utils/reportBuilder.js +395 -0
  120. package/dist/cjs/utils/schema.d.ts +7 -0
  121. package/dist/cjs/utils/schema.d.ts.map +1 -1
  122. package/dist/cjs/utils/schema.js +36 -2
  123. package/dist/cjs/utils/tableProcessing.d.ts +59 -29
  124. package/dist/cjs/utils/tableProcessing.d.ts.map +1 -1
  125. package/dist/cjs/utils/tableProcessing.js +75 -90
  126. package/dist/cjs/utils/ui.d.ts +2 -0
  127. package/dist/cjs/utils/ui.d.ts.map +1 -0
  128. package/dist/cjs/utils/ui.js +18 -0
  129. package/dist/esm/Chart.d.ts.map +1 -1
  130. package/dist/esm/Chart.js +2 -2
  131. package/dist/esm/ChartBuilder.d.ts +1 -0
  132. package/dist/esm/ChartBuilder.d.ts.map +1 -1
  133. package/dist/esm/ChartBuilder.js +49 -15
  134. package/dist/esm/ChartEditor.d.ts +1 -1
  135. package/dist/esm/ChartEditor.d.ts.map +1 -1
  136. package/dist/esm/ChartEditor.js +2 -2
  137. package/dist/esm/Context.d.ts.map +1 -1
  138. package/dist/esm/Context.js +37 -26
  139. package/dist/esm/Dashboard.d.ts +2 -2
  140. package/dist/esm/Dashboard.d.ts.map +1 -1
  141. package/dist/esm/Dashboard.js +119 -103
  142. package/dist/esm/ReportBuilder.d.ts.map +1 -1
  143. package/dist/esm/ReportBuilder.js +878 -1581
  144. package/dist/esm/SQLEditor.d.ts.map +1 -1
  145. package/dist/esm/SQLEditor.js +23 -4
  146. package/dist/esm/Table.d.ts.map +1 -1
  147. package/dist/esm/components/Chart/CustomReferenceLine.js +1 -1
  148. package/dist/esm/components/Chart/GaugeChart.d.ts.map +1 -1
  149. package/dist/esm/components/Chart/GaugeChart.js +27 -8
  150. package/dist/esm/components/Chart/InternalChart.js +1 -1
  151. package/dist/esm/components/Chart/MapChart.d.ts.map +1 -1
  152. package/dist/esm/components/Chart/MapChart.js +30 -5
  153. package/dist/esm/components/Dashboard/DashboardFilter.d.ts.map +1 -1
  154. package/dist/esm/components/Dashboard/DashboardFilter.js +3 -3
  155. package/dist/esm/components/Dashboard/DashboardSection.d.ts +1 -1
  156. package/dist/esm/components/Dashboard/DashboardSection.d.ts.map +1 -1
  157. package/dist/esm/components/Dashboard/DashboardSection.js +21 -20
  158. package/dist/esm/components/Dashboard/MetricComponent.d.ts.map +1 -1
  159. package/dist/esm/components/Dashboard/MetricComponent.js +1 -0
  160. package/dist/esm/components/Dashboard/TableComponent.d.ts.map +1 -1
  161. package/dist/esm/components/Dashboard/TableComponent.js +5 -1
  162. package/dist/esm/components/QuillMultiSelectWithCombo.d.ts.map +1 -1
  163. package/dist/esm/components/QuillMultiSelectWithCombo.js +57 -7
  164. package/dist/esm/components/QuillSelect.d.ts.map +1 -1
  165. package/dist/esm/components/QuillSelect.js +58 -14
  166. package/dist/esm/components/QuillSelectWithCombo.js +6 -6
  167. package/dist/esm/components/ReportBuilder/AddColumnModal.d.ts +6 -16
  168. package/dist/esm/components/ReportBuilder/AddColumnModal.d.ts.map +1 -1
  169. package/dist/esm/components/ReportBuilder/AddColumnModal.js +173 -76
  170. package/dist/esm/components/ReportBuilder/AddSortPopover.d.ts +1 -5
  171. package/dist/esm/components/ReportBuilder/AddSortPopover.d.ts.map +1 -1
  172. package/dist/esm/components/ReportBuilder/AddSortPopover.js +2 -9
  173. package/dist/esm/components/ReportBuilder/DraggableColumns.d.ts +17 -0
  174. package/dist/esm/components/ReportBuilder/DraggableColumns.d.ts.map +1 -0
  175. package/dist/esm/components/ReportBuilder/DraggableColumns.js +46 -0
  176. package/dist/esm/components/ReportBuilder/DraggableItem.d.ts +17 -0
  177. package/dist/esm/components/ReportBuilder/DraggableItem.d.ts.map +1 -0
  178. package/dist/esm/components/ReportBuilder/DraggableItem.js +14 -0
  179. package/dist/esm/components/ReportBuilder/FilterModal.d.ts +6 -12
  180. package/dist/esm/components/ReportBuilder/FilterModal.d.ts.map +1 -1
  181. package/dist/esm/components/ReportBuilder/FilterModal.js +29 -20
  182. package/dist/esm/components/ReportBuilder/FilterStack.d.ts +8 -17
  183. package/dist/esm/components/ReportBuilder/FilterStack.d.ts.map +1 -1
  184. package/dist/esm/components/ReportBuilder/FilterStack.js +21 -87
  185. package/dist/esm/components/ReportBuilder/convert.js +6 -6
  186. package/dist/esm/components/ReportBuilder/ui.d.ts +8 -9
  187. package/dist/esm/components/ReportBuilder/ui.d.ts.map +1 -1
  188. package/dist/esm/components/ReportBuilder/ui.js +33 -11
  189. package/dist/esm/components/ReportBuilder/util.d.ts +2 -5
  190. package/dist/esm/components/ReportBuilder/util.d.ts.map +1 -1
  191. package/dist/esm/components/ReportBuilder/util.js +1 -1
  192. package/dist/esm/components/UiComponents.d.ts +3 -2
  193. package/dist/esm/components/UiComponents.d.ts.map +1 -1
  194. package/dist/esm/components/UiComponents.js +13 -13
  195. package/dist/esm/hooks/useAskQuill.d.ts +1 -1
  196. package/dist/esm/hooks/useAskQuill.d.ts.map +1 -1
  197. package/dist/esm/hooks/useAskQuill.js +14 -12
  198. package/dist/esm/hooks/useDashboard.d.ts +5 -3
  199. package/dist/esm/hooks/useDashboard.d.ts.map +1 -1
  200. package/dist/esm/hooks/useDashboard.js +8 -6
  201. package/dist/esm/hooks/useOnClickOutside.d.ts +1 -0
  202. package/dist/esm/hooks/useOnClickOutside.d.ts.map +1 -1
  203. package/dist/esm/hooks/useOnClickOutside.js +31 -0
  204. package/dist/esm/internals/ReportBuilder/PivotForm.d.ts +2 -1
  205. package/dist/esm/internals/ReportBuilder/PivotForm.d.ts.map +1 -1
  206. package/dist/esm/internals/ReportBuilder/PivotForm.js +23 -16
  207. package/dist/esm/internals/ReportBuilder/PivotModal.d.ts +7 -5
  208. package/dist/esm/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
  209. package/dist/esm/internals/ReportBuilder/PivotModal.js +101 -49
  210. package/dist/esm/models/Client.d.ts +4 -0
  211. package/dist/esm/models/Client.d.ts.map +1 -1
  212. package/dist/esm/models/Dashboard.d.ts +1 -0
  213. package/dist/esm/models/Dashboard.d.ts.map +1 -1
  214. package/dist/esm/models/Report.d.ts +2 -0
  215. package/dist/esm/models/Report.d.ts.map +1 -1
  216. package/dist/esm/models/ReportBuilder.d.ts +46 -0
  217. package/dist/esm/models/ReportBuilder.d.ts.map +1 -0
  218. package/dist/esm/models/ReportBuilder.js +16 -0
  219. package/dist/esm/models/Tables.d.ts +5 -5
  220. package/dist/esm/models/Tables.d.ts.map +1 -1
  221. package/dist/esm/utils/astFilterProcessing.d.ts +4 -0
  222. package/dist/esm/utils/astFilterProcessing.d.ts.map +1 -1
  223. package/dist/esm/utils/astFilterProcessing.js +300 -97
  224. package/dist/esm/utils/astProcessing.d.ts +14 -4
  225. package/dist/esm/utils/astProcessing.d.ts.map +1 -1
  226. package/dist/esm/utils/astProcessing.js +38 -5
  227. package/dist/esm/utils/dashboard.d.ts.map +1 -1
  228. package/dist/esm/utils/dashboard.js +18 -3
  229. package/dist/esm/utils/dataFetcher.d.ts.map +1 -1
  230. package/dist/esm/utils/dataFetcher.js +4 -3
  231. package/dist/esm/utils/filterProcessing.d.ts +2 -11
  232. package/dist/esm/utils/filterProcessing.d.ts.map +1 -1
  233. package/dist/esm/utils/filterProcessing.js +4 -15
  234. package/dist/esm/utils/pivotConstructor.d.ts +2 -1
  235. package/dist/esm/utils/pivotConstructor.d.ts.map +1 -1
  236. package/dist/esm/utils/pivotConstructor.js +4 -2
  237. package/dist/esm/utils/pivotProcessing.d.ts +17 -7
  238. package/dist/esm/utils/pivotProcessing.d.ts.map +1 -1
  239. package/dist/esm/utils/pivotProcessing.js +58 -49
  240. package/dist/esm/utils/queryConstructor.d.ts.map +1 -1
  241. package/dist/esm/utils/queryConstructor.js +15 -2
  242. package/dist/esm/utils/report.d.ts +12 -9
  243. package/dist/esm/utils/report.d.ts.map +1 -1
  244. package/dist/esm/utils/report.js +116 -46
  245. package/dist/esm/utils/reportBuilder.d.ts +88 -0
  246. package/dist/esm/utils/reportBuilder.d.ts.map +1 -0
  247. package/dist/esm/utils/reportBuilder.js +386 -0
  248. package/dist/esm/utils/schema.d.ts +7 -0
  249. package/dist/esm/utils/schema.d.ts.map +1 -1
  250. package/dist/esm/utils/schema.js +34 -1
  251. package/dist/esm/utils/tableProcessing.d.ts +59 -29
  252. package/dist/esm/utils/tableProcessing.d.ts.map +1 -1
  253. package/dist/esm/utils/tableProcessing.js +71 -86
  254. package/dist/esm/utils/ui.d.ts +2 -0
  255. package/dist/esm/utils/ui.d.ts.map +1 -0
  256. package/dist/esm/utils/ui.js +14 -0
  257. package/package.json +5 -2
@@ -3,21 +3,25 @@ import { ColumnInternal } from '../models/Columns';
3
3
  import { DashboardFilter, InternalFilter } from '../models/Filter';
4
4
  import { Pivot, PivotData } from '../models/Pivot';
5
5
  import { QuillReport, QuillReportInternal } from '../models/Report';
6
- import { DateRangesByColumn, Table, UniqueValuesByTable } from '../models/Tables';
6
+ import { DateRangesByColumn, UniqueValuesByTable, Table, UniqueValuesByColumn } from '../models/Tables';
7
7
  import { AdditionalProcessing } from './tableProcessing';
8
8
  import { CustomField } from '../models/Schema';
9
+ import { ReportBuilderColumn } from '../models/ReportBuilder';
9
10
  export type ReportBuilderInfo = {
10
11
  rows: any[];
11
12
  columns: ColumnInternal[];
13
+ reportBuilderColumns: ReportBuilderColumn[];
12
14
  rowCount: number;
13
15
  pivot: Pivot | null;
14
16
  pivotData: PivotData | null;
15
17
  formattedRows: any[];
16
18
  report: QuillReportInternal;
17
- table: string;
18
- uniqueValues: UniqueValuesByTable;
19
+ tables: string[];
20
+ uniqueStringsByTable: UniqueValuesByTable;
21
+ uniqueStringsByColumn: UniqueValuesByColumn;
19
22
  dateRanges: DateRangesByColumn;
20
23
  query: string;
24
+ pivotHint: string;
21
25
  error?: string;
22
26
  itemQuery?: string[];
23
27
  };
@@ -72,9 +76,8 @@ export declare function saveReport({ report, dashboardItemId, client, }: {
72
76
  }): Promise<any>;
73
77
  export declare const formatRowsFromReport: (report: any, xAxisField?: string, xAxisFormat?: string) => any;
74
78
  export declare function convertInternalReportToReport(report: QuillReportInternal, dashboardFilters: DashboardFilter[], initiator?: string): QuillReport;
75
- export declare const fetchReportBuilderDataFromAST: ({ baseAst, formData, schema, client, tenants, pivot, previousFormData, currentTable, previousRelevant, report, customFields, skipUniqueValues, skipRowCount, processing, dashboardName, }: {
79
+ export declare const fetchReportBuilderDataFromAST: ({ baseAst, schema, client, tenants, pivot, previousRelevant, requiresNewFilteredUniqueValues, report, customFields, skipUniqueValues, skipRowCount, processing, dashboardName, }: {
76
80
  baseAst: any;
77
- formData: any;
78
81
  schema: Table[];
79
82
  client: QuillProviderClient;
80
83
  tenants?: {
@@ -82,17 +85,17 @@ export declare const fetchReportBuilderDataFromAST: ({ baseAst, formData, schema
82
85
  tenantIds: (string | number)[];
83
86
  }[] | (string | number)[];
84
87
  pivot?: Pivot;
85
- previousFormData?: any;
86
- currentTable?: string;
87
88
  previousRelevant?: {
88
- uniqueStrings: UniqueValuesByTable;
89
+ uniqueStringsByTable: UniqueValuesByTable;
90
+ uniqueStringsByColumn: UniqueValuesByColumn;
89
91
  dateRanges: DateRangesByColumn;
90
92
  };
93
+ requiresNewFilteredUniqueValues?: boolean;
91
94
  report?: QuillReportInternal;
92
95
  customFields?: any;
93
96
  skipUniqueValues?: boolean;
94
97
  skipRowCount?: boolean;
95
98
  processing?: AdditionalProcessing;
96
- dashboardName?: string;
99
+ dashboardName: string;
97
100
  }) => Promise<ReportBuilderInfo>;
98
101
  //# sourceMappingURL=report.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../../../src/utils/report.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../../../src/utils/report.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,4 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.fetchReportBuilderDataFromAST = exports.formatRowsFromReport = exports.EMPTY_INTERNAL_REPORT = exports.EMPTY_REPORT = void 0;
7
4
  exports.fetchReport = fetchReport;
@@ -10,12 +7,10 @@ exports.fetchReportInfo = fetchReportInfo;
10
7
  exports.fetchReportRowCount = fetchReportRowCount;
11
8
  exports.saveReport = saveReport;
12
9
  exports.convertInternalReportToReport = convertInternalReportToReport;
13
- const fast_deep_equal_1 = __importDefault(require("fast-deep-equal"));
14
10
  const ChartBuilder_1 = require("../ChartBuilder");
15
11
  const ast_1 = require("../components/ReportBuilder/ast");
16
12
  const PivotModal_1 = require("../internals/ReportBuilder/PivotModal");
17
13
  const Filter_1 = require("../models/Filter");
18
- const astProcessing_1 = require("./astProcessing");
19
14
  const columnProcessing_1 = require("./columnProcessing");
20
15
  const dashboard_1 = require("./dashboard");
21
16
  const dataFetcher_1 = require("./dataFetcher");
@@ -27,6 +22,9 @@ const pivotProcessing_1 = require("./pivotProcessing");
27
22
  const tableProcessing_1 = require("./tableProcessing");
28
23
  const textProcessing_1 = require("./textProcessing");
29
24
  const valueFormatter_1 = require("./valueFormatter");
25
+ const astFilterProcessing_1 = require("./astFilterProcessing");
26
+ const reportBuilder_1 = require("./reportBuilder");
27
+ const astProcessing_1 = require("./astProcessing");
30
28
  exports.EMPTY_REPORT = {
31
29
  id: '',
32
30
  name: '',
@@ -54,6 +52,7 @@ function extractAllReportValuesFromQuillInternalReport(reportInternal) {
54
52
  id: reportInternal.id,
55
53
  name: reportInternal.name,
56
54
  dashboardName: reportInternal.dashboardName,
55
+ section: reportInternal.section,
57
56
  rows: reportInternal.rows,
58
57
  columns: reportInternal.columns,
59
58
  chartType: reportInternal.chartType,
@@ -75,7 +74,6 @@ function extractAllReportValuesFromQuillInternalReport(reportInternal) {
75
74
  columnsWithCustomFields: reportInternal.columnsWithCustomFields,
76
75
  };
77
76
  }
78
- // TODO: Convert this to take an object rather than a bunch of arguments
79
77
  async function fetchReport({ reportId, client, tenants, flags, useReportTask = true, filters = [], additionalProcessing, dateBucket, customFields, rowsOnly, rowCountOnly, abortSignal, getDefaultDashboardFilters, }) {
80
78
  let reportInfo = undefined;
81
79
  let errorMessage = undefined;
@@ -357,26 +355,72 @@ function convertInternalReportToReport(report, dashboardFilters, initiator) {
357
355
  return exports.EMPTY_REPORT;
358
356
  }
359
357
  }
360
- const fetchReportBuilderDataFromAST = async ({ baseAst, formData, schema, client, tenants, pivot, previousFormData, currentTable, previousRelevant, report, customFields, skipUniqueValues, skipRowCount, processing, dashboardName, }) => {
358
+ const fetchReportBuilderDataFromAST = async ({ baseAst, schema, client, tenants, pivot, previousRelevant, requiresNewFilteredUniqueValues, report, customFields, skipUniqueValues, skipRowCount, processing, dashboardName, }) => {
361
359
  let newRows = [];
362
360
  let newColumns = [];
363
361
  let newRowCount = 0;
364
362
  let newPivot = null;
365
363
  let newPivotData = null;
364
+ let pivotHint = '';
366
365
  let formattedRows = [];
367
366
  let curReport = report;
368
- let table = '';
369
367
  let error;
370
- const relevantInfo = previousRelevant ?? { uniqueStrings: {}, dateRanges: {} };
368
+ const relevantInfo = previousRelevant ?? {
369
+ uniqueStringsByTable: {},
370
+ dateRanges: {},
371
+ uniqueStringsByColumn: {},
372
+ };
371
373
  let query = '';
374
+ let tables = [];
375
+ const reportBuilderColumns = [];
372
376
  try {
373
- const tables = (0, ast_1.getTableNames)(baseAst);
374
- table = tables[0] ? tables[0] : '';
375
- const tableInfo = schema.find((tableInfo) => tableInfo.name === table);
376
- if (!table || !tableInfo) {
377
- throw new Error('No table found');
378
- }
379
- const tableData = await (0, tableProcessing_1.fetchTableByAST)({ ...baseAst, where: formData }, client, tenants, processing ?? { page: paginationProcessing_1.DEFAULT_PAGINATION }, customFields, skipRowCount, undefined, dashboardName);
377
+ tables = (0, ast_1.getTableNames)(baseAst);
378
+ const astColumnsByTable = {};
379
+ baseAst.columns.forEach((col) => {
380
+ if (!astColumnsByTable[col.expr?.table ?? '']) {
381
+ astColumnsByTable[col.expr?.table ?? ''] = [];
382
+ }
383
+ const field = (0, astFilterProcessing_1.getFieldFromExpression)(col.expr ?? col);
384
+ const table = tables.length === 1 ? tables[0] : col.expr?.table;
385
+ if (field) {
386
+ astColumnsByTable[table ?? '']?.push(field);
387
+ if (table) {
388
+ reportBuilderColumns.push({ field, table, alias: col.as });
389
+ }
390
+ }
391
+ });
392
+ const columnInfo = tables.flatMap((table) => {
393
+ const tableInfo = schema.find((tableInfo) => tableInfo.name === table);
394
+ if (!tableInfo) {
395
+ return [];
396
+ }
397
+ return tableInfo.columns
398
+ .map((col) => ({ ...col, table }))
399
+ .filter((col) => {
400
+ return (astColumnsByTable[table]?.includes(col.field) ||
401
+ astColumnsByTable['']?.includes(col.field));
402
+ });
403
+ });
404
+ const aliasedColumnInfo = tables.flatMap((table) => {
405
+ const tableInfo = schema.find((tableInfo) => tableInfo.name === table);
406
+ if (!tableInfo) {
407
+ return [];
408
+ }
409
+ return tableInfo.columns
410
+ .map((col) => ({ ...col, table }))
411
+ .filter((col) => {
412
+ return (astColumnsByTable[table]?.includes(col.field) ||
413
+ astColumnsByTable['']?.includes(col.field));
414
+ })
415
+ .map((col) => {
416
+ const reportBuilderColumn = reportBuilderColumns.find((c) => c.field === col.field && c.table === col.table);
417
+ return {
418
+ ...col,
419
+ field: reportBuilderColumn?.alias ?? col.field,
420
+ };
421
+ });
422
+ });
423
+ const tableData = await (0, tableProcessing_1.fetchTableByAST)(baseAst, client, tenants, processing ?? { page: paginationProcessing_1.DEFAULT_PAGINATION }, customFields, skipRowCount, undefined, dashboardName);
380
424
  if (tableData.error) {
381
425
  throw new Error(tableData.error);
382
426
  }
@@ -407,36 +451,56 @@ const fetchReportBuilderDataFromAST = async ({ baseAst, formData, schema, client
407
451
  referenceLines: report?.referenceLines,
408
452
  referenceLineYValues: report?.referenceLineYValues,
409
453
  };
410
- if (table !== currentTable || previousFormData !== formData) {
411
- const queryResult = await (0, dataFetcher_1.fetchSqlQuery)({
412
- ...(0, astProcessing_1.createBasicSelectASTFromColumns)(tableInfo.columns, table),
413
- where: formData,
414
- }, client, formData);
415
- if (queryResult.error) {
416
- throw new Error(queryResult.error);
417
- }
418
- query = queryResult.query;
419
- if (!skipUniqueValues) {
420
- const { uniqueStrings, dateRanges } = await (0, tableProcessing_1.getRelevantInfoFromQuery)(tableInfo.columns, client, tenants, queryResult.query, customFields, dashboardName);
421
- relevantInfo.uniqueStrings[table] = uniqueStrings ?? {};
422
- relevantInfo.dateRanges = dateRanges ?? {};
423
- }
424
- else {
425
- const dateColumns = tableInfo.columns.filter((column) => {
426
- return column.fieldType === 'date';
427
- });
428
- if (dateColumns.length > 0) {
429
- const dateRanges = await (0, tableProcessing_1.getQueryDateRangeByColumns)(dateColumns, queryResult.query, client, tenants, customFields ?? [], dashboardName);
430
- if (dateRanges === null) {
431
- throw new Error("Couldn't fetch date ranges");
432
- }
433
- relevantInfo.dateRanges = dateRanges ?? {};
454
+ const queryResult = await (0, dataFetcher_1.fetchSqlQuery)(baseAst, client);
455
+ if (queryResult.error) {
456
+ throw new Error(queryResult.error);
457
+ }
458
+ query = queryResult.query;
459
+ if (!skipUniqueValues || (pivot && requiresNewFilteredUniqueValues)) {
460
+ const starQuery = await (0, dataFetcher_1.fetchSqlQuery)((0, astProcessing_1.createSelectStarFromAst)(baseAst), client);
461
+ const { uniqueStrings, dateRanges, columnUniqueValues } = await (0, tableProcessing_1.getRelevantInfoFromQuery)({
462
+ tables,
463
+ columns: columnInfo,
464
+ aliasedColumns: aliasedColumnInfo,
465
+ reportBuilderColumns,
466
+ client,
467
+ tenants,
468
+ query: queryResult.query,
469
+ queryTemplate: starQuery.query,
470
+ customFields,
471
+ dashboardName,
472
+ });
473
+ relevantInfo.uniqueStringsByTable = uniqueStrings ?? {};
474
+ relevantInfo.dateRanges = dateRanges ?? {};
475
+ relevantInfo.uniqueStringsByColumn = columnUniqueValues ?? {};
476
+ }
477
+ else {
478
+ const dateColumns = aliasedColumnInfo.filter((column) => {
479
+ return column.fieldType === 'date';
480
+ });
481
+ if (dateColumns.length > 0) {
482
+ const dateRanges = await (0, tableProcessing_1.getQueryDateRangeByColumns)(dateColumns, queryResult.query, client, tenants, customFields ?? [], dashboardName);
483
+ if (dateRanges === null) {
484
+ throw new Error("Couldn't fetch date ranges");
434
485
  }
486
+ relevantInfo.dateRanges = dateRanges ?? {};
435
487
  }
436
488
  }
437
489
  if (!!relevantInfo.error) {
438
490
  throw new Error(relevantInfo.error);
439
491
  }
492
+ if (pivot &&
493
+ !(0, reportBuilder_1.isValidPivotForReport)(pivot, relevantInfo.uniqueStringsByColumn, tableData.columns)) {
494
+ const { pivot: newValidPivot, hint } = (0, reportBuilder_1.makePivotValid)(pivot, relevantInfo.uniqueStringsByColumn, tableData.columns);
495
+ if (newValidPivot) {
496
+ pivot = newValidPivot;
497
+ pivotHint = hint;
498
+ }
499
+ else {
500
+ pivot = undefined;
501
+ pivotHint = 'Pivot no longer valid';
502
+ }
503
+ }
440
504
  if (pivot) {
441
505
  if ((0, pivotProcessing_1.isPivotPossible)(tableData.columns, pivot)) {
442
506
  let dateBucket = undefined;
@@ -444,19 +508,16 @@ const fetchReportBuilderDataFromAST = async ({ baseAst, formData, schema, client
444
508
  if (rowFieldDateRange) {
445
509
  dateBucket = (0, dates_1.getDateBucketFromRange)(rowFieldDateRange.dateRange);
446
510
  }
447
- if (!Object.values(relevantInfo.uniqueStrings[table] ?? {}).length ||
448
- !(0, fast_deep_equal_1.default)(formData, previousFormData)) {
449
- relevantInfo.uniqueStrings[table] = await (0, tableProcessing_1.getUniqueStringValues)(tableInfo.columns.filter((column) => column.field === pivot?.columnField), table, client, tenants, customFields, undefined, undefined, query ? query : (report?.queryString ?? ''), report?.dashboardName);
450
- }
451
511
  newPivotData = await (0, PivotModal_1.generatePivotTable)({
452
512
  pivot,
453
513
  dateBucket,
454
514
  report: curReport,
455
515
  client,
456
- uniqueValues: relevantInfo.uniqueStrings[table],
516
+ uniqueValues: relevantInfo.uniqueStringsByColumn,
457
517
  dashboardName,
458
518
  tenants,
459
519
  additionalProcessing: processing,
520
+ caller: 'ReportBuilder',
460
521
  });
461
522
  newPivot = pivot;
462
523
  }
@@ -487,18 +548,24 @@ const fetchReportBuilderDataFromAST = async ({ baseAst, formData, schema, client
487
548
  catch (e) {
488
549
  error = e.message;
489
550
  }
551
+ if (newPivot) {
552
+ newPivot = (0, reportBuilder_1.setTypesOnPivot)(newPivot, newColumns);
553
+ }
490
554
  return {
491
555
  rows: newRows,
492
556
  columns: newColumns,
557
+ reportBuilderColumns,
493
558
  rowCount: newRowCount,
494
559
  pivot: newPivot,
495
560
  pivotData: newPivotData,
496
561
  formattedRows,
497
562
  report: curReport ?? exports.EMPTY_INTERNAL_REPORT,
498
- table,
499
- uniqueValues: relevantInfo.uniqueStrings,
563
+ tables,
564
+ uniqueStringsByTable: relevantInfo.uniqueStringsByTable,
565
+ uniqueStringsByColumn: relevantInfo.uniqueStringsByColumn,
500
566
  dateRanges: relevantInfo.dateRanges,
501
567
  query,
568
+ pivotHint,
502
569
  error: error,
503
570
  itemQuery: curReport?.itemQuery,
504
571
  };
@@ -0,0 +1,88 @@
1
+ import { Column, ColumnInternal } from '../models/Columns';
2
+ import { Pivot } from '../models/Pivot';
3
+ import { ReportBuilderState } from '../models/ReportBuilder';
4
+ import { Table, UniqueValuesByColumn } from '../models/Tables';
5
+ export declare const reportBuilderStateToAst: (reportBuilderState: ReportBuilderState, databaseType: string) => {
6
+ from: {
7
+ db: null;
8
+ table: string;
9
+ as: string | null;
10
+ join: import("../models/ReportBuilder").JoinType | null;
11
+ on: {
12
+ type: string;
13
+ operator: string;
14
+ left: {
15
+ type: string;
16
+ table: string;
17
+ column: string;
18
+ };
19
+ right: {
20
+ type: string;
21
+ table: string;
22
+ column: string;
23
+ };
24
+ } | null;
25
+ }[];
26
+ columns: {
27
+ expr: {
28
+ type: string;
29
+ table: string;
30
+ column: string;
31
+ };
32
+ as: string | null;
33
+ }[] | null;
34
+ where: any;
35
+ orderby: {
36
+ expr: {
37
+ type: string;
38
+ table: null;
39
+ column: string;
40
+ };
41
+ type: import("../models/ReportBuilder").SortDirection;
42
+ }[] | null;
43
+ limit: {
44
+ value: number;
45
+ percent: null;
46
+ seperator?: undefined;
47
+ } | {
48
+ seperator: string;
49
+ value: {
50
+ type: string;
51
+ value: number;
52
+ }[];
53
+ percent?: undefined;
54
+ } | null;
55
+ top: {
56
+ value: number;
57
+ percent: null;
58
+ seperator?: undefined;
59
+ } | {
60
+ seperator: string;
61
+ value: {
62
+ type: string;
63
+ value: number;
64
+ }[];
65
+ percent?: undefined;
66
+ } | null;
67
+ with: null;
68
+ type: string;
69
+ options: null;
70
+ distinct: {
71
+ type: null;
72
+ };
73
+ into: {
74
+ position: null;
75
+ };
76
+ groupby: null;
77
+ having: null;
78
+ window: null;
79
+ };
80
+ export declare const astToReportBuilderState: (ast: any, databaseType: string, schema: Table[]) => ReportBuilderState;
81
+ export declare const isValidPivotForReport: (pivot: Pivot, uniqueValuesByColumn: UniqueValuesByColumn, reportColumns: ColumnInternal[]) => boolean;
82
+ export declare const makePivotValid: (pivot: Pivot, uniqueValuesForPivot: UniqueValuesByColumn, reportColumns: ColumnInternal[]) => {
83
+ pivot: Pivot | null;
84
+ hint: string;
85
+ };
86
+ export declare const formatRows: (rows: any[], columns: Column[], pivot?: boolean, aggregationType?: string, dateBucket?: string) => any;
87
+ export declare const setTypesOnPivot: (newPivot: Pivot, searchColumns: ColumnInternal[]) => Pivot;
88
+ //# sourceMappingURL=reportBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reportBuilder.d.ts","sourceRoot":"","sources":["../../../src/utils/reportBuilder.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAEL,kBAAkB,EAKnB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAmC/D,eAAO,MAAM,uBAAuB,uBACd,kBAAkB,gBACxB,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuBrB,CAAC;AAEF,eAAO,MAAM,uBAAuB,QAC7B,GAAG,gBACM,MAAM,UACZ,KAAK,EAAE,KACd,kBAuBF,CAAC;AAwOF,eAAO,MAAM,qBAAqB,UACzB,KAAK,wBACU,oBAAoB,iBAC3B,cAAc,EAAE,YAuChC,CAAC;AAEF,eAAO,MAAM,cAAc,UAClB,KAAK,wBACU,oBAAoB,iBAC3B,cAAc,EAAE,KAC9B;IAAE,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAgCrC,CAAC;AAEF,eAAO,MAAM,UAAU,SACf,GAAG,EAAE,WACF,MAAM,EAAE,UACT,OAAO,oBACG,MAAM,eACX,MAAM,QA6CpB,CAAC;AAEF,eAAO,MAAM,eAAe,aAChB,KAAK,iBACA,cAAc,EAAE,KAoBzB,KAAK,CAAC"}