@quillsql/react 2.13.43 → 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 (249) 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.js +0 -6
  21. package/dist/cjs/components/Dashboard/DashboardFilter.d.ts.map +1 -1
  22. package/dist/cjs/components/Dashboard/DashboardFilter.js +3 -3
  23. package/dist/cjs/components/Dashboard/DashboardSection.d.ts +1 -1
  24. package/dist/cjs/components/Dashboard/DashboardSection.d.ts.map +1 -1
  25. package/dist/cjs/components/Dashboard/DashboardSection.js +20 -19
  26. package/dist/cjs/components/Dashboard/MetricComponent.d.ts.map +1 -1
  27. package/dist/cjs/components/Dashboard/MetricComponent.js +1 -0
  28. package/dist/cjs/components/Dashboard/TableComponent.d.ts.map +1 -1
  29. package/dist/cjs/components/Dashboard/TableComponent.js +5 -1
  30. package/dist/cjs/components/QuillMultiSelectWithCombo.d.ts.map +1 -1
  31. package/dist/cjs/components/QuillMultiSelectWithCombo.js +58 -8
  32. package/dist/cjs/components/QuillSelect.d.ts.map +1 -1
  33. package/dist/cjs/components/QuillSelect.js +91 -14
  34. package/dist/cjs/components/QuillSelectWithCombo.js +6 -6
  35. package/dist/cjs/components/ReportBuilder/AddColumnModal.d.ts +6 -16
  36. package/dist/cjs/components/ReportBuilder/AddColumnModal.d.ts.map +1 -1
  37. package/dist/cjs/components/ReportBuilder/AddColumnModal.js +172 -75
  38. package/dist/cjs/components/ReportBuilder/AddSortPopover.d.ts +1 -5
  39. package/dist/cjs/components/ReportBuilder/AddSortPopover.d.ts.map +1 -1
  40. package/dist/cjs/components/ReportBuilder/AddSortPopover.js +2 -9
  41. package/dist/cjs/components/ReportBuilder/DraggableColumns.d.ts +17 -0
  42. package/dist/cjs/components/ReportBuilder/DraggableColumns.d.ts.map +1 -0
  43. package/dist/cjs/components/ReportBuilder/DraggableColumns.js +52 -0
  44. package/dist/cjs/components/ReportBuilder/DraggableItem.d.ts +17 -0
  45. package/dist/cjs/components/ReportBuilder/DraggableItem.d.ts.map +1 -0
  46. package/dist/cjs/components/ReportBuilder/DraggableItem.js +17 -0
  47. package/dist/cjs/components/ReportBuilder/FilterModal.d.ts +6 -12
  48. package/dist/cjs/components/ReportBuilder/FilterModal.d.ts.map +1 -1
  49. package/dist/cjs/components/ReportBuilder/FilterModal.js +29 -20
  50. package/dist/cjs/components/ReportBuilder/FilterStack.d.ts +8 -17
  51. package/dist/cjs/components/ReportBuilder/FilterStack.d.ts.map +1 -1
  52. package/dist/cjs/components/ReportBuilder/FilterStack.js +20 -86
  53. package/dist/cjs/components/ReportBuilder/convert.js +6 -6
  54. package/dist/cjs/components/ReportBuilder/ui.d.ts +8 -9
  55. package/dist/cjs/components/ReportBuilder/ui.d.ts.map +1 -1
  56. package/dist/cjs/components/ReportBuilder/ui.js +30 -8
  57. package/dist/cjs/components/ReportBuilder/util.d.ts +2 -5
  58. package/dist/cjs/components/ReportBuilder/util.d.ts.map +1 -1
  59. package/dist/cjs/components/ReportBuilder/util.js +1 -1
  60. package/dist/cjs/components/UiComponents.d.ts +3 -2
  61. package/dist/cjs/components/UiComponents.d.ts.map +1 -1
  62. package/dist/cjs/components/UiComponents.js +13 -13
  63. package/dist/cjs/hooks/useAskQuill.d.ts +1 -1
  64. package/dist/cjs/hooks/useAskQuill.d.ts.map +1 -1
  65. package/dist/cjs/hooks/useAskQuill.js +14 -12
  66. package/dist/cjs/hooks/useDashboard.d.ts +5 -3
  67. package/dist/cjs/hooks/useDashboard.d.ts.map +1 -1
  68. package/dist/cjs/hooks/useDashboard.js +8 -6
  69. package/dist/cjs/hooks/useOnClickOutside.d.ts +1 -0
  70. package/dist/cjs/hooks/useOnClickOutside.d.ts.map +1 -1
  71. package/dist/cjs/hooks/useOnClickOutside.js +33 -0
  72. package/dist/cjs/internals/ReportBuilder/PivotForm.d.ts +2 -1
  73. package/dist/cjs/internals/ReportBuilder/PivotForm.d.ts.map +1 -1
  74. package/dist/cjs/internals/ReportBuilder/PivotForm.js +22 -15
  75. package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts +7 -5
  76. package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
  77. package/dist/cjs/internals/ReportBuilder/PivotModal.js +100 -48
  78. package/dist/cjs/models/Client.d.ts +4 -0
  79. package/dist/cjs/models/Client.d.ts.map +1 -1
  80. package/dist/cjs/models/Dashboard.d.ts +1 -0
  81. package/dist/cjs/models/Dashboard.d.ts.map +1 -1
  82. package/dist/cjs/models/Report.d.ts +2 -0
  83. package/dist/cjs/models/Report.d.ts.map +1 -1
  84. package/dist/cjs/models/ReportBuilder.d.ts +46 -0
  85. package/dist/cjs/models/ReportBuilder.d.ts.map +1 -0
  86. package/dist/cjs/models/ReportBuilder.js +19 -0
  87. package/dist/cjs/models/Tables.d.ts +5 -5
  88. package/dist/cjs/models/Tables.d.ts.map +1 -1
  89. package/dist/cjs/utils/astFilterProcessing.d.ts +4 -0
  90. package/dist/cjs/utils/astFilterProcessing.d.ts.map +1 -1
  91. package/dist/cjs/utils/astFilterProcessing.js +301 -97
  92. package/dist/cjs/utils/astProcessing.d.ts +14 -4
  93. package/dist/cjs/utils/astProcessing.d.ts.map +1 -1
  94. package/dist/cjs/utils/astProcessing.js +38 -4
  95. package/dist/cjs/utils/dashboard.d.ts.map +1 -1
  96. package/dist/cjs/utils/dashboard.js +18 -3
  97. package/dist/cjs/utils/dataFetcher.d.ts.map +1 -1
  98. package/dist/cjs/utils/dataFetcher.js +4 -3
  99. package/dist/cjs/utils/filterProcessing.d.ts +2 -11
  100. package/dist/cjs/utils/filterProcessing.d.ts.map +1 -1
  101. package/dist/cjs/utils/filterProcessing.js +4 -16
  102. package/dist/cjs/utils/pivotConstructor.d.ts +2 -1
  103. package/dist/cjs/utils/pivotConstructor.d.ts.map +1 -1
  104. package/dist/cjs/utils/pivotConstructor.js +4 -2
  105. package/dist/cjs/utils/pivotProcessing.d.ts +17 -7
  106. package/dist/cjs/utils/pivotProcessing.d.ts.map +1 -1
  107. package/dist/cjs/utils/pivotProcessing.js +60 -51
  108. package/dist/cjs/utils/queryConstructor.d.ts.map +1 -1
  109. package/dist/cjs/utils/queryConstructor.js +15 -2
  110. package/dist/cjs/utils/report.d.ts +12 -9
  111. package/dist/cjs/utils/report.d.ts.map +1 -1
  112. package/dist/cjs/utils/report.js +114 -47
  113. package/dist/cjs/utils/reportBuilder.d.ts +88 -0
  114. package/dist/cjs/utils/reportBuilder.d.ts.map +1 -0
  115. package/dist/cjs/utils/reportBuilder.js +395 -0
  116. package/dist/cjs/utils/schema.d.ts +7 -0
  117. package/dist/cjs/utils/schema.d.ts.map +1 -1
  118. package/dist/cjs/utils/schema.js +36 -2
  119. package/dist/cjs/utils/tableProcessing.d.ts +59 -29
  120. package/dist/cjs/utils/tableProcessing.d.ts.map +1 -1
  121. package/dist/cjs/utils/tableProcessing.js +75 -90
  122. package/dist/cjs/utils/ui.d.ts +2 -0
  123. package/dist/cjs/utils/ui.d.ts.map +1 -0
  124. package/dist/cjs/utils/ui.js +18 -0
  125. package/dist/esm/Chart.d.ts.map +1 -1
  126. package/dist/esm/Chart.js +2 -2
  127. package/dist/esm/ChartBuilder.d.ts +1 -0
  128. package/dist/esm/ChartBuilder.d.ts.map +1 -1
  129. package/dist/esm/ChartBuilder.js +49 -15
  130. package/dist/esm/ChartEditor.d.ts +1 -1
  131. package/dist/esm/ChartEditor.d.ts.map +1 -1
  132. package/dist/esm/ChartEditor.js +2 -2
  133. package/dist/esm/Context.d.ts.map +1 -1
  134. package/dist/esm/Context.js +37 -26
  135. package/dist/esm/Dashboard.d.ts +2 -2
  136. package/dist/esm/Dashboard.d.ts.map +1 -1
  137. package/dist/esm/Dashboard.js +119 -103
  138. package/dist/esm/ReportBuilder.d.ts.map +1 -1
  139. package/dist/esm/ReportBuilder.js +878 -1581
  140. package/dist/esm/SQLEditor.d.ts.map +1 -1
  141. package/dist/esm/SQLEditor.js +23 -4
  142. package/dist/esm/Table.d.ts.map +1 -1
  143. package/dist/esm/components/Chart/CustomReferenceLine.js +1 -1
  144. package/dist/esm/components/Chart/GaugeChart.js +0 -6
  145. package/dist/esm/components/Dashboard/DashboardFilter.d.ts.map +1 -1
  146. package/dist/esm/components/Dashboard/DashboardFilter.js +3 -3
  147. package/dist/esm/components/Dashboard/DashboardSection.d.ts +1 -1
  148. package/dist/esm/components/Dashboard/DashboardSection.d.ts.map +1 -1
  149. package/dist/esm/components/Dashboard/DashboardSection.js +21 -20
  150. package/dist/esm/components/Dashboard/MetricComponent.d.ts.map +1 -1
  151. package/dist/esm/components/Dashboard/MetricComponent.js +1 -0
  152. package/dist/esm/components/Dashboard/TableComponent.d.ts.map +1 -1
  153. package/dist/esm/components/Dashboard/TableComponent.js +5 -1
  154. package/dist/esm/components/QuillMultiSelectWithCombo.d.ts.map +1 -1
  155. package/dist/esm/components/QuillMultiSelectWithCombo.js +57 -7
  156. package/dist/esm/components/QuillSelect.d.ts.map +1 -1
  157. package/dist/esm/components/QuillSelect.js +58 -14
  158. package/dist/esm/components/QuillSelectWithCombo.js +6 -6
  159. package/dist/esm/components/ReportBuilder/AddColumnModal.d.ts +6 -16
  160. package/dist/esm/components/ReportBuilder/AddColumnModal.d.ts.map +1 -1
  161. package/dist/esm/components/ReportBuilder/AddColumnModal.js +173 -76
  162. package/dist/esm/components/ReportBuilder/AddSortPopover.d.ts +1 -5
  163. package/dist/esm/components/ReportBuilder/AddSortPopover.d.ts.map +1 -1
  164. package/dist/esm/components/ReportBuilder/AddSortPopover.js +2 -9
  165. package/dist/esm/components/ReportBuilder/DraggableColumns.d.ts +17 -0
  166. package/dist/esm/components/ReportBuilder/DraggableColumns.d.ts.map +1 -0
  167. package/dist/esm/components/ReportBuilder/DraggableColumns.js +46 -0
  168. package/dist/esm/components/ReportBuilder/DraggableItem.d.ts +17 -0
  169. package/dist/esm/components/ReportBuilder/DraggableItem.d.ts.map +1 -0
  170. package/dist/esm/components/ReportBuilder/DraggableItem.js +14 -0
  171. package/dist/esm/components/ReportBuilder/FilterModal.d.ts +6 -12
  172. package/dist/esm/components/ReportBuilder/FilterModal.d.ts.map +1 -1
  173. package/dist/esm/components/ReportBuilder/FilterModal.js +29 -20
  174. package/dist/esm/components/ReportBuilder/FilterStack.d.ts +8 -17
  175. package/dist/esm/components/ReportBuilder/FilterStack.d.ts.map +1 -1
  176. package/dist/esm/components/ReportBuilder/FilterStack.js +21 -87
  177. package/dist/esm/components/ReportBuilder/convert.js +6 -6
  178. package/dist/esm/components/ReportBuilder/ui.d.ts +8 -9
  179. package/dist/esm/components/ReportBuilder/ui.d.ts.map +1 -1
  180. package/dist/esm/components/ReportBuilder/ui.js +33 -11
  181. package/dist/esm/components/ReportBuilder/util.d.ts +2 -5
  182. package/dist/esm/components/ReportBuilder/util.d.ts.map +1 -1
  183. package/dist/esm/components/ReportBuilder/util.js +1 -1
  184. package/dist/esm/components/UiComponents.d.ts +3 -2
  185. package/dist/esm/components/UiComponents.d.ts.map +1 -1
  186. package/dist/esm/components/UiComponents.js +13 -13
  187. package/dist/esm/hooks/useAskQuill.d.ts +1 -1
  188. package/dist/esm/hooks/useAskQuill.d.ts.map +1 -1
  189. package/dist/esm/hooks/useAskQuill.js +14 -12
  190. package/dist/esm/hooks/useDashboard.d.ts +5 -3
  191. package/dist/esm/hooks/useDashboard.d.ts.map +1 -1
  192. package/dist/esm/hooks/useDashboard.js +8 -6
  193. package/dist/esm/hooks/useOnClickOutside.d.ts +1 -0
  194. package/dist/esm/hooks/useOnClickOutside.d.ts.map +1 -1
  195. package/dist/esm/hooks/useOnClickOutside.js +31 -0
  196. package/dist/esm/internals/ReportBuilder/PivotForm.d.ts +2 -1
  197. package/dist/esm/internals/ReportBuilder/PivotForm.d.ts.map +1 -1
  198. package/dist/esm/internals/ReportBuilder/PivotForm.js +23 -16
  199. package/dist/esm/internals/ReportBuilder/PivotModal.d.ts +7 -5
  200. package/dist/esm/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
  201. package/dist/esm/internals/ReportBuilder/PivotModal.js +101 -49
  202. package/dist/esm/models/Client.d.ts +4 -0
  203. package/dist/esm/models/Client.d.ts.map +1 -1
  204. package/dist/esm/models/Dashboard.d.ts +1 -0
  205. package/dist/esm/models/Dashboard.d.ts.map +1 -1
  206. package/dist/esm/models/Report.d.ts +2 -0
  207. package/dist/esm/models/Report.d.ts.map +1 -1
  208. package/dist/esm/models/ReportBuilder.d.ts +46 -0
  209. package/dist/esm/models/ReportBuilder.d.ts.map +1 -0
  210. package/dist/esm/models/ReportBuilder.js +16 -0
  211. package/dist/esm/models/Tables.d.ts +5 -5
  212. package/dist/esm/models/Tables.d.ts.map +1 -1
  213. package/dist/esm/utils/astFilterProcessing.d.ts +4 -0
  214. package/dist/esm/utils/astFilterProcessing.d.ts.map +1 -1
  215. package/dist/esm/utils/astFilterProcessing.js +300 -97
  216. package/dist/esm/utils/astProcessing.d.ts +14 -4
  217. package/dist/esm/utils/astProcessing.d.ts.map +1 -1
  218. package/dist/esm/utils/astProcessing.js +38 -5
  219. package/dist/esm/utils/dashboard.d.ts.map +1 -1
  220. package/dist/esm/utils/dashboard.js +18 -3
  221. package/dist/esm/utils/dataFetcher.d.ts.map +1 -1
  222. package/dist/esm/utils/dataFetcher.js +4 -3
  223. package/dist/esm/utils/filterProcessing.d.ts +2 -11
  224. package/dist/esm/utils/filterProcessing.d.ts.map +1 -1
  225. package/dist/esm/utils/filterProcessing.js +4 -15
  226. package/dist/esm/utils/pivotConstructor.d.ts +2 -1
  227. package/dist/esm/utils/pivotConstructor.d.ts.map +1 -1
  228. package/dist/esm/utils/pivotConstructor.js +4 -2
  229. package/dist/esm/utils/pivotProcessing.d.ts +17 -7
  230. package/dist/esm/utils/pivotProcessing.d.ts.map +1 -1
  231. package/dist/esm/utils/pivotProcessing.js +58 -49
  232. package/dist/esm/utils/queryConstructor.d.ts.map +1 -1
  233. package/dist/esm/utils/queryConstructor.js +15 -2
  234. package/dist/esm/utils/report.d.ts +12 -9
  235. package/dist/esm/utils/report.d.ts.map +1 -1
  236. package/dist/esm/utils/report.js +116 -46
  237. package/dist/esm/utils/reportBuilder.d.ts +88 -0
  238. package/dist/esm/utils/reportBuilder.d.ts.map +1 -0
  239. package/dist/esm/utils/reportBuilder.js +386 -0
  240. package/dist/esm/utils/schema.d.ts +7 -0
  241. package/dist/esm/utils/schema.d.ts.map +1 -1
  242. package/dist/esm/utils/schema.js +34 -1
  243. package/dist/esm/utils/tableProcessing.d.ts +59 -29
  244. package/dist/esm/utils/tableProcessing.d.ts.map +1 -1
  245. package/dist/esm/utils/tableProcessing.js +71 -86
  246. package/dist/esm/utils/ui.d.ts +2 -0
  247. package/dist/esm/utils/ui.d.ts.map +1 -0
  248. package/dist/esm/utils/ui.js +14 -0
  249. package/package.json +1 -1
