@quillsql/react 2.12.27 → 2.12.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 (119) hide show
  1. package/dist/cjs/Chart.d.ts.map +1 -1
  2. package/dist/cjs/Chart.js +34 -17
  3. package/dist/cjs/ChartBuilder.d.ts +3 -3
  4. package/dist/cjs/ChartBuilder.d.ts.map +1 -1
  5. package/dist/cjs/ChartBuilder.js +30 -23
  6. package/dist/cjs/ChartEditor.d.ts.map +1 -1
  7. package/dist/cjs/ChartEditor.js +66 -26
  8. package/dist/cjs/Context.d.ts.map +1 -1
  9. package/dist/cjs/Dashboard.d.ts +6 -1
  10. package/dist/cjs/Dashboard.d.ts.map +1 -1
  11. package/dist/cjs/Dashboard.js +3 -1
  12. package/dist/cjs/ReportBuilder.d.ts +1 -1
  13. package/dist/cjs/ReportBuilder.d.ts.map +1 -1
  14. package/dist/cjs/ReportBuilder.js +12 -10
  15. package/dist/cjs/SQLEditor.d.ts +10 -1
  16. package/dist/cjs/SQLEditor.d.ts.map +1 -1
  17. package/dist/cjs/SQLEditor.js +27 -3
  18. package/dist/cjs/Table.d.ts.map +1 -1
  19. package/dist/cjs/Table.js +17 -7
  20. package/dist/cjs/components/Chart/ChartTooltip.d.ts.map +1 -1
  21. package/dist/cjs/components/Chart/ChartTooltip.js +5 -4
  22. package/dist/cjs/components/Dashboard/DataLoader.d.ts.map +1 -1
  23. package/dist/cjs/components/Dashboard/DataLoader.js +52 -15
  24. package/dist/cjs/components/Dashboard/MetricComponent.d.ts.map +1 -1
  25. package/dist/cjs/components/Dashboard/MetricComponent.js +7 -1
  26. package/dist/cjs/components/Dashboard/TableComponent.d.ts +16 -2
  27. package/dist/cjs/components/Dashboard/TableComponent.d.ts.map +1 -1
  28. package/dist/cjs/components/Dashboard/TableComponent.js +2 -14
  29. package/dist/cjs/components/QuillTable.d.ts +2 -2
  30. package/dist/cjs/components/QuillTable.d.ts.map +1 -1
  31. package/dist/cjs/components/QuillTable.js +7 -5
  32. package/dist/cjs/components/UiComponents.d.ts +3 -3
  33. package/dist/cjs/components/UiComponents.d.ts.map +1 -1
  34. package/dist/cjs/components/UiComponents.js +4 -4
  35. package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts +16 -1
  36. package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
  37. package/dist/cjs/internals/ReportBuilder/PivotModal.js +155 -80
  38. package/dist/cjs/utils/constants.d.ts +2 -0
  39. package/dist/cjs/utils/constants.d.ts.map +1 -0
  40. package/dist/cjs/utils/constants.js +4 -0
  41. package/dist/cjs/utils/dashboard.d.ts.map +1 -1
  42. package/dist/cjs/utils/dashboard.js +26 -96
  43. package/dist/cjs/utils/dataFetcher.d.ts.map +1 -1
  44. package/dist/cjs/utils/dataFetcher.js +56 -13
  45. package/dist/cjs/utils/dates.d.ts +8 -0
  46. package/dist/cjs/utils/dates.d.ts.map +1 -1
  47. package/dist/cjs/utils/dates.js +34 -1
  48. package/dist/cjs/utils/logging.d.ts +2 -0
  49. package/dist/cjs/utils/logging.d.ts.map +1 -0
  50. package/dist/cjs/utils/logging.js +10 -0
  51. package/dist/cjs/utils/pivotConstructor.d.ts +6 -0
  52. package/dist/cjs/utils/pivotConstructor.d.ts.map +1 -0
  53. package/dist/cjs/utils/pivotConstructor.js +87 -0
  54. package/dist/cjs/utils/queryConstructor.d.ts +2 -1
  55. package/dist/cjs/utils/queryConstructor.d.ts.map +1 -1
  56. package/dist/cjs/utils/queryConstructor.js +46 -11
  57. package/dist/cjs/utils/tableProcessing.d.ts +22 -0
  58. package/dist/cjs/utils/tableProcessing.d.ts.map +1 -1
  59. package/dist/cjs/utils/tableProcessing.js +87 -1
  60. package/dist/esm/Chart.d.ts.map +1 -1
  61. package/dist/esm/Chart.js +34 -17
  62. package/dist/esm/ChartBuilder.d.ts +3 -3
  63. package/dist/esm/ChartBuilder.d.ts.map +1 -1
  64. package/dist/esm/ChartBuilder.js +30 -23
  65. package/dist/esm/ChartEditor.d.ts.map +1 -1
  66. package/dist/esm/ChartEditor.js +66 -26
  67. package/dist/esm/Context.d.ts.map +1 -1
  68. package/dist/esm/Dashboard.d.ts +6 -1
  69. package/dist/esm/Dashboard.d.ts.map +1 -1
  70. package/dist/esm/Dashboard.js +3 -1
  71. package/dist/esm/ReportBuilder.d.ts +1 -1
  72. package/dist/esm/ReportBuilder.d.ts.map +1 -1
  73. package/dist/esm/ReportBuilder.js +13 -11
  74. package/dist/esm/SQLEditor.d.ts +10 -1
  75. package/dist/esm/SQLEditor.d.ts.map +1 -1
  76. package/dist/esm/SQLEditor.js +27 -3
  77. package/dist/esm/Table.d.ts.map +1 -1
  78. package/dist/esm/Table.js +17 -7
  79. package/dist/esm/components/Chart/ChartTooltip.d.ts.map +1 -1
  80. package/dist/esm/components/Chart/ChartTooltip.js +5 -4
  81. package/dist/esm/components/Dashboard/DataLoader.d.ts.map +1 -1
  82. package/dist/esm/components/Dashboard/DataLoader.js +52 -15
  83. package/dist/esm/components/Dashboard/MetricComponent.d.ts.map +1 -1
  84. package/dist/esm/components/Dashboard/MetricComponent.js +7 -1
  85. package/dist/esm/components/Dashboard/TableComponent.d.ts +16 -2
  86. package/dist/esm/components/Dashboard/TableComponent.d.ts.map +1 -1
  87. package/dist/esm/components/Dashboard/TableComponent.js +2 -14
  88. package/dist/esm/components/QuillTable.d.ts +2 -2
  89. package/dist/esm/components/QuillTable.d.ts.map +1 -1
  90. package/dist/esm/components/QuillTable.js +7 -5
  91. package/dist/esm/components/UiComponents.d.ts +3 -3
  92. package/dist/esm/components/UiComponents.d.ts.map +1 -1
  93. package/dist/esm/components/UiComponents.js +4 -4
  94. package/dist/esm/internals/ReportBuilder/PivotModal.d.ts +16 -1
  95. package/dist/esm/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
  96. package/dist/esm/internals/ReportBuilder/PivotModal.js +153 -80
  97. package/dist/esm/utils/constants.d.ts +2 -0
  98. package/dist/esm/utils/constants.d.ts.map +1 -0
  99. package/dist/esm/utils/constants.js +1 -0
  100. package/dist/esm/utils/dashboard.d.ts.map +1 -1
  101. package/dist/esm/utils/dashboard.js +27 -97
  102. package/dist/esm/utils/dataFetcher.d.ts.map +1 -1
  103. package/dist/esm/utils/dataFetcher.js +56 -13
  104. package/dist/esm/utils/dates.d.ts +8 -0
  105. package/dist/esm/utils/dates.d.ts.map +1 -1
  106. package/dist/esm/utils/dates.js +31 -0
  107. package/dist/esm/utils/logging.d.ts +2 -0
  108. package/dist/esm/utils/logging.d.ts.map +1 -0
  109. package/dist/esm/utils/logging.js +6 -0
  110. package/dist/esm/utils/pivotConstructor.d.ts +6 -0
  111. package/dist/esm/utils/pivotConstructor.d.ts.map +1 -0
  112. package/dist/esm/utils/pivotConstructor.js +83 -0
  113. package/dist/esm/utils/queryConstructor.d.ts +2 -1
  114. package/dist/esm/utils/queryConstructor.d.ts.map +1 -1
  115. package/dist/esm/utils/queryConstructor.js +44 -10
  116. package/dist/esm/utils/tableProcessing.d.ts +22 -0
  117. package/dist/esm/utils/tableProcessing.d.ts.map +1 -1
  118. package/dist/esm/utils/tableProcessing.js +85 -1
  119. package/package.json +1 -1
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isDateFormat = exports.convertComparisonRange = void 0;
3
+ exports.getDateBucketFromRange = exports.getComparisonInterval = exports.isDateFormat = exports.convertComparisonRange = void 0;
4
+ const date_fns_1 = require("date-fns");
4
5
  const dateRangePickerUtils_1 = require("../DateRangePicker/dateRangePickerUtils");
