@quillsql/react 2.12.40 → 2.12.41

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 (149) hide show
  1. package/dist/cjs/Chart.js +1 -1
  2. package/dist/cjs/ChartBuilder.d.ts +1 -1
  3. package/dist/cjs/ChartBuilder.d.ts.map +1 -1
  4. package/dist/cjs/ChartBuilder.js +6 -6
  5. package/dist/cjs/Dashboard.js +5 -5
  6. package/dist/cjs/ReportBuilder.d.ts +1 -1
  7. package/dist/cjs/ReportBuilder.d.ts.map +1 -1
  8. package/dist/cjs/ReportBuilder.js +111 -1588
  9. package/dist/cjs/components/Chart/BarChart.d.ts.map +1 -1
  10. package/dist/cjs/components/Chart/BarChart.js +0 -9
  11. package/dist/cjs/components/Chart/LineChart.d.ts.map +1 -1
  12. package/dist/cjs/components/Chart/LineChart.js +1 -11
  13. package/dist/cjs/components/Dashboard/DataLoader.js +1 -1
  14. package/dist/cjs/components/ReportBuilder/FilterModal.js +32 -32
  15. package/dist/cjs/components/ReportBuilder/convert.d.ts +5 -31
  16. package/dist/cjs/components/ReportBuilder/convert.d.ts.map +1 -1
  17. package/dist/cjs/components/ReportBuilder/convert.js +1 -1
  18. package/dist/cjs/hooks/useAskQuill.d.ts +27 -0
  19. package/dist/cjs/hooks/useAskQuill.d.ts.map +1 -0
  20. package/dist/cjs/hooks/useAskQuill.js +177 -0
  21. package/dist/cjs/index.d.ts +1 -0
  22. package/dist/cjs/index.d.ts.map +1 -1
  23. package/dist/cjs/index.js +3 -1
  24. package/dist/cjs/internals/ReportBuilder/PivotForm.d.ts +3 -3
  25. package/dist/cjs/internals/ReportBuilder/PivotForm.d.ts.map +1 -1
  26. package/dist/cjs/internals/ReportBuilder/PivotForm.js +4 -2
  27. package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts +1 -15
  28. package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
  29. package/dist/cjs/internals/ReportBuilder/PivotModal.js +24 -24
  30. package/dist/cjs/models/Filter.d.ts +25 -19
  31. package/dist/cjs/models/Filter.d.ts.map +1 -1
  32. package/dist/cjs/models/Filter.js +2 -2
  33. package/dist/cjs/{components/ReportBuilder/pivot.d.ts → models/Pivot.d.ts} +13 -4
  34. package/dist/cjs/models/Pivot.d.ts.map +1 -0
  35. package/dist/cjs/models/Report.d.ts +1 -1
  36. package/dist/cjs/models/Report.d.ts.map +1 -1
  37. package/dist/cjs/models/Tables.d.ts +16 -0
  38. package/dist/cjs/models/Tables.d.ts.map +1 -1
  39. package/dist/cjs/utils/astFilterProcessing.js +27 -27
  40. package/dist/cjs/utils/astProcessing.d.ts +42 -0
  41. package/dist/cjs/utils/astProcessing.d.ts.map +1 -1
  42. package/dist/cjs/utils/astProcessing.js +210 -1
  43. package/dist/cjs/utils/constants.d.ts +1 -0
  44. package/dist/cjs/utils/constants.d.ts.map +1 -1
  45. package/dist/cjs/utils/constants.js +2 -1
  46. package/dist/cjs/utils/dataFetcher.d.ts +4 -0
  47. package/dist/cjs/utils/dataFetcher.d.ts.map +1 -1
  48. package/dist/cjs/utils/dataFetcher.js +24 -1
  49. package/dist/cjs/utils/dates.d.ts +1 -1
  50. package/dist/cjs/utils/filterProcessing.d.ts +2 -2
  51. package/dist/cjs/utils/filterProcessing.d.ts.map +1 -1
  52. package/dist/cjs/utils/filterProcessing.js +6 -6
  53. package/dist/cjs/utils/pivotConstructor.d.ts +1 -1
  54. package/dist/cjs/utils/pivotConstructor.d.ts.map +1 -1
  55. package/dist/cjs/utils/pivotConstructor.js +7 -4
  56. package/dist/cjs/utils/pivotProcessing.d.ts +4 -4
  57. package/dist/cjs/utils/pivotProcessing.d.ts.map +1 -1
  58. package/dist/cjs/utils/pivotProcessing.js +21 -2
  59. package/dist/cjs/utils/queryConstructor.d.ts +1 -1
  60. package/dist/cjs/utils/queryConstructor.d.ts.map +1 -1
  61. package/dist/cjs/utils/queryConstructor.js +3 -3
  62. package/dist/cjs/utils/report.d.ts +25 -0
  63. package/dist/cjs/utils/report.d.ts.map +1 -1
  64. package/dist/cjs/utils/report.js +114 -2
  65. package/dist/cjs/utils/schema.d.ts.map +1 -1
  66. package/dist/cjs/utils/schema.js +1 -1
  67. package/dist/cjs/utils/tableProcessing.d.ts +18 -0
  68. package/dist/cjs/utils/tableProcessing.d.ts.map +1 -1
  69. package/dist/cjs/utils/tableProcessing.js +94 -1
  70. package/dist/esm/Chart.js +1 -1
  71. package/dist/esm/ChartBuilder.d.ts +1 -1
  72. package/dist/esm/ChartBuilder.d.ts.map +1 -1
  73. package/dist/esm/ChartBuilder.js +6 -6
  74. package/dist/esm/Dashboard.js +5 -5
  75. package/dist/esm/ReportBuilder.d.ts +1 -1
  76. package/dist/esm/ReportBuilder.d.ts.map +1 -1
  77. package/dist/esm/ReportBuilder.js +121 -1598
  78. package/dist/esm/components/Chart/BarChart.d.ts.map +1 -1
  79. package/dist/esm/components/Chart/BarChart.js +0 -9
  80. package/dist/esm/components/Chart/LineChart.d.ts.map +1 -1
  81. package/dist/esm/components/Chart/LineChart.js +1 -11
  82. package/dist/esm/components/Dashboard/DataLoader.js +1 -1
  83. package/dist/esm/components/ReportBuilder/FilterModal.js +32 -32
  84. package/dist/esm/components/ReportBuilder/convert.d.ts +5 -31
  85. package/dist/esm/components/ReportBuilder/convert.d.ts.map +1 -1
  86. package/dist/esm/components/ReportBuilder/convert.js +1 -1
  87. package/dist/esm/hooks/useAskQuill.d.ts +27 -0
  88. package/dist/esm/hooks/useAskQuill.d.ts.map +1 -0
  89. package/dist/esm/hooks/useAskQuill.js +173 -0
  90. package/dist/esm/index.d.ts +1 -0
  91. package/dist/esm/index.d.ts.map +1 -1
  92. package/dist/esm/index.js +1 -0
  93. package/dist/esm/internals/ReportBuilder/PivotForm.d.ts +3 -3
  94. package/dist/esm/internals/ReportBuilder/PivotForm.d.ts.map +1 -1
  95. package/dist/esm/internals/ReportBuilder/PivotForm.js +4 -2
  96. package/dist/esm/internals/ReportBuilder/PivotModal.d.ts +1 -15
  97. package/dist/esm/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
  98. package/dist/esm/internals/ReportBuilder/PivotModal.js +24 -24
  99. package/dist/esm/models/Filter.d.ts +25 -19
  100. package/dist/esm/models/Filter.d.ts.map +1 -1
  101. package/dist/esm/models/Filter.js +2 -2
  102. package/dist/esm/{components/ReportBuilder/pivot.d.ts → models/Pivot.d.ts} +13 -4
  103. package/dist/esm/models/Pivot.d.ts.map +1 -0
  104. package/dist/esm/models/Report.d.ts +1 -1
  105. package/dist/esm/models/Report.d.ts.map +1 -1
  106. package/dist/esm/models/Tables.d.ts +16 -0
  107. package/dist/esm/models/Tables.d.ts.map +1 -1
  108. package/dist/esm/utils/astFilterProcessing.js +27 -27
  109. package/dist/esm/utils/astProcessing.d.ts +42 -0
  110. package/dist/esm/utils/astProcessing.d.ts.map +1 -1
  111. package/dist/esm/utils/astProcessing.js +204 -0
  112. package/dist/esm/utils/constants.d.ts +1 -0
  113. package/dist/esm/utils/constants.d.ts.map +1 -1
  114. package/dist/esm/utils/constants.js +1 -0
  115. package/dist/esm/utils/dataFetcher.d.ts +4 -0
  116. package/dist/esm/utils/dataFetcher.d.ts.map +1 -1
  117. package/dist/esm/utils/dataFetcher.js +22 -0
  118. package/dist/esm/utils/dates.d.ts +1 -1
  119. package/dist/esm/utils/filterProcessing.d.ts +2 -2
  120. package/dist/esm/utils/filterProcessing.d.ts.map +1 -1
  121. package/dist/esm/utils/filterProcessing.js +7 -7
  122. package/dist/esm/utils/pivotConstructor.d.ts +1 -1
  123. package/dist/esm/utils/pivotConstructor.d.ts.map +1 -1
  124. package/dist/esm/utils/pivotConstructor.js +7 -4
  125. package/dist/esm/utils/pivotProcessing.d.ts +4 -4
  126. package/dist/esm/utils/pivotProcessing.d.ts.map +1 -1
  127. package/dist/esm/utils/pivotProcessing.js +19 -1
  128. package/dist/esm/utils/queryConstructor.d.ts +1 -1
  129. package/dist/esm/utils/queryConstructor.d.ts.map +1 -1
  130. package/dist/esm/utils/queryConstructor.js +3 -3
  131. package/dist/esm/utils/report.d.ts +25 -0
  132. package/dist/esm/utils/report.d.ts.map +1 -1
  133. package/dist/esm/utils/report.js +114 -3
  134. package/dist/esm/utils/schema.d.ts.map +1 -1
  135. package/dist/esm/utils/schema.js +1 -1
  136. package/dist/esm/utils/tableProcessing.d.ts +18 -0
  137. package/dist/esm/utils/tableProcessing.d.ts.map +1 -1
  138. package/dist/esm/utils/tableProcessing.js +91 -1
  139. package/package.json +1 -1
  140. package/dist/cjs/components/ReportBuilder/pivot.d.ts.map +0 -1
  141. package/dist/cjs/models/Pivots.d.ts +0 -2
  142. package/dist/cjs/models/Pivots.d.ts.map +0 -1
  143. package/dist/cjs/models/Pivots.js +0 -2
  144. package/dist/esm/components/ReportBuilder/pivot.d.ts.map +0 -1
  145. package/dist/esm/models/Pivots.d.ts +0 -2
  146. package/dist/esm/models/Pivots.d.ts.map +0 -1
  147. package/dist/esm/models/Pivots.js +0 -1
  148. /package/dist/cjs/{components/ReportBuilder/pivot.js → models/Pivot.js} +0 -0
  149. /package/dist/esm/{components/ReportBuilder/pivot.js → models/Pivot.js} +0 -0