@@ -0,0 +1,395 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.setTypesOnPivot = exports.formatRows = exports.makePivotValid = exports.isValidPivotForReport = exports.astToReportBuilderState = exports.reportBuilderStateToAst = void 0;
4
+ const convert_1 = require("../components/ReportBuilder/convert");
5
+ const util_1 = require("../components/ReportBuilder/util");
6
+ const astFilterProcessing_1 = require("./astFilterProcessing");
7
+ const dates_1 = require("./dates");
8
+ const filterProcessing_1 = require("./filterProcessing");
9
+ const pivotProcessing_1 = require("./pivotProcessing");
10
+ const valueFormatter_1 = require("./valueFormatter");
11
+ const baseAstForReportBuilder = {
12
+ with: null,
13
+ type: 'select',
14
+ options: null,
15
+ distinct: {
16
+ type: null,
17
+ },
18
+ columns: [],
19
+ into: {
20
+ position: null,
21
+ },
22
+ from: [],
23
+ where: null,
24
+ groupby: null,
25
+ having: null,
26
+ orderby: null,
27
+ limit: null,
28
+ window: null,
29
+ };
30
+ // Primary conversion functions
31
+ const reportBuilderStateToAst = (reportBuilderState, databaseType) => {
32
+ const astFrom = tableToAstFrom(reportBuilderState.tables);
33
+ const astColumns = columnsToAstColumns(reportBuilderState.columns);
34
+ const filterTree = reportBuilderState.filterStack && reportBuilderState.filterStack.length > 0
35
+ ? (0, filterProcessing_1.filterStackToFilterTree)(reportBuilderState.filterStack)
36
+ : null;
37
+ const astWhere = filterTree
38
+ ? (0, astFilterProcessing_1.filterTreeToAst)(filterTree, databaseType)
39
+ : null;
40
+ const astOrderby = sortToAstOrderBy(reportBuilderState.sort);
41
+ const astLimit = limitToAstLimit(reportBuilderState.limit, databaseType);
42
+ return {
43
+ ...baseAstForReportBuilder,
44
+ from: astFrom,
45
+ columns: astColumns,
46
+ where: astWhere,
47
+ orderby: astOrderby,
48
+ limit: databaseType.toLowerCase() === 'mssql' ? null : astLimit,
49
+ top: databaseType.toLowerCase() === 'mssql' ? astLimit : null,
50
+ };
51
+ };
52
+ exports.reportBuilderStateToAst = reportBuilderStateToAst;
53
+ const astToReportBuilderState = (ast, databaseType, schema) => {
54
+ const tables = astFromToTables(ast.from);
55
+ const defaultTable = tables.length === 1 ? tables[0]?.name : undefined;
56
+ const columns = astColumnsToColumns(ast.columns, defaultTable);
57
+ const relevantColumns = tables.flatMap((table) => {
58
+ const schemaTable = schema.find((s) => s.name === table.name);
59
+ return schemaTable ? schemaTable.columns : [];
60
+ });
61
+ const pivot = astGroupByToPivot(ast.groupby, relevantColumns);
62
+ const sort = astOrderByToSort(ast.orderby);
63
+ const limit = astLimitToLimit(ast.limit);
64
+ const filterStack = (0, filterProcessing_1.generateFilterStack)((0, astFilterProcessing_1.astToFilterTree)(ast.where, databaseType.toLowerCase()));
65
+ return {
66
+ tables,
67
+ columns,
68
+ filterStack,
69
+ pivot,
70
+ sort,
71
+ limit,
72
+ };
73
+ };
74
+ exports.astToReportBuilderState = astToReportBuilderState;
75
+ // Helper conversion functions
76
+ const astColumnsToColumns = (node, defaultTable) => {
77
+ // expected
78
+ /*
79
+ [
80
+ {
81
+ "expr": {
82
+ "type": "column_ref",
83
+ "table": null,
84
+ "column": "field"
85
+ },
86
+ "as": null
87
+ },
88
+ ]
89
+ */
90
+ if (!node || !node.length || node.length === 0) {
91
+ return [];
92
+ }
93
+ return node.map((node) => {
94
+ return {
95
+ field: (0, astFilterProcessing_1.getFieldFromExpression)(node.expr),
96
+ table: node.expr.table ?? defaultTable ?? null,
97
+ alias: node.as ?? null,
98
+ };
99
+ });
100
+ };
101
+ const astGroupByToPivot = (node, columnInfo) => {
102
+ if (!node) {
103
+ return null;
104
+ }
105
+ return (0, convert_1.convertASTToPivotData)(node, columnInfo);
106
+ };
107
+ const astFromToTables = (node) => {
108
+ // expected
109
+ /*
110
+ [
111
+ {
112
+ "db": null,
113
+ "table": "all_tenant_data",
114
+ "as": null,
115
+ "join": 'INNER JOIN',
116
+ }
117
+ ]
118
+ */
119
+ if (!node) {
120
+ return [];
121
+ }
122
+ return node.map((_node) => {
123
+ return {
124
+ name: _node.table,
125
+ alias: _node.as ?? null,
126
+ join: _node.join
127
+ ? {
128
+ type: _node.join,
129
+ condition: {
130
+ operator: _node.on.operator,
131
+ left: {
132
+ field: (0, astFilterProcessing_1.getFieldFromExpression)(_node.on.left.column.expr || _node.on.left.column),
133
+ table: _node.on.left.table,
134
+ },
135
+ right: {
136
+ field: (0, astFilterProcessing_1.getFieldFromExpression)(_node.on.right.column.expr || _node.on.right.column),
137
+ table: _node.on.right.table,
138
+ },
139
+ },
140
+ }
141
+ : null,
142
+ };
143
+ });
144
+ };
145
+ const astOrderByToSort = (node) => {
146
+ // expected
147
+ /*
148
+ [
149
+ {
150
+ "expr": {
151
+ "type": "column_ref",
152
+ "table": null,
153
+ "column": "county_id"
154
+ },
155
+ "type": "DESC"
156
+ }
157
+ ]
158
+ */
159
+ if (!node) {
160
+ return [];
161
+ }
162
+ return node
163
+ .map((node) => {
164
+ return node.expr?.column
165
+ ? { field: node.expr.column, direction: node.type ?? 'ASC' }
166
+ : null;
167
+ })
168
+ .filter((node) => node);
169
+ };
170
+ const astLimitToLimit = (node) => {
171
+ // expected
172
+ /*
173
+ {
174
+ "seperator": "",
175
+ "value": [
176
+ {
177
+ "type": "number",
178
+ "value": 10
179
+ }
180
+ ]
181
+ }
182
+ */
183
+ if (!node ||
184
+ !node.value ||
185
+ node.value.length === 0 ||
186
+ !node.value?.[0]?.value) {
187
+ return null;
188
+ }
189
+ return { value: node.value[0].value };
190
+ };
191
+ const createOperatorFromJoinCondition = (condition) => {
192
+ return {
193
+ type: 'binary_expr',
194
+ operator: condition.operator,
195
+ left: {
196
+ type: 'column_ref',
197
+ table: condition.left.table,
198
+ column: condition.left.field,
199
+ },
200
+ right: {
201
+ type: 'column_ref',
202
+ table: condition.right.table,
203
+ column: condition.right.field,
204
+ },
205
+ };
206
+ };
207
+ const tableToAstFrom = (tables) => {
208
+ return tables.map((table) => {
209
+ return {
210
+ db: null,
211
+ table: table.name,
212
+ as: table.alias ?? null,
213
+ join: table.join ? table.join.type : null,
214
+ on: table.join
215
+ ? createOperatorFromJoinCondition(table.join.condition)
216
+ : null,
217
+ };
218
+ });
219
+ };
220
+ const columnsToAstColumns = (columns) => {
221
+ if (!columns) {
222
+ return null;
223
+ }
224
+ return columns.map((column) => {
225
+ return {
226
+ expr: {
227
+ type: 'column_ref',
228
+ table: column.table ?? null,
229
+ column: column.field,
230
+ },
231
+ as: column.alias ?? null,
232
+ };
233
+ });
234
+ };
235
+ const sortToAstOrderBy = (sort) => {
236
+ if (!sort || sort.length === 0) {
237
+ return null;
238
+ }
239
+ return sort.map((sort) => {
240
+ return {
241
+ expr: {
242
+ type: 'column_ref',
243
+ table: null,
244
+ column: sort.field,
245
+ },
246
+ type: sort.direction,
247
+ };
248
+ });
249
+ };
250
+ const limitToAstLimit = (limit, databaseType) => {
251
+ if (!limit) {
252
+ return null;
253
+ }
254
+ if (databaseType.toLowerCase() === 'mssql') {
255
+ return {
256
+ value: limit.value,
257
+ percent: null,
258
+ };
259
+ }
260
+ return {
261
+ seperator: '',
262
+ value: [
263
+ {
264
+ type: 'number',
265
+ value: limit.value,
266
+ },
267
+ ],
268
+ };
269
+ };
270
+ // Validation
271
+ const isValidPivotForReport = (pivot, uniqueValuesByColumn, reportColumns) => {
272
+ if (!(0, pivotProcessing_1.isValidPivot)(pivot).valid) {
273
+ return false;
274
+ }
275
+ // check that pivot rows and columns
276
+ const pivotColumns = reportColumns;
277
+ const possibleOptions = (0, pivotProcessing_1.getPossiblePivotFieldOptions)(pivotColumns, uniqueValuesByColumn);
278
+ if (pivot.rowField &&
279
+ pivot.columnField &&
280
+ pivot.rowField === pivot.columnField) {
281
+ return false;
282
+ }
283
+ if (pivot.rowField && !possibleOptions.rowFields.includes(pivot.rowField)) {
284
+ return false;
285
+ }
286
+ if (pivot.columnField &&
287
+ !possibleOptions.columnFields.includes(pivot.columnField)) {
288
+ return false;
289
+ }
290
+ for (const agg of pivot.aggregations ?? []) {
291
+ if (agg.valueField &&
292
+ !possibleOptions.valueFields.includes(agg.valueField)) {
293
+ return false;
294
+ }
295
+ }
296
+ if (!pivot.aggregations || pivot.aggregations.length === 0) {
297
+ return false;
298
+ }
299
+ return true;
300
+ };
301
+ exports.isValidPivotForReport = isValidPivotForReport;
302
+ const makePivotValid = (pivot, uniqueValuesForPivot, reportColumns) => {
303
+ if (!pivot) {
304
+ return { pivot: null, hint: '' };
305
+ }
306
+ // try flipping row and column field
307
+ let newPivot = {
308
+ ...pivot,
309
+ rowField: pivot.columnField,
310
+ columnField: pivot.rowField,
311
+ };
312
+ if ((0, exports.isValidPivotForReport)(newPivot, uniqueValuesForPivot, reportColumns)) {
313
+ newPivot = (0, exports.setTypesOnPivot)(newPivot, reportColumns);
314
+ return {
315
+ pivot: newPivot,
316
+ hint: 'Flipping pivot row and column fields to maintain validity',
317
+ };
318
+ }
319
+ // try removing column field
320
+ newPivot = {
321
+ ...pivot,
322
+ rowField: pivot.rowField,
323
+ columnField: undefined,
324
+ };
325
+ if ((0, exports.isValidPivotForReport)(newPivot, uniqueValuesForPivot, reportColumns)) {
326
+ newPivot = (0, exports.setTypesOnPivot)(newPivot, reportColumns);
327
+ return {
328
+ pivot: newPivot,
329
+ hint: 'Removing column field to maintain validity',
330
+ };
331
+ }
332
+ return { pivot: null, hint: '' };
333
+ };
334
+ exports.makePivotValid = makePivotValid;
335
+ const formatRows = (rows, columns, pivot, aggregationType, dateBucket) => {
336
+ const copiedRows = (0, util_1.deepCopy)(rows);
337
+ if (pivot) {
338
+ const formattedRows = copiedRows.map((row) => {
339
+ const formattedRow = row;
340
+ Object.keys(row).forEach((key) => {
341
+ const column = columns.find((c) => c.field === key);
342
+ let format = 'string';
343
+ if (!column) {
344
+ format =
345
+ aggregationType === 'count' ? 'whole_number' : 'two_decimal_places';
346
+ }
347
+ else {
348
+ format = valueFormatter_1.DATE_FORMAT_TYPES.includes(column.format)
349
+ ? dateBucket
350
+ ? (0, dates_1.getDateFormatFromBucket)(dateBucket)
351
+ : 'MMM_yyyy'
352
+ : 'string';
353
+ }
354
+ const formattedValue = (0, valueFormatter_1.quillFormat)({
355
+ value: row[key],
356
+ format,
357
+ });
358
+ formattedRow[key] = formattedValue;
359
+ });
360
+ return formattedRow;
361
+ });
362
+ return formattedRows;
363
+ }
364
+ else {
365
+ const formattedRows = copiedRows.map((row) => {
366
+ return columns.reduce((formattedRow, column) => {
367
+ // Apply the format function to each field in the row
368
+ const formattedValue = (0, valueFormatter_1.quillFormat)({
369
+ value: row[column.field],
370
+ format: column.format,
371
+ });
372
+ formattedRow[column.field] = formattedValue;
373
+ return formattedRow;
374
+ }, {});
375
+ });
376
+ return formattedRows;
377
+ }
378
+ };
379
+ exports.formatRows = formatRows;
380
+ const setTypesOnPivot = (newPivot, searchColumns) => ({
381
+ ...newPivot,
382
+ aggregations: newPivot.aggregations?.map((agg) => ({
383
+ ...agg,
384
+ valueFieldType: searchColumns.find((c) => c.field === agg.valueField)
385
+ ?.jsType,
386
+ valueField2Type: searchColumns.find((c) => c.field === agg.valueField2)
387
+ ?.jsType,
388
+ })),
389
+ valueField: newPivot.aggregations?.[0]?.valueField,
390
+ valueField2: newPivot.aggregations?.[0]?.valueField2,
391
+ aggregationType: newPivot.aggregations?.[0]?.aggregationType,
392
+ valueFieldType: searchColumns.find((c) => c.field === newPivot.aggregations?.[0]?.valueField)?.jsType,
393
+ valueField2Type: searchColumns.find((c) => c.field === newPivot.aggregations?.[0]?.valueField2)?.jsType,
394
+ });
395
+ exports.setTypesOnPivot = setTypesOnPivot;
@@ -30,4 +30,11 @@ export declare const getSchemaInfo: ({ client, caller, tenants, tableIds, abortS
30
30
  schemaWithCustomFields: Table[];
31
31
  }>;
32
32
  export declare const customFieldToColumnInternal: (customField: CustomField) => ColumnInternal;
33
+ export declare const getSchemaForeignKeyMapping: (schema: Table[]) => {
34
+ [table: string]: {
35
+ foreignTable: string;
36
+ foreignTablePrimaryKey: string;
37
+ foreignKey: string;
38
+ }[];
39
+ };
33
40
  //# sourceMappingURL=schema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/utils/schema.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AA8BzC,eAAO,MAAM,kBAAkB,8CAK5B;IACD,MAAM,EAAE,mBAAmB,CAAC;IAC5B,OAAO,EACH;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;KAAE,EAAE,GACzD,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B,KAAG,OAAO,CAAC;IAAE,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,EAAE,CAAA;CAAE,GAAG,IAAI,CAmFxD,CAAC;AAEF,eAAO,MAAM,aAAa,wDAMvB;IACD,MAAM,EAAE,mBAAmB,CAAC;IAC5B,OAAO,CAAC,EACJ;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;KAAE,EAAE,GACzD,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B,KAAG,OAAO,CAAC;IACV,UAAU,EAAE,KAAK,EAAE,CAAC;IACpB,mBAAmB,EAAE;QAAE,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,EAAE,CAAA;KAAE,GAAG,IAAI,CAAC;IACnE,sBAAsB,EAAE,KAAK,EAAE,CAAC;CACjC,CAiEA,CAAC;AA0BF,eAAO,MAAM,2BAA2B,gBACzB,WAAW,KACvB,cAaF,CAAC"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/utils/schema.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AA8BzC,eAAO,MAAM,kBAAkB,8CAK5B;IACD,MAAM,EAAE,mBAAmB,CAAC;IAC5B,OAAO,EACH;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;KAAE,EAAE,GACzD,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B,KAAG,OAAO,CAAC;IAAE,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,EAAE,CAAA;CAAE,GAAG,IAAI,CAwFxD,CAAC;AAEF,eAAO,MAAM,aAAa,wDAMvB;IACD,MAAM,EAAE,mBAAmB,CAAC;IAC5B,OAAO,CAAC,EACJ;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;KAAE,EAAE,GACzD,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B,KAAG,OAAO,CAAC;IACV,UAAU,EAAE,KAAK,EAAE,CAAC;IACpB,mBAAmB,EAAE;QAAE,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,EAAE,CAAA;KAAE,GAAG,IAAI,CAAC;IACnE,sBAAsB,EAAE,KAAK,EAAE,CAAC;CACjC,CAgEA,CAAC;AA2BF,eAAO,MAAM,2BAA2B,gBACzB,WAAW,KACvB,cAaF,CAAC;AAIF,eAAO,MAAM,0BAA0B,WAC7B,KAAK,EAAE,KACd;IACD,CAAC,KAAK,EAAE,MAAM,GAAG;QACf,YAAY,EAAE,MAAM,CAAC;QACrB,sBAAsB,EAAE,MAAM,CAAC;QAC/B,UAAU,EAAE,MAAM,CAAC;KACpB,EAAE,CAAC;CAiCL,CAAC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.customFieldToColumnInternal = exports.getSchemaInfo = exports.getCustomFieldInfo = void 0;
3
+ exports.getSchemaForeignKeyMapping = exports.customFieldToColumnInternal = exports.getSchemaInfo = exports.getCustomFieldInfo = void 0;
4
4
  const columnProcessing_1 = require("./columnProcessing");
5
5
  const parseResponse = (results) => {
6
6
  if (results.data?.data) {
@@ -80,7 +80,12 @@ const getCustomFieldInfo = async ({ client, tenants, caller = 'se', abortSignal,
80
80
  item.type)) {
81
81
  return false;
82
82
  }
83
- customFieldsByTableSet.add(item.viewName + item.refTable + item.refField + item.field + item.refColumn + item.type);
83
+ customFieldsByTableSet.add(item.viewName +
84
+ item.refTable +
85
+ item.refField +
86
+ item.field +
87
+ item.refColumn +
88
+ item.type);
84
89
  return true;
85
90
  });
86
91
  }