5
6
  /**
6
7
  * Converts the comparison range label to match the date filter range if the
@@ -27,6 +28,7 @@ exports.convertComparisonRange = convertComparisonRange;
27
28
  function isDateFormat(xAxisFormat) {
28
29
  const DATE_FORMATS = [
29
30
  'yyyy',
31
+ 'MMM_dd',
30
32
  'MMM_yyyy',
31
33
  'MMM_dd_yyyy',
32
34
  'hh_ap_pm',
@@ -38,3 +40,34 @@ function isDateFormat(xAxisFormat) {
38
40
  return isDate;
39
41
  }
40
42
  exports.isDateFormat = isDateFormat;
43
+ function getComparisonInterval(comparisonRange, dateBucket) {
44
+ const dayCount = (0, date_fns_1.differenceInDays)(comparisonRange.endDate, comparisonRange.startDate);
45
+ if (!isNaN(dayCount)) {
46
+ if (dateBucket === 'month') {
47
+ return dayCount / 30 + ' month';
48
+ }
49
+ else if (dateBucket === 'year') {
50
+ return dayCount / 365 + ' year';
51
+ }
52
+ else {
53
+ return dayCount + ' day';
54
+ }
55
+ }
56
+ }
57
+ exports.getComparisonInterval = getComparisonInterval;
58
+ function getDateBucketFromRange(dateRange) {
59
+ const difference = (0, date_fns_1.differenceInDays)(dateRange.end, dateRange.start);
60
+ if (difference < 14) {
61
+ return 'day';
62
+ }
63
+ else if (difference < 60) {
64
+ return 'week';
65
+ }
66
+ else if (difference < 365 * 3) {
67
+ return 'month';
68
+ }
69
+ else {
70
+ return 'year';
71
+ }
72
+ }
73
+ exports.getDateBucketFromRange = getDateBucketFromRange;
@@ -0,0 +1,2 @@
1
+ export declare function internalLog(message: string, ...optionalParams: any[]): void;
2
+ //# sourceMappingURL=logging.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logging.d.ts","sourceRoot":"","sources":["../../../src/utils/logging.ts"],"names":[],"mappings":"AAAA,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,cAAc,EAAE,GAAG,EAAE,QAKpE"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.internalLog = void 0;
4
+ function internalLog(message, ...optionalParams) {
5
+ if (process.env.QUILL_ENV === 'development') {
6
+ const completeMessage = `Quill: ${message}: ${optionalParams.join('\n')}`;
7
+ console.log(completeMessage);
8
+ }
9
+ }
10
+ exports.internalLog = internalLog;
@@ -0,0 +1,6 @@
1
+ import { Pivot } from '../internals/ReportBuilder/PivotModal';
2
+ export declare function generatePivotWithSQL(pivot: Pivot, report: any, client: any, dateBucket?: string, dateFilter?: any, distinctStrings?: any): Promise<{
3
+ rows: any;
4
+ columns: any;
5
+ } | undefined>;
6
+ //# sourceMappingURL=pivotConstructor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pivotConstructor.d.ts","sourceRoot":"","sources":["../../../src/utils/pivotConstructor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAiB,MAAM,uCAAuC,CAAC;AAK7E,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,GAAG,EACX,MAAM,EAAE,GAAG,EACX,UAAU,CAAC,EAAE,MAAM,EACnB,UAAU,CAAC,EAAE,GAAG,EAChB,eAAe,CAAC,EAAE,GAAG;;;eAkHtB"}
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generatePivotWithSQL = void 0;
4
+ const PivotModal_1 = require("../internals/ReportBuilder/PivotModal");
5
+ const dataFetcher_1 = require("./dataFetcher");
6
+ const dates_1 = require("./dates");
7
+ const queryConstructor_1 = require("./queryConstructor");
8
+ async function generatePivotWithSQL(pivot, report, client, dateBucket, dateFilter, distinctStrings) {
9
+ if (dateFilter && dateFilter.startDate) {
10
+ dateFilter.start = dateFilter.startDate;
11
+ dateFilter.end = dateFilter.endDate;
12
+ if (dateFilter.comparisonRange && dateFilter.comparisonRange.startDate) {
13
+ dateFilter.comparisonRange.start = dateFilter.comparisonRange.startDate;
14
+ dateFilter.comparisonRange.end = dateFilter.comparisonRange.endDate;
15
+ }
16
+ }
17
+ let comparisonInterval = undefined;
18
+ if (dateFilter && dateFilter.comparisonRange) {
19
+ comparisonInterval = (0, dates_1.getComparisonInterval)({
20
+ startDate: dateFilter.comparisonRange.start,
21
+ endDate: dateFilter.comparisonRange.end,
22
+ }, dateBucket);
23
+ }
24
+ if (pivot.rowField && !pivot.rowFieldType) {
25
+ const rowColumn = report.columns.find((column) => column.field === pivot.rowField);
26
+ pivot.rowFieldType = rowColumn.format;
27
+ }
28
+ const sqlQuery = (0, queryConstructor_1.generatePivotQuery)(pivot, report.itemQuery, report.rows, dateBucket, comparisonInterval, distinctStrings);
29
+ if (sqlQuery && report.rows.length > 0) {
30
+ const hostedBody = {
31
+ metadata: {
32
+ preQueries: [sqlQuery],
33
+ task: 'query',
34
+ orgId: client.customerId || '*',
35
+ clientId: client.publicKey,
36
+ databaseType: client?.databaseType,
37
+ getCustomFields: false,
38
+ runQueryConfig: {
39
+ overridePost: true,
40
+ convertDatatypes: true,
41
+ },
42
+ },
43
+ };
44
+ const cloudBody = { ...hostedBody };
45
+ const resp = await (0, dataFetcher_1.getData)(client, 'query', 'same-origin', hostedBody, cloudBody);
46
+ // With our current design we have to remove the second row field but leave the first for comparison purposes.
47
+ const rows = resp.queryResults[0].rows;
48
+ const columns = resp.queryResults[0].fields
49
+ .map((field) => ({
50
+ field: field.name,
51
+ label: field.name.replace('comparison_', 'comparison '),
52
+ }))
53
+ .filter((field, index) => field.field !== 'comparison_' + pivot.rowField || index === 0);
54
+ if (pivot.rowField && !['string', 'varchar'].includes(pivot.rowFieldType)) {
55
+ rows.forEach((row) => {
56
+ row[pivot.rowField] = (0, PivotModal_1.getDateString)(row[pivot.rowField], undefined, dateBucket);
57
+ });
58
+ // add a row for each date in the range that doesn't have a value
59
+ if (pivot.rowField &&
60
+ !['string', 'varchar'].includes(pivot.rowFieldType) &&
61
+ dateFilter) {
62
+ const dateSet = new Set(rows.map((row) => row[pivot.rowField]));
63
+ // create a loop that will go through each formatted date and add a row if it doesn't exist going to the current date
64
+ for (let date = dateFilter.start ?? dateFilter.startDate; date <= dateFilter.end; date = new Date(date.getTime() + 24 * 60 * 60 * 1000)) {
65
+ const formattedDate = (0, PivotModal_1.getDateString)(date.toDateString(), undefined, dateBucket);
66
+ if (!dateSet.has(formattedDate)) {
67
+ const newRow = {};
68
+ newRow[pivot.rowField] = formattedDate;
69
+ rows.push(newRow);
70
+ dateSet.add(formattedDate);
71
+ }
72
+ // order the rows by the date field
73
+ rows.sort((a, b) => {
74
+ return new Date(a[pivot.rowField]) < new Date(b[pivot.rowField])
75
+ ? -1
76
+ : 1;
77
+ });
78
+ }
79
+ }
80
+ }
81
+ return {
82
+ rows: rows,
83
+ columns: columns,
84
+ };
85
+ }
86
+ }
87
+ exports.generatePivotWithSQL = generatePivotWithSQL;
@@ -1,4 +1,5 @@
1
1
  import { Pivot } from '../internals/ReportBuilder/PivotModal';
2
2
  export declare function generateDistinctQuery(stringFields: string[], query: string): string;
3
- export declare function generatePivotQuery(pivot: Pivot, itemQueries: string[], rows: any[], dateBucket?: string, comparisonInterval?: string): string | undefined;
3
+ export declare function generateMinMaxRangeQueries(columnFields: string[], query: string, databaseType: string): string;
4
+ export declare function generatePivotQuery(pivot: Pivot, itemQueries: string[], rows: any[], dateBucket?: string, comparisonInterval?: string, distinctStrings?: string[]): string | undefined;
4
5
  //# sourceMappingURL=queryConstructor.d.ts.map
@@ -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;AAe9D,wBAAgB,qBAAqB,CAAC,YAAY,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,UAQ1E;AAED,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,MAAM,EAAE,EACrB,IAAI,EAAE,GAAG,EAAE,EACX,UAAU,CAAC,EAAE,MAAM,EACnB,kBAAkB,CAAC,EAAE,MAAM,GAC1B,MAAM,GAAG,SAAS,CAiBpB"}
1
+ {"version":3,"file":"queryConstructor.d.ts","sourceRoot":"","sources":["../../../src/utils/queryConstructor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,uCAAuC,CAAC;AAe9D,wBAAgB,qBAAqB,CAAC,YAAY,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,UAQ1E;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,IAAI,EAAE,GAAG,EAAE,EACX,UAAU,CAAC,EAAE,MAAM,EACnB,kBAAkB,CAAC,EAAE,MAAM,EAC3B,eAAe,CAAC,EAAE,MAAM,EAAE,GACzB,MAAM,GAAG,SAAS,CAuBpB"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.generatePivotQuery = exports.generateDistinctQuery = void 0;
3
+ exports.generatePivotQuery = exports.generateMinMaxRangeQueries = exports.generateDistinctQuery = void 0;
4
4
  const pivotProcessing_1 = require("./pivotProcessing");
5
5
  function processAggType(aggType) {
6
6
  if (aggType === 'count')
@@ -22,30 +22,44 @@ function generateDistinctQuery(stringFields, query) {
22
22
  return `WITH querytable AS (${query.replace(';', '')}) ` + distinctQuery;
23
23
  }
24
24
  exports.generateDistinctQuery = generateDistinctQuery;
25
- function generatePivotQuery(pivot, itemQueries, rows, dateBucket, comparisonInterval) {
25
+ function generateMinMaxRangeQueries(columnFields, query, databaseType) {
26
+ const distinctQueries = columnFields.map((field) => {
27
+ const wrappedField = ['postgresql', 'snowflake'].includes(databaseType.toLowerCase())
28
+ ? `"${field}"`
29
+ : field;
30
+ return `SELECT '${field}' AS field, MIN(${wrappedField}) AS min_range, MAX(${wrappedField}) AS max_range FROM querytable`;
31
+ });
32
+ const distinctQuery = distinctQueries.join(' UNION ALL ');
33
+ return `WITH querytable AS (${query.replace(';', '')}) ` + distinctQuery;
34
+ }
35
+ exports.generateMinMaxRangeQueries = generateMinMaxRangeQueries;
36
+ function generatePivotQuery(pivot, itemQueries, rows, dateBucket, comparisonInterval, distinctStrings) {
26
37
  if (!(0, pivotProcessing_1.isValidPivot)(pivot)) {
27
38
  return undefined;
28
39
  }
29
- if (!pivot.rowField) {
30
- return undefined;
31
- }
32
40
  if (pivot.columnField) {
33
- return create2DPivotQuery(pivot, itemQueries, rows, dateBucket, comparisonInterval);
41
+ return create2DPivotQuery(pivot, itemQueries, rows, dateBucket, comparisonInterval, distinctStrings);
34
42
  }
35
- return create1DPivotQuery(pivot, itemQueries, dateBucket, comparisonInterval);
43
+ if (pivot.rowField) {
44
+ return create1DPivotQuery(pivot, itemQueries, dateBucket, comparisonInterval);
45
+ }
46
+ return createAggregationValuePivot(pivot, itemQueries);
36
47
  }
37
48
  exports.generatePivotQuery = generatePivotQuery;
38
- function create2DPivotQuery(pivot, itemQueries, rows, dateBucket, comparisonInterval) {
49
+ function create2DPivotQuery(pivot, itemQueries, rows, dateBucket, comparisonInterval, distinctStrings) {
39
50
  if (!pivot || !pivot.columnField) {
40
51
  return undefined;
41
52
  }
42
53
  // @ts-ignore
43
54
  const columnValues = rows.map((row) => row[pivot.columnField]);
44
- const distinctColumnValues = Array.from(new Set(columnValues)).filter((value) => value !== undefined && value !== null);
55
+ const distinctColumnValues = distinctStrings
56
+ ? distinctStrings
57
+ : Array.from(new Set(columnValues)).filter((value) => value !== undefined && value !== null);
45
58
  if (distinctColumnValues.length === 0) {
46
59
  return undefined;
47
60
  }
48
- if (pivot.rowFieldType === 'string') {
61
+ if (['string', 'varchar'].includes(pivot.rowFieldType) ||
62
+ !pivot.rowFieldType) {
49
63
  return create2DStringPivotQuery(pivot, itemQueries, distinctColumnValues);
50
64
  }
51
65
  return create2DDatePivotQuery(pivot, itemQueries, distinctColumnValues, dateBucket, comparisonInterval);
@@ -95,7 +109,8 @@ function create2DDatePivotQuery(pivot, itemQueries, distinctColumnValues, dateBu
95
109
  ${joinQuery} ORDER BY qt."${pivot.rowField}"`;
96
110
  }
97
111
  function create1DPivotQuery(pivot, itemQueries, dateBucket = 'month', comparisonInterval) {
98
- if (pivot.rowFieldType === 'string') {
112
+ if (['string', 'varchar'].includes(pivot.rowFieldType) ||
113
+ !pivot.rowFieldType) {
99
114
  return create1DStringPivotQuery(pivot, itemQueries);
100
115
  }
101
116
  return create1DDatePivotQuery(pivot, itemQueries, dateBucket, comparisonInterval);
@@ -132,3 +147,23 @@ function create1DDatePivotQuery(pivot, itemQueries, dateBucket = 'month', compar
132
147
  SELECT * FROM quill_qt_agg qt
133
148
  ${joinQuery} ORDER BY qt."${pivot.rowField}"`;
134
149
  }
150
+ function createAggregationValuePivot(pivot, itemQueries) {
151
+ let aggregationType = processAggType(pivot.aggregationType);
152
+ if (pivot.aggregationType === 'count') {
153
+ aggregationType = 'COUNT';
154
+ }
155
+ if (!pivot.valueField)
156
+ return undefined;
157
+ const compareCTE = itemQueries[1]
158
+ ? `, quill_ct as (${itemQueries[1]?.replaceAll(';', '')})`
159
+ : '';
160
+ const compareAggregation = itemQueries[1]
161
+ ? `, quill_ct_cw as (SELECT ${aggregationType}(${pivot.valueField}) as comparison_${pivot.valueField} FROM quill_ct)`
162
+ : '';
163
+ const joinQuery = itemQueries[1] ? `CROSS JOIN quill_ct_cw ct` : '';
164
+ return `WITH quill_qt AS (${itemQueries[0]?.replaceAll(';', '')}),
165
+ quill_qt_agg AS (SELECT ${aggregationType}(${pivot.valueField}) as ${pivot.valueField} FROM quill_qt)
166
+ ${compareCTE} ${compareAggregation}
167
+ SELECT * FROM quill_qt_agg qt
168
+ ${joinQuery}`;
169
+ }
@@ -1,8 +1,30 @@
1
+ import { QuillReport } from '../Dashboard';
1
2
  import { Column } from '../models/Columns';
3
+ export interface AdditionalProcessing {
4
+ sort?: {
5
+ field: string;
6
+ direction: string;
7
+ };
8
+ page?: {
9
+ currentPage: number;
10
+ rowsPerPage: number;
11
+ };
12
+ }
2
13
  export declare const hasColumnAlias: (columns: Column[], referencedColumns: string[]) => boolean;
3
14
  export declare const getUniqueValuesByColumns: (columns: Column[], query: string, rows: any, client: any, customFields: any[]) => Promise<{
4
15
  [column: string]: {
5
16
  [value: string]: boolean;
6
17
  };
7
18
  } | null>;
19
+ export declare const getDateRangeByColumns: (columns: Column[], query: string, client: any, customFields: any[]) => Promise<{
20
+ [column: string]: {
21
+ dateRange: {
22
+ start: Date;
23
+ end: Date;
24
+ };
25
+ };
26
+ } | null>;
27
+ export declare const getPaginatedRows: (report: QuillReport, client: any, processing?: any, filters?: any, customFields?: any) => Promise<{
28
+ [field: string]: any;
29
+ }>;
8
30
  //# sourceMappingURL=tableProcessing.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tableProcessing.d.ts","sourceRoot":"","sources":["../../../src/utils/tableProcessing.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAI3C,eAAO,MAAM,cAAc,YAChB,MAAM,EAAE,qBACE,MAAM,EAAE,KAC1B,OAUF,CAAC;AAEF,eAAO,MAAM,wBAAwB,YAC1B,MAAM,EAAE,SACV,MAAM,QACP,GAAG,UACD,GAAG,gBACG,GAAG,EAAE;;;;SA6DpB,CAAC"}
1
+ {"version":3,"file":"tableProcessing.d.ts","sourceRoot":"","sources":["../../../src/utils/tableProcessing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAS3C,MAAM,WAAW,oBAAoB;IACnC,IAAI,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5C,IAAI,CAAC,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;CACrD;AAED,eAAO,MAAM,cAAc,YAChB,MAAM,EAAE,qBACE,MAAM,EAAE,KAC1B,OAUF,CAAC;AAEF,eAAO,MAAM,wBAAwB,YAC1B,MAAM,EAAE,SACV,MAAM,QACP,GAAG,UACD,GAAG,gBACG,GAAG,EAAE;;;;SA6DpB,CAAC;AAkDF,eAAO,MAAM,qBAAqB,YACvB,MAAM,EAAE,SACV,MAAM,UACL,GAAG,gBACG,GAAG,EAAE;;mBAEY;YAAE,KAAK,EAAE,IAAI,CAAC;YAAC,GAAG,EAAE,IAAI,CAAA;SAAE;;SAc1D,CAAC;AAqDF,eAAO,MAAM,gBAAgB,WACnB,WAAW,UACX,GAAG,eACE,GAAG,YACN,GAAG,iBACE,GAAG;;EA4CnB,CAAC"}
@@ -1,7 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getUniqueValuesByColumns = exports.hasColumnAlias = void 0;
3
+ exports.getPaginatedRows = exports.getDateRangeByColumns = exports.getUniqueValuesByColumns = exports.hasColumnAlias = void 0;
4
4
  const dataFetcher_1 = require("./dataFetcher");
5
+ const errorProcessing_1 = require("./errorProcessing");
6
+ const merge_1 = require("./merge");
5
7
  const queryConstructor_1 = require("./queryConstructor");
6
8
  const hasColumnAlias = (columns, referencedColumns) => {
7
9
  if (!referencedColumns) {
@@ -97,3 +99,87 @@ const fetchDistinctStrings = async (query, client, customFields) => {
97
99
  return null;
98
100
  }
99
101
  };
102
+ const getDateRangeByColumns = async (columns, query, client, customFields) => {
103
+ const columnNames = columns.map((column) => column.field);
104
+ const distinctValueQuery = (0, queryConstructor_1.generateMinMaxRangeQueries)(columnNames, query, client.databaseType);
105
+ const dateRanges = await fetchDateRanges(distinctValueQuery, client, customFields);
106
+ return dateRanges;
107
+ };
108
+ exports.getDateRangeByColumns = getDateRangeByColumns;
109
+ const fetchDateRanges = async (query, client, customFields) => {
110
+ try {
111
+ const hostedBody = {
112
+ metadata: {
113
+ query,
114
+ task: 'query',
115
+ orgId: client.customerId || '*',
116
+ clientId: client.publicKey,
117
+ databaseType: client?.databaseType,
118
+ customFieldsByTable: customFields,
119
+ },
120
+ };
121
+ const cloudBody = { query };
122
+ const data = await (0, dataFetcher_1.getData)(client, 'dashquery', 'same-origin', hostedBody, cloudBody);
123
+ if (data.errorMessage) {
124
+ return null;
125
+ }
126
+ const results = data.rows.reduce((acc, currentValue) => {
127
+ acc[currentValue.field] = {
128
+ dateRange: {
129
+ start: new Date(currentValue.min_range),
130
+ end: new Date(currentValue.max_range),
131
+ },
132
+ };
133
+ return acc;
134
+ }, {});
135
+ return results;
136
+ }
137
+ catch (e) {
138
+ console.error(e);
139
+ return null;
140
+ }
141
+ };
142
+ const getPaginatedRows = async (report, client, processing, filters, customFields) => {
143
+ let updatedProcessing = { ...processing };
144
+ if (processing && processing.sort && !updatedProcessing.page) {
145
+ updatedProcessing.page = {};
146
+ updatedProcessing.page.currentPage = 0;
147
+ }
148
+ const minimalFilters = Object.values(filters).length
149
+ ? Object.values(filters).map((filter) => {
150
+ const newFilter = { ...filter };
151
+ if (newFilter.filterType === 'date_range') {
152
+ delete newFilter['field'];
153
+ delete newFilter['options'];
154
+ delete newFilter['selectedValue'];
155
+ }
156
+ return newFilter;
157
+ })
158
+ : [];
159
+ const hostedBody = {
160
+ metadata: {
161
+ dashboardItemId: report.id,
162
+ orgId: client?.customerId || '*',
163
+ task: 'item',
164
+ filters: minimalFilters,
165
+ clientId: client?.publicKey,
166
+ databaseType: client?.databaseType,
167
+ additionalProcessing: updatedProcessing,
168
+ forcePagination: true,
169
+ customFields,
170
+ },
171
+ };
172
+ const cloudBody = {
173
+ id: report.id,
174
+ filters: [],
175
+ };
176
+ const resp = await (0, dataFetcher_1.getData)(client, 'itempost', 'omit', hostedBody, cloudBody);
177
+ (0, errorProcessing_1.processFilterErrorList)(resp);
178
+ if (resp && resp.name !== 'error') {
179
+ if (resp.compareRows) {
180
+ (0, merge_1.mergeComparisonRange)(resp);
181
+ }
182
+ }
183
+ return resp.rows;
184
+ };
185
+ exports.getPaginatedRows = getPaginatedRows;
@@ -1 +1 @@
1
- {"version":3,"file":"Chart.d.ts","sourceRoot":"","sources":["../../src/Chart.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Chart.d.ts","sourceRoot":"","sources":["../../src/Chart.tsx"],"names":[],"mappings":"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"}
package/dist/esm/Chart.js CHANGED
@@ -25,7 +25,8 @@ import { DashboardFilter } from './components/Dashboard/DashboardFilter';
25
25
  import { QuillSelectComponent } from './components/QuillSelect';
26
26
  import { QuillMultiSelectComponent } from './components/QuillMultiSelect';
27
27
  import { QuillDateRangePicker, } from './DateRangePicker/QuillDateRangePicker';
28
- const MAX_ROWS_FOR_GENERIC_TABLE = 300;
28
+ import { MAX_COLUMN_ROWS_LIMIT } from './utils/constants';
29
+ const MAX_ROWS_FOR_GENERIC_TABLE = 500;
29
30
  // @ts-ignore
30
31
  function sumByKey(arr, key) {
31
32
  // @ts-ignore
@@ -174,12 +175,13 @@ const ChartUpdater = ({ colors, reportId, className, containerStyle, isAnimation
174
175
  const [chartFilters, setChartFilters] = useState([]);
175
176
  const [previousPage, setPreviousPage] = useState(0);
176
177
  const [filterUpdateIndex, setFilterUpdateIndex] = useState(-1);
178
+ const [useReport, setUseReport] = useState(true);
177
179
  const theme = useTheme();
178
180
  const onPageChange = (page) => {
179
181
  if ((previousPage < page.currentPage &&
180
- (page.currentPage * page.rowsPerPage) % 100 === 0) ||
182
+ (page.currentPage * page.rowsPerPage) % MAX_COLUMN_ROWS_LIMIT === 0) ||
181
183
  (previousPage > page.currentPage &&
182
- (previousPage * page.rowsPerPage) % 100 === 0)) {
184
+ (previousPage * page.rowsPerPage) % MAX_COLUMN_ROWS_LIMIT === 0)) {
183
185
  getChartDataPaginate({ page });
184
186
  }
185
187
  setPreviousPage(page.currentPage);
@@ -264,19 +266,24 @@ const ChartUpdater = ({ colors, reportId, className, containerStyle, isAnimation
264
266
  setPaginating(false);
265
267
  }
266
268
  };
267
- const getChartData = async (reportFilterInfo) => {
269
+ const getChartData = async (useReportTask = true, reportFilterInfo) => {
268
270
  try {
269
271
  if (filterUpdateIndex === reportFilterInfo.updateIndex) {
270
272
  return;
271
273
  }
272
274
  const filters = reportFilterInfo.filters;
273
275
  setLoading(true);
276
+ if (!client.databaseType ||
277
+ client.databaseType.toLowerCase() !== 'postgresql') {
278
+ useReportTask = false;
279
+ }
274
280
  const hostedBody = {
275
281
  metadata: {
282
+ reportId,
276
283
  dashboardItemId: reportId,
277
284
  orgId: client.customerId || '*',
278
285
  clientId: client.publicKey,
279
- task: 'item',
286
+ task: useReportTask ? 'report' : 'item',
280
287
  getDefaultDashboardFilters: filters ? false : true,
281
288
  databaseType: client?.databaseType,
282
289
  customFields,
@@ -301,9 +308,11 @@ const ChartUpdater = ({ colors, reportId, className, containerStyle, isAnimation
301
308
  let filterArray = filters;
302
309
  // THIS SHOULD ONLY BE UNDEFINED ON INITIAL LOAD
303
310
  if (!filterArray) {
304
- filterArray = resp.filters.map((filter) => {
305
- return processFilterFromBackend(filter, resp.rows);
306
- });
311
+ filterArray = resp.filters
312
+ ? resp.filters.map((filter) => {
313
+ return processFilterFromBackend(filter, resp.rows);
314
+ })
315
+ : [];
307
316
  reportFiltersDispatch({
308
317
  type: 'UPDATE_REPORT_FILTER',
309
318
  id: reportId,
@@ -329,8 +338,13 @@ const ChartUpdater = ({ colors, reportId, className, containerStyle, isAnimation
329
338
  setLoading(false);
330
339
  }
331
340
  catch (e) {
332
- console.log('Error fetching chart: ', e);
333
- setLoading(false);
341
+ if (useReportTask) {
342
+ getChartData(false, reportFilterInfo);
343
+ }
344
+ else {
345
+ console.log('Error fetching chart: ', e);
346
+ setLoading(false);
347
+ }
334
348
  }
335
349
  };
336
350
  useEffect(() => {
@@ -343,7 +357,7 @@ const ChartUpdater = ({ colors, reportId, className, containerStyle, isAnimation
343
357
  let parsedReportFilters = reportFilters[reportId]
344
358
  ? reportFilters[reportId]
345
359
  : { updateIndex: 0 };
346
- getChartData(parsedReportFilters);
360
+ getChartData(true, parsedReportFilters);
347
361
  }, [client.customerId, reportId, reportFilters[reportId]?.updateIndex]);
348
362
  useEffect(() => {
349
363
  if (!dashboard || !dashboard[reportId]) {
@@ -373,7 +387,7 @@ const ChartUpdater = ({ colors, reportId, className, containerStyle, isAnimation
373
387
  return f;
374
388
  });
375
389
  setChartFilters(updatedFilters);
376
- getChartData({
390
+ getChartData(true, {
377
391
  filters: updatedFilters,
378
392
  updateIndex: filterUpdateIndex + 1,
379
393
  });
@@ -413,14 +427,17 @@ export const ChartDisplay = ({ reportId, config, colors, className, containerSty
413
427
  };
414
428
  const [dateFilter, setDateFilter] = useState(initialDateFilter ?? getDateFilter());
415
429
  const getYAxisFields = (curDateFilter) => {
416
- if (config && config.pivot && config.pivot.columnField) {
430
+ if (config &&
431
+ config.pivot &&
432
+ config.pivotColumns &&
433
+ config.pivot.columnField) {
417
434
  return (config?.pivotColumns
418
435
  .slice(1)
419
436
  .map((column) => {
420
437
  return { ...column, format: config?.yAxisFields[0].format };
421
438
  }) ?? []);
422
439
  }
423
- else if (config && config.pivot) {
440
+ else if (config && config.pivot && config.pivotColumns) {
424
441
  return (config?.pivotColumns
425
442
  .slice(1)
426
443
  .map((column) => {
@@ -462,8 +479,8 @@ export const ChartDisplay = ({ reportId, config, colors, className, containerSty
462
479
  !config.pivot &&
463
480
  config?.chartType !== 'metric' &&
464
481
  config?.chartType !== 'table' &&
465
- rows &&
466
- rows.length > MAX_ROWS_FOR_GENERIC_TABLE) {
482
+ (config.rowCount > MAX_ROWS_FOR_GENERIC_TABLE ||
483
+ (rows && rows.length > MAX_ROWS_FOR_GENERIC_TABLE))) {
467
484
  return (_jsx(ChartError, { className: className, containerStyle: containerStyle, label: `Charts can only display ${MAX_ROWS_FOR_GENERIC_TABLE} rows. Please add a pivot or modify the query.` }));
468
485
  }
469
486
  else if (!config || loading) {
@@ -520,7 +537,7 @@ export const ChartDisplay = ({ reportId, config, colors, className, containerSty
520
537
  numberOfRows = parseInt(config.compareRows[0].count);
521
538
  }
522
539
  }
523
- return (_jsx(QuillTable, { rows: formattedRows ?? [], numberOfRows: numberOfRows, columns: columns ?? yAxisFields, currentPage: config.page, sort: config.sort, rowsPerPage: config?.rowsPerPage || 10, containerStyle: {
540
+ return (_jsx(QuillTable, { rows: formattedRows ?? [], rowCount: numberOfRows, columns: columns ?? yAxisFields, currentPage: config.page, sort: config.sort, rowsPerPage: config?.rowsPerPage || 10, containerStyle: {
524
541
  width: containerStyle?.width || '100%',
525
542
  height: containerStyle?.height || '400px',
526
543
  ...containerStyle,
@@ -110,7 +110,7 @@ export interface ChartBuilderProps {
110
110
  field: string;
111
111
  direction: string;
112
112
  }) => void;
113
- numberOfRows?: number;
113
+ rowCount?: number;
114
114
  }) => JSX.Element;
115
115
  /**
116
116
  * A component that displays error messages.
@@ -257,7 +257,7 @@ export interface ChartBuilderProps {
257
257
  direction: string;
258
258
  }) => void;
259
259
  /** A number used to determine the number of pages in a table for SQL pagination */
