@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 +1 @@
1
- {"version":3,"file":"BarChart.d.ts","sourceRoot":"","sources":["../../../../src/components/Chart/BarChart.tsx"],"names":[],"mappings":";AAgBA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,EAC/B,MAAM,EACN,QAAQ,EACR,WAAW,EACX,IAAI,EACJ,cAAc,EACd,SAAS,EACT,UAAU,EACV,WAAW,EACX,KAAK,EACL,UAAU,EACV,SAAS,EACT,iBAAwB,EACxB,SAAiB,EACjB,SAAiB,EACjB,iBAAyB,EACzB,mBAAmB,EACnB,UAAU,GACX,EAAE;IACD,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,WAAW,EAAE,GAAG,EAAE,CAAC;IACnB,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,cAAc,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,GAAG,CAAC;IACX,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,mBAAmB,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IACvC,UAAU,CAAC,EAAE,GAAG,CAAC;CAClB,2CAsNA"}
1
+ {"version":3,"file":"BarChart.d.ts","sourceRoot":"","sources":["../../../../src/components/Chart/BarChart.tsx"],"names":[],"mappings":";AAgBA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,EAC/B,MAAM,EACN,QAAQ,EACR,WAAW,EACX,IAAI,EACJ,cAAc,EACd,SAAS,EACT,UAAU,EACV,WAAW,EACX,KAAK,EACL,UAAU,EACV,SAAS,EACT,iBAAwB,EACxB,SAAiB,EACjB,SAAiB,EACjB,iBAAyB,EACzB,mBAAmB,EACnB,UAAU,GACX,EAAE;IACD,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,WAAW,EAAE,GAAG,EAAE,CAAC;IACnB,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,cAAc,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,GAAG,CAAC;IACX,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,mBAAmB,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IACvC,UAAU,CAAC,EAAE,GAAG,CAAC;CAClB,2CA6MA"}
@@ -24,15 +24,6 @@ export default function BarChart({ colors, colorMap, yAxisFields, data, containe
24
24
  setFormattedData(barChartData);
25
25
  return;
26
26
  }
27
- const curData = data.map((d) => {
28
- const formatted = { ...d };
29
- // NEED TO FORMAT FOR BIG QUERY
30
- if (d[xAxisField] && typeof d[xAxisField] === 'object') {
31
- formatted[xAxisField] = d[xAxisField].value;
32
- }
33
- return formatted;
34
- });
35
- setFormattedData(curData);
36
27
  }, [data]);