@@ -177,6 +182,7 @@ function convertSchemaInfoToTable(schemaData) {
177
182
  displayName: table.displayName,
178
183
  broken: table.broken,
179
184
  error: table.error,
185
+ ownerTenantFields: table.ownerTenantFields,
180
186
  };
181
187
  tables.push(newTable);
182
188
  });
@@ -195,3 +201,31 @@ const customFieldToColumnInternal = (customField) => {
195
201
  };
196
202
  };
197
203
  exports.customFieldToColumnInternal = customFieldToColumnInternal;
204
+ // TODO: This function is highly speculative and needs generalization
205
+ // NOTE: EXPERIMENTAL FUNCTION, DON'T USE FOR SENSITIVE STUFF
206
+ const getSchemaForeignKeyMapping = (schema) => {
207
+ const map = {};
208
+ schema.forEach((table) => {
209
+ table.columns.forEach((column) => {
210
+ if (column.field.toLowerCase().endsWith('_id')) {
211
+ const foreignTableName = `${column.field.slice(0, -3)}s`;
212
+ const foreignTable = schema.find((t) => t.name === foreignTableName);
213
+ if (foreignTable &&
214
+ foreignTable.columns.some((c) => c.field === 'id')) {
215
+ const foreignTablePrimaryKey = 'id';
216
+ const foreignKey = column.field;
217
+ if (!map[table.name]) {
218
+ map[table.name] = [];
219
+ }
220
+ map[table.name]?.push({
221
+ foreignTable: foreignTableName,
222
+ foreignTablePrimaryKey,
223
+ foreignKey,
224
+ });
225
+ }
226
+ }
227
+ });
228
+ });
229
+ return map;
230
+ };
231
+ exports.getSchemaForeignKeyMapping = getSchemaForeignKeyMapping;
@@ -4,8 +4,9 @@ import { Column, ColumnInternal } from '../models/Columns';
4
4
  import { DashboardFilter } from '../models/Filter';
