@quillsql/react 2.13.27 → 2.13.28

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (243) hide show
  1. package/dist/cjs/Chart.d.ts.map +1 -1
  2. package/dist/cjs/Chart.js +1 -1
  3. package/dist/cjs/ChartBuilder.d.ts +20 -2
  4. package/dist/cjs/ChartBuilder.d.ts.map +1 -1
  5. package/dist/cjs/ChartBuilder.js +130 -36
  6. package/dist/cjs/ChartEditor.d.ts +5 -3
  7. package/dist/cjs/ChartEditor.d.ts.map +1 -1
  8. package/dist/cjs/ChartEditor.js +4 -5
  9. package/dist/cjs/Context.d.ts +15 -4
  10. package/dist/cjs/Context.d.ts.map +1 -1
  11. package/dist/cjs/Context.js +37 -60
  12. package/dist/cjs/Dashboard.d.ts +4 -0
  13. package/dist/cjs/Dashboard.d.ts.map +1 -1
  14. package/dist/cjs/Dashboard.js +78 -23
  15. package/dist/cjs/QuillProvider.d.ts +12 -9
  16. package/dist/cjs/QuillProvider.d.ts.map +1 -1
  17. package/dist/cjs/QuillProvider.js +2 -2
  18. package/dist/cjs/ReportBuilder.d.ts +9 -1
  19. package/dist/cjs/ReportBuilder.d.ts.map +1 -1
  20. package/dist/cjs/ReportBuilder.js +198 -80
  21. package/dist/cjs/SQLEditor.d.ts +5 -1
  22. package/dist/cjs/SQLEditor.d.ts.map +1 -1
  23. package/dist/cjs/SQLEditor.js +81 -18
  24. package/dist/cjs/Table.d.ts.map +1 -1
  25. package/dist/cjs/Table.js +3 -2
  26. package/dist/cjs/components/Chart/InternalChart.d.ts.map +1 -1
  27. package/dist/cjs/components/Chart/InternalChart.js +106 -27
  28. package/dist/cjs/components/Chart/PieChart.d.ts.map +1 -1
  29. package/dist/cjs/components/Chart/PieChart.js +10 -7
  30. package/dist/cjs/components/Dashboard/DashboardFilter.d.ts +3 -2
  31. package/dist/cjs/components/Dashboard/DashboardFilter.d.ts.map +1 -1
  32. package/dist/cjs/components/Dashboard/DashboardFilter.js +65 -65
  33. package/dist/cjs/components/Dashboard/DataLoader.d.ts.map +1 -1
  34. package/dist/cjs/components/Dashboard/DataLoader.js +81 -34
  35. package/dist/cjs/components/Dashboard/MetricComponent.js +3 -3
  36. package/dist/cjs/components/Dashboard/util.d.ts.map +1 -1
  37. package/dist/cjs/components/Dashboard/util.js +6 -2
  38. package/dist/cjs/components/QuillMultiSelectWithCombo.d.ts +1 -1
  39. package/dist/cjs/components/QuillMultiSelectWithCombo.d.ts.map +1 -1
  40. package/dist/cjs/components/QuillMultiSelectWithCombo.js +17 -18
  41. package/dist/cjs/components/QuillTable.d.ts.map +1 -1
  42. package/dist/cjs/components/QuillTable.js +9 -1
  43. package/dist/cjs/components/ReportBuilder/FilterModal.d.ts.map +1 -1
  44. package/dist/cjs/components/ReportBuilder/FilterModal.js +25 -3
  45. package/dist/cjs/components/ReportBuilder/FilterStack.d.ts +2 -1
  46. package/dist/cjs/components/ReportBuilder/FilterStack.d.ts.map +1 -1
  47. package/dist/cjs/components/ReportBuilder/FilterStack.js +2 -2
  48. package/dist/cjs/components/ReportBuilder/convert.d.ts +1 -0
  49. package/dist/cjs/components/ReportBuilder/convert.d.ts.map +1 -1
  50. package/dist/cjs/components/ReportBuilder/convert.js +54 -4
  51. package/dist/cjs/components/ReportBuilder/ui.d.ts +2 -1
  52. package/dist/cjs/components/ReportBuilder/ui.d.ts.map +1 -1
  53. package/dist/cjs/components/ReportBuilder/ui.js +3 -2
  54. package/dist/cjs/components/UiComponents.d.ts +1 -0
  55. package/dist/cjs/components/UiComponents.d.ts.map +1 -1
  56. package/dist/cjs/hooks/useAskQuill.d.ts +1 -1
  57. package/dist/cjs/hooks/useAskQuill.d.ts.map +1 -1
  58. package/dist/cjs/hooks/useAskQuill.js +6 -5
  59. package/dist/cjs/hooks/useAstToFilterTree.d.ts +2 -1
  60. package/dist/cjs/hooks/useAstToFilterTree.d.ts.map +1 -1
  61. package/dist/cjs/hooks/useAstToFilterTree.js +3 -3
  62. package/dist/cjs/hooks/useDashboard.d.ts +5 -2
  63. package/dist/cjs/hooks/useDashboard.d.ts.map +1 -1
  64. package/dist/cjs/hooks/useDashboard.js +21 -7
  65. package/dist/cjs/hooks/useExport.d.ts.map +1 -1
  66. package/dist/cjs/hooks/useExport.js +6 -4
  67. package/dist/cjs/index.d.ts +1 -1
  68. package/dist/cjs/index.d.ts.map +1 -1
  69. package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts +8 -2
  70. package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
  71. package/dist/cjs/internals/ReportBuilder/PivotModal.js +59 -30
  72. package/dist/cjs/models/Client.d.ts +22 -3
  73. package/dist/cjs/models/Client.d.ts.map +1 -1
  74. package/dist/cjs/models/Dashboard.d.ts +1 -0
  75. package/dist/cjs/models/Dashboard.d.ts.map +1 -1
  76. package/dist/cjs/models/Report.d.ts +4 -0
  77. package/dist/cjs/models/Report.d.ts.map +1 -1
  78. package/dist/cjs/utils/astFilterProcessing.d.ts +3 -2
  79. package/dist/cjs/utils/astFilterProcessing.d.ts.map +1 -1
  80. package/dist/cjs/utils/astFilterProcessing.js +3323 -977
  81. package/dist/cjs/utils/astProcessing.d.ts +1 -1
  82. package/dist/cjs/utils/astProcessing.d.ts.map +1 -1
  83. package/dist/cjs/utils/astProcessing.js +3 -2
  84. package/dist/cjs/utils/client.d.ts +4 -2
  85. package/dist/cjs/utils/client.d.ts.map +1 -1
  86. package/dist/cjs/utils/client.js +47 -1
  87. package/dist/cjs/utils/columnProcessing.d.ts +3 -0
  88. package/dist/cjs/utils/columnProcessing.d.ts.map +1 -1
  89. package/dist/cjs/utils/columnProcessing.js +34 -1
  90. package/dist/cjs/utils/dashboard.d.ts +4 -3
  91. package/dist/cjs/utils/dashboard.d.ts.map +1 -1
  92. package/dist/cjs/utils/dashboard.js +10 -91
  93. package/dist/cjs/utils/dataFetcher.d.ts +3 -1
  94. package/dist/cjs/utils/dataFetcher.d.ts.map +1 -1
  95. package/dist/cjs/utils/dataFetcher.js +66 -30
  96. package/dist/cjs/utils/filterProcessing.d.ts +1 -1
  97. package/dist/cjs/utils/filterProcessing.d.ts.map +1 -1
  98. package/dist/cjs/utils/filterProcessing.js +2 -0
  99. package/dist/cjs/utils/pivotConstructor.d.ts +4 -1
  100. package/dist/cjs/utils/pivotConstructor.d.ts.map +1 -1
  101. package/dist/cjs/utils/pivotConstructor.js +7 -7
  102. package/dist/cjs/utils/pivotProcessing.d.ts +4 -1
  103. package/dist/cjs/utils/pivotProcessing.d.ts.map +1 -1
  104. package/dist/cjs/utils/pivotProcessing.js +27 -20
  105. package/dist/cjs/utils/queryConstructor.d.ts.map +1 -1
  106. package/dist/cjs/utils/queryConstructor.js +101 -85
  107. package/dist/cjs/utils/report.d.ts +17 -5
  108. package/dist/cjs/utils/report.d.ts.map +1 -1
  109. package/dist/cjs/utils/report.js +23 -23
  110. package/dist/cjs/utils/schema.d.ts.map +1 -1
  111. package/dist/cjs/utils/schema.js +21 -21
  112. package/dist/cjs/utils/tableProcessing.d.ts +37 -10
  113. package/dist/cjs/utils/tableProcessing.d.ts.map +1 -1
  114. package/dist/cjs/utils/tableProcessing.js +45 -38
  115. package/dist/cjs/utils/tenants.d.ts +11 -0
  116. package/dist/cjs/utils/tenants.d.ts.map +1 -0
  117. package/dist/cjs/utils/tenants.js +13 -0
  118. package/dist/cjs/utils/textProcessing.d.ts +1 -0
  119. package/dist/cjs/utils/textProcessing.d.ts.map +1 -1
  120. package/dist/cjs/utils/textProcessing.js +49 -0
  121. package/dist/cjs/utils/validation.js +1 -1
  122. package/dist/esm/Chart.d.ts.map +1 -1
  123. package/dist/esm/Chart.js +1 -1
  124. package/dist/esm/ChartBuilder.d.ts +20 -2
  125. package/dist/esm/ChartBuilder.d.ts.map +1 -1
  126. package/dist/esm/ChartBuilder.js +131 -40
  127. package/dist/esm/ChartEditor.d.ts +5 -3
  128. package/dist/esm/ChartEditor.d.ts.map +1 -1
  129. package/dist/esm/ChartEditor.js +5 -6
  130. package/dist/esm/Context.d.ts +15 -4
  131. package/dist/esm/Context.d.ts.map +1 -1
  132. package/dist/esm/Context.js +36 -59
  133. package/dist/esm/Dashboard.d.ts +4 -0
  134. package/dist/esm/Dashboard.d.ts.map +1 -1
  135. package/dist/esm/Dashboard.js +79 -24
  136. package/dist/esm/QuillProvider.d.ts +12 -9
  137. package/dist/esm/QuillProvider.d.ts.map +1 -1
  138. package/dist/esm/QuillProvider.js +2 -2
  139. package/dist/esm/ReportBuilder.d.ts +9 -1
  140. package/dist/esm/ReportBuilder.d.ts.map +1 -1
  141. package/dist/esm/ReportBuilder.js +200 -84
  142. package/dist/esm/SQLEditor.d.ts +5 -1
  143. package/dist/esm/SQLEditor.d.ts.map +1 -1
  144. package/dist/esm/SQLEditor.js +80 -17
  145. package/dist/esm/Table.d.ts.map +1 -1
  146. package/dist/esm/Table.js +4 -3
  147. package/dist/esm/components/Chart/InternalChart.d.ts.map +1 -1
  148. package/dist/esm/components/Chart/InternalChart.js +107 -28
  149. package/dist/esm/components/Chart/PieChart.d.ts.map +1 -1
  150. package/dist/esm/components/Chart/PieChart.js +10 -7
  151. package/dist/esm/components/Dashboard/DashboardFilter.d.ts +3 -2
  152. package/dist/esm/components/Dashboard/DashboardFilter.d.ts.map +1 -1
  153. package/dist/esm/components/Dashboard/DashboardFilter.js +65 -65
  154. package/dist/esm/components/Dashboard/DataLoader.d.ts.map +1 -1
  155. package/dist/esm/components/Dashboard/DataLoader.js +82 -35
  156. package/dist/esm/components/Dashboard/MetricComponent.js +3 -3
  157. package/dist/esm/components/Dashboard/util.d.ts.map +1 -1
  158. package/dist/esm/components/Dashboard/util.js +6 -2
  159. package/dist/esm/components/QuillMultiSelectWithCombo.d.ts +1 -1
  160. package/dist/esm/components/QuillMultiSelectWithCombo.d.ts.map +1 -1
  161. package/dist/esm/components/QuillMultiSelectWithCombo.js +17 -18
  162. package/dist/esm/components/QuillTable.d.ts.map +1 -1
  163. package/dist/esm/components/QuillTable.js +9 -1
  164. package/dist/esm/components/ReportBuilder/FilterModal.d.ts.map +1 -1
  165. package/dist/esm/components/ReportBuilder/FilterModal.js +26 -4
  166. package/dist/esm/components/ReportBuilder/FilterStack.d.ts +2 -1
  167. package/dist/esm/components/ReportBuilder/FilterStack.d.ts.map +1 -1
  168. package/dist/esm/components/ReportBuilder/FilterStack.js +2 -2
  169. package/dist/esm/components/ReportBuilder/convert.d.ts +1 -0
  170. package/dist/esm/components/ReportBuilder/convert.d.ts.map +1 -1
  171. package/dist/esm/components/ReportBuilder/convert.js +54 -5
  172. package/dist/esm/components/ReportBuilder/ui.d.ts +2 -1
  173. package/dist/esm/components/ReportBuilder/ui.d.ts.map +1 -1
  174. package/dist/esm/components/ReportBuilder/ui.js +4 -3
  175. package/dist/esm/components/UiComponents.d.ts +1 -0
  176. package/dist/esm/components/UiComponents.d.ts.map +1 -1
  177. package/dist/esm/hooks/useAskQuill.d.ts +1 -1
  178. package/dist/esm/hooks/useAskQuill.d.ts.map +1 -1
  179. package/dist/esm/hooks/useAskQuill.js +7 -6
  180. package/dist/esm/hooks/useAstToFilterTree.d.ts +2 -1
  181. package/dist/esm/hooks/useAstToFilterTree.d.ts.map +1 -1
  182. package/dist/esm/hooks/useAstToFilterTree.js +3 -3
  183. package/dist/esm/hooks/useDashboard.d.ts +5 -2
  184. package/dist/esm/hooks/useDashboard.d.ts.map +1 -1
  185. package/dist/esm/hooks/useDashboard.js +21 -7
  186. package/dist/esm/hooks/useExport.d.ts.map +1 -1
  187. package/dist/esm/hooks/useExport.js +7 -5
  188. package/dist/esm/index.d.ts +1 -1
  189. package/dist/esm/index.d.ts.map +1 -1
  190. package/dist/esm/internals/ReportBuilder/PivotModal.d.ts +8 -2
  191. package/dist/esm/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
  192. package/dist/esm/internals/ReportBuilder/PivotModal.js +59 -30
  193. package/dist/esm/models/Client.d.ts +22 -3
  194. package/dist/esm/models/Client.d.ts.map +1 -1
  195. package/dist/esm/models/Dashboard.d.ts +1 -0
  196. package/dist/esm/models/Dashboard.d.ts.map +1 -1
  197. package/dist/esm/models/Report.d.ts +4 -0
  198. package/dist/esm/models/Report.d.ts.map +1 -1
  199. package/dist/esm/utils/astFilterProcessing.d.ts +3 -2
  200. package/dist/esm/utils/astFilterProcessing.d.ts.map +1 -1
  201. package/dist/esm/utils/astFilterProcessing.js +3323 -977
  202. package/dist/esm/utils/astProcessing.d.ts +1 -1
  203. package/dist/esm/utils/astProcessing.d.ts.map +1 -1
  204. package/dist/esm/utils/astProcessing.js +4 -3
  205. package/dist/esm/utils/client.d.ts +4 -2
  206. package/dist/esm/utils/client.d.ts.map +1 -1
  207. package/dist/esm/utils/client.js +47 -1
  208. package/dist/esm/utils/columnProcessing.d.ts +3 -0
  209. package/dist/esm/utils/columnProcessing.d.ts.map +1 -1
  210. package/dist/esm/utils/columnProcessing.js +31 -1
  211. package/dist/esm/utils/dashboard.d.ts +4 -3
  212. package/dist/esm/utils/dashboard.d.ts.map +1 -1
  213. package/dist/esm/utils/dashboard.js +10 -90
  214. package/dist/esm/utils/dataFetcher.d.ts +3 -1
  215. package/dist/esm/utils/dataFetcher.d.ts.map +1 -1
  216. package/dist/esm/utils/dataFetcher.js +65 -29
  217. package/dist/esm/utils/filterProcessing.d.ts +1 -1
  218. package/dist/esm/utils/filterProcessing.d.ts.map +1 -1
  219. package/dist/esm/utils/filterProcessing.js +2 -0
  220. package/dist/esm/utils/pivotConstructor.d.ts +4 -1
  221. package/dist/esm/utils/pivotConstructor.d.ts.map +1 -1
  222. package/dist/esm/utils/pivotConstructor.js +8 -8
  223. package/dist/esm/utils/pivotProcessing.d.ts +4 -1
  224. package/dist/esm/utils/pivotProcessing.d.ts.map +1 -1
  225. package/dist/esm/utils/pivotProcessing.js +27 -20
  226. package/dist/esm/utils/queryConstructor.d.ts.map +1 -1
  227. package/dist/esm/utils/queryConstructor.js +101 -85
  228. package/dist/esm/utils/report.d.ts +17 -5
  229. package/dist/esm/utils/report.d.ts.map +1 -1
  230. package/dist/esm/utils/report.js +20 -23
  231. package/dist/esm/utils/schema.d.ts.map +1 -1
  232. package/dist/esm/utils/schema.js +21 -21
  233. package/dist/esm/utils/tableProcessing.d.ts +37 -10
  234. package/dist/esm/utils/tableProcessing.d.ts.map +1 -1
  235. package/dist/esm/utils/tableProcessing.js +46 -39
  236. package/dist/esm/utils/tenants.d.ts +11 -0
  237. package/dist/esm/utils/tenants.d.ts.map +1 -0
  238. package/dist/esm/utils/tenants.js +9 -0
  239. package/dist/esm/utils/textProcessing.d.ts +1 -0
  240. package/dist/esm/utils/textProcessing.d.ts.map +1 -1
  241. package/dist/esm/utils/textProcessing.js +48 -0
  242. package/dist/esm/utils/validation.js +1 -1
  243. package/package.json +1 -1