@@ -1,6 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getColumnsByTableFromASTAndSchema = exports.getColumnAndTableInfo = exports.recursiveSearchByKeysFindAllOccurances = exports.processApostrophe = exports.getColumnsByTableName = exports.createTableNameToTableAliasMap = exports.recursiveSearchByKeys = exports.recursiveSearchByKey = exports.processStarColumn = exports.getSelectFromAST = void 0;
3
+ exports.fetchASTFromQuillReport = exports.fetchAndProcessASTFromPrompt = exports.createBasicSelectASTFromColumns = exports.getAllPossibleColumns = exports.isSubquery = exports.getColumnsByTableFromASTAndSchema = exports.getColumnAndTableInfo = exports.recursiveSearchByKeysFindAllOccurances = exports.processApostrophe = exports.getColumnsByTableName = exports.createTableNameToTableAliasMap = exports.recursiveSearchByKeys = exports.recursiveSearchByKey = exports.processStarColumn = exports.getSelectFromAST = void 0;
4
+ const ast_1 = require("../components/ReportBuilder/ast");
5
+ const convert_1 = require("../components/ReportBuilder/convert");
6
+ const util_1 = require("../components/ReportBuilder/util");
7
+ const constants_1 = require("./constants");
8
+ const schema_1 = require("./schema");
4
9
  function getSelectFromAST(ast) {
5
10
  if (Array.isArray(ast)) {
6
11
  return ast[0];
@@ -265,3 +270,207 @@ function getColumnsByTableFromASTAndSchema(ast, tables, tableAliasMap) {
265
270
  return referencedColumns;
266
271
  }
267
272
  exports.getColumnsByTableFromASTAndSchema = getColumnsByTableFromASTAndSchema;
273
+ const isSubquery = (node) => {
274
+ if (!node)
275
+ return false;
276
+ if (node.ast)
277
+ return true;
278
+ if (node.left && (0, exports.isSubquery)(node.left))
279
+ return true;
280
+ if (node.right && (0, exports.isSubquery)(node.right))
281
+ return true;
282
+ if (node.value && Array.isArray(node.value)) {
283
+ for (const value of node.value) {
284
+ if ((0, exports.isSubquery)(value))
285
+ return true;
286
+ }
287
+ }
288
+ return false;
289
+ };
290
+ exports.isSubquery = isSubquery;
291
+ const getAllPossibleColumns = (baseAst, schema) => {
292
+ if (!baseAst || !baseAst.from) {
293
+ return schema.flatMap((table) => table.columns.map((c) => ({
294
+ ...c,
295
+ table: table.displayName,
296
+ })));
297
+ }
298
+ // TODO: support infinitely nested FROM table lookups.
299
+ // This currently only supports top-level table names in the FROM section
300
+ // of queries (eg. FROM "table_name", not "FROM (SELECT * FROM other) AS table_name")
301
+ const tableNamesInQuery = baseAst.from.map((tbl) => tbl.table);
302
+ return schema
303
+ .filter((t) => tableNamesInQuery.includes(t.displayName))
304
+ .flatMap((table) => table.columns
305
+ .map((c) => ({
306
+ ...c,
307
+ table: table.displayName,
308
+ }))
309
+ .sort((a, b) => {
310
+ const aIsId = a.name.toLowerCase() === 'id' ||
311
+ a.name.toLowerCase().endsWith('_id') ||
312
+ a.name.endsWith('Id');
313
+ const bIsId = b.name.toLowerCase() === 'id' ||
314
+ b.name.toLowerCase().endsWith('_id') ||
315
+ b.name.endsWith('Id');
316
+ if (aIsId && !bIsId)
317
+ return 1;
318
+ if (bIsId && !aIsId)
319
+ return -1;
320
+ return 0;
321
+ }));
322
+ };
323
+ exports.getAllPossibleColumns = getAllPossibleColumns;
324
+ const createBasicSelectASTFromColumns = (columns, tableName) => {
325
+ return {
326
+ type: 'select',
327
+ options: null,
328
+ distinct: null,
329
+ columns: columns.map((column) => ({
330
+ expr: {
331
+ type: 'column_ref',
332
+ table: tableName,
333
+ // @ts-ignore
334
+ column: column.field || column.name,
335
+ },
336
+ as: null,
337
+ })),
338
+ from: [{ db: null, table: tableName, as: null }],
339
+ where: null,
340
+ groupby: null,
341
+ having: null,
342
+ orderby: null,
343
+ limit: null,
344
+ };
345
+ };
346
+ exports.createBasicSelectASTFromColumns = createBasicSelectASTFromColumns;
347
+ const fetchAndProcessASTFromPrompt = async (aiPrompt, schema, client, prevPivot, currentQuery) => {
348
+ let res, data, ast, newAst, pivot;
349
+ let numRetries = 0;
350
+ let whereAST;
351
+ const MAX_RETRIES = 3;
352
+ try {
353
+ console.log(`[Prompt]: ${aiPrompt}`);
354
+ let isTableJoin = !ast || !ast.from || ast.from.length !== 1;
355
+ while (isTableJoin || (0, exports.isSubquery)(ast?.where)) {
356
+ if (numRetries === MAX_RETRIES)
357
+ break;
358
+ if (!currentQuery || (ast && (isTableJoin || (0, exports.isSubquery)(ast?.where)))) {
359
+ res = await fetch(`${constants_1.QUILL_SERVER}/magic`, {
360
+ method: 'POST',
361
+ headers: { 'Content-Type': 'application/json' },
362
+ body: JSON.stringify({
363
+ initialQuestion: aiPrompt,
364
+ publicKey: client.publicKey,
365
+ useNewNodeSql: true, // new flag
366
+ }),
367
+ });
368
+ }
369
+ else {
370
+ res = await fetch(`${constants_1.QUILL_SERVER}/magic/edit`, {
371
+ method: 'POST',
372
+ headers: { 'Content-Type': 'application/json' },
373
+ body: JSON.stringify({
374
+ sqlQuery: currentQuery,
375
+ initialQuestion: aiPrompt,
376
+ publicKey: client.publicKey,
377
+ useNewNodeSql: true, // new flag
378
+ }),
379
+ });
380
+ }
381
+ data = await res.json();
382
+ ast = data?.ast?.length ? data?.ast[0] : data?.ast;
383
+ // TODO: Debug invalid table joins in handleAsk
384
+ isTableJoin =
385
+ ast?.type !== 'bigquery' &&
386
+ (!ast || !ast.from || ast.from.length !== 1);
387
+ numRetries += 1;
388
+ }
389
+ if (numRetries === MAX_RETRIES) {
390
+ console.error('[Error]: Max retries exceeded.');
391
+ console.info(`%c[Prompt]: ${aiPrompt}`, 'color: dimgray');
392
+ throw new Error("Error: Couldn't process your request, please re-word your prompt.");
393
+ }
394
+ ast = ast.length ? ast[0] : ast;
395
+ newAst = (0, convert_1.convertBigQuery)(ast);
396
+ newAst = (0, convert_1.convertWildcardColumns)(newAst, schema); // must go before groupby
397
+ ({ ast: newAst, pivot } = (0, convert_1.convertGroupBy)(newAst, schema, prevPivot));
398
+ newAst = (0, convert_1.convertStringComparison)(newAst, client.databaseType);
399
+ newAst = (0, convert_1.convertRemoveSimpleParentheses)(newAst);
400
+ const table = (0, ast_1.getTableNames)(newAst)[0];
401
+ if (!table) {
402
+ throw new Error('Table or table alias not found');
403
+ }
404
+ const processedName = table || '';
405
+ const tableInfo = schema.find((t) => t.name === processedName);
406
+ if (!tableInfo) {
407
+ throw new Error('Table info not found');
408
+ }
409
+ newAst = (0, convert_1.convertUnaryToBinary)(newAst);
410
+ newAst = (0, util_1.removeNonSelectedTableReferences)(newAst, processedName, tableInfo.columns.map((col) => col.name));
411
+ if (pivot) {
412
+ newAst = (0, util_1.deepCopy)({ ...newAst, orderby: null, limit: null });
413
+ }
414
+ whereAST = (0, util_1.deepCopy)(newAst.where);
415
+ }
416
+ catch (e) {
417
+ console.log(e);
418
+ if (e instanceof Error) {
419
+ return {
420
+ ast: null,
421
+ pivot: null,
422
+ whereAST: null,
423
+ error: "Error: Couldn't process your request, please re-word your prompt.",
424
+ };
425
+ }
426
+ }
427
+ return { ast: newAst, pivot, whereAST };
428
+ };
429
+ exports.fetchAndProcessASTFromPrompt = fetchAndProcessASTFromPrompt;
430
+ const fetchASTFromQuillReport = async (report, client, schema) => {
431
+ let newAst;
432
+ let groupByPivot = null;
433
+ let schemaInfo = [];
434
+ try {
435
+ if (!report || report.referencedTables?.length !== 1) {
436
+ throw new Error('Report not found');
437
+ }
438
+ const url = `${constants_1.QUILL_SERVER}/astify`;
439
+ const result = await fetch(url, {
440
+ method: 'POST',
441
+ headers: {
442
+ 'Content-Type': 'application/json',
443
+ },
444
+ body: JSON.stringify({ query: report.queryString, useNewNodeSql: true }),
445
+ });
446
+ const resp = await result.json();
447
+ if (resp.success === false) {
448
+ throw new Error("Couldn't process report query.");
449
+ }
450
+ const ast = getSelectFromAST(resp.ast);
451
+ let convertedAst = processStarColumn(ast, report.columns);
452
+ convertedAst = (0, convert_1.convertWildcardColumns)(convertedAst, schema); // must go before groupby
453
+ convertedAst = (0, convert_1.convertBigQuery)(convertedAst);
454
+ schemaInfo = schema;
455
+ if (!schemaInfo) {
456
+ const { schemaData } = await (0, schema_1.getSchemaInfoWithCustomFields)(client, 'rb');
457
+ schemaInfo = schemaData;
458
+ }
459
+ processApostrophe(convertedAst, ['type', 'value']);
460
+ convertedAst = (0, convert_1.convertBigQuery)(convertedAst);
461
+ ({ ast: newAst, pivot: groupByPivot } = (0, convert_1.convertGroupBy)(convertedAst, schemaInfo, report.pivot ? report.pivot : undefined));
462
+ newAst = groupByPivot ? newAst : convertedAst;
463
+ }
464
+ catch (e) {
465
+ console.log(e);
466
+ if (e instanceof Error) {
467
+ return {
468
+ error: e.message,
469
+ ast: null,
470
+ pivot: null,
471
+ };
472
+ }
473
+ }
474
+ return { ast: newAst, pivot: groupByPivot, schema: schemaInfo };
475
+ };
476
+ exports.fetchASTFromQuillReport = fetchASTFromQuillReport;
@@ -1,3 +1,4 @@
1
1
  export declare const MAX_COLUMN_ROWS_LIMIT = 500;
2
+ export declare const QUILL_SERVER = "https://quill-344421.uc.r.appspot.com";
2
3
  export declare const MAX_PIVOT_UNIQUE_VALUES = 250;
3
4
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/utils/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,qBAAqB,MAAM,CAAC;AACzC,eAAO,MAAM,uBAAuB,MAAM,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/utils/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,qBAAqB,MAAM,CAAC;AACzC,eAAO,MAAM,YAAY,0CAA0C,CAAC;AACpE,eAAO,MAAM,uBAAuB,MAAM,CAAC"}
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MAX_PIVOT_UNIQUE_VALUES = exports.MAX_COLUMN_ROWS_LIMIT = void 0;
3
+ exports.MAX_PIVOT_UNIQUE_VALUES = exports.QUILL_SERVER = exports.MAX_COLUMN_ROWS_LIMIT = void 0;
4
4
  exports.MAX_COLUMN_ROWS_LIMIT = 500;
5
+ exports.QUILL_SERVER = 'https://quill-344421.uc.r.appspot.com';
5
6
  exports.MAX_PIVOT_UNIQUE_VALUES = 250;
@@ -1,3 +1,7 @@
1
1
  export declare function getData(client: any, cloudQueryEndpoint: string, noCred: RequestCredentials, hostedRequestBody: any, cloudRequestBody: any, method?: string, queryParam?: string): Promise<any>;
2
2
  export declare function getDataFromCloud(client: any, cloudQueryEndpoint: string, cloudRequestBody: any, method?: string): Promise<any>;
3
+ export declare function fetchSqlQuery(ast: any, client: any, formData?: any): Promise<{
4
+ query: string;
5
+ error?: string;
6
+ }>;
3
7
  //# sourceMappingURL=dataFetcher.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dataFetcher.d.ts","sourceRoot":"","sources":["../../../src/utils/dataFetcher.tsx"],"names":[],"mappings":"AA2EA,wBAAsB,OAAO,CAC3B,MAAM,EAAE,GAAG,EACX,kBAAkB,EAAE,MAAM,EAC1B,MAAM,EAAE,kBAAkB,EAC1B,iBAAiB,EAAE,GAAG,EACtB,gBAAgB,EAAE,GAAG,EACrB,MAAM,SAAS,EACf,UAAU,CAAC,EAAE,MAAM,gBA6IpB;AAED,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,GAAG,EACX,kBAAkB,EAAE,MAAM,EAC1B,gBAAgB,EAAE,GAAG,EACrB,MAAM,SAAS,gBAgChB"}
1
+ {"version":3,"file":"dataFetcher.d.ts","sourceRoot":"","sources":["../../../src/utils/dataFetcher.tsx"],"names":[],"mappings":"AA6EA,wBAAsB,OAAO,CAC3B,MAAM,EAAE,GAAG,EACX,kBAAkB,EAAE,MAAM,EAC1B,MAAM,EAAE,kBAAkB,EAC1B,iBAAiB,EAAE,GAAG,EACtB,gBAAgB,EAAE,GAAG,EACrB,MAAM,SAAS,EACf,UAAU,CAAC,EAAE,MAAM,gBA6IpB;AAED,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,GAAG,EACX,kBAAkB,EAAE,MAAM,EAC1B,gBAAgB,EAAE,GAAG,EACrB,MAAM,SAAS,gBAgChB;AAED,wBAAsB,aAAa,CACjC,GAAG,EAAE,GAAG,EACR,MAAM,EAAE,GAAG,EACX,QAAQ,CAAC,EAAE,GAAG,GACb,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAmB5C"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getDataFromCloud = exports.getData = void 0;
3
+ exports.fetchSqlQuery = exports.getDataFromCloud = exports.getData = void 0;
4
+ const constants_1 = require("./constants");
4
5
  function fetchQuillData(responseData) {
5
6
  if (!responseData) {
6
7
  return null;
@@ -208,3 +209,25 @@ async function getDataFromCloud(client, cloudQueryEndpoint, cloudRequestBody, me
208
209
  }
209
210
  }
210
211
  exports.getDataFromCloud = getDataFromCloud;
212
+ async function fetchSqlQuery(ast, client, formData) {
213
+ try {
214
+ const where = formData ? formData : ast?.where || null;
215
+ const response = await fetch(`${constants_1.QUILL_SERVER}/sqlify`, {
216
+ method: 'POST',
217
+ headers: {
218
+ 'Content-Type': 'application/json',
219
+ },
220
+ body: JSON.stringify({
221
+ ast: { ...ast, where },
222
+ publicKey: client.publicKey,
223
+ useNewNodeSql: true, // new flag
224
+ }),
225
+ });
226
+ const data = await response.json();
227
+ return { query: data.query };
228
+ }
229
+ catch (error) {
230
+ return { query: '', error: 'Failed to fetch query' };
231
+ }
232
+ }
233
+ exports.fetchSqlQuery = fetchSqlQuery;
@@ -14,7 +14,7 @@ export declare function getComparisonInterval(comparisonRange: {
14
14
  export declare function getDateBucketFromRange(dateRange: {
15
15
  start: Date;
16
16
  end: Date;
17
- }): "month" | "week" | "year" | "day";
17
+ }): "month" | "week" | "day" | "year";
18
18
  export declare function parseDateByDatabaseType(date: any, databaseType: string): Date;
19
19
  export declare function getDateFormatFromBucket(dateBucket: string): string;
20
20
  //# sourceMappingURL=dates.d.ts.map
@@ -1,8 +1,8 @@
1
- import { Filter } from '../models/Filter';
1
+ import { FieldTypes, Filter } from '../models/Filter';
2
2
  export declare function findAndProcessDateFilter(filters: any[]): any;
3
3
  export declare function processFilterFromBackend(filter: any): any;
4
4
  export declare function updateFilter(filter: any, value?: any, comparison?: any): any;
5
- export declare const getType: (t: string) => "string" | "boolean" | "date" | "numeric";
5
+ export declare const getType: (t: string) => FieldTypes.String | FieldTypes.Number | FieldTypes.Date | FieldTypes.Boolean;
6
6
  /**
7
7
  * Returns a sentence to describe a Filter
8
8
  */
@@ -1 +1 @@
1
- {"version":3,"file":"filterProcessing.d.ts","sourceRoot":"","sources":["../../../src/utils/filterProcessing.ts"],"names":[],"mappings":"AAOA,OAAO,EAAgB,MAAM,EAAe,MAAM,kBAAkB,CAAC;AAGrE,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,GAAE,GAAU,EACjB,UAAU,GAAE,GAAU,OAuGvB;AAGD,eAAO,MAAM,OAAO,MAAO,MAAM,8CAwDhC,CAAC;AAEF;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAwBrD"}
1
+ {"version":3,"file":"filterProcessing.d.ts","sourceRoot":"","sources":["../../../src/utils/filterProcessing.ts"],"names":[],"mappings":"AAOA,OAAO,EAEL,UAAU,EACV,MAAM,EAEP,MAAM,kBAAkB,CAAC;AAG1B,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,GAAE,GAAU,EACjB,UAAU,GAAE,GAAU,OAuGvB;AAGD,eAAO,MAAM,OAAO,MAAO,MAAM,iFAwDhC,CAAC;AAEF;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAwBrD"}
@@ -167,7 +167,7 @@ const getType = (t) => {
167
167
  case 'longtext':
168
168
  case 'longblob':
169
169
  case 'text':
170
- return 'string';
170
+ return Filter_1.FieldTypes.String;
171
171
  case 'numeric':
172
172
  case 'bit':
173
173
  case 'tinybit':
@@ -185,7 +185,7 @@ const getType = (t) => {
185
185
  case 'smallmoney':
186
186
  case 'money':
187
187
  case 'real':
188
- return 'numeric';
188
+ return Filter_1.FieldTypes.Number;
189
189
  case 'date':
190
190
  case 'datetime':
191
191
  case 'datetime2':
@@ -195,12 +195,12 @@ const getType = (t) => {
195
195
  case 'timestamptz':
196
196
  case 'time':
197
197
  case 'year':
198
- return 'date';
198
+ return Filter_1.FieldTypes.Date;
199
199
  case 'bool':
200
200
  case 'boolean':
201
- return 'boolean';
201
+ return Filter_1.FieldTypes.Boolean;
202
202
  default:
203
- return 'string';
203
+ return Filter_1.FieldTypes.String;
204
204
  }
205
205
  };
206
206
  exports.getType = getType;
@@ -209,7 +209,7 @@ exports.getType = getType;
209
209
  */
210
210
  function filterSentence(filter) {
211
211
  let value = '';
212
- if (filter.name == Filter_1.FilterNames.NullFilter) {
212
+ if (filter.filterType == Filter_1.FilterNames.NullFilter) {
213
213
  return `${(0, textProcessing_1.snakeAndCamelCaseToTitleCase)(filter.field)} ${filter.operator}`;
214
214
  }
215
215
  else if (filter.value === null || filter.value === undefined) {
@@ -1,4 +1,4 @@
1
- import { Pivot } from '../internals/ReportBuilder/PivotModal';
1
+ import { Pivot } from '../models/Pivot';
2
2
  import { QuillReportInternal } from '../models/Report';
3
3
  export declare function generatePivotWithSQL(pivot: Pivot, report: QuillReportInternal, client: any, dateBucket?: string, dateFilter?: any, distinctStrings?: any): Promise<{
4
4
  rows: any;
@@ -1 +1 @@
1
- {"version":3,"file":"pivotConstructor.d.ts","sourceRoot":"","sources":["../../../src/utils/pivotConstructor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAiB,MAAM,uCAAuC,CAAC;AAC7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAOvD,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,mBAAmB,EAC3B,MAAM,EAAE,GAAG,EACX,UAAU,CAAC,EAAE,MAAM,EACnB,UAAU,CAAC,EAAE,GAAG,EAChB,eAAe,CAAC,EAAE,GAAG;;;eAyLtB"}
1
+ {"version":3,"file":"pivotConstructor.d.ts","sourceRoot":"","sources":["../../../src/utils/pivotConstructor.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAOvD,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,mBAAmB,EAC3B,MAAM,EAAE,GAAG,EACX,UAAU,CAAC,EAAE,MAAM,EACnB,UAAU,CAAC,EAAE,GAAG,EAChB,eAAe,CAAC,EAAE,GAAG;;;eAgMtB"}
@@ -87,15 +87,17 @@ async function generatePivotWithSQL(pivot, report, client, dateBucket, dateFilte
87
87
  }
88
88
  return 0;
89
89
  });
90
- if (pivot.rowField && !['string', 'varchar'].includes(pivot.rowFieldType)) {
90
+ if (pivot.rowField &&
91
+ !['string', 'varchar'].includes(pivot.rowFieldType || '')) {
91
92
  rows.forEach((row) => {
92
- row[pivot.rowField] = (0, PivotModal_1.getDateString)(row[pivot.rowField], undefined, dateBucket);
93
+ row[pivot.rowField || ''] = (0, PivotModal_1.getDateString)(row[pivot.rowField || ''], undefined, dateBucket);
93
94
  });
94
95
  // add a row for each date in the range that doesn't have a value
95
96
  if (pivot.rowField &&
97
+ pivot.rowFieldType &&
96
98
  !['string', 'varchar'].includes(pivot.rowFieldType) &&
97
99
  dateFilter) {
98
- const dateSet = new Set(rows.map((row) => row[pivot.rowField]));
100
+ const dateSet = new Set(rows.map((row) => row[pivot.rowField || '']));
99
101
  // create a loop that will go through each formatted date and add a row if it doesn't exist going to the current date
100
102
  for (let date = dateFilter.start ?? dateFilter.startDate; date <= dateFilter.end; date = new Date(date.getTime() + 24 * 60 * 60 * 1000)) {
101
103
  const formattedDate = (0, PivotModal_1.getDateString)(date.toDateString(), undefined, dateBucket);
@@ -107,7 +109,8 @@ async function generatePivotWithSQL(pivot, report, client, dateBucket, dateFilte
107
109
  }
108
110
  // order the rows by the date field
109
111
  rows.sort((a, b) => {
110
- return new Date(a[pivot.rowField]) < new Date(b[pivot.rowField])
112
+ return new Date(a[pivot.rowField || '']) <
113
+ new Date(b[pivot.rowField || ''])
111
114
  ? -1
112
115
  : 1;
113
116
  });
@@ -1,10 +1,9 @@
1
- import { Pivot } from '../internals/ReportBuilder/PivotModal';
2
1
  import { ColumnInternal } from '../models/Columns';
2
+ import { Pivot } from '../models/Pivot';
3
+ import { UniqueValuesByColumn } from '../models/Tables';
3
4
  export declare function pivotToSql(pivot: Pivot, query: string, columns: ColumnInternal[]): string;
4
5
  export declare function isValidPivot(pivot: Pivot): boolean;
5
- export declare function getPossiblePivotFieldOptions(columns: ColumnInternal[], uniqueValues: {
6
- [field: string]: any;
7
- }): {
6
+ export declare function getPossiblePivotFieldOptions(columns: ColumnInternal[], uniqueValues: UniqueValuesByColumn): {
8
7
  rowFields: string[];
9
8
  columnFields: string[];
10
9
  valueFields: string[];
@@ -14,4 +13,5 @@ export declare function cleanPivot(pivot: Pivot, possibleColumns: {
14
13
  columnFields: any;
15
14
  valueFields: any;
16
15
  }): Pivot;
16
+ export declare const isPivotPossible: (fields: any, pivot: Pivot) => boolean;
17
17
  //# sourceMappingURL=pivotProcessing.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pivotProcessing.d.ts","sourceRoot":"","sources":["../../../src/utils/pivotProcessing.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,uCAAuC,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAInD,wBAAgB,UAAU,CACxB,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,cAAc,EAAE,GACxB,MAAM,CAsCR;AAkBD,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,WA0BxC;AAED,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,cAAc,EAAE,EACzB,YAAY,EAAE;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE;;;;EA4CvC;AAED,wBAAgB,UAAU,CACxB,KAAK,EAAE,KAAK,EACZ,eAAe,EAAE;IACf,SAAS,EAAE,GAAG,CAAC;IACf,YAAY,EAAE,GAAG,CAAC;IAClB,WAAW,EAAE,GAAG,CAAC;CAClB,GACA,KAAK,CAqCP"}
1
+ {"version":3,"file":"pivotProcessing.d.ts","sourceRoot":"","sources":["../../../src/utils/pivotProcessing.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAIxD,wBAAgB,UAAU,CACxB,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,cAAc,EAAE,GACxB,MAAM,CAuCR;AAkBD,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,WA0BxC;AAED,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,cAAc,EAAE,EACzB,YAAY,EAAE,oBAAoB;;;;EA4CnC;AAED,wBAAgB,UAAU,CACxB,KAAK,EAAE,KAAK,EACZ,eAAe,EAAE;IACf,SAAS,EAAE,GAAG,CAAC;IACf,YAAY,EAAE,GAAG,CAAC;IAClB,WAAW,EAAE,GAAG,CAAC;CAClB,GACA,KAAK,CAqCP;AAED,eAAO,MAAM,eAAe,WAAY,GAAG,SAAS,KAAK,YA8BxD,CAAC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.cleanPivot = exports.getPossiblePivotFieldOptions = exports.isValidPivot = exports.pivotToSql = void 0;
3
+ exports.isPivotPossible = exports.cleanPivot = exports.getPossiblePivotFieldOptions = exports.isValidPivot = exports.pivotToSql = void 0;
4
4
  const util_1 = require("../components/ReportBuilder/util");
5
5
  const constants_1 = require("./constants");
6
6
  const valueFormatter_1 = require("./valueFormatter");
@@ -29,7 +29,9 @@ function pivotToSql(pivot, query, columns) {
29
29
  pivot.valueField &&
30
30
  processedAggType) {
31
31
  // 2-d pivot
32
- const sqlQuery = generateTwoDPivotQuery({ ...pivot, aggregationType: processedAggType }, query, columns);
32
+ const sqlQuery = generateTwoDPivotQuery(
33
+ // @ts-ignore
34
+ { ...pivot, aggregationType: processedAggType }, query, columns);
33
35
  return sqlQuery;
34
36
  }
35
37
  return query;
@@ -140,3 +142,20 @@ function cleanPivot(pivot, possibleColumns) {
140
142
  return pivot;
141
143
  }
142
144
  exports.cleanPivot = cleanPivot;
145
+ const isPivotPossible = (fields, pivot) => {
146
+ let validPivot = true;
147
+ if (pivot.rowField &&
148
+ !fields.find((field) => field.name === pivot.rowField || field.field === pivot.rowField)) {
149
+ validPivot = false;
150
+ }
151
+ if (pivot.valueField &&
152
+ !fields.find((field) => field.name === pivot.valueField || field.field === pivot.valueField)) {
153
+ validPivot = false;
154
+ }
155
+ if (pivot.columnField &&
156
+ !fields.find((field) => field.name === pivot.columnField || field.field === pivot.columnField)) {
157
+ validPivot = false;
158
+ }
159
+ return validPivot;
160
+ };
161
+ exports.isPivotPossible = isPivotPossible;
@@ -1,4 +1,4 @@
1
- import { Pivot } from '../internals/ReportBuilder/PivotModal';
1
+ import { Pivot } from '../models/Pivot';
2
2
  export declare function processColumnReference(column: string, databaseType: string, fallbackOnNull?: string): string;
3
3
  export declare function generateCountQuery(fields: string[], query: string, databaseType: string): string;
4
4
  export declare function generateDistinctQuery(stringFields: string[], query: string, databaseType: string): string;
@@ -1 +1 @@
1
- {"version":3,"file":"queryConstructor.d.ts","sourceRoot":"","sources":["../../../src/utils/queryConstructor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,uCAAuC,CAAC;AAmB9D,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,EACpB,cAAc,CAAC,EAAE,MAAM,UAiBxB;AAgDD,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,MAAM,EAAE,EAChB,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,MAAM,UAUrB;AAED,wBAAgB,qBAAqB,CACnC,YAAY,EAAE,MAAM,EAAE,EACtB,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,MAAM,UASrB;AAED,wBAAgB,0BAA0B,CACxC,YAAY,EAAE,MAAM,EAAE,EACtB,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,MAAM,UAcrB;AAED,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,MAAM,EAAE,EACrB,YAAY,EAAE,MAAM,EACpB,kBAAkB,CAAC,EAAE,MAAM,EAC3B,eAAe,CAAC,EAAE,MAAM,EAAE,EAC1B,UAAU,CAAC,EAAE,MAAM,GAClB,MAAM,GAAG,SAAS,CAwBpB"}
1
+ {"version":3,"file":"queryConstructor.d.ts","sourceRoot":"","sources":["../../../src/utils/queryConstructor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAmBxC,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,EACpB,cAAc,CAAC,EAAE,MAAM,UAiBxB;AAgDD,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,MAAM,EAAE,EAChB,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,MAAM,UAUrB;AAED,wBAAgB,qBAAqB,CACnC,YAAY,EAAE,MAAM,EAAE,EACtB,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,MAAM,UASrB;AAED,wBAAgB,0BAA0B,CACxC,YAAY,EAAE,MAAM,EAAE,EACtB,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,MAAM,UAcrB;AAED,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,MAAM,EAAE,EACrB,YAAY,EAAE,MAAM,EACpB,kBAAkB,CAAC,EAAE,MAAM,EAC3B,eAAe,CAAC,EAAE,MAAM,EAAE,EAC1B,UAAU,CAAC,EAAE,MAAM,GAClB,MAAM,GAAG,SAAS,CAwBpB"}
@@ -110,7 +110,7 @@ function create2DPivotQuery(pivot, itemQueries, databaseType, dateBucket, compar
110
110
  if (!columnFieldValues) {
111
111
  return undefined;
112
112
  }
113
- if (['string', 'varchar'].includes(pivot.rowFieldType) ||
113
+ if (['string', 'varchar'].includes(pivot.rowFieldType || '') ||
114
114
  !pivot.rowFieldType) {
115
115
  return create2DStringPivotQuery(pivot, itemQueries, columnFieldValues, databaseType);
116
116
  }
@@ -172,7 +172,7 @@ function create2DDatePivotQuery(pivot, itemQueries, columnFieldValues, databaseT
172
172
  ${joinQuery} ORDER BY qt.${processColumnReference(`${rowField}`, databaseType)}`;
173
173
  }
174
174
  function create1DPivotQuery(pivot, itemQueries, dateBucket = 'month', databaseType, comparisonInterval) {
175
- if (['string', 'varchar'].includes(pivot.rowFieldType) ||
175
+ if (['string', 'varchar'].includes(pivot.rowFieldType || '') ||
176
176
  !pivot.rowFieldType) {
177
177
  return create1DStringPivotQuery(pivot, itemQueries, databaseType);
178
178
  }
@@ -197,7 +197,7 @@ function create1DStringPivotQuery(pivot, itemQueries, databaseType) {
197
197
  ${joinQuery}`;
198
198
  }
199
199
  function create1DDatePivotQuery(pivot, itemQueries, dateBucket = 'month', databaseType, comparisonInterval) {
200
- const rowField = pivot.rowField;
200
+ const rowField = pivot.rowField || '';
201
201
  const valueField = pivot.valueField;
202
202
  const compareCTE = itemQueries[1] && comparisonInterval
203
203
  ? `, quill_ct as (${itemQueries[1]?.replaceAll(';', '')})`
@@ -1,5 +1,26 @@
1
+ import { TableInfo } from '../components/ReportBuilder/schema';
2
+ import { ColumnInternal } from '../models/Columns';
3
+ import { Pivot } from '../models/Pivot';
1
4
  import { QuillReport, QuillReportInternal } from '../models/Report';
5
+ import { DateRangesByColumn, UniqueValuesByTable } from '../models/Tables';
2
6
  import { AdditionalProcessing } from './tableProcessing';
7
+ export type ReportBuilderInfo = {
8
+ rows: any[];
9
+ columns: ColumnInternal[];
10
+ rowCount: number;
11
+ pivot: Pivot | null;
12
+ pivotData: {
13
+ rows: any[];
14
+ columns: ColumnInternal[];
15
+ } | null;
16
+ formattedRows: any[];
17
+ report: QuillReportInternal;
18
+ table: string;
19
+ uniqueValues: UniqueValuesByTable;
20
+ dateRanges: DateRangesByColumn;
21
+ query: string;
22
+ error?: string;
23
+ };
3
24
  export declare const EMPTY_REPORT: QuillReport;
4
25
  export declare function fetchReport(reportId: string, client: any, useReportTask?: boolean, filters?: any[], additionalProcessing?: AdditionalProcessing, dateBucket?: string, customFields?: any): Promise<{
5
26
  report: QuillReportInternal;
@@ -7,4 +28,8 @@ export declare function fetchReport(reportId: string, client: any, useReportTask
7
28
  }>;
8
29
  export declare const formatRowsFromReport: (report: any) => any;
9
30
  export declare function convertInternalReportToReport(report: QuillReportInternal): QuillReport;
31
+ export declare const fetchReportBuilderDataFromAST: (baseAst: any, formData: any, schema: TableInfo[], client: any, pivot?: Pivot, previousFormData?: any, currentTable?: string, previousRelevant?: {
32
+ uniqueStrings: UniqueValuesByTable;
33
+ dateRanges: DateRangesByColumn;
34
+ }, report?: QuillReportInternal, customFields?: any) => Promise<ReportBuilderInfo>;
10
35
  //# sourceMappingURL=report.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../../../src/utils/report.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAUpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAGzD,eAAO,MAAM,YAAY,EAAE,WAkB1B,CAAC;AAEF,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,GAAG,EACX,aAAa,UAAO,EACpB,OAAO,GAAE,GAAG,EAAO,EACnB,oBAAoB,CAAC,EAAE,oBAAoB,EAC3C,UAAU,CAAC,EAAE,MAAM,EACnB,YAAY,CAAC,EAAE,GAAG,GACjB,OAAO,CAAC;IAAE,MAAM,EAAE,mBAAmB,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CA0G1D;AAED,eAAO,MAAM,oBAAoB,WAAY,GAAG,QAkB/C,CAAC;AAEF,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,mBAAmB,GAC1B,WAAW,CAsDb"}
1
+ {"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../../../src/utils/report.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAE/D,OAAO,EAAU,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAa3E,OAAO,EACL,oBAAoB,EAGrB,MAAM,mBAAmB,CAAC;AAG3B,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,SAAS,EAAE;QAAE,IAAI,EAAE,GAAG,EAAE,CAAC;QAAC,OAAO,EAAE,cAAc,EAAE,CAAA;KAAE,GAAG,IAAI,CAAC;IAC7D,aAAa,EAAE,GAAG,EAAE,CAAC;IACrB,MAAM,EAAE,mBAAmB,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,mBAAmB,CAAC;IAClC,UAAU,EAAE,kBAAkB,CAAC;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,WAkB1B,CAAC;AAEF,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,GAAG,EACX,aAAa,UAAO,EACpB,OAAO,GAAE,GAAG,EAAO,EACnB,oBAAoB,CAAC,EAAE,oBAAoB,EAC3C,UAAU,CAAC,EAAE,MAAM,EACnB,YAAY,CAAC,EAAE,GAAG,GACjB,OAAO,CAAC;IAAE,MAAM,EAAE,mBAAmB,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CA0G1D;AAED,eAAO,MAAM,oBAAoB,WAAY,GAAG,QAkB/C,CAAC;AAEF,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,mBAAmB,GAC1B,WAAW,CAsDb;AAED,eAAO,MAAM,6BAA6B,YAC/B,GAAG,YACF,GAAG,UACL,SAAS,EAAE,UACX,GAAG,UACH,KAAK,qBACM,GAAG,iBACP,MAAM,qBACF;IACjB,aAAa,EAAE,mBAAmB,CAAC;IACnC,UAAU,EAAE,kBAAkB,CAAC;CAChC,WACQ,mBAAmB,iBACb,GAAG,KACjB,QAAQ,iBAAiB,CAmI3B,CAAC"}