5
5
  import { Pagination } from '../models/Pagination';
6
6
  import { Pivot } from '../models/Pivot';
7
+ import { ReportBuilderColumn } from '../models/ReportBuilder';
7
8
  import { CustomField } from '../models/Schema';
8
- import { DateRangesByColumn } from '../models/Tables';
9
+ import { DateRangesByColumn, UniqueValuesByTable, UniqueValuesByColumn } from '../models/Tables';
9
10
  export interface AdditionalProcessing {
10
11
  sort?: {
11
12
  field: string;
@@ -15,29 +16,65 @@ export interface AdditionalProcessing {
15
16
  last?: number;
16
17
  }
17
18
  export declare const hasColumnAlias: (columns: Column[], referencedColumns: string[]) => boolean;
18
- export declare const getUniqueValuesByColumns: (columns: Column[], query: string, rows: any, client: QuillProviderClient, tenants: {
19
- tenantField: string;
20
- tenantIds: (string | number)[];
21
- }[] | (string | number)[] | undefined, customFields: {
22
- [table: string]: CustomField[];
23
- }, filters?: DashboardFilter[], dashboardName?: string) => Promise<{
24
- [column: string]: {
25
- [value: string]: boolean;
19
+ export declare const getUniqueValuesByQuery: ({ columns, query, client, tenants, customFields, filters, dashboardName, }: {
20
+ columns: Column[];
21
+ query: string;
22
+ client: QuillProviderClient;
23
+ tenants: {
24
+ tenantField: string;
25
+ tenantIds: (string | number)[];
26
+ }[] | (string | number)[] | undefined;
27
+ customFields: {
28
+ [table: string]: CustomField[];
26
29
  };
27
- } | null>;
28
- export declare const getUniqueStringValues: (columns: ColumnInternal[], tableName: string, client: any, tenants: {
29
- tenantField: string;
30
- tenantIds: (string | number)[];
31
- }[] | (string | number)[] | undefined, customFields?: any, previousUniqueValues?: any, withExceededColumns?: boolean, query?: string, dashboardName?: string) => Promise<any>;
32
- export declare const getRelevantInfoFromQuery: (columns: ColumnInternal[], client: QuillProviderClient, tenants: {
33
- tenantField: string;
34
- tenantIds: (string | number)[];
35
- }[] | (string | number)[] | undefined, query: string, customFields?: any, dashboardName?: string) => Promise<{
36
- uniqueStrings?: {
37
- [column: string]: {
38
- [value: string]: boolean;
39
- };
30
+ filters?: DashboardFilter[];
31
+ dashboardName: string;
32
+ }) => Promise<UniqueValuesByColumn | null>;
33
+ export declare const getUniqueStringValuesByColumn: ({ columns, tableName, client, tenants, customFields, withExceededColumns, query, dashboardName, }: {
34
+ columns: ColumnInternal[];
35
+ tableName: string;
36
+ client: any;
37
+ tenants?: {
38
+ tenantField: string;
39
+ tenantIds: (string | number)[];
40
+ }[] | (string | number)[];
41
+ customFields?: any;
42
+ withExceededColumns?: boolean;
43
+ query?: string;
44
+ dashboardName: string;
45
+ }) => Promise<UniqueValuesByColumn>;
46
+ export declare const getUniqueStringValuesByTable: ({ tables, columns, client, tenants, dashboardName, customFields, withExceededColumns, queryTemplate, }: {
47
+ tables: string[];
48
+ columns: ColumnInternal[];
49
+ client: QuillProviderClient;
50
+ tenants?: {
51
+ tenantField: string;
52
+ tenantIds: (string | number)[];
53
+ }[] | (string | number)[];
54
+ dashboardName: string;
55
+ customFields?: {
56
+ [table: string]: CustomField[];
40
57
  };
58
+ withExceededColumns?: boolean;
59
+ queryTemplate?: string;
60
+ }) => Promise<UniqueValuesByTable>;
61
+ export declare const getRelevantInfoFromQuery: ({ tables, columns, aliasedColumns, reportBuilderColumns, client, tenants, query, queryTemplate, customFields, dashboardName, }: {
62
+ tables: string[];
63
+ columns: ColumnInternal[];
64
+ aliasedColumns: ColumnInternal[];
65
+ reportBuilderColumns: ReportBuilderColumn[];
66
+ client: QuillProviderClient;
67
+ tenants: {
68
+ tenantField: string;
69
+ tenantIds: (string | number)[];
70
+ }[] | (string | number)[] | undefined;
71
+ query: string;
72
+ queryTemplate: string;
73
+ customFields?: any;
74
+ dashboardName: string;
75
+ }) => Promise<{
76
+ uniqueStrings?: UniqueValuesByTable;
77
+ columnUniqueValues?: UniqueValuesByColumn;
41
78
  dateRanges?: DateRangesByColumn;
42
79
  error?: string;
43
80
  }>;
@@ -140,11 +177,4 @@ export declare const fetchTableByAST: (ast: NodeSQLParser.Select, client: QuillP
140
177
  itemQuery?: string[];
141
178
  referencedTables?: string[];
142
179
  }>;
143
- export declare const convertUniqueValuesByColumnToUniqueValueStrings: (uniqueValuesByColumns: {
144
- [column: string]: {
145
- [value: string]: boolean;
146
- };
147
- }) => {
148
- [columnName: string]: string[];
149
- };
150
180
  //# sourceMappingURL=tableProcessing.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tableProcessing.d.ts","sourceRoot":"","sources":["../../../src/utils/tableProcessing.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tableProcessing.d.ts","sourceRoot":"","sources":["../../../src/utils/tableProcessing.ts"],"names":[],"mappings":"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"}