@quillsql/react 2.13.26 → 2.13.28

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 (243) 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 +20 -2
  4. package/dist/cjs/ChartBuilder.d.ts.map +1 -1
  5. package/dist/cjs/ChartBuilder.js +130 -36
  6. package/dist/cjs/ChartEditor.d.ts +5 -3
  7. package/dist/cjs/ChartEditor.d.ts.map +1 -1
  8. package/dist/cjs/ChartEditor.js +4 -5
  9. package/dist/cjs/Context.d.ts +15 -4
  10. package/dist/cjs/Context.d.ts.map +1 -1
  11. package/dist/cjs/Context.js +37 -60
  12. package/dist/cjs/Dashboard.d.ts +4 -0
  13. package/dist/cjs/Dashboard.d.ts.map +1 -1
  14. package/dist/cjs/Dashboard.js +78 -23
  15. package/dist/cjs/QuillProvider.d.ts +12 -9
  16. package/dist/cjs/QuillProvider.d.ts.map +1 -1
  17. package/dist/cjs/QuillProvider.js +2 -2
  18. package/dist/cjs/ReportBuilder.d.ts +9 -1
  19. package/dist/cjs/ReportBuilder.d.ts.map +1 -1
  20. package/dist/cjs/ReportBuilder.js +198 -80
  21. package/dist/cjs/SQLEditor.d.ts +5 -1
  22. package/dist/cjs/SQLEditor.d.ts.map +1 -1
  23. package/dist/cjs/SQLEditor.js +81 -18
  24. package/dist/cjs/Table.d.ts.map +1 -1
  25. package/dist/cjs/Table.js +5 -4
  26. package/dist/cjs/components/Chart/InternalChart.d.ts.map +1 -1
  27. package/dist/cjs/components/Chart/InternalChart.js +106 -27
  28. package/dist/cjs/components/Chart/PieChart.d.ts.map +1 -1
  29. package/dist/cjs/components/Chart/PieChart.js +10 -7
  30. package/dist/cjs/components/Dashboard/DashboardFilter.d.ts +3 -2
  31. package/dist/cjs/components/Dashboard/DashboardFilter.d.ts.map +1 -1
  32. package/dist/cjs/components/Dashboard/DashboardFilter.js +65 -65
  33. package/dist/cjs/components/Dashboard/DataLoader.d.ts.map +1 -1
  34. package/dist/cjs/components/Dashboard/DataLoader.js +81 -34
  35. package/dist/cjs/components/Dashboard/MetricComponent.js +3 -3
  36. package/dist/cjs/components/Dashboard/util.d.ts.map +1 -1
  37. package/dist/cjs/components/Dashboard/util.js +6 -2
  38. package/dist/cjs/components/QuillMultiSelectWithCombo.d.ts +1 -1
  39. package/dist/cjs/components/QuillMultiSelectWithCombo.d.ts.map +1 -1
  40. package/dist/cjs/components/QuillMultiSelectWithCombo.js +17 -18
  41. package/dist/cjs/components/QuillTable.d.ts.map +1 -1
  42. package/dist/cjs/components/QuillTable.js +9 -1
  43. package/dist/cjs/components/ReportBuilder/FilterModal.d.ts.map +1 -1
  44. package/dist/cjs/components/ReportBuilder/FilterModal.js +25 -3
  45. package/dist/cjs/components/ReportBuilder/FilterStack.d.ts +2 -1
  46. package/dist/cjs/components/ReportBuilder/FilterStack.d.ts.map +1 -1
  47. package/dist/cjs/components/ReportBuilder/FilterStack.js +2 -2
  48. package/dist/cjs/components/ReportBuilder/convert.d.ts +1 -0
  49. package/dist/cjs/components/ReportBuilder/convert.d.ts.map +1 -1
  50. package/dist/cjs/components/ReportBuilder/convert.js +54 -4
  51. package/dist/cjs/components/ReportBuilder/ui.d.ts +2 -1
  52. package/dist/cjs/components/ReportBuilder/ui.d.ts.map +1 -1
  53. package/dist/cjs/components/ReportBuilder/ui.js +3 -2
  54. package/dist/cjs/components/UiComponents.d.ts +1 -0
  55. package/dist/cjs/components/UiComponents.d.ts.map +1 -1
  56. package/dist/cjs/hooks/useAskQuill.d.ts +1 -1
  57. package/dist/cjs/hooks/useAskQuill.d.ts.map +1 -1
  58. package/dist/cjs/hooks/useAskQuill.js +6 -5
  59. package/dist/cjs/hooks/useAstToFilterTree.d.ts +2 -1
  60. package/dist/cjs/hooks/useAstToFilterTree.d.ts.map +1 -1
  61. package/dist/cjs/hooks/useAstToFilterTree.js +3 -3
  62. package/dist/cjs/hooks/useDashboard.d.ts +5 -2
  63. package/dist/cjs/hooks/useDashboard.d.ts.map +1 -1
  64. package/dist/cjs/hooks/useDashboard.js +21 -7
  65. package/dist/cjs/hooks/useExport.d.ts.map +1 -1
  66. package/dist/cjs/hooks/useExport.js +6 -4
  67. package/dist/cjs/index.d.ts +1 -1
  68. package/dist/cjs/index.d.ts.map +1 -1
  69. package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts +8 -2
  70. package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
  71. package/dist/cjs/internals/ReportBuilder/PivotModal.js +59 -30
  72. package/dist/cjs/models/Client.d.ts +22 -3
  73. package/dist/cjs/models/Client.d.ts.map +1 -1
  74. package/dist/cjs/models/Dashboard.d.ts +1 -0
  75. package/dist/cjs/models/Dashboard.d.ts.map +1 -1
  76. package/dist/cjs/models/Report.d.ts +4 -0
  77. package/dist/cjs/models/Report.d.ts.map +1 -1
  78. package/dist/cjs/utils/astFilterProcessing.d.ts +3 -2
  79. package/dist/cjs/utils/astFilterProcessing.d.ts.map +1 -1
  80. package/dist/cjs/utils/astFilterProcessing.js +3323 -977
  81. package/dist/cjs/utils/astProcessing.d.ts +1 -1
  82. package/dist/cjs/utils/astProcessing.d.ts.map +1 -1
  83. package/dist/cjs/utils/astProcessing.js +3 -2
  84. package/dist/cjs/utils/client.d.ts +4 -2
  85. package/dist/cjs/utils/client.d.ts.map +1 -1
  86. package/dist/cjs/utils/client.js +47 -1
  87. package/dist/cjs/utils/columnProcessing.d.ts +3 -0
  88. package/dist/cjs/utils/columnProcessing.d.ts.map +1 -1
  89. package/dist/cjs/utils/columnProcessing.js +34 -1
  90. package/dist/cjs/utils/dashboard.d.ts +4 -3
  91. package/dist/cjs/utils/dashboard.d.ts.map +1 -1
  92. package/dist/cjs/utils/dashboard.js +10 -91
  93. package/dist/cjs/utils/dataFetcher.d.ts +3 -1
  94. package/dist/cjs/utils/dataFetcher.d.ts.map +1 -1
  95. package/dist/cjs/utils/dataFetcher.js +66 -30
  96. package/dist/cjs/utils/filterProcessing.d.ts +1 -1
  97. package/dist/cjs/utils/filterProcessing.d.ts.map +1 -1
  98. package/dist/cjs/utils/filterProcessing.js +2 -0
  99. package/dist/cjs/utils/pivotConstructor.d.ts +4 -1
  100. package/dist/cjs/utils/pivotConstructor.d.ts.map +1 -1
  101. package/dist/cjs/utils/pivotConstructor.js +7 -7
  102. package/dist/cjs/utils/pivotProcessing.d.ts +4 -1
  103. package/dist/cjs/utils/pivotProcessing.d.ts.map +1 -1
  104. package/dist/cjs/utils/pivotProcessing.js +27 -20
  105. package/dist/cjs/utils/queryConstructor.d.ts.map +1 -1
  106. package/dist/cjs/utils/queryConstructor.js +101 -85
  107. package/dist/cjs/utils/report.d.ts +17 -5
  108. package/dist/cjs/utils/report.d.ts.map +1 -1
  109. package/dist/cjs/utils/report.js +23 -23
  110. package/dist/cjs/utils/schema.d.ts.map +1 -1
  111. package/dist/cjs/utils/schema.js +21 -21
  112. package/dist/cjs/utils/tableProcessing.d.ts +37 -10
  113. package/dist/cjs/utils/tableProcessing.d.ts.map +1 -1
  114. package/dist/cjs/utils/tableProcessing.js +45 -38
  115. package/dist/cjs/utils/tenants.d.ts +11 -0
  116. package/dist/cjs/utils/tenants.d.ts.map +1 -0
  117. package/dist/cjs/utils/tenants.js +13 -0
  118. package/dist/cjs/utils/textProcessing.d.ts +1 -0
  119. package/dist/cjs/utils/textProcessing.d.ts.map +1 -1
  120. package/dist/cjs/utils/textProcessing.js +49 -0
  121. package/dist/cjs/utils/validation.js +1 -1
  122. package/dist/esm/Chart.d.ts.map +1 -1
  123. package/dist/esm/Chart.js +2 -2
  124. package/dist/esm/ChartBuilder.d.ts +20 -2
  125. package/dist/esm/ChartBuilder.d.ts.map +1 -1
  126. package/dist/esm/ChartBuilder.js +131 -40
  127. package/dist/esm/ChartEditor.d.ts +5 -3
  128. package/dist/esm/ChartEditor.d.ts.map +1 -1
  129. package/dist/esm/ChartEditor.js +5 -6
  130. package/dist/esm/Context.d.ts +15 -4
  131. package/dist/esm/Context.d.ts.map +1 -1
  132. package/dist/esm/Context.js +36 -59
  133. package/dist/esm/Dashboard.d.ts +4 -0
  134. package/dist/esm/Dashboard.d.ts.map +1 -1
  135. package/dist/esm/Dashboard.js +79 -24
  136. package/dist/esm/QuillProvider.d.ts +12 -9
  137. package/dist/esm/QuillProvider.d.ts.map +1 -1
  138. package/dist/esm/QuillProvider.js +2 -2
  139. package/dist/esm/ReportBuilder.d.ts +9 -1
  140. package/dist/esm/ReportBuilder.d.ts.map +1 -1
  141. package/dist/esm/ReportBuilder.js +200 -84
  142. package/dist/esm/SQLEditor.d.ts +5 -1
  143. package/dist/esm/SQLEditor.d.ts.map +1 -1
  144. package/dist/esm/SQLEditor.js +80 -17
  145. package/dist/esm/Table.d.ts.map +1 -1
  146. package/dist/esm/Table.js +6 -5
  147. package/dist/esm/components/Chart/InternalChart.d.ts.map +1 -1
  148. package/dist/esm/components/Chart/InternalChart.js +107 -28
  149. package/dist/esm/components/Chart/PieChart.d.ts.map +1 -1
  150. package/dist/esm/components/Chart/PieChart.js +10 -7
  151. package/dist/esm/components/Dashboard/DashboardFilter.d.ts +3 -2
  152. package/dist/esm/components/Dashboard/DashboardFilter.d.ts.map +1 -1
  153. package/dist/esm/components/Dashboard/DashboardFilter.js +65 -65
  154. package/dist/esm/components/Dashboard/DataLoader.d.ts.map +1 -1
  155. package/dist/esm/components/Dashboard/DataLoader.js +82 -35
  156. package/dist/esm/components/Dashboard/MetricComponent.js +3 -3
  157. package/dist/esm/components/Dashboard/util.d.ts.map +1 -1
  158. package/dist/esm/components/Dashboard/util.js +6 -2
  159. package/dist/esm/components/QuillMultiSelectWithCombo.d.ts +1 -1
  160. package/dist/esm/components/QuillMultiSelectWithCombo.d.ts.map +1 -1
  161. package/dist/esm/components/QuillMultiSelectWithCombo.js +17 -18
  162. package/dist/esm/components/QuillTable.d.ts.map +1 -1
  163. package/dist/esm/components/QuillTable.js +9 -1
  164. package/dist/esm/components/ReportBuilder/FilterModal.d.ts.map +1 -1
  165. package/dist/esm/components/ReportBuilder/FilterModal.js +26 -4
  166. package/dist/esm/components/ReportBuilder/FilterStack.d.ts +2 -1
  167. package/dist/esm/components/ReportBuilder/FilterStack.d.ts.map +1 -1
  168. package/dist/esm/components/ReportBuilder/FilterStack.js +2 -2
  169. package/dist/esm/components/ReportBuilder/convert.d.ts +1 -0
  170. package/dist/esm/components/ReportBuilder/convert.d.ts.map +1 -1
  171. package/dist/esm/components/ReportBuilder/convert.js +54 -5
  172. package/dist/esm/components/ReportBuilder/ui.d.ts +2 -1
  173. package/dist/esm/components/ReportBuilder/ui.d.ts.map +1 -1
  174. package/dist/esm/components/ReportBuilder/ui.js +4 -3
  175. package/dist/esm/components/UiComponents.d.ts +1 -0
  176. package/dist/esm/components/UiComponents.d.ts.map +1 -1
  177. package/dist/esm/hooks/useAskQuill.d.ts +1 -1
  178. package/dist/esm/hooks/useAskQuill.d.ts.map +1 -1
  179. package/dist/esm/hooks/useAskQuill.js +7 -6
  180. package/dist/esm/hooks/useAstToFilterTree.d.ts +2 -1
  181. package/dist/esm/hooks/useAstToFilterTree.d.ts.map +1 -1
  182. package/dist/esm/hooks/useAstToFilterTree.js +3 -3
  183. package/dist/esm/hooks/useDashboard.d.ts +5 -2
  184. package/dist/esm/hooks/useDashboard.d.ts.map +1 -1
  185. package/dist/esm/hooks/useDashboard.js +21 -7
  186. package/dist/esm/hooks/useExport.d.ts.map +1 -1
  187. package/dist/esm/hooks/useExport.js +7 -5
  188. package/dist/esm/index.d.ts +1 -1
  189. package/dist/esm/index.d.ts.map +1 -1
  190. package/dist/esm/internals/ReportBuilder/PivotModal.d.ts +8 -2
  191. package/dist/esm/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
  192. package/dist/esm/internals/ReportBuilder/PivotModal.js +59 -30
  193. package/dist/esm/models/Client.d.ts +22 -3
  194. package/dist/esm/models/Client.d.ts.map +1 -1
  195. package/dist/esm/models/Dashboard.d.ts +1 -0
  196. package/dist/esm/models/Dashboard.d.ts.map +1 -1
  197. package/dist/esm/models/Report.d.ts +4 -0
  198. package/dist/esm/models/Report.d.ts.map +1 -1
  199. package/dist/esm/utils/astFilterProcessing.d.ts +3 -2
  200. package/dist/esm/utils/astFilterProcessing.d.ts.map +1 -1
  201. package/dist/esm/utils/astFilterProcessing.js +3323 -977
  202. package/dist/esm/utils/astProcessing.d.ts +1 -1
  203. package/dist/esm/utils/astProcessing.d.ts.map +1 -1
  204. package/dist/esm/utils/astProcessing.js +4 -3
  205. package/dist/esm/utils/client.d.ts +4 -2
  206. package/dist/esm/utils/client.d.ts.map +1 -1
  207. package/dist/esm/utils/client.js +47 -1
  208. package/dist/esm/utils/columnProcessing.d.ts +3 -0
  209. package/dist/esm/utils/columnProcessing.d.ts.map +1 -1
  210. package/dist/esm/utils/columnProcessing.js +31 -1
  211. package/dist/esm/utils/dashboard.d.ts +4 -3
  212. package/dist/esm/utils/dashboard.d.ts.map +1 -1
  213. package/dist/esm/utils/dashboard.js +10 -90
  214. package/dist/esm/utils/dataFetcher.d.ts +3 -1
  215. package/dist/esm/utils/dataFetcher.d.ts.map +1 -1
  216. package/dist/esm/utils/dataFetcher.js +65 -29
  217. package/dist/esm/utils/filterProcessing.d.ts +1 -1
  218. package/dist/esm/utils/filterProcessing.d.ts.map +1 -1
  219. package/dist/esm/utils/filterProcessing.js +2 -0
  220. package/dist/esm/utils/pivotConstructor.d.ts +4 -1
  221. package/dist/esm/utils/pivotConstructor.d.ts.map +1 -1
  222. package/dist/esm/utils/pivotConstructor.js +8 -8
  223. package/dist/esm/utils/pivotProcessing.d.ts +4 -1
  224. package/dist/esm/utils/pivotProcessing.d.ts.map +1 -1
  225. package/dist/esm/utils/pivotProcessing.js +27 -20
  226. package/dist/esm/utils/queryConstructor.d.ts.map +1 -1
  227. package/dist/esm/utils/queryConstructor.js +101 -85
  228. package/dist/esm/utils/report.d.ts +17 -5
  229. package/dist/esm/utils/report.d.ts.map +1 -1
  230. package/dist/esm/utils/report.js +20 -23
  231. package/dist/esm/utils/schema.d.ts.map +1 -1
  232. package/dist/esm/utils/schema.js +21 -21
  233. package/dist/esm/utils/tableProcessing.d.ts +37 -10
  234. package/dist/esm/utils/tableProcessing.d.ts.map +1 -1
  235. package/dist/esm/utils/tableProcessing.js +46 -39
  236. package/dist/esm/utils/tenants.d.ts +11 -0
  237. package/dist/esm/utils/tenants.d.ts.map +1 -0
  238. package/dist/esm/utils/tenants.js +9 -0
  239. package/dist/esm/utils/textProcessing.d.ts +1 -0
  240. package/dist/esm/utils/textProcessing.d.ts.map +1 -1
  241. package/dist/esm/utils/textProcessing.js +48 -0
  242. package/dist/esm/utils/validation.js +1 -1
  243. package/package.json +1 -1