260
- numberOfRows?: number;
260
+ rowCount?: number;
261
261
  /** Loading prop used by the table component */
262
262
  isLoading?: boolean;
263
263
  /** A callback function triggered when a chart element is clicked */
@@ -313,7 +313,7 @@ export declare function ChartBuilderWithModal(props: ChartBuilderProps): import(
313
313
  * ### Chart Builder API
314
314
  * @see https://docs.quillsql.com/components/chart-builder
315
315
  */
316
- export default function ChartBuilder({ TextInputComponent, SelectComponent, ButtonComponent, SecondaryButtonComponent, HeaderComponent, SubHeaderComponent, LabelComponent, DeleteButtonComponent, TextComponent, PopoverComponent, CardComponent, TableComponent, ModalComponent, LoadingComponent, ErrorMessageComponent, ChartBuilderInputRowContainer, ChartBuilderInputColumnContainer, PivotRowContainer, PivotColumnContainer, FormContainer, isOpen, isHorizontalView, pivot, setIsOpen, rows, columns, query, queryNoDateColumn, dateRange: dr, showTableFormatOptions, showDateFieldOptions, showAccessControlOptions, showDashboardDropdown, onAddToDashboardComplete, onDelete, report, recommendedPivots: rp, createdPivots: cp, destinationDashboard, dateColumn, buttonLabel, organizationName, pivotData, hideDeleteButton, hideSubmitButton, hideDateRangeFilter, initialUniqueValues, pivotRecommendationsEnabled, onSortChange, onPageChange, numberOfRows, isLoading, isComparison, onClickChartElement, }: ChartBuilderProps): import("react/jsx-runtime").JSX.Element | null;
316
+ export default function ChartBuilder({ TextInputComponent, SelectComponent, ButtonComponent, SecondaryButtonComponent, HeaderComponent, SubHeaderComponent, LabelComponent, DeleteButtonComponent, TextComponent, PopoverComponent, CardComponent, TableComponent, ModalComponent, LoadingComponent, ErrorMessageComponent, ChartBuilderInputRowContainer, ChartBuilderInputColumnContainer, PivotRowContainer, PivotColumnContainer, FormContainer, isOpen, isHorizontalView, pivot, setIsOpen, rows, columns, query, queryNoDateColumn, dateRange: dr, showTableFormatOptions, showDateFieldOptions, showAccessControlOptions, showDashboardDropdown, onAddToDashboardComplete, onDelete, report, recommendedPivots: rp, createdPivots: cp, destinationDashboard, dateColumn, buttonLabel, organizationName, pivotData, hideDeleteButton, hideSubmitButton, hideDateRangeFilter, initialUniqueValues, pivotRecommendationsEnabled, onSortChange, onPageChange, rowCount, isLoading, isComparison, onClickChartElement, }: ChartBuilderProps): import("react/jsx-runtime").JSX.Element | null;
317
317
  export declare function DashboardFilterModal({ isOpen, setIsOpen, issues, ModalComponent, ButtonComponent, }: {
318
318
  isOpen: boolean;
319
319
  setIsOpen: (e: boolean) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"ChartBuilder.d.ts","sourceRoot":"","sources":["../../src/ChartBuilder.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ChartBuilder.d.ts","sourceRoot":"","sources":["../../src/ChartBuilder.tsx"],"names":[],"mappings":"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"}