@@ -2,7 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { downloadCSV } from '../utils/csv';
3
3
  import { useContext, useMemo, useState } from 'react';
4
4
  import { getData } from '../utils/dataFetcher';
5
- import { ClientContext, DashboardContext, DashboardFiltersContext, ReportFiltersContext, } from '../Context';
5
+ import { ClientContext, DashboardContext, DashboardFiltersContext, ReportFiltersContext, TenantContext, } from '../Context';
6
6
  import { cleanDashboardItem } from '../utils/dashboard';
7
7
  import { defaultQuillTheme } from '../QuillProvider';
8
8
  import { createRoot } from 'react-dom/client';
@@ -12,7 +12,7 @@ import { fetchReport } from '../utils/report';
12
12
  import jsPDF from 'jspdf';
13
13
  import { quillFormat } from '../utils/valueFormatter';
14
14
  import { mergeComparisonRange } from '../utils/merge';
15
- async function getExportData(client, dashboardFilters, reportId) {
15
+ async function getExportData(client, dashboardFilters, reportId, tenants, flags) {
16
16
  const minimalFilters = Object.values(dashboardFilters).length
17
17
  ? Object.values(dashboardFilters).map((filter) => {
18
18
  const newFilter = { ...filter };
@@ -27,12 +27,13 @@ async function getExportData(client, dashboardFilters, reportId) {
27
27
  const hostedBody = {
28
28
  metadata: {
29
29
  dashboardItemId: reportId,
30
- orgId: client.organizationId || '*',
31
30
  clientId: client.publicKey,
32
31
  task: 'item',
33
32
  databaseType: client?.databaseType,
34
33
  filters: minimalFilters,
35
34
  useNewNodeSql: true,
35
+ tenants,
36
+ flags,
36
37
  },
37
38
  };
38
39
  const cloudBody = {
@@ -52,6 +53,7 @@ sectionField, } = {}) => {
52
53
  const { dashboardFilters } = useContext(DashboardFiltersContext);
53
54
  const [dashboard] = useContext(DashboardContext);
54
55
  const { reportFilters } = useContext(ReportFiltersContext);
56
+ const { tenants, flags } = useContext(TenantContext);
55
57
  const specificDashboardFilters = useMemo(() => {
56
58
  if (!reportId) {
57
59
  return [];
@@ -89,7 +91,7 @@ sectionField, } = {}) => {
89
91
  setIsCSVLoading(true);
90
92
  const resp = await getExportData(client, specificReportFilters.length > 0
91
93
  ? specificReportFilters
92
- : specificDashboardFilters, reportId);
94
+ : specificDashboardFilters, reportId, tenants, flags);
93
95
  downloadCSV({
94
96
  rows: resp.pivot && resp.pivotRows ? resp.pivotRows : resp.rows,
95
97
  fields: resp.pivot && resp.pivotColumns ? resp.pivotColumns : resp.columns,
@@ -102,7 +104,7 @@ sectionField, } = {}) => {
102
104
  const filters = specificReportFilters.length > 0
103
105
  ? specificReportFilters
104
106
  : specificDashboardFilters;
105
- const { report: fetchedReport } = await fetchReport(reportId, client, true, filters);
107
+ const { report: fetchedReport } = await fetchReport(reportId, client, tenants, flags, true, filters);
106
108
  const report = fetchedReport;
107
109
  if (report.pivot && report.pivotRows && report.pivotColumns) {
108
110
  report.rows = report.pivotRows;
@@ -29,5 +29,5 @@ export type { TableComponentProps } from './components/QuillTable';
29
29
  export type { DateRangePickerComponentProps, DateRangePickerOption, DateRange, } from './DateRangePicker/QuillDateRangePicker';
30
30
  export type { DashboardSectionComponentProps } from './components/Dashboard/DashboardSection';
31
31
  export { Calculation } from './utils/dataProcessing';
32
- export { StringOperator, NullOperator, DateOperator, NumberOperator, FilterType, } from './models/Filter';
32
+ export { StringOperator, NullOperator, DateOperator, NumberOperator, FilterType, type InternalFilter, type DashboardDateFilter, } from './models/Filter';
33
33
  //# sourceMappingURL=index.d.ts.map
@@ -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,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,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,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,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,6BAA6B,EAC7B,qBAAqB,EACrB,SAAS,GACV,MAAM,wCAAwC,CAAC;AAChD,YAAY,EAAE,8BAA8B,EAAE,MAAM,yCAAyC,CAAC;AAC9F,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EACL,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,UAAU,GACX,MAAM,iBAAiB,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,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,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,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,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,6BAA6B,EAC7B,qBAAqB,EACrB,SAAS,GACV,MAAM,wCAAwC,CAAC;AAChD,YAAY,EAAE,8BAA8B,EAAE,MAAM,yCAAyC,CAAC;AAC9F,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EACL,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,UAAU,EACV,KAAK,cAAc,EACnB,KAAK,mBAAmB,GACzB,MAAM,iBAAiB,CAAC"}
@@ -81,8 +81,9 @@ export interface PivotModalProps {
81
81
  disabled?: boolean;
82
82
  pivotRecommendationsEnabled?: boolean;
83
83
  report?: QuillReportInternal;
84
+ dashboardName?: string;
84
85
  }
85
- export declare const PivotModal: ({ pivotRowField, setPivotRowField, pivotColumnField, setPivotColumnField, pivotValueField, setPivotValueField, pivotValueField2, setPivotValueField2, pivotAggregation, setPivotAggregation, popUpTitle, setPopUpTitle, selectedTable, SelectComponent, ButtonComponent, SecondaryButtonComponent, PopoverComponent, ErrorMessageComponent, PivotRowContainer, PivotColumnContainer, LoadingComponent, CardComponent, HeaderComponent, LabelComponent, TextComponent, selectedPivotIndex, setSelectedPivotIndex, removePivot, selectPivot, showUpdatePivot, setShowUpdatePivot, data, columns, theme, isOpen, setIsOpen, dateRange, createdPivots, setCreatedPivots, recommendedPivots, setRecommendedPivots, triggerButtonText, showPivotEditButton, showEditOnPivotClick, showTrigger, pivotCountRequest, query, initialUniqueValues, uniqueValuesIsLoading, initialSelectedPivotTable, disabled, pivotRecommendationsEnabled, report, }: PivotModalProps) => import("react/jsx-runtime").JSX.Element;
86
+ export declare const PivotModal: ({ pivotRowField, setPivotRowField, pivotColumnField, setPivotColumnField, pivotValueField, setPivotValueField, pivotValueField2, setPivotValueField2, pivotAggregation, setPivotAggregation, popUpTitle, setPopUpTitle, selectedTable, SelectComponent, ButtonComponent, SecondaryButtonComponent, PopoverComponent, ErrorMessageComponent, PivotRowContainer, PivotColumnContainer, LoadingComponent, CardComponent, HeaderComponent, LabelComponent, TextComponent, selectedPivotIndex, setSelectedPivotIndex, removePivot, selectPivot, showUpdatePivot, setShowUpdatePivot, data, columns, theme, isOpen, setIsOpen, dateRange, createdPivots, setCreatedPivots, recommendedPivots, setRecommendedPivots, triggerButtonText, showPivotEditButton, showEditOnPivotClick, showTrigger, pivotCountRequest, query, initialUniqueValues, uniqueValuesIsLoading, initialSelectedPivotTable, disabled, pivotRecommendationsEnabled, report, dashboardName, }: PivotModalProps) => import("react/jsx-runtime").JSX.Element;
86
87
  export declare function generatePivotTableYAxis(pivot: Pivot, cols: {
87
88
  label: string;
88
89
  field: string;
@@ -112,13 +113,18 @@ export declare function getDateString(value: string, dateRange?: {
112
113
  end: Date;
113
114
  }, dateBucket?: string): string;
114
115
  export declare function isDateField(fieldType: string): fieldType is "date" | "MMM_dd" | "MMM_yyyy" | "MMM_dd_yyyy" | "hh_ap_pm" | "MMM_dd_hh:mm_ap_pm" | "datetime" | "timestamp" | "timestamptz";
115
- export declare function generatePivotTable({ pivot, rowLimit, dateBucket, report, client, uniqueValues, }: {
116
+ export declare function generatePivotTable({ pivot, rowLimit, dateBucket, report, client, uniqueValues, dashboardName, tenants, }: {
116
117
  pivot: Pivot;
117
118
  rowLimit?: number;
118
119
  dateBucket?: string;
119
120
  report?: any;
120
121
  client: QuillProviderClient | null;
121
122
  uniqueValues?: any;
123
+ dashboardName?: string;
124
+ tenants?: {
125
+ tenantField: string;
126
+ tenantIds: (string | number)[];
127
+ }[] | (string | number)[];
122
128
  }): Promise<{
123
129
  rows: any[];
124
130
  columns: ColumnInternal[];
@@ -1 +1 @@
1
- {"version":3,"file":"PivotModal.d.ts","sourceRoot":"","sources":["../../../../src/internals/ReportBuilder/PivotModal.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PivotModal.d.ts","sourceRoot":"","sources":["../../../../src/internals/ReportBuilder/PivotModal.tsx"],"names":[],"mappings":"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"}
@@ -1,30 +1,32 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useCallback, useContext, useMemo, useState, useEffect, useRef, } from 'react';
3
- import { ClientContext, SchemaDataContext } from '../../Context';
4
- import { getDataFromCloud } from '../../utils/dataFetcher';
3
+ import { ClientContext, SchemaDataContext, TenantContext } from '../../Context';
5
4
  import { PivotList, PivotCard } from './PivotList';
6
5
  import { differenceInDays, eachDayOfInterval, eachMonthOfInterval, eachWeekOfInterval, eachYearOfInterval, endOfDay, isValid, isWithinInterval, parseISO, subMilliseconds, } from 'date-fns';
7
6
  import { compareValues, getValidDate, valueFormatter, } from '../../utils/valueFormatter';
8
7
  import { numberFormatOptions } from '../../ChartBuilder';
9
8
  import { snakeAndCamelCaseToTitleCase } from '../../utils/textProcessing';
10
9
  import { QuillErrorMessageComponent, QuillLoadingComponent, QuillPivotColumnContainer, QuillPivotRowContainer, } from '../../components/UiComponents';
11
- import { isTextColumnType } from '../../components/ReportBuilder/ast';
12
10
  import { QuillCard } from '../../components/QuillCard';
13
11
  import { cleanPivot, getPossiblePivotFieldOptions, isValidPivot, } from '../../utils/pivotProcessing';
14
12
  import { hashCode } from '../../utils/crypto';
15
13
  import { getCountsByColumns, getQueryDateRangeByColumns, getUniqueValuesByColumns, } from '../../utils/tableProcessing';
16
14
  import { generatePivotWithSQL } from '../../utils/pivotConstructor';
17
15
  import { getDateBucketFromRange } from '../../utils/dates';
18
- import Big from 'big.js';
16
+ // import Big from 'big.js';
19
17
  import equal from 'fast-deep-equal';
20
18
  import { uniqueValuesToStringMap } from '../../utils/filterProcessing';
21
- export const PivotModal = ({ pivotRowField, setPivotRowField, pivotColumnField, setPivotColumnField, pivotValueField, setPivotValueField, pivotValueField2, setPivotValueField2, pivotAggregation, setPivotAggregation, popUpTitle, setPopUpTitle, selectedTable, SelectComponent, ButtonComponent, SecondaryButtonComponent, PopoverComponent, ErrorMessageComponent = QuillErrorMessageComponent, PivotRowContainer = QuillPivotRowContainer, PivotColumnContainer = QuillPivotColumnContainer, LoadingComponent = QuillLoadingComponent, CardComponent = QuillCard, HeaderComponent, LabelComponent, TextComponent, selectedPivotIndex, setSelectedPivotIndex, removePivot, selectPivot, showUpdatePivot, setShowUpdatePivot, data, columns, theme, isOpen, setIsOpen, dateRange, createdPivots, setCreatedPivots, recommendedPivots, setRecommendedPivots, triggerButtonText = 'Pivot', showPivotEditButton = false, showEditOnPivotClick = true, showTrigger = true, pivotCountRequest = 6, query, initialUniqueValues, uniqueValuesIsLoading, initialSelectedPivotTable, disabled = false, pivotRecommendationsEnabled = true, report, }) => {
19
+ import { isStringType } from '../../utils/columnProcessing';
20
+ import { useQuillCloud } from '../../utils/dataFetcher';
21
+ export const PivotModal = ({ pivotRowField, setPivotRowField, pivotColumnField, setPivotColumnField, pivotValueField, setPivotValueField, pivotValueField2, setPivotValueField2, pivotAggregation, setPivotAggregation, popUpTitle, setPopUpTitle, selectedTable, SelectComponent, ButtonComponent, SecondaryButtonComponent, PopoverComponent, ErrorMessageComponent = QuillErrorMessageComponent, PivotRowContainer = QuillPivotRowContainer, PivotColumnContainer = QuillPivotColumnContainer, LoadingComponent = QuillLoadingComponent, CardComponent = QuillCard, HeaderComponent, LabelComponent, TextComponent, selectedPivotIndex, setSelectedPivotIndex, removePivot, selectPivot, showUpdatePivot, setShowUpdatePivot, data, columns, theme, isOpen, setIsOpen, dateRange, createdPivots, setCreatedPivots, recommendedPivots, setRecommendedPivots, triggerButtonText = 'Pivot', showPivotEditButton = false, showEditOnPivotClick = true, showTrigger = true, pivotCountRequest = 6, query, initialUniqueValues, uniqueValuesIsLoading, initialSelectedPivotTable, disabled = false, pivotRecommendationsEnabled = true, report, dashboardName, }) => {
22
22
  const [isLoading, setIsLoading] = useState(false);
23
23
  const [previewLoading, setPreviewLoading] = useState(false);
24
24
  const [selectedPivotType, setSelectedPivotType] = useState('recommended');
25
25
  const [errors, setErrors] = useState([]);
26
26
  const [client] = useContext(ClientContext);
27
27
  const [schemaData] = useContext(SchemaDataContext);
28
+ const { tenants } = useContext(TenantContext);
29
+ const { getDataFromCloud } = useQuillCloud();
28
30
  const rowFieldRef = useRef(null);
29
31
  const colFieldRef = useRef(null);
30
32
  const [pivotCardWidth, setPivotCardWidth] = useState(420);
@@ -47,7 +49,7 @@ export const PivotModal = ({ pivotRowField, setPivotRowField, pivotColumnField,
47
49
  }
48
50
  if (columns && query) {
49
51
  const stringColumns = columns.filter((column) => {
50
- return isTextColumnType(column.fieldType);
52
+ return isStringType(column.fieldType);
51
53
  });
52
54
  if (stringColumns.length === 0) {
53
55
  const possibleColumns = getPossiblePivotFieldOptions(columns, {});
@@ -58,8 +60,8 @@ export const PivotModal = ({ pivotRowField, setPivotRowField, pivotColumnField,
58
60
  }
59
61
  let newUniqueValues = uniqueValues;
60
62
  if (fetchDistinct || !uniqueValues) {
61
- const { filteredColumns: smallStringColumns } = await getCountsByColumns(stringColumns, query || '', client, schemaData.customFields ?? []);
62
- newUniqueValues = await getUniqueValuesByColumns(smallStringColumns, query || '', data.rows || [], client, schemaData.customFields ?? []);
63
+ const { filteredColumns: smallStringColumns } = await getCountsByColumns(stringColumns, query || '', client, tenants, schemaData.customFields ?? [], dashboardName);
64
+ newUniqueValues = await getUniqueValuesByColumns(smallStringColumns, query || '', data.rows || [], client, tenants, schemaData.customFields ?? [], undefined, dashboardName);
63
65
  }
64
66
  if (!uniqueValues ||
65
67
  hashCode(uniqueValues) !== hashCode(newUniqueValues)) {
@@ -85,7 +87,7 @@ export const PivotModal = ({ pivotRowField, setPivotRowField, pivotColumnField,
85
87
  if (dateColumns.length === 0) {
86
88
  return;
87
89
  }
88
- const dateRangeByColumn = await getQueryDateRangeByColumns(dateColumns, query || '', client, schemaData.customFields ?? []);
90
+ const dateRangeByColumn = await getQueryDateRangeByColumns(dateColumns, query || '', client, tenants, schemaData.customFields ?? [], dashboardName);
89
91
  setDateRanges(dateRangeByColumn || {});
90
92
  }
91
93
  };
@@ -131,6 +133,8 @@ export const PivotModal = ({ pivotRowField, setPivotRowField, pivotColumnField,
131
133
  report,
132
134
  client,
133
135
  uniqueValues,
136
+ dashboardName,
137
+ tenants,
134
138
  });
135
139
  setSamplePivotTable({ pivot: pivot, rows, columns });
136
140
  }
@@ -175,6 +179,8 @@ export const PivotModal = ({ pivotRowField, setPivotRowField, pivotColumnField,
175
179
  report,
176
180
  client,
177
181
  uniqueValues,
182
+ dashboardName,
183
+ tenants,
178
184
  });
179
185
  setSamplePivotTable({ pivot: pivot, rows, columns });
180
186
  }
@@ -233,6 +239,8 @@ export const PivotModal = ({ pivotRowField, setPivotRowField, pivotColumnField,
233
239
  report,
234
240
  client,
235
241
  uniqueValues,
242
+ dashboardName,
243
+ tenants,
236
244
  });
237
245
  setSelectedPivotTable({
238
246
  pivot: pivot,
@@ -284,6 +292,7 @@ export const PivotModal = ({ pivotRowField, setPivotRowField, pivotColumnField,
284
292
  };
285
293
  const onEditPivot = async (pivot, index, pivotType) => {
286
294
  setIsLoading(false);
295
+ setErrors([]);
287
296
  setPivotRowField(pivot.rowField);
288
297
  setPivotColumnField(pivot.columnField);
289
298
  setPivotValueField(pivot.valueField);
@@ -296,7 +305,7 @@ export const PivotModal = ({ pivotRowField, setPivotRowField, pivotColumnField,
296
305
  setSamplePivotTable(recommendedPivotTables[index]);
297
306
  return;
298
307
  }
299
- if (isValidPivot(pivot)) {
308
+ if (isValidPivot(pivot).valid) {
300
309
  let dateBucket = undefined;
301
310
  if (pivotRowField && dateRanges[pivotRowField]) {
302
311
  dateBucket = getDateBucketFromRange(dateRanges[pivotRowField].dateRange);
@@ -308,6 +317,8 @@ export const PivotModal = ({ pivotRowField, setPivotRowField, pivotColumnField,
308
317
  report,
309
318
  client,
310
319
  uniqueValues,
320
+ dashboardName,
321
+ tenants,
311
322
  });
312
323
  setSamplePivotTable({ pivot, rows, columns });
313
324
  return;
@@ -375,7 +386,7 @@ export const PivotModal = ({ pivotRowField, setPivotRowField, pivotColumnField,
375
386
  const resp = await getDataFromCloud(client, 'pivotai', cloudBody);
376
387
  const recommendedPivots = resp?.data?.pivotTables.map((pivot) => cleanPivot(pivot, possibleColumns)) || [];
377
388
  const cleanedPivots = recommendedPivots
378
- .filter((pivot) => isValidPivot(pivot) &&
389
+ .filter((pivot) => isValidPivot(pivot).valid &&
379
390
  (!pivot.columnField || pivot.columnField !== pivot.rowField)) // only recommend valid pivots
380
391
  .map((pivot) => {
381
392
  if (pivot.columnField &&
@@ -414,6 +425,8 @@ export const PivotModal = ({ pivotRowField, setPivotRowField, pivotColumnField,
414
425
  report,
415
426
  client,
416
427
  uniqueValues: trimmedUniqueValues,
428
+ dashboardName,
429
+ tenants,
417
430
  });
418
431
  return { pivot: p, rows, columns };
419
432
  }
@@ -421,7 +434,11 @@ export const PivotModal = ({ pivotRowField, setPivotRowField, pivotColumnField,
421
434
  return undefined;
422
435
  }
423
436
  }));
424
- setRecommendedPivotTables(pts.filter((pt) => pt !== undefined));
437
+ const validPivotTables = pts.filter((pt) => pt !== undefined);
438
+ setRecommendedPivotTables(validPivotTables);
439
+ if (validPivotTables.length === 0) {
440
+ sethasNoRecommendedPivots(true);
441
+ }
425
442
  setSelectedPivotIndex(-1);
426
443
  }
427
444
  catch (e) {
@@ -461,7 +478,7 @@ export const PivotModal = ({ pivotRowField, setPivotRowField, pivotColumnField,
461
478
  else if (field === 'columnField') {
462
479
  pivot.columnFieldType = columnsToShow[value];
463
480
  }
464
- if (!isValidPivot(pivot)) {
481
+ if (!isValidPivot(pivot).valid) {
465
482
  setSamplePivotTable(null);
466
483
  return;
467
484
  }
@@ -479,6 +496,8 @@ export const PivotModal = ({ pivotRowField, setPivotRowField, pivotColumnField,
479
496
  report,
480
497
  client,
481
498
  uniqueValues,
499
+ dashboardName,
500
+ tenants,
482
501
  });
483
502
  setSamplePivotTable({ pivot, rows, columns });
484
503
  }
@@ -506,6 +525,8 @@ export const PivotModal = ({ pivotRowField, setPivotRowField, pivotColumnField,
506
525
  report,
507
526
  client,
508
527
  uniqueValues,
528
+ dashboardName,
529
+ tenants,
509
530
  });
510
531
  return { pivot: p, rows, columns };
511
532
  }
@@ -682,7 +703,7 @@ export const PivotModal = ({ pivotRowField, setPivotRowField, pivotColumnField,
682
703
  valueField2: pivotValueField2 || '',
683
704
  aggregationType: pivotAggregation || '',
684
705
  };
685
- if (isValidPivot(pivot)) {
706
+ if (isValidPivot(pivot).valid) {
686
707
  pivot.title = generatePivotTitle(pivot);
687
708
  setIsOpen(false);
688
709
  setCreatedPivots([pivot]);
@@ -690,7 +711,7 @@ export const PivotModal = ({ pivotRowField, setPivotRowField, pivotColumnField,
690
711
  setPopUpTitle('Add pivot');
691
712
  }
692
713
  else {
693
- errors.push('Invalid pivot');
714
+ errors.push(isValidPivot(pivot).reason);
694
715
  }
695
716
  }
696
717
  setErrors(errors);
@@ -1006,15 +1027,15 @@ const fixBigQueryData = (data = []) => {
1006
1027
  }
1007
1028
  return newData;
1008
1029
  };
1009
- export async function generatePivotTable({ pivot, rowLimit = -1, dateBucket, report, client, uniqueValues, }) {
1030
+ export async function generatePivotTable({ pivot, rowLimit = -1, dateBucket, report, client, uniqueValues, dashboardName, tenants, }) {
1010
1031
  try {
1011
1032
  if (report && client) {
1012
1033
  const dateFilter = report
1013
1034
  ? report.filtersApplied.find((f) => f.filterType === 'date_range')
1014
1035
  : undefined;
1015
- const pivotTable = await generatePivotWithSQL(pivot, report, client, dateBucket, dateFilter, pivot.columnField && uniqueValues
1036
+ const pivotTable = await generatePivotWithSQL(pivot, report, client, dateBucket, dateFilter, pivot.columnField && uniqueValues && uniqueValues[pivot.columnField]
1016
1037
  ? Object.keys(uniqueValues[pivot.columnField])
1017
- : undefined, rowLimit === -1 ? undefined : rowLimit);
1038
+ : undefined, rowLimit === -1 ? undefined : rowLimit, dashboardName, tenants);
1018
1039
  return pivotTable;
1019
1040
  }
1020
1041
  }
@@ -1384,13 +1405,17 @@ function valueFieldAggregation(data, valueField, aggregationType, isComparison)
1384
1405
  let count = 0;
1385
1406
  switch (aggregationType) {
1386
1407
  case 'sum':
1387
- value = data.reduce((sum, item) => Big(sum)
1388
- .add(Big(parseFloat(item[valueField] ?? 0)))
1389
- .toNumber(), 0);
1408
+ value = data.reduce((sum, item) =>
1409
+ // Big(sum)
1410
+ // .add(Big(parseFloat(item[valueField] ?? '0')))
1411
+ // .toNumber(),
1412
+ sum + parseFloat(item[valueField] ?? '0'), 0);
1390
1413
  if (isComparison) {
1391
- comparisonValue = data.reduce((sum, item) => Big(sum)
1392
- .add(Big(parseFloat(item[`comparison_${valueField}`] ?? 0)))
1393
- .toNumber(), 0);
1414
+ comparisonValue = data.reduce((sum, item) =>
1415
+ // Big(sum)
1416
+ // .add(Big(parseFloat(item[`comparison_${valueField}`] ?? '0')))
1417
+ // .toNumber(),
1418
+ sum + parseFloat(item[`comparison_${valueField}`] ?? '0'), 0);
1394
1419
  }
1395
1420
  break;
1396
1421
  case 'count':
@@ -1403,15 +1428,19 @@ function valueFieldAggregation(data, valueField, aggregationType, isComparison)
1403
1428
  case 'average':
1404
1429
  count = data.reduce((count, item) => count + (item[valueField] ? 1 : 0), 0);
1405
1430
  value =
1406
- data.reduce((sum, item) => Big(sum)
1407
- .add(Big(parseFloat(item[valueField] ?? 0)))
1408
- .toNumber(), 0) / (count === 0 ? 1 : count);
1431
+ data.reduce((sum, item) =>
1432
+ // Big(sum)
1433
+ // .add(Big(parseFloat(item[valueField] ?? '0')))
1434
+ // .toNumber(),
1435
+ sum + parseFloat(item[valueField] ?? '0'), 0) / (count === 0 ? 1 : count);
1409
1436
  if (isComparison) {
1410
1437
  const comparisonCount = data.reduce((count, item) => count + (item[`comparison_${valueField}`] ? 1 : 0), 0);
1411
1438
  comparisonValue =
1412
- data.reduce((sum, item) => Big(sum)
1413
- .add(Big(parseFloat(item[`comparison_${valueField}`] ?? 0)))
1414
- .toNumber(), 0) / (comparisonCount === 0 ? 1 : comparisonCount);
1439
+ data.reduce((sum, item) =>
1440
+ // Big(sum)
1441
+ // .add(Big(parseFloat(item[`comparison_${valueField}`] ?? '0')))
1442
+ // .toNumber(),
1443
+ sum + parseFloat(item[`comparison_${valueField}`] ?? '0'), 0) / (comparisonCount === 0 ? 1 : comparisonCount);
1415
1444
  }
1416
1445
  break;
1417
1446
  case 'max':
@@ -2,7 +2,6 @@ export type Client = {
2
2
  name: string;
3
3
  _id: string;
4
4
  databaseType?: string;
5
- multiTenancyDisabled?: boolean;
6
5
  adminCustomerId?: string;
7
6
  recommendedPivotsDisabled?: boolean;
8
7
  featureFlags?: {
@@ -11,7 +10,6 @@ export type Client = {
11
10
  domainName: string;
12
11
  };
13
12
  export type QuillProviderClient = {
14
- organizationId?: string;
15
13
  name: string;
16
14
  clientId: string;
17
15
  publicKey: string;
@@ -19,12 +17,33 @@ export type QuillProviderClient = {
19
17
  queryHeaders?: HeadersInit;
20
18
  withCredentials: boolean;
21
19
  databaseType?: string;
22
- multiTenancyDisabled?: boolean;
23
20
  adminCustomerId?: string;
24
21
  recommendedPivotsDisabled?: boolean;
25
22
  featureFlags?: {
26
23
  [key: string]: boolean;
27
24
  };
28
25
  domainName: string;
26
+ allTenantTypes?: (QuillTenant | QuillDatabaseTenant)[];
27
+ };
28
+ export type QuillTenant = {
29
+ name: string;
30
+ tenantField: string;
31
+ query: string;
32
+ mappings: {
33
+ [key: string]: {
34
+ query: string;
35
+ };
36
+ };
37
+ tenantIds?: {
38
+ id: string;
39
+ flag?: string;
40
+ label?: string;
41
+ }[];
42
+ scope: 'row' | 'schema' | 'database';
43
+ };
44
+ export type QuillDatabaseTenant = {
45
+ scope: 'database';
46
+ flags: string[];
47
+ tenantField: 'QUILL_SINGLE_TENANT';
29
48
  };
30
49
  //# sourceMappingURL=Client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Client.d.ts","sourceRoot":"","sources":["../../../src/models/Client.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,MAAM,GAAG;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,YAAY,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;IAC1C,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,WAAW,CAAC;IAC3B,eAAe,EAAE,OAAO,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,YAAY,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;IAC1C,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC"}
1
+ {"version":3,"file":"Client.d.ts","sourceRoot":"","sources":["../../../src/models/Client.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,MAAM,GAAG;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,YAAY,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;IAC1C,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,WAAW,CAAC;IAC3B,eAAe,EAAE,OAAO,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,YAAY,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;IAC1C,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,CAAC,WAAW,GAAG,mBAAmB,CAAC,EAAE,CAAC;CACxD,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG;YAAE,KAAK,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC;IAC/C,SAAS,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC5D,KAAK,EAAE,KAAK,GAAG,QAAQ,GAAG,UAAU,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,KAAK,EAAE,UAAU,CAAC;IAClB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,WAAW,EAAE,qBAAqB,CAAC;CACpC,CAAC"}
@@ -10,6 +10,7 @@ export type DashboardConfig = {
10
10
  [key: string]: QuillReport[];
11
11
  };
12
12
  newQueries?: QuillReport[];
13
+ tenantKeys?: string[];
13
14
  };
14
15
  export type Dashboard = {
15
16
  id: string;
@@ -1 +1 @@
1
- {"version":3,"file":"Dashboard.d.ts","sourceRoot":"","sources":["../../../src/models/Dashboard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC,MAAM,MAAM,eAAe,GAAG;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,qBAAqB,EAAE,CAAC;IACjC,UAAU,CAAC,EAAE,mBAAmB,CAAC;IACjC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,EAAE;QACT,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,EAAE,CAAC;KAC9B,CAAC;IACF,UAAU,CAAC,EAAE,WAAW,EAAE,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,WAAW,EAAE,CAAC;CACxB,CAAC"}
1
+ {"version":3,"file":"Dashboard.d.ts","sourceRoot":"","sources":["../../../src/models/Dashboard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC,MAAM,MAAM,eAAe,GAAG;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,qBAAqB,EAAE,CAAC;IACjC,UAAU,CAAC,EAAE,mBAAmB,CAAC;IACjC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,EAAE;QACT,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,EAAE,CAAC;KAC9B,CAAC;IACF,UAAU,CAAC,EAAE,WAAW,EAAE,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,WAAW,EAAE,CAAC;CACxB,CAAC"}
@@ -114,6 +114,10 @@ export interface QuillReportInternal extends QuillReport {
114
114
  columnInternal: ColumnInternal[];
115
115
  /** Represents if the report is currently loading rows */
116
116
  loadingRows?: boolean;
117
+ /** Flags on this report */
118
+ flags?: {
119
+ [tenantField: string]: string[];
120
+ };
117
121
  }
118
122
  export declare const TEMP_REPORT_ID = "__quillTempReport";
119
123
  //# sourceMappingURL=Report.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Report.d.ts","sourceRoot":"","sources":["../../../src/models/Report.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Report.d.ts","sourceRoot":"","sources":["../../../src/models/Report.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { ColumnInternal } from '../models/Columns';
1
2
  import { InternalFilter } from '../models/Filter';
2
3
  /**
3
4
  * Function that extracts a field value
@@ -19,11 +20,11 @@ export interface FilterTreeNode {
19
20
  * recursively, and returns an equivalent tree where the leaf
20
21
  * nodes are Filter Objects
21
22
  */
22
- export declare const astToFilterTree: (ast: any, db: string) => FilterTreeNode | null;
23
+ export declare const astToFilterTree: (ast: any, db: string, columns?: ColumnInternal[]) => FilterTreeNode | null;
23
24
  /**
24
25
  * Function that takes in an ast.where leaf node and returns the equivalent Filter Object
25
26
  */
26
- export declare const astToFilter: (ast: any, db: string) => InternalFilter | null;
27
+ export declare const astToFilter: (ast: any, db: string, columns?: ColumnInternal[]) => InternalFilter | null;
27
28
  /**
28
29
  * @param filterTree
29
30
  * @param db
@@ -1 +1 @@
1
- {"version":3,"file":"astFilterProcessing.d.ts","sourceRoot":"","sources":["../../../src/utils/astFilterProcessing.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,cAAc,EAOf,MAAM,kBAAkB,CAAC;AAsiM1B;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,GAAG,GAAG,MAAM,GAAG,SAAS,CAqBpE;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,KAAK,GAAG,IAAI,GAAG,IAAI,CAAC;IAC9B,QAAQ,EAAE,cAAc,GAAG,IAAI,CAAC;IAChC,SAAS,EAAE,cAAc,GAAG,IAAI,CAAC;IACjC,KAAK,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;CAC/B;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe,QACrB,GAAG,MACJ,MAAM,KACT,cAAc,GAAG,IAyGnB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW,QAAS,GAAG,MAAM,MAAM,KAAG,cAAc,GAAG,IAwVnE,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,eAAgB,cAAc,MAAM,MAAM,QA2BrE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW,WAAY,cAAc,MAAM,MAAM,KAAG,GAqjDhE,CAAC"}
1
+ {"version":3,"file":"astFilterProcessing.d.ts","sourceRoot":"","sources":["../../../src/utils/astFilterProcessing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAIL,cAAc,EAOf,MAAM,kBAAkB,CAAC;AAmlQ1B;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,GAAG,GAAG,MAAM,GAAG,SAAS,CAqBpE;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,KAAK,GAAG,IAAI,GAAG,IAAI,CAAC;IAC9B,QAAQ,EAAE,cAAc,GAAG,IAAI,CAAC;IAChC,SAAS,EAAE,cAAc,GAAG,IAAI,CAAC;IACjC,KAAK,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;CAC/B;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe,QACrB,GAAG,MACJ,MAAM,YACA,cAAc,EAAE,KACzB,cAAc,GAAG,IAyGnB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW,QACjB,GAAG,MACJ,MAAM,YACA,cAAc,EAAE,KACzB,cAAc,GAAG,IA6XnB,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,eAAgB,cAAc,MAAM,MAAM,QA2BrE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW,WAAY,cAAc,MAAM,MAAM,KAAG,GAo0DhE,CAAC"}