@@ -54,7 +54,7 @@ export declare const createBasicSelectASTFromColumns: (columns: ColumnInternal[]
54
54
  orderby: null;
55
55
  limit: null;
56
56
  };
57
- export declare const fetchAndProcessASTFromPrompt: (aiPrompt: string, schema: Table[], client: QuillProviderClient, prevPivot?: Pivot, currentQuery?: string, prevTable?: string) => Promise<{
57
+ export declare const fetchAndProcessASTFromPrompt: (aiPrompt: string, schema: Table[], client: QuillProviderClient, prevPivot?: Pivot, currentQuery?: string, prevTable?: string, dashboardName?: string) => Promise<{
58
58
  ast: any;
59
59
  pivot: Pivot | null | undefined;
60
60
  whereAST: any;
@@ -1 +1 @@
1
- {"version":3,"file":"astProcessing.d.ts","sourceRoot":"","sources":["../../../src/utils/astProcessing.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"astProcessing.d.ts","sourceRoot":"","sources":["../../../src/utils/astProcessing.ts"],"names":[],"mappings":"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"}
@@ -343,7 +343,7 @@ const createBasicSelectASTFromColumns = (columns, tableName) => {
343
343
  };
344
344
  };
345
345
  exports.createBasicSelectASTFromColumns = createBasicSelectASTFromColumns;
346
- const fetchAndProcessASTFromPrompt = async (aiPrompt, schema, client, prevPivot, currentQuery, prevTable) => {
346
+ const fetchAndProcessASTFromPrompt = async (aiPrompt, schema, client, prevPivot, currentQuery, prevTable, dashboardName) => {
347
347
  let res, data, ast, newAst, pivot;
348
348
  let numRetries = 0;
349
349
  let whereAST;
@@ -396,6 +396,7 @@ const fetchAndProcessASTFromPrompt = async (aiPrompt, schema, client, prevPivot,
396
396
  newAst = (0, util_1.removeTableNameAlias)(newAst);
397
397
  newAst = (0, convert_1.convertWildcardColumns)(newAst, schema); // must go before groupby
398
398
  ({ ast: newAst, pivot } = (0, convert_1.convertGroupBy)(newAst, schema, prevPivot, prevTable));
399
+ newAst = (0, convert_1.convertOrderBy)(newAst, schema);
399
400
  newAst = (0, convert_1.convertStringComparison)(newAst, client.databaseType || 'postgresql');
400
401
  newAst = (0, convert_1.convertRemoveSimpleParentheses)(newAst);
401
402
  const table = (0, ast_1.getTableNames)(newAst)[0];
@@ -407,7 +408,7 @@ const fetchAndProcessASTFromPrompt = async (aiPrompt, schema, client, prevPivot,
407
408
  if (!tableInfo) {
408
409
  throw new Error('Table info not found');
409
410
  }
410
- const uniqueValues = await (0, tableProcessing_1.getUniqueStringValues)(tableInfo.columns, processedName, client);
411
+ const uniqueValues = await (0, tableProcessing_1.getUniqueStringValues)(tableInfo.columns, processedName, client, undefined, undefined, undefined, undefined, dashboardName);
411
412
  newAst = (0, convert_1.convertUnaryToBinary)(newAst);
412
413
  newAst = (0, util_1.removeNonSelectedTableReferences)(newAst, processedName, tableInfo.columns.map((col) => col.field), uniqueValues);
413
414
  if (pivot) {
@@ -1,4 +1,6 @@
1
- import { Client } from '../models/Client';
1
+ import { Client, QuillDatabaseTenant, QuillTenant } from '../models/Client';
2
2
  export declare const EMPTY_CLIENT: Client;
3
- export declare function fetchClient(publicKey: string, queryEndpoint: string, withCredentials?: boolean, queryHeaders?: HeadersInit): Promise<Client>;
3
+ export declare function fetchClient(publicKey: string, queryEndpoint: string, withCredentials?: boolean, queryHeaders?: HeadersInit): Promise<Client & {
4
+ allTenantTypes?: (QuillTenant | QuillDatabaseTenant)[];
5
+ }>;
4
6
  //# sourceMappingURL=client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/utils/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,eAAO,MAAM,YAAY,EAAE,MAM1B,CAAC;AAEF,wBAAsB,WAAW,CAC/B,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,EACrB,eAAe,UAAQ,EACvB,YAAY,CAAC,EAAE,WAAW,GACzB,OAAO,CAAC,MAAM,CAAC,CAwBjB"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/utils/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE5E,eAAO,MAAM,YAAY,EAAE,MAM1B,CAAC;AAEF,wBAAsB,WAAW,CAC/B,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,EACrB,eAAe,UAAQ,EACvB,YAAY,CAAC,EAAE,WAAW,GACzB,OAAO,CACR,MAAM,GAAG;IAAE,cAAc,CAAC,EAAE,CAAC,WAAW,GAAG,mBAAmB,CAAC,EAAE,CAAA;CAAE,CACpE,CA+EA"}
@@ -11,6 +11,7 @@ exports.EMPTY_CLIENT = {
11
11
  };
12
12
  async function fetchClient(publicKey, queryEndpoint, withCredentials = false, queryHeaders) {
13
13
  let result = exports.EMPTY_CLIENT;
14
+ let clientTenantIds = [];
14
15
  try {
15
16
  const response = await fetch(`${queryEndpoint}`, {
16
17
  method: 'POST',
@@ -29,9 +30,54 @@ async function fetchClient(publicKey, queryEndpoint, withCredentials = false, qu
29
30
  });
30
31
  const json = await response.json();
31
32
  result = json.data?.data?.client || json.data?.client;
33
+ clientTenantIds = await Promise.all(result.allTenantTypes?.map(async (tenant) => {
34
+ const tenantResponse = await fetch(queryEndpoint, {
35
+ method: 'POST',
36
+ headers: {
37
+ ...queryHeaders,
38
+ 'Content-Type': 'application/json',
39
+ },
40
+ body: JSON.stringify({
41
+ metadata: {
42
+ tenantId: tenant.id,
43
+ task: 'tenant-query',
44
+ clientId: result.id,
45
+ },
46
+ }),
47
+ });
48
+ const data = await tenantResponse.json();
49
+ if (!data.data?.rows) {
50
+ return {
51
+ id: tenant.id,
52
+ tenantIds: [],
53
+ };
54
+ }
55
+ return {
56
+ id: tenant.id,
57
+ tenantIds: data.data.rows.map((row) => ({
58
+ id: row[tenant.tenantField],
59
+ flag: row['quill_flag'],
60
+ label: row['quill_label'],
61
+ })),
62
+ };
63
+ }));
32
64
  }
33
65
  catch (error) {
34
66
  console.error('ERROR:', error);
35
67
  }
36
- return result;
68
+ return {
69
+ ...result,
70
+ allTenantTypes: result.multiTenancyDisabled
71
+ ? [
72
+ {
73
+ scope: 'database',
74
+ flags: [],
75
+ tenantField: 'QUILL_SINGLE_TENANT',
76
+ },
77
+ ]
78
+ : result.allTenantTypes?.map((tenant) => ({
79
+ ...tenant,
80
+ tenantIds: clientTenantIds?.find((clientTenant) => clientTenant.id === tenant.id)?.tenantIds || [],
81
+ })),
82
+ };
37
83
  }
@@ -17,6 +17,9 @@ export declare function convertFieldTypeToJSType(fieldType: string): string;
17
17
  export declare function convertFormatToJsType(column: Column): string;
18
18
  export declare function processColumnName(columnName: string): string;
19
19
  export declare function isStringType(fieldType: string): boolean;
20
+ export declare function isDateType(fieldType: string): boolean;
21
+ export declare function isNumberType(fieldType: string): boolean;
22
+ export declare function isBoolType(fieldType: string): boolean;
20
23
  export declare const getYAxisFields: (report: QuillReportInternal, dashboardFilters: DashboardFilter[]) => any[];
21
24
  export {};
22
25
  //# sourceMappingURL=columnProcessing.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"columnProcessing.d.ts","sourceRoot":"","sources":["../../../src/utils/columnProcessing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAEhE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAQvD,UAAU,6CAA6C;IACrD,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,UAAU,oCAAoC;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,KAAK,2BAA2B,GAC5B,6CAA6C,GAC7C,oCAAoC,CAAC;AAEzC,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,2BAA2B,GACjC,cAAc,CAgJhB;AAED,wBAAgB,iCAAiC,CAC/C,UAAU,EAAE,UAAU,GACrB,cAAc,CAShB;AAsED,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAwDlE;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAY5D;AAED,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED,eAAO,MAAM,cAAc,WACjB,mBAAmB,oBACT,eAAe,EAAE,UAqDpC,CAAC"}
1
+ {"version":3,"file":"columnProcessing.d.ts","sourceRoot":"","sources":["../../../src/utils/columnProcessing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAEhE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAQvD,UAAU,6CAA6C;IACrD,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,UAAU,oCAAoC;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,KAAK,2BAA2B,GAC5B,6CAA6C,GAC7C,oCAAoC,CAAC;AAEzC,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,2BAA2B,GACjC,cAAc,CAmJhB;AAED,wBAAgB,iCAAiC,CAC/C,UAAU,EAAE,UAAU,GACrB,cAAc,CAShB;AAsED,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAwDlE;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAY5D;AAED,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAIvD;AAED,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CASrD;AAED,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAavD;AAED,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAErD;AAED,eAAO,MAAM,cAAc,WACjB,mBAAmB,oBACT,eAAe,EAAE,UAqDpC,CAAC"}
@@ -7,6 +7,9 @@ exports.convertFieldTypeToJSType = convertFieldTypeToJSType;
7
7
  exports.convertFormatToJsType = convertFormatToJsType;
8
8
  exports.processColumnName = processColumnName;
9
9
  exports.isStringType = isStringType;
10
+ exports.isDateType = isDateType;
11
+ exports.isNumberType = isNumberType;
12
+ exports.isBoolType = isBoolType;
10
13
  const filterProcessing_1 = require("./filterProcessing");
11
14
  const textProcessing_1 = require("./textProcessing");
12
15
  function removeBigQuerySpecialChars(columnName) {
@@ -100,6 +103,9 @@ function convertPostgresColumn(field) {
100
103
  case 3807: // jsonb[]
101
104
  fieldType = 'jsonb[]';
102
105
  break;
106
+ case 2277: // anyarray
107
+ fieldType = 'anyarray';
108
+ break;
103
109
  case 1043: // varchar
104
110
  default:
105
111
  fieldType = 'varchar';
@@ -300,7 +306,34 @@ function processColumnName(columnName) {
300
306
  return removeBigQuerySpecialChars(columnName);
301
307
  }
302
308
  function isStringType(fieldType) {
303
- return ['string', 'varchar', 'text', 'char'].includes(fieldType);
309
+ return ['string', 'varchar', 'text', 'char', 'bpchar', 'citext'].includes(fieldType);
310
+ }
311
+ function isDateType(fieldType) {
312
+ return [
313
+ 'date',
314
+ 'datetime',
315
+ 'time',
316
+ 'timestamptz',
317
+ 'timestamp',
318
+ 'interval',
319
+ ].includes(fieldType);
320
+ }
321
+ function isNumberType(fieldType) {
322
+ return [
323
+ 'int8',
324
+ 'int2',
325
+ 'int4',
326
+ 'float4',
327
+ 'float8',
328
+ 'numeric',
329
+ 'number',
330
+ 'smallint',
331
+ 'float2',
332
+ 'float16',
333
+ ].includes(fieldType);
334
+ }
335
+ function isBoolType(fieldType) {
336
+ return ['bool', 'boolean'].includes(fieldType);
304
337
  }
305
338
  const getYAxisFields = (report, dashboardFilters) => {
306
339
  try {
@@ -1,6 +1,5 @@
1
1
  import { QuillReportInternal } from '../models/Report';
2
2
  import { QuillProviderClient } from '../models/Client';
3
- import { DashboardFilter } from '../models/Filter';
4
3
  /**
5
4
  * Returns a cleaned version of the dashboard item we store in state. We clean
6
5
  * the dashboard item so that we aren't exposing unnecessary details to the
@@ -11,6 +10,8 @@ import { DashboardFilter } from '../models/Filter';
11
10
  export declare function cleanDashboardItem(item: {
12
11
  [key: string]: any;
13
12
  } | undefined, dashboardFilters: any, client: QuillProviderClient, dateBucket?: string): Promise<QuillReportInternal>;
14
- export declare function getDashboard(dashboardName: string, client: QuillProviderClient): Promise<any>;
15
- export declare function getDashboardFilters(dashboardName: string, client: QuillProviderClient): Promise<DashboardFilter[]>;
13
+ export declare function getDashboard(dashboardName: string, client: QuillProviderClient, tenants?: {
14
+ tenantField: string;
15
+ tenantIds: (string | number)[];
16
+ }[] | (string | number)[], flags?: string[]): Promise<any>;
16
17
  //# sourceMappingURL=dashboard.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../../../src/utils/dashboard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAWvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AA4BnD;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,GAAG,SAAS,EACxC,gBAAgB,EAAE,GAAG,EACrB,MAAM,EAAE,mBAAmB,EAC3B,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,mBAAmB,CAAC,CA+D9B;AAmHD,wBAAsB,YAAY,CAChC,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,mBAAmB,GAC1B,OAAO,CAAC,GAAG,CAAC,CA2Bd;AAED,wBAAsB,mBAAmB,CACvC,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,mBAAmB,GAC1B,OAAO,CAAC,eAAe,EAAE,CAAC,CAiG5B"}
1
+ {"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../../../src/utils/dashboard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAWvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAuBvD;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,GAAG,SAAS,EACxC,gBAAgB,EAAE,GAAG,EACrB,MAAM,EAAE,mBAAmB,EAC3B,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,mBAAmB,CAAC,CAiE9B;AA4HD,wBAAsB,YAAY,CAChC,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,mBAAmB,EAC3B,OAAO,CAAC,EACJ;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;CAAE,EAAE,GACzD,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,EACvB,KAAK,CAAC,EAAE,MAAM,EAAE,GACf,OAAO,CAAC,GAAG,CAAC,CA0Bd"}
@@ -2,13 +2,11 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.cleanDashboardItem = cleanDashboardItem;
4
4
  exports.getDashboard = getDashboard;
5
- exports.getDashboardFilters = getDashboardFilters;
6
5
  const PivotModal_1 = require("../internals/ReportBuilder/PivotModal");
7
6
  const textProcessing_1 = require("./textProcessing");
8
7
  const dataFetcher_1 = require("./dataFetcher");
9
8
  const dates_1 = require("./dates");
10
9
  const pivotConstructor_1 = require("./pivotConstructor");
11
- const dateRangePickerUtils_1 = require("../DateRangePicker/dateRangePickerUtils");
12
10
  const defaultDashboardItem = {
13
11
  id: '',
14
12
  name: '',
@@ -51,7 +49,7 @@ async function cleanDashboardItem(item, dashboardFilters, client, dateBucket) {
51
49
  let pivotTable;
52
50
  let pivotError;
53
51
  try {
54
- pivotTable = await getPivotTable(item, dashboardFilters, client, dateBucket);
52
+ pivotTable = await getPivotTable(item, dashboardFilters, client, dateBucket, item.dashboardName);
55
53
  }
56
54
  catch (e) {
57
55
  pivotTable = undefined;
@@ -86,6 +84,7 @@ async function cleanDashboardItem(item, dashboardFilters, client, dateBucket) {
86
84
  order: item.order,
87
85
  filtersApplied: item.filtersApplied,
88
86
  filterMap: item.filterMap,
87
+ flags: item.flags,
89
88
  rowCount: item.rowCount ? parseInt(item.rowCount) : item.rows.length,
90
89
  template: item.template,
91
90
  sort: item.sort,
@@ -99,7 +98,7 @@ async function cleanDashboardItem(item, dashboardFilters, client, dateBucket) {
99
98
  /**
100
99
  * Extract and transform the data from itemInfo.
101
100
  */
102
- async function getPivotTable(report, dashboardFilters, client, dateBucketInitial) {
101
+ async function getPivotTable(report, dashboardFilters, client, dateBucketInitial, dashboardName, tenants) {
103
102
  if (!report)
104
103
  return undefined;
105
104
  const dateFilter = Object.values(dashboardFilters ?? {}).find((filter) => filter.filterType === 'date_range' || filter.operator === 'BETWEEN');
@@ -147,7 +146,7 @@ async function getPivotTable(report, dashboardFilters, client, dateBucketInitial
147
146
  if (!dateBucket && filterDateRange) {
148
147
  dateBucket = (0, dates_1.getDateBucketFromRange)(filterDateRange);
149
148
  }
150
- const pivotTable = await (0, pivotConstructor_1.generatePivotWithSQL)(pivot, report, client, dateBucket, dateFilter, report.distinctStrings);
149
+ const pivotTable = await (0, pivotConstructor_1.generatePivotWithSQL)(pivot, report, client, dateBucket, dateFilter, report.distinctStrings, undefined, dashboardName, tenants);
151
150
  return pivotTable;
152
151
  }
153
152
  catch (e) {
@@ -160,6 +159,8 @@ async function getPivotTable(report, dashboardFilters, client, dateBucketInitial
160
159
  pivot,
161
160
  report,
162
161
  client,
162
+ dashboardName,
163
+ tenants,
163
164
  })
164
165
  : undefined;
165
166
  }
@@ -186,104 +187,22 @@ function extractPivotedYAxis(pivotTable, itemInfo, config = undefined) {
186
187
  // }
187
188
  // return fields;
188
189
  }
189
- async function getDashboard(dashboardName, client) {
190
- const searchParams = new URLSearchParams({
191
- publicKey: client.publicKey,
192
- orgId: client?.organizationId || '*',
193
- name: dashboardName,
194
- }).toString();
190
+ async function getDashboard(dashboardName, client, tenants, flags) {
195
191
  const hostedBody = {
196
192
  metadata: {
197
193
  name: dashboardName,
198
194
  task: 'dashboard',
199
195
  clientId: client.publicKey,
200
- orgId: client.organizationId || '*',
201
196
  databaseType: client.databaseType,
202
197
  useNewNodeSql: true,
198
+ tenants,
199
+ flags,
203
200
  },
204
201
  };
205
- const resp = await (0, dataFetcher_1.getData)(client, `dashconfig?${searchParams}`, 'omit', hostedBody, null, 'GET');
206
- return resp;
207
- }
208
- async function getDashboardFilters(dashboardName, client) {
209
202
  const searchParams = new URLSearchParams({
210
203
  publicKey: client.publicKey,
211
- orgId: client.organizationId || '*',
212
204
  name: dashboardName,
213
205
  }).toString();
214
- const hostedBody = {
215
- metadata: {
216
- name: dashboardName,
217
- task: 'dashboard-filters-options',
218
- clientId: client.publicKey,
219
- orgId: client.organizationId || '*',
220
- databaseType: client.databaseType,
221
- useNewNodeSql: true,
222
- },
223
- };
224
206
  const resp = await (0, dataFetcher_1.getData)(client, `dashconfig?${searchParams}`, 'omit', hostedBody, null, 'GET');
225
- const filterArray = [];
226
- if (resp.dateFilter && Object.keys(resp.dateFilter).length) {
227
- let presetsOptions = dateRangePickerUtils_1.defaultOptionsV2;
228
- if (resp.dateFilter.presetRanges) {
229
- presetsOptions = resp.dateFilter.presetRanges.map((elem) => {
230
- if (!elem.isStatic) {
231
- return {
232
- label: elem.label,
233
- value: elem.value,
234
- startDate: (dateRangePickerUtils_1.PRIMARY_RANGE[elem.value] ??
235
- dateRangePickerUtils_1.PRIMARY_RANGE['LAST_30_DAYS']).startDate,
236
- endDate: (dateRangePickerUtils_1.PRIMARY_RANGE[elem.value] ??
237
- dateRangePickerUtils_1.PRIMARY_RANGE['LAST_30_DAYS']).endDate,
238
- };
239
- }
240
- return {
241
- label: elem.label,
242
- value: elem.value,
243
- startDate: new Date(elem.startDate),
244
- endDate: new Date(elem.endDate),
245
- };
246
- });
247
- }
248
- const key = resp.dateFilter?.primaryRange?.value || 'LAST_6_MONTHS';
249
- const primaryPreset = presetsOptions.find((option) => {
250
- return option.value === key;
251
- });
252
- const filter = {
253
- startDate: primaryPreset.startDate,
254
- endDate: primaryPreset.endDate,
255
- filterType: 'date_range',
256
- options: presetsOptions.map((elem) => {
257
- return {
258
- label: elem.label,
259
- value: elem.value,
260
- };
261
- }),
262
- field: 'date_range',
263
- label: resp.dateFilter.label,
264
- preset: {
265
- label: primaryPreset.label,
266
- value: primaryPreset.value,
267
- },
268
- dashboardName: dashboardName,
269
- };
270
- if (resp.dateFilter.comparison) {
271
- filter.comparison = true;
272
- const compKey = resp.dateFilter.defaultComparisonRange ?? 'PREV_PERIOD';
273
- const range = { startDate: filter.startDate, endDate: filter.endDate };
274
- filter.comparisonRange = {
275
- startDate: dateRangePickerUtils_1.COMPARISON_RANGE[compKey](range)?.startDate,
276
- endDate: dateRangePickerUtils_1.COMPARISON_RANGE[compKey](range)?.endDate,
277
- value: compKey,
278
- };
279
- }
280
- else {
281
- filter.comparison = false;
282
- }
283
- filterArray.push(filter);
284
- }
285
- filterArray.push(...resp.filters.map((f) => {
286
- return { ...f, dashboardName: dashboardName };
287
- }));
288
- return filterArray;
207
+ return resp;
289
208
  }
@@ -1,6 +1,8 @@
1
1
  import { QuillProviderClient } from '../models/Client';
2
2
  export declare function getData(client: QuillProviderClient, cloudQueryEndpoint: string, noCred: RequestCredentials, hostedRequestBody: any, cloudRequestBody: any, method?: string, queryParam?: string, abortSignal?: AbortSignal): Promise<any>;
3
- export declare function getDataFromCloud(client: QuillProviderClient, cloudQueryEndpoint: string, cloudRequestBody: any, method?: string, abortSignal?: AbortSignal): Promise<any>;
3
+ export declare function useQuillCloud(): {
4
+ getDataFromCloud: (client: QuillProviderClient, cloudQueryEndpoint: string, cloudRequestBody: any, method?: string, abortSignal?: AbortSignal) => Promise<any>;
5
+ };
4
6
  export declare function fetchSqlQuery(ast: any, client: QuillProviderClient, formData?: any): Promise<{
5
7
  query: string;
6
8
  error?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"dataFetcher.d.ts","sourceRoot":"","sources":["../../../src/utils/dataFetcher.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AA8EvD,wBAAsB,OAAO,CAC3B,MAAM,EAAE,mBAAmB,EAC3B,kBAAkB,EAAE,MAAM,EAC1B,MAAM,EAAE,kBAAkB,EAC1B,iBAAiB,EAAE,GAAG,EACtB,gBAAgB,EAAE,GAAG,EACrB,MAAM,SAAS,EACf,UAAU,CAAC,EAAE,MAAM,EACnB,WAAW,CAAC,EAAE,WAAW,gBAsJ1B;AAED,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,mBAAmB,EAC3B,kBAAkB,EAAE,MAAM,EAC1B,gBAAgB,EAAE,GAAG,EACrB,MAAM,SAAS,EACf,WAAW,CAAC,EAAE,WAAW,gBA8B1B;AAED,wBAAsB,aAAa,CACjC,GAAG,EAAE,GAAG,EACR,MAAM,EAAE,mBAAmB,EAC3B,QAAQ,CAAC,EAAE,GAAG,GACb,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAmB5C"}
1
+ {"version":3,"file":"dataFetcher.d.ts","sourceRoot":"","sources":["../../../src/utils/dataFetcher.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAgFvD,wBAAsB,OAAO,CAC3B,MAAM,EAAE,mBAAmB,EAC3B,kBAAkB,EAAE,MAAM,EAC1B,MAAM,EAAE,kBAAkB,EAC1B,iBAAiB,EAAE,GAAG,EACtB,gBAAgB,EAAE,GAAG,EACrB,MAAM,SAAS,EACf,UAAU,CAAC,EAAE,MAAM,EACnB,WAAW,CAAC,EAAE,WAAW,gBA0K1B;AAED,wBAAgB,aAAa;+BAGjB,mBAAmB,sBACP,MAAM,oBACR,GAAG,iCAEP,WAAW;EAoC5B;AAED,wBAAsB,aAAa,CACjC,GAAG,EAAE,GAAG,EACR,MAAM,EAAE,mBAAmB,EAC3B,QAAQ,CAAC,EAAE,GAAG,GACb,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAmB5C"}
@@ -1,9 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getData = getData;
4
- exports.getDataFromCloud = getDataFromCloud;
4
+ exports.useQuillCloud = useQuillCloud;
5
5
  exports.fetchSqlQuery = fetchSqlQuery;
6
+ const react_1 = require("react");
6
7
  const constants_1 = require("./constants");
8
+ const Context_1 = require("../Context");
7
9
  function fetchQuillData(responseData) {
8
10
  if (!responseData) {
9
11
  return null;
@@ -66,6 +68,7 @@ async function testSqlViewState(hostedRequestBody, client, referencedTables) {
66
68
  }
67
69
  // this function gets the data either from the self hosted endpoint or
68
70
  // our cloud server
71
+ // Tenants and Flags must be passed in as part of the body explicity
69
72
  async function getData(client, cloudQueryEndpoint, noCred, hostedRequestBody, cloudRequestBody, method = 'POST', queryParam, abortSignal) {
70
73
  if (!client) {
71
74
  return null;
@@ -176,7 +179,33 @@ async function getData(client, cloudQueryEndpoint, noCred, hostedRequestBody, cl
176
179
  }
177
180
  else {
178
181
  // cloud
179
- return await getDataFromCloud(client, cloudQueryEndpoint, cloudRequestBody, method, abortSignal);
182
+ try {
183
+ const url = `${constants_1.QUILL_SERVER}/${cloudQueryEndpoint}`;
184
+ const resp = await fetch(url, {
185
+ method,
186
+ headers: {
187
+ Authorization: 'Bearer ',
188
+ 'Content-Type': 'application/json',
189
+ },
190
+ body: method === 'POST'
191
+ ? JSON.stringify({
192
+ ...cloudRequestBody,
193
+ ...{
194
+ publicKey: client?.publicKey,
195
+ },
196
+ })
197
+ : null,
198
+ signal: abortSignal,
199
+ });
200
+ return await resp.json();
201
+ }
202
+ catch (e) {
203
+ if (e instanceof Error && e.name === 'AbortError') {
204
+ throw e;
205
+ }
206
+ console.error('Failed to parse JSON:', e);
207
+ return null;
208
+ }
180
209
  }
181
210
  }
182
211
  catch (e) {
@@ -187,35 +216,42 @@ async function getData(client, cloudQueryEndpoint, noCred, hostedRequestBody, cl
187
216
  return null;
188
217
  }
189
218
  }
190
- async function getDataFromCloud(client, cloudQueryEndpoint, cloudRequestBody, method = 'POST', abortSignal) {
191
- try {
192
- const url = `${constants_1.QUILL_SERVER}/${cloudQueryEndpoint}`;
193
- const resp = await fetch(url, {
194
- method,
195
- headers: {
196
- Authorization: 'Bearer ',
197
- 'Content-Type': 'application/json',
198
- },
199
- body: method === 'POST'
200
- ? JSON.stringify({
201
- ...cloudRequestBody,
202
- ...{
203
- publicKey: client?.publicKey,
204
- orgId: client?.organizationId,
205
- },
206
- })
207
- : null,
208
- signal: abortSignal,
209
- });
210
- return await resp.json();
211
- }
212
- catch (e) {
213
- if (e instanceof Error && e.name === 'AbortError') {
214
- throw e;
219
+ function useQuillCloud() {
220
+ const { tenants, flags } = (0, react_1.useContext)(Context_1.TenantContext);
221
+ const getDataFromCloud = async (client, cloudQueryEndpoint, cloudRequestBody, method = 'POST', abortSignal) => {
222
+ try {
223
+ const url = `${constants_1.QUILL_SERVER}/${cloudQueryEndpoint}`;
224
+ const resp = await fetch(url, {
225
+ method,
226
+ headers: {
227
+ Authorization: 'Bearer ',
228
+ 'Content-Type': 'application/json',
229
+ },
230
+ body: method === 'POST'
231
+ ? JSON.stringify({
232
+ ...cloudRequestBody,
233
+ ...{
234
+ publicKey: client?.publicKey,
235
+ tenants: tenants,
236
+ flags: flags,
237
+ },
238
+ })
239
+ : null,
240
+ signal: abortSignal,
241
+ });
242
+ return await resp.json();
215
243
  }
216
- console.error('Failed to parse JSON:', e);
217
- return null;
218
- }
244
+ catch (e) {
245
+ if (e instanceof Error && e.name === 'AbortError') {
246
+ throw e;
247
+ }
248
+ console.error('Failed to parse JSON:', e);
249
+ return null;
250
+ }
251
+ };
252
+ return {
253
+ getDataFromCloud,
254
+ };
219
255
  }
220
256
  async function fetchSqlQuery(ast, client, formData) {
221
257
  try {
@@ -4,7 +4,7 @@ import { FilterTreeNode } from './astFilterProcessing';
4
4
  export declare function findAndProcessDateFilter(filters: any[]): any;
5
5
  export declare function processFilterFromBackend(filter: any): any;
6
6
  export declare function updateFilter(filter: any, value: any, comparison: any, dashboardName: string): any;
7
- export declare const getType: (t: string) => FieldType.String | FieldType.Number | FieldType.Date | FieldType.Boolean;
7
+ export declare const getType: (t: string) => FieldType;
8
8
  /**
9
9
  * Returns a sentence to describe a Filter
10
10
  */
@@ -1 +1 @@
1
- {"version":3,"file":"filterProcessing.d.ts","sourceRoot":"","sources":["../../../src/utils/filterProcessing.ts"],"names":[],"mappings":"AAQA,OAAO,EAEL,SAAS,EACT,cAAc,EAGd,mBAAmB,EACnB,MAAM,EAEN,eAAe,EAChB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAmB,MAAM,uBAAuB,CAAC;AAGxE,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,GAAG,CAoB5D;AAMD,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,GAAG,OAkBnD;AAED,wBAAgB,YAAY,CAC1B,MAAM,EAAE,GAAG,EACX,KAAK,EAAE,GAAU,EACjB,UAAU,EAAE,GAAU,EACtB,aAAa,EAAE,MAAM,OAmGtB;AAGD,eAAO,MAAM,OAAO,MAAO,MAAM,6EAwDhC,CAAC;AAEF;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAwB7D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,GAAG,GAAG,cAAc,EAAE,CAoCrE;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,GAAG,EAAE,yBAgCnD;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,GAAG,EACZ,OAAO,EAAE,cAAc,EAAE,EACzB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,GAAG,GACV,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CA2B/D;AAED,wBAAgB,iCAAiC,CAC/C,gBAAgB,EAAE,MAAM,EACxB,mBAAmB,EAAE,mBAAmB,GACvC,mBAAmB,CAkKrB;AAED,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,eAAe,EAAE,EAC1B,aAAa,EAAE,cAAc,EAAE,GAC9B,GAAG,EAAE,CA+CP;AAED,wBAAgB,oBAAoB,CAClC,QAAQ,CAAC,EAAE,cAAc,EAAE,EAC3B,QAAQ,CAAC,EAAE,cAAc,EAAE,GAC1B,OAAO,CA+BT;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,YAAY,EAAE;IACpD,CAAC,MAAM,EAAE,MAAM,GAAG;QAAE,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;CAChD,GAAG;IACF,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CACzB,CASA;AAED,eAAO,MAAM,uBAAuB,WAC1B,mBAAmB,WAClB,WAAW,EAAE,iBACP,MAAM,KACpB,CAAC,mBAAmB,GAAG;IAAE,SAAS,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,GAAG,SAqDpD,CAAC"}
1
+ {"version":3,"file":"filterProcessing.d.ts","sourceRoot":"","sources":["../../../src/utils/filterProcessing.ts"],"names":[],"mappings":"AAQA,OAAO,EAEL,SAAS,EACT,cAAc,EAGd,mBAAmB,EACnB,MAAM,EAEN,eAAe,EAChB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAmB,MAAM,uBAAuB,CAAC;AAGxE,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,GAAG,CAoB5D;AAMD,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,GAAG,OAkBnD;AAED,wBAAgB,YAAY,CAC1B,MAAM,EAAE,GAAG,EACX,KAAK,EAAE,GAAU,EACjB,UAAU,EAAE,GAAU,EACtB,aAAa,EAAE,MAAM,OAmGtB;AAGD,eAAO,MAAM,OAAO,MAAO,MAAM,cA0DhC,CAAC;AAEF;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAwB7D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,GAAG,GAAG,cAAc,EAAE,CAoCrE;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,GAAG,EAAE,yBAgCnD;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,GAAG,EACZ,OAAO,EAAE,cAAc,EAAE,EACzB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,GAAG,GACV,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CA2B/D;AAED,wBAAgB,iCAAiC,CAC/C,gBAAgB,EAAE,MAAM,EACxB,mBAAmB,EAAE,mBAAmB,GACvC,mBAAmB,CAkKrB;AAED,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,eAAe,EAAE,EAC1B,aAAa,EAAE,cAAc,EAAE,GAC9B,GAAG,EAAE,CA+CP;AAED,wBAAgB,oBAAoB,CAClC,QAAQ,CAAC,EAAE,cAAc,EAAE,EAC3B,QAAQ,CAAC,EAAE,cAAc,EAAE,GAC1B,OAAO,CA+BT;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,YAAY,EAAE;IACpD,CAAC,MAAM,EAAE,MAAM,GAAG;QAAE,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;CAChD,GAAG;IACF,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CACzB,CASA;AAED,eAAO,MAAM,uBAAuB,WAC1B,mBAAmB,WAClB,WAAW,EAAE,iBACP,MAAM,KACpB,CAAC,mBAAmB,GAAG;IAAE,SAAS,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,GAAG,SAqDpD,CAAC"}
@@ -206,6 +206,8 @@ const getType = (t) => {
206
206
  case 'bool':
207
207
  case 'boolean':
208
208
  return Filter_1.FieldType.Boolean;
209
+ case 'anyarray':
210
+ return Filter_1.FieldType.Null;
209
211
  default:
210
212
  return Filter_1.FieldType.String;
211
213
  }
@@ -2,7 +2,10 @@ import { QuillProviderClient } from '../models/Client';
2
2
  import { ColumnInternal } from '../models/Columns';
3
3
  import { Pivot } from '../models/Pivot';
4
4
  import { QuillReportInternal } from '../models/Report';
5
- export declare function generatePivotWithSQL(pivot: Pivot, report: QuillReportInternal, client: QuillProviderClient, dateBucket?: string, dateFilter?: any, distinctStrings?: string[], rowLimit?: number): Promise<{
5
+ export declare function generatePivotWithSQL(pivot: Pivot, report: QuillReportInternal, client: QuillProviderClient, dateBucket?: string, dateFilter?: any, distinctStrings?: string[], rowLimit?: number, dashboardName?: string, tenants?: {
6
+ tenantField: string;
7
+ tenantIds: (string | number)[];
8
+ }[] | (string | number)[]): Promise<{
6
9
  rows: any[];
7
10
  columns: ColumnInternal[];
8
11
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"pivotConstructor.d.ts","sourceRoot":"","sources":["../../../src/utils/pivotConstructor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AASvD,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,mBAAmB,EAC3B,MAAM,EAAE,mBAAmB,EAC3B,UAAU,CAAC,EAAE,MAAM,EACnB,UAAU,CAAC,EAAE,GAAG,EAChB,eAAe,CAAC,EAAE,MAAM,EAAE,EAC1B,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC;IAAE,IAAI,EAAE,GAAG,EAAE,CAAC;IAAC,OAAO,EAAE,cAAc,EAAE,CAAA;CAAE,CAAC,CAgPrD"}
1
+ {"version":3,"file":"pivotConstructor.d.ts","sourceRoot":"","sources":["../../../src/utils/pivotConstructor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AASvD,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,mBAAmB,EAC3B,MAAM,EAAE,mBAAmB,EAC3B,UAAU,CAAC,EAAE,MAAM,EACnB,UAAU,CAAC,EAAE,GAAG,EAChB,eAAe,CAAC,EAAE,MAAM,EAAE,EAC1B,QAAQ,CAAC,EAAE,MAAM,EACjB,aAAa,CAAC,EAAE,MAAM,EACtB,OAAO,CAAC,EACJ;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;CAAE,EAAE,GACzD,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GACtB,OAAO,CAAC;IAAE,IAAI,EAAE,GAAG,EAAE,CAAC;IAAC,OAAO,EAAE,cAAc,EAAE,CAAA;CAAE,CAAC,CA8OrD"}
@@ -9,7 +9,7 @@ const dates_1 = require("./dates");
9
9
  const queryConstructor_1 = require("./queryConstructor");
10
10
  const textProcessing_1 = require("./textProcessing");
11
11
  const valueFormatter_1 = require("./valueFormatter");
12
- async function generatePivotWithSQL(pivot, report, client, dateBucket, dateFilter, distinctStrings, rowLimit) {
12
+ async function generatePivotWithSQL(pivot, report, client, dateBucket, dateFilter, distinctStrings, rowLimit, dashboardName, tenants) {
13
13
  let comparisonInterval = undefined;
14
14
  if (dateFilter && dateFilter.comparisonRange) {
15
15
  comparisonInterval = (0, dates_1.getComparisonInterval)({
@@ -34,14 +34,13 @@ async function generatePivotWithSQL(pivot, report, client, dateBucket, dateFilte
34
34
  const filteredDistinctStrings = distinctStrings?.filter((value) => value !== null && value !== undefined);
35
35
  const sqlQuery = (0, queryConstructor_1.generatePivotQuery)(pivot, report.itemQuery, client.databaseType || 'postgresql', comparisonInterval, filteredDistinctStrings?.slice(0, constants_1.MAX_PIVOT_UNIQUE_VALUES) ??
36
36
  distinctStringValues?.slice(0, constants_1.MAX_PIVOT_UNIQUE_VALUES), dateBucket, rowLimit);
37
- if (!sqlQuery || report.rows.length == 0) {
38
- throw 'No rows found in report';
37
+ if (!sqlQuery) {
38
+ throw 'Error generating pivot query';
39
39
  }
40
40
  const hostedBody = {
41
41
  metadata: {
42
42
  preQueries: [sqlQuery],
43
43
  task: 'query',
44
- orgId: client.organizationId || '*',
45
44
  clientId: client.publicKey,
46
45
  databaseType: client?.databaseType,
47
46
  getCustomFields: false,
@@ -50,6 +49,8 @@ async function generatePivotWithSQL(pivot, report, client, dateBucket, dateFilte
50
49
  convertDatatypes: true,
51
50
  },
52
51
  useNewNodeSql: true,
52
+ dashboardName: dashboardName && tenants ? dashboardName : undefined,
53
+ tenants: dashboardName && tenants ? tenants : undefined,
53
54
  },
54
55
  };
55
56
  const cloudBody = { ...hostedBody };
@@ -95,8 +96,7 @@ async function generatePivotWithSQL(pivot, report, client, dateBucket, dateFilte
95
96
  }
96
97
  return 0;
97
98
  });
98
- if (pivot.rowField &&
99
- !['string', 'varchar', 'text', 'char'].includes(pivot.rowFieldType || '')) {
99
+ if (pivot.rowField && !(0, columnProcessing_1.isStringType)(pivot.rowFieldType || '')) {
100
100
  rows.forEach((row) => {
101
101
  row.__quillRawDate =
102
102
  typeof row[pivot.rowField || ''] === 'object' // BigQuery
@@ -125,7 +125,7 @@ async function generatePivotWithSQL(pivot, report, client, dateBucket, dateFilte
125
125
  // add a row for each date in the range that doesn't have a value
126
126
  if (pivot.rowField &&
127
127
  pivot.rowFieldType &&
128
- !['string', 'varchar', 'text', 'char'].includes(pivot.rowFieldType) &&
128
+ !(0, columnProcessing_1.isStringType)(pivot.rowFieldType) &&
129
129
  dateFilter?.startDate &&
130
130
  dateFilter?.endDate) {
131
131
  const dateSet = new Set(rows.map((row) => row[pivot.rowField || '']));