37
28
  const getCustomColor = (field) => {
38
29
  const key = field.startsWith('comparison_') ? 'comparison' : 'primary';
@@ -1 +1 @@
1
- {"version":3,"file":"LineChart.d.ts","sourceRoot":"","sources":["../../../../src/components/Chart/LineChart.tsx"],"names":[],"mappings":";AAoBA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAgC7C,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAChC,MAAM,EACN,QAAa,EACb,WAAW,EACX,IAAI,EACJ,cAAc,EACd,SAAS,EACT,UAAU,EACV,WAAW,EACX,KAAK,EACL,UAAU,EACV,iBAAwB,EACxB,SAAiB,EACjB,SAAiB,EACjB,iBAAyB,EACzB,2BAAmC,EACnC,yBAAgC,EAChC,wBAAgC,EAChC,sBAAgC,EAChC,mBAA6B,EAC7B,sBAAsB,EACtB,mBAA8B,EAC9B,UAAU,GACX,EAAE;IACD,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,WAAW,EAAE,GAAG,EAAE,CAAC;IACnB,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,cAAc,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,UAAU,CAAC;IACxB,KAAK,EAAE,GAAG,CAAC;IACX,UAAU,EAAE,GAAG,CAAC;IAChB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,2BAA2B,EAAE,OAAO,CAAC;IACrC,yBAAyB,EAAE,OAAO,CAAC;IACnC,wBAAwB,EAAE,OAAO,CAAC;IAClC,sBAAsB,EAAE,OAAO,GAAG,QAAQ,CAAC;IAC3C,mBAAmB,EAAE,OAAO,GAAG,QAAQ,CAAC;IACxC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,mBAAmB,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IACvC,UAAU,CAAC,EAAE,GAAG,CAAC;CAClB,2CAuQA"}
1
+ {"version":3,"file":"LineChart.d.ts","sourceRoot":"","sources":["../../../../src/components/Chart/LineChart.tsx"],"names":[],"mappings":";AAoBA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAgC7C,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAChC,MAAM,EACN,QAAa,EACb,WAAW,EACX,IAAI,EACJ,cAAc,EACd,SAAS,EACT,UAAU,EACV,WAAW,EACX,KAAK,EACL,UAAU,EACV,iBAAwB,EACxB,SAAiB,EACjB,SAAiB,EACjB,iBAAyB,EACzB,2BAAmC,EACnC,yBAAgC,EAChC,wBAAgC,EAChC,sBAAgC,EAChC,mBAA6B,EAC7B,sBAAsB,EACtB,mBAA8B,EAC9B,UAAU,GACX,EAAE;IACD,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,WAAW,EAAE,GAAG,EAAE,CAAC;IACnB,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,cAAc,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,UAAU,CAAC;IACxB,KAAK,EAAE,GAAG,CAAC;IACX,UAAU,EAAE,GAAG,CAAC;IAChB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,2BAA2B,EAAE,OAAO,CAAC;IACrC,yBAAyB,EAAE,OAAO,CAAC;IACnC,wBAAwB,EAAE,OAAO,CAAC;IAClC,sBAAsB,EAAE,OAAO,GAAG,QAAQ,CAAC;IAC3C,mBAAmB,EAAE,OAAO,GAAG,QAAQ,CAAC;IACxC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,mBAAmB,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IACvC,UAAU,CAAC,EAAE,GAAG,CAAC;CAClB,2CA4PA"}
@@ -37,17 +37,7 @@ export default function LineChart({ colors, colorMap = {}, yAxisFields, data, co
37
37
  setFormattedData(createLineForEmptyChart(yAxisFields, dateFilter, xAxisField, xAxisFormat));
38
38
  return;
39
39
  }
40
- let newData = [...data];
41
- if (typeof data[0][xAxisField] === 'object') {
42
- newData = data.map((d) => {
43
- const formatted = { ...d };
44
- // NEED TO FORMAT FOR BIG QUERY
45
- if (d[xAxisField] && typeof d[xAxisField] === 'object') {
46
- formatted[xAxisField] = d[xAxisField].value;
47
- }
48
- return formatted;
49
- });
50
- }
40
+ const newData = [...data];
51
41
  if (newData.length === 1) {
52
42
  const point = { ...newData[0] };
53
43
  newData.push(point);
@@ -8,7 +8,7 @@ import { fetchTableByReport } from '../../utils/tableProcessing';
8
8
  const constructReportFromItem = (item) => {
9
9
  return {
10
10
  ...EMPTY_REPORT,
11
- id: item._id,
11
+ id: item._id ?? '',
12
12
  name: item.name,
13
13
  dashboardName: item.dashboardName,
14
14
  rows: [],
@@ -14,20 +14,20 @@ export default function FilterModal({ schema, filter, fieldValuesMap, customOper
14
14
  const [field, setField] = useState(filter ? filter.field : '');
15
15
  const [fieldOptions, setFieldOptions] = useState([]);
16
16
  const [fieldValues, setFieldValues] = useState([]);
17
- const [type, setType] = useState(filter ? filter.type : '');
17
+ const [type, setType] = useState(filter ? filter.filterType : '');
18
18
  const [value, setValue] = useState(filter
19
- ? filter.name === 'date-filter'
19
+ ? filter.filterType === 'date-filter'
20
20
  ? filter.value.value
21
21
  : filter.value
22
22
  : undefined);
23
- const [selectedOptions, setSelectedOptions] = useState(filter && filter.name === 'string-in-filter'
23
+ const [selectedOptions, setSelectedOptions] = useState(filter && filter.filterType === 'string-in-filter'
24
24
  ? filter.value.map((val) => {
25
25
  return { label: val, value: val };
26
26
  })
27
27
  : []);
28
28
  const [operator, setOperator] = useState(filter ? filter.operator : '');
29
29
  const [operatorOptions, setOperatorOptions] = useState([]);
30
- const [unit, setUnit] = useState(filter && filter.name === 'date-filter' ? filter.value.unit : '');
30
+ const [unit, setUnit] = useState(filter && filter.filterType === 'date-filter' ? filter.value.unit : '');
31
31
  const [unitOptions, setUnitOptions] = useState([]);
32
32
  const [startDate, setStartDate] = useState(filter && filter.value?.startDate
33
33
  ? filter.value.startDate.substring(0, 10)
@@ -39,7 +39,7 @@ export default function FilterModal({ schema, filter, fieldValuesMap, customOper
39
39
  const [table, setTable] = useState('');
40
40
  // Define all supported operator options for each field type
41
41
  const allOperatorOptions = {
42
- [FieldTypes.Numeric]: [
42
+ [FieldTypes.Number]: [
43
43
  NumberOperator.EqualTo,
44
44
  NumberOperator.NotEqualTo,
45
45
  NumberOperator.GreaterThan,
@@ -80,7 +80,7 @@ export default function FilterModal({ schema, filter, fieldValuesMap, customOper
80
80
  // Effect hook to initialize or update fieldValues based on selected field
81
81
  useEffect(() => {
82
82
  if (filter) {
83
- if (filter.name === 'string-in-filter') {
83
+ if (filter.filterType === 'string-in-filter') {
84
84
  setSelectedOptions(filter.value.map((val) => {
85
85
  return { label: val, value: val };
86
86
  }));
@@ -141,7 +141,7 @@ export default function FilterModal({ schema, filter, fieldValuesMap, customOper
141
141
  setOperator(DateOperator.InTheLast);
142
142
  setValue('90');
143
143
  break;
144
- case 'numeric':
144
+ case 'number':
145
145
  setOperator(NumberOperator.EqualTo);
146
146
  setValue('0');
147
147
  break;
@@ -268,8 +268,8 @@ export default function FilterModal({ schema, filter, fieldValuesMap, customOper
268
268
  }
269
269
  onSubmitFilter({
270
270
  field,
271
- name: FilterNames.DateFilter,
272
- type: FieldTypes.Date,
271
+ filterType: FilterNames.DateFilter,
272
+ fieldType: FieldTypes.Date,
273
273
  operator: operator,
274
274
  value: { value: value, unit: unit },
275
275
  table,
@@ -282,8 +282,8 @@ export default function FilterModal({ schema, filter, fieldValuesMap, customOper
282
282
  }
283
283
  onSubmitFilter({
284
284
  field,
285
- name: FilterNames.DateFilter,
286
- type: FieldTypes.Date,
285
+ filterType: FilterNames.DateFilter,
286
+ fieldType: FieldTypes.Date,
287
287
  operator: operator,
288
288
  value: { value: 0, unit: unit },
289
289
  table,
@@ -296,8 +296,8 @@ export default function FilterModal({ schema, filter, fieldValuesMap, customOper
296
296
  }
297
297
  onSubmitFilter({
298
298
  field,
299
- name: FilterNames.DateCustomFilter,
300
- type: FieldTypes.Date,
299
+ filterType: FilterNames.DateCustomFilter,
300
+ fieldType: FieldTypes.Date,
301
301
  operator: operator,
302
302
  value: { startDate, endDate },
303
303
  table,
@@ -317,8 +317,8 @@ export default function FilterModal({ schema, filter, fieldValuesMap, customOper
317
317
  }
318
318
  onSubmitFilter({
319
319
  field,
320
- name: FilterNames.DateComparisonFilter,
321
- type: FieldTypes.Date,
320
+ filterType: FilterNames.DateComparisonFilter,
321
+ fieldType: FieldTypes.Date,
322
322
  operator: operator,
323
323
  value,
324
324
  table,
@@ -328,8 +328,8 @@ export default function FilterModal({ schema, filter, fieldValuesMap, customOper
328
328
  case NullOperator.IsNull:
329
329
  onSubmitFilter({
330
330
  field,
331
- name: FilterNames.NullFilter,
332
- type: FieldTypes.Null,
331
+ filterType: FilterNames.NullFilter,
332
+ fieldType: FieldTypes.Null,
333
333
  operator: operator,
334
334
  value: null,
335
335
  table,
@@ -347,8 +347,8 @@ export default function FilterModal({ schema, filter, fieldValuesMap, customOper
347
347
  }
348
348
  onSubmitFilter({
349
349
  field,
350
- name: FilterNames.StringInFilter,
351
- type: FieldTypes.String,
350
+ filterType: FilterNames.StringInFilter,
351
+ fieldType: FieldTypes.String,
352
352
  operator: operator,
353
353
  value: selectedOptions.map((val) => val.label),
354
354
  table,
@@ -358,8 +358,8 @@ export default function FilterModal({ schema, filter, fieldValuesMap, customOper
358
358
  case NullOperator.IsNull:
359
359
  onSubmitFilter({
360
360
  field,
361
- name: FilterNames.NullFilter,
362
- type: FieldTypes.Null,
361
+ filterType: FilterNames.NullFilter,
362
+ fieldType: FieldTypes.Null,
363
363
  operator: operator,
364
364
  value: null,
365
365
  table,
@@ -372,22 +372,22 @@ export default function FilterModal({ schema, filter, fieldValuesMap, customOper
372
372
  }
373
373
  onSubmitFilter({
374
374
  field,
375
- name: FilterNames.StringFilter,
376
- type: FieldTypes.String,
375
+ filterType: FilterNames.StringFilter,
376
+ fieldType: FieldTypes.String,
377
377
  operator: operator,
378
378
  value,
379
379
  table,
380
380
  });
381
381
  }
382
382
  break;
383
- case 'numeric':
383
+ case 'number':
384
384
  switch (operator) {
385
385
  case NullOperator.IsNotNull:
386
386
  case NullOperator.IsNull:
387
387
  onSubmitFilter({
388
388
  field,
389
- name: FilterNames.NullFilter,
390
- type: FieldTypes.Null,
389
+ filterType: FilterNames.NullFilter,
390
+ fieldType: FieldTypes.Null,
391
391
  operator: operator,
392
392
  value: null,
393
393
  table,
@@ -402,8 +402,8 @@ export default function FilterModal({ schema, filter, fieldValuesMap, customOper
402
402
  }
403
403
  onSubmitFilter({
404
404
  field,
405
- name: FilterNames.NumericFilter,
406
- type: FieldTypes.Numeric,
405
+ filterType: FilterNames.NumericFilter,
406
+ fieldType: FieldTypes.Number,
407
407
  operator: operator,
408
408
  value,
409
409
  table,
@@ -416,8 +416,8 @@ export default function FilterModal({ schema, filter, fieldValuesMap, customOper
416
416
  case NullOperator.IsNull:
417
417
  onSubmitFilter({
418
418
  field,
419
- name: FilterNames.NullFilter,
420
- type: FieldTypes.Null,
419
+ filterType: FilterNames.NullFilter,
420
+ fieldType: FieldTypes.Null,
421
421
  operator: operator,
422
422
  value: null,
423
423
  table,
@@ -427,8 +427,8 @@ export default function FilterModal({ schema, filter, fieldValuesMap, customOper
427
427
  case BoolOperator.NotEqualTo:
428
428
  onSubmitFilter({
429
429
  field,
430
- name: FilterNames.BooleanFilter,
431
- type: FieldTypes.Boolean,
430
+ filterType: FilterNames.BooleanFilter,
431
+ fieldType: FieldTypes.Boolean,
432
432
  operator: operator,
433
433
  value: value,
434
434
  table,
@@ -1,7 +1,7 @@
1
1
  import { NodeSQLParser as NSP, AST } from './ast';
2
- import { Pivot } from './pivot';
3
2
  import { TableInfo } from './schema';
4
3
  import { ColumnInternal } from '../../models/Columns';
4
+ import { Pivot } from '../../models/Pivot';
5
5
  export declare function convertDateComparison(node: NSP.Select): NSP.Select;
6
6
  export declare function recursiveSearchAndReplace(node: any, search: string, replace: string): void;
7
7
  export declare function recursiveSearchAndReplaceByKey(node: any, search: string, replace: string, searchKey: string): void;
@@ -22,37 +22,11 @@ export declare function convertASTToPivotData(ast: NSP.Select, columnInfo: Colum
22
22
  * Processes the AST and builds up a new pivot, given the old AST, the old pivot
23
23
  * and a list of tables in the schema.
24
24
  */
25
- export declare function convertGroupBy(ast: AST, prevPivot: Pivot | undefined, schemaTables: TableInfo[]): {
26
- ast: NSP.Insert_Replace | NSP.Update | NSP.Delete | NSP.Alter | NSP.Use | NSP.Create | NSP.Drop | NSP.BigQuery;
27
- pivot: Pivot;
25
+ export declare function convertGroupBy(ast: AST, schemaTables: TableInfo[], prevPivot?: Pivot): {
26
+ ast: NSP.Use | NSP.Create | NSP.Update | NSP.Insert_Replace | NSP.Alter | NSP.Delete | NSP.Drop | NSP.BigQuery;
27
+ pivot: Pivot | undefined;
28
28
  } | {
29
- pivot: {
30
- aggregationType: "count" | "average" | "avg" | "min" | "max" | "sum";
31
- valueField: string;
32
- valueFieldType?: string | undefined;
33
- rowField?: string | undefined;
34
- rowFieldType?: string | undefined;
35
- columnField?: string | undefined;
36
- sort: boolean;
37
- sortDirection: "ASC" | "DESC";
38
- sortField?: string | undefined;
39
- sortFieldType?: string | undefined;
40
- } | null;
41
- ast: Partial<NSP.Select>;
42
- } | {
43
- pivot: {
44
- title: string;
45
- aggregationType: "count" | "average" | "avg" | "min" | "max" | "sum";
46
- valueField: string;
47
- valueFieldType?: string | undefined;
48
- rowField?: string | undefined;
49
- rowFieldType?: string | undefined;
50
- columnField?: string | undefined;
51
- sort: boolean;
52
- sortDirection: "ASC" | "DESC";
53
- sortField?: string | undefined;
54
- sortFieldType?: string | undefined;
55
- };
29
+ pivot: Pivot | null;
56
30
  ast: Partial<NSP.Select>;
57
31
  };
58
32
  export declare function convertStringComparison(node: any, databaseType: string): any;
@@ -1 +1 @@
1
- {"version":3,"file":"convert.d.ts","sourceRoot":"","sources":["../../../../src/components/ReportBuilder/convert.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,aAAa,IAAI,GAAG,EACpB,GAAG,EAOJ,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAc,SAAS,EAAE,MAAM,UAAU,CAAC;AAEjD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAStD,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAuBlE;AAGD,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,GAAG,EACT,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,QAahB;AAGD,wBAAgB,8BAA8B,CAC5C,IAAI,EAAE,GAAG,EACT,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,QAalB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC,MAAM,CAoDpD;AAUD;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,GAAG,CAAC,MAAM,EACf,YAAY,EAAE,SAAS,EAAE,GACxB,GAAG,CAAC,MAAM,CA8BZ;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAAC,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,gBAkBrE;AAmID,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,GAAG,CAAC,MAAM,EACf,UAAU,EAAE,cAAc,EAAE,GAC3B,KAAK,GAAG,IAAI,CAmFd;AA+BD;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,GAAG,EACR,SAAS,mBAAc,EACvB,YAAY,EAAE,SAAS,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2F1B;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,OAyNtE;AAID,wBAAgB,8BAA8B,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAY1E;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,GAAG,OA+C5C"}
1
+ {"version":3,"file":"convert.d.ts","sourceRoot":"","sources":["../../../../src/components/ReportBuilder/convert.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,aAAa,IAAI,GAAG,EACpB,GAAG,EAOJ,MAAM,OAAO,CAAC;AACf,OAAO,EAAc,SAAS,EAAE,MAAM,UAAU,CAAC;AAEjD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAQ3C,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAuBlE;AAGD,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,GAAG,EACT,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,QAahB;AAGD,wBAAgB,8BAA8B,CAC5C,IAAI,EAAE,GAAG,EACT,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,QAalB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC,MAAM,CAoDpD;AAUD;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,GAAG,CAAC,MAAM,EACf,YAAY,EAAE,SAAS,EAAE,GACxB,GAAG,CAAC,MAAM,CA8BZ;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAAC,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,gBAkBrE;AAmID,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,GAAG,CAAC,MAAM,EACf,UAAU,EAAE,cAAc,EAAE,GAC3B,KAAK,GAAG,IAAI,CAmFd;AA+BD;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,GAAG,EACR,YAAY,EAAE,SAAS,EAAE,EACzB,SAAS,CAAC,EAAE,KAAK;;;;;;EA2FlB;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,OAyNtE;AAID,wBAAgB,8BAA8B,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAY1E;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,GAAG,OA+C5C"}
@@ -366,7 +366,7 @@ function addValueFieldToPivot(newAst, pivot, columns) {
366
366
  * Processes the AST and builds up a new pivot, given the old AST, the old pivot
367
367
  * and a list of tables in the schema.
368
368
  */
369
- export function convertGroupBy(ast, prevPivot = null, schemaTables) {
369
+ export function convertGroupBy(ast, schemaTables, prevPivot) {
370
370
  if (!isSelect(ast))
371
371
  return { ast, pivot: prevPivot };
372
372
  let newAst = {};
@@ -0,0 +1,27 @@
1
+ import { Pivot } from '../models/Pivot';
2
+ import { FilterTreeNode as FilterTree } from '../utils/astFilterProcessing';
3
+ import { FieldTypes } from '../models/Filter';
4
+ interface Column {
5
+ label: string;
6
+ field: string;
7
+ format: string;
8
+ fieldType: FieldTypes;
9
+ }
10
+ export declare const useAskQuill: () => {
11
+ data: {
12
+ rows: any[];
13
+ columns: Column[];
14
+ pivot: Pivot | null;
15
+ pivotRowFields: string[];
16
+ pivotColumnFields: string[];
17
+ pivotValueFields: string[];
18
+ filterTree: FilterTree | null;
19
+ };
20
+ loading: boolean;
21
+ error: string | undefined;
22
+ ask: (query: string) => Promise<any | undefined>;
23
+ onChangePivot: (pivot: Pivot) => void;
24
+ onChangeFilterTree: (filterTree: FilterTree) => void;
25
+ };
26
+ export {};
27
+ //# sourceMappingURL=useAskQuill.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAskQuill.d.ts","sourceRoot":"","sources":["../../../src/hooks/useAskQuill.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAEL,cAAc,IAAI,UAAU,EAE7B,MAAM,8BAA8B,CAAC;AAKtC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,UAAU,MAAM;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,UAAU,CAAC;CACvB;AA6BD,eAAO,MAAM,WAAW;UAChB;QACJ,IAAI,EAAE,GAAG,EAAE,CAAC;QACZ,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;QACpB,cAAc,EAAE,MAAM,EAAE,CAAC;QACzB,iBAAiB,EAAE,MAAM,EAAE,CAAC;QAC5B,gBAAgB,EAAE,MAAM,EAAE,CAAC;QAC3B,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;KAE/B;aACQ,OAAO;WACT,MAAM,GAAG,SAAS;iBACZ,MAAM,KAAK,QAAQ,GAAG,GAAG,SAAS,CAAC;2BACzB,KAAK,KAAK,IAAI;qCACJ,UAAU,KAAK,IAAI;CA+LrD,CAAC"}
@@ -0,0 +1,173 @@
1
+ import { useContext, useEffect, useState } from 'react';
2
+ import { ClientContext, SchemaContext } from '../Context';
3
+ import { fetchAndProcessASTFromPrompt } from '../utils/astProcessing';
4
+ import { fetchReportBuilderDataFromAST, } from '../utils/report';
5
+ import { astToFilterTree, filterTreeToAst, } from '../utils/astFilterProcessing';
6
+ import { getPossiblePivotFieldOptions } from '../utils/pivotProcessing';
7
+ import { convertColumnInfoToColumnInternal } from '../utils/columnProcessing';
8
+ import { FieldTypes } from '../models/Filter';
9
+ function convertColumnInternalToAboveType(columns) {
10
+ return columns.map((column) => {
11
+ let convertedFieldType = FieldTypes.String;
12
+ if (column.jsType === FieldTypes.Date) {
13
+ convertedFieldType = FieldTypes.Date;
14
+ }
15
+ else if (column.jsType === FieldTypes.Number) {
16
+ convertedFieldType = FieldTypes.Number;
17
+ }
18
+ else if (column.jsType === FieldTypes.String) {
19
+ convertedFieldType = FieldTypes.String;
20
+ }
21
+ else if (column.jsType === FieldTypes.Boolean ||
22
+ column.jsType === 'bool') {
23
+ convertedFieldType = FieldTypes.Boolean;
24
+ }
25
+ else if (column.jsType === FieldTypes.Null) {
26
+ convertedFieldType = FieldTypes.Null;
27
+ }
28
+ return {
29
+ label: column.label,
30
+ field: column.field,
31
+ format: column.format,
32
+ fieldType: convertedFieldType,
33
+ };
34
+ });
35
+ }
36
+ export const useAskQuill = () => {
37
+ const [client] = useContext(ClientContext);
38
+ const [schema] = useContext(SchemaContext);
39
+ const [astInfo, setAstInfo] = useState(undefined);
40
+ const [data, setData] = useState({
41
+ rows: [],
42
+ columns: [],
43
+ pivot: null,
44
+ filterTree: null,
45
+ // uniqueValues: {},
46
+ pivotRowFields: [],
47
+ pivotColumnFields: [],
48
+ pivotValueFields: [],
49
+ });
50
+ const [loading, setLoading] = useState(false);
51
+ const [error, setError] = useState(undefined);
52
+ const [ask, setAsk] = useState(async () => undefined);
53
+ const askHelper = async (query) => {
54
+ if (!query) {
55
+ setLoading(false);
56
+ setError('Please supply a prompt.');
57
+ return;
58
+ }
59
+ let astInfo = {};
60
+ let reportBuilderInfo = undefined;
61
+ let possibleColumns = { rowFields: [], columnFields: [], valueFields: [] };
62
+ let curFilterTree = null;
63
+ setLoading(true);
64
+ try {
65
+ setLoading(true);
66
+ astInfo = await fetchAndProcessASTFromPrompt(query, schema, client);
67
+ if (astInfo.error) {
68
+ throw new Error(astInfo.error);
69
+ }
70
+ reportBuilderInfo = await fetchReportBuilderDataFromAST(astInfo.ast, astInfo.whereAST, schema, client, astInfo.pivot);
71
+ if (!reportBuilderInfo) {
72
+ throw new Error('Error fetching report');
73
+ }
74
+ const tableName = reportBuilderInfo.table;
75
+ const tableInfo = schema.find((table) => table.name === tableName);
76
+ if (!tableInfo) {
77
+ throw new Error('Table not found');
78
+ }
79
+ const columnInternal = tableInfo.columns.map((column) => convertColumnInfoToColumnInternal(column));
80
+ possibleColumns = getPossiblePivotFieldOptions(columnInternal, reportBuilderInfo.uniqueValues[reportBuilderInfo.table] || {});
81
+ curFilterTree = astToFilterTree(astInfo.whereAST, client.databaseType.toLowerCase());
82
+ }
83
+ catch (err) {
84
+ if (err instanceof Error) {
85
+ setError(err.message);
86
+ setLoading(false);
87
+ }
88
+ return;
89
+ }
90
+ const convertedColumns = convertColumnInternalToAboveType(reportBuilderInfo?.pivotData?.columns || reportBuilderInfo?.columns || []);
91
+ setData({
92
+ rows: reportBuilderInfo?.pivotData?.rows || reportBuilderInfo?.rows || [],
93
+ columns: convertedColumns,
94
+ pivot: astInfo.pivot,
95
+ pivotRowFields: possibleColumns.rowFields || [],
96
+ pivotColumnFields: possibleColumns.columnFields || [],
97
+ pivotValueFields: possibleColumns.valueFields || [],
98
+ filterTree: curFilterTree,
99
+ });
100
+ setAstInfo(astInfo);
101
+ setLoading(false);
102
+ };
103
+ const onChangePivot = async (newPivot) => {
104
+ if (!data) {
105
+ return;
106
+ }
107
+ let reportBuilderInfo = undefined;
108
+ try {
109
+ setLoading(true);
110
+ reportBuilderInfo = await fetchReportBuilderDataFromAST(astInfo.ast, astInfo.whereAST, schema, client, newPivot);
111
+ setLoading(false);
112
+ if (!reportBuilderInfo) {
113
+ throw new Error('Error fetching report builder data');
114
+ }
115
+ }
116
+ catch (err) {
117
+ if (err instanceof Error) {
118
+ setError(err.message);
119
+ setLoading(false);
120
+ }
121
+ }
122
+ const convertedColumns = convertColumnInternalToAboveType(reportBuilderInfo?.pivotData?.columns || reportBuilderInfo?.columns || []);
123
+ setData({
124
+ ...data,
125
+ rows: reportBuilderInfo?.pivotData?.rows || reportBuilderInfo?.rows || [],
126
+ columns: convertedColumns,
127
+ pivot: newPivot,
128
+ pivotRowFields: data?.pivotRowFields || [],
129
+ pivotColumnFields: data?.pivotColumnFields || [],
130
+ pivotValueFields: data?.pivotValueFields || [],
131
+ });
132
+ setAstInfo({ ...astInfo, pivot: newPivot });
133
+ setLoading(false);
134
+ };
135
+ const onChangeFilterTree = async (filterTree) => {
136
+ if (!data) {
137
+ return;
138
+ }
139
+ let reportBuilderInfo = {};
140
+ try {
141
+ const filterAst = filterTreeToAst(filterTree, client.databaseType.toLowerCase());
142
+ setLoading(true);
143
+ reportBuilderInfo = await fetchReportBuilderDataFromAST(astInfo.ast, filterAst, schema, client, data.pivot || undefined);
144
+ setLoading(false);
145
+ }
146
+ catch (err) {
147
+ if (err instanceof Error) {
148
+ setError(err.message);
149
+ setLoading(false);
150
+ }
151
+ }
152
+ setData({
153
+ ...data,
154
+ rows: reportBuilderInfo?.pivotData?.rows || reportBuilderInfo?.rows || [],
155
+ columns: reportBuilderInfo?.pivotData?.columns ||
156
+ reportBuilderInfo?.columns ||
157
+ [],
158
+ filterTree,
159
+ });
160
+ setLoading(false);
161
+ };
162
+ useEffect(() => {
163
+ setAsk(() => askHelper);
164
+ }, [schema]);
165
+ return {
166
+ data,
167
+ loading,
168
+ error,
169
+ ask,
170
+ onChangePivot,
171
+ onChangeFilterTree,
172
+ };
173
+ };
@@ -18,6 +18,7 @@ export { useDashboard } from './hooks/useDashboard';
18
18
  export { useQuill, usePivot } from './hooks/useQuill';
19
19
  export { useExport } from './hooks/useExport';
20
20
  export { useMemoizedRows } from './hooks/useFormat';
21
+ export { useAskQuill } from './hooks/useAskQuill';
21
22
  export { downloadCSV } from './utils/csv';
22
23
  export { ThemeContext } from './Context';
23
24
  export type { TextInputComponentProps, ButtonComponentProps, DeleteButtonComponentProps, SelectComponentProps, PopoverComponentProps, TabsComponentProps, CheckboxComponentProps, SidebarComponentProps, ContainerComponentProps, HeaderComponentProps, LabelComponentProps, TextComponentProps, Option, ModalComponentProps, HeaderProps, } from './components/UiComponents';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,YAAY,EAAE,cAAc,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAChF,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3D,YAAY,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAC3C,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAC3C,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACxE,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3D,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC;AACvD,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,WAAW,IAAI,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,YAAY,EACV,uBAAuB,EACvB,oBAAoB,EACpB,0BAA0B,EAC1B,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACrB,uBAAuB,EACvB,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,EAClB,MAAM,EACN,mBAAmB,EACnB,WAAW,GACZ,MAAM,2BAA2B,CAAC;AACnC,YAAY,EACV,0BAA0B,EAC1B,6BAA6B,EAC7B,4BAA4B,EAC5B,2BAA2B,EAC3B,yBAAyB,EACzB,0BAA0B,GAC3B,MAAM,+BAA+B,CAAC;AACvC,YAAY,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,YAAY,EACV,oBAAoB,EACpB,qBAAqB,EACrB,SAAS,GACV,MAAM,mCAAmC,CAAC;AAC3C,YAAY,EAAE,8BAA8B,EAAE,MAAM,yCAAyC,CAAC;AAC9F,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,YAAY,EAAE,cAAc,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAChF,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3D,YAAY,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAC3C,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAC3C,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACxE,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3D,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC;AACvD,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,WAAW,IAAI,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,YAAY,EACV,uBAAuB,EACvB,oBAAoB,EACpB,0BAA0B,EAC1B,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACrB,uBAAuB,EACvB,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,EAClB,MAAM,EACN,mBAAmB,EACnB,WAAW,GACZ,MAAM,2BAA2B,CAAC;AACnC,YAAY,EACV,0BAA0B,EAC1B,6BAA6B,EAC7B,4BAA4B,EAC5B,2BAA2B,EAC3B,yBAAyB,EACzB,0BAA0B,GAC3B,MAAM,+BAA+B,CAAC;AACvC,YAAY,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,YAAY,EACV,oBAAoB,EACpB,qBAAqB,EACrB,SAAS,GACV,MAAM,mCAAmC,CAAC;AAC3C,YAAY,EAAE,8BAA8B,EAAE,MAAM,yCAAyC,CAAC;AAC9F,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC"}
package/dist/esm/index.js CHANGED
@@ -11,6 +11,7 @@ export { useDashboard } from './hooks/useDashboard';
11
11
  export { useQuill, usePivot } from './hooks/useQuill';
12
12
  export { useExport } from './hooks/useExport';
13
13
  export { useMemoizedRows } from './hooks/useFormat';
14
+ export { useAskQuill } from './hooks/useAskQuill';
14
15
  export { downloadCSV } from './utils/csv';
15
16
  export { ThemeContext } from './Context';
16
17
  export { Calculation } from './utils/dataProcessing';
@@ -11,14 +11,14 @@ interface PivotFormProps {
11
11
  setPivotAggregation: any;
12
12
  columns: ColumnInternal[];
13
13
  uniqueValues?: any;
14
- onDelete: any;
15
- SecondaryButtonComponent: (props: {
14
+ onDelete?: any;
15
+ SecondaryButtonComponent?: (props: {
16
16
  onClick: () => void;
17
17
  label: string;
18
18
  disabled?: boolean;
19
19
  icon?: ReactNode;
20
20
  }) => JSX.Element;
21
- SelectComponent: any;
21
+ SelectComponent?: any;
22
22
  PivotColumnContainer?: (props: {
23
23
  children: ReactNode;
24
24
  }) => JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"PivotForm.d.ts","sourceRoot":"","sources":["../../../../src/internals/ReportBuilder/PivotForm.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,SAAS,EAAuB,MAAM,OAAO,CAAC;AAG9D,OAAO,EAAU,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAI9D,UAAU,cAAc;IACtB,aAAa,EAAE,GAAG,CAAC;IACnB,gBAAgB,EAAE,GAAG,CAAC;IACtB,gBAAgB,EAAE,GAAG,CAAC;IACtB,mBAAmB,EAAE,GAAG,CAAC;IACzB,eAAe,EAAE,GAAG,CAAC;IACrB,kBAAkB,EAAE,GAAG,CAAC;IACxB,gBAAgB,EAAE,GAAG,CAAC;IACtB,mBAAmB,EAAE,GAAG,CAAC;IACzB,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB,QAAQ,EAAE,GAAG,CAAC;IACd,wBAAwB,EAAE,CAAC,KAAK,EAAE;QAChC,OAAO,EAAE,MAAM,IAAI,CAAC;QACpB,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,IAAI,CAAC,EAAE,SAAS,CAAC;KAClB,KAAK,GAAG,CAAC,OAAO,CAAC;IAClB,eAAe,EAAE,GAAG,CAAC;IACrB,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,QAAQ,EAAE,SAAS,CAAA;KAAE,KAAK,GAAG,CAAC,OAAO,CAAC;CACxE;AAED,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAChC,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,OAAO,EACP,YAAY,EACZ,QAAQ,EACR,wBAAwB,EACxB,eAAe,EACf,oBAAgD,GACjD,EAAE,cAAc,2CA0GhB"}
1
+ {"version":3,"file":"PivotForm.d.ts","sourceRoot":"","sources":["../../../../src/internals/ReportBuilder/PivotForm.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,SAAS,EAAuB,MAAM,OAAO,CAAC;AAG9D,OAAO,EAAU,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAM9D,UAAU,cAAc;IACtB,aAAa,EAAE,GAAG,CAAC;IACnB,gBAAgB,EAAE,GAAG,CAAC;IACtB,gBAAgB,EAAE,GAAG,CAAC;IACtB,mBAAmB,EAAE,GAAG,CAAC;IACzB,eAAe,EAAE,GAAG,CAAC;IACrB,kBAAkB,EAAE,GAAG,CAAC;IACxB,gBAAgB,EAAE,GAAG,CAAC;IACtB,mBAAmB,EAAE,GAAG,CAAC;IACzB,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,wBAAwB,CAAC,EAAE,CAAC,KAAK,EAAE;QACjC,OAAO,EAAE,MAAM,IAAI,CAAC;QACpB,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,IAAI,CAAC,EAAE,SAAS,CAAC;KAClB,KAAK,GAAG,CAAC,OAAO,CAAC;IAClB,eAAe,CAAC,EAAE,GAAG,CAAC;IACtB,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,QAAQ,EAAE,SAAS,CAAA;KAAE,KAAK,GAAG,CAAC,OAAO,CAAC;CACxE;AAED,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAChC,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,OAAO,EACP,YAAY,EACZ,QAAQ,EACR,wBAA+C,EAC/C,eAA+C,EAC/C,oBAAgD,GACjD,EAAE,cAAc,2CA4GhB"}
@@ -4,7 +4,9 @@ import { QuillPivotColumnContainer } from '../../components/UiComponents';
4
4
  import { snakeAndCamelCaseToTitleCase } from '../../utils/textProcessing';
5
5
  import { numberFormatOptions } from '../../ChartBuilder';
6
6
  import { getPossiblePivotFieldOptions } from '../../utils/pivotProcessing';
7
- export default function PivotForm({ pivotRowField, setPivotRowField, pivotColumnField, setPivotColumnField, pivotValueField, setPivotValueField, pivotAggregation, setPivotAggregation, columns, uniqueValues, onDelete, SecondaryButtonComponent, SelectComponent, PivotColumnContainer = QuillPivotColumnContainer, }) {
7
+ import { QuillSecondaryButton } from '../../components/ReportBuilder/ui';
8
+ import { QuillSelectComponentWithCombo } from '../../components/QuillSelectWithCombo';
9
+ export default function PivotForm({ pivotRowField, setPivotRowField, pivotColumnField, setPivotColumnField, pivotValueField, setPivotValueField, pivotAggregation, setPivotAggregation, columns, uniqueValues, onDelete, SecondaryButtonComponent = QuillSecondaryButton, SelectComponent = QuillSelectComponentWithCombo, PivotColumnContainer = QuillPivotColumnContainer, }) {
8
10
  const [allowedColumnFields, setAllowedColumnFields] = useState([]);
9
11
  const [allowedRowFields, setAllowedRowFields] = useState([]);
10
12
  const [allowedValueFields, setAllowedValueFields] = useState([]);
@@ -58,5 +60,5 @@ export default function PivotForm({ pivotRowField, setPivotRowField, pivotColumn
58
60
  display: 'flex',
59
61
  alignItems: 'flex-start',
60
62
  flexDirection: 'column',
61
- }, children: _jsx(SecondaryButtonComponent, { onClick: onDelete, label: "Delete Pivot" }) })] }));
63
+ }, children: onDelete && (_jsx(SecondaryButtonComponent, { onClick: onDelete, label: "Delete Pivot" })) })] }));
62
64
  }
@@ -2,21 +2,7 @@ import { ReactNode } from 'react';
2
2
  import { ButtonComponentProps } from '../../components/UiComponents';
3
3
  import { ColumnInternal } from '../../models/Columns';
4
4
  import { AxisFormat } from '../../Dashboard';
5
- export interface Pivot {
6
- rowField: string;
7
- rowFieldType: string;
8
- columnField?: string;
9
- columnFieldType?: string;
10
- valueField: string;
11
- valueFieldType?: string;
12
- aggregationType: string;
13
- title?: string;
14
- triggerButtonText?: string;
15
- sort?: string;
16
- sortDirection?: string;
17
- sortField?: string;
18
- sortFieldType?: string;
19
- }
5
+ import { Pivot } from '../../models/Pivot';
20
6
  export interface PivotModalProps {
21
7
  pivotRowField: any;
22
8
  setPivotRowField: any;