@quillsql/react 2.13.47 → 2.13.49

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 (298) hide show
  1. package/dist/cjs/Chart.d.ts +2 -2
  2. package/dist/cjs/Chart.d.ts.map +1 -1
  3. package/dist/cjs/Chart.js +56 -49
  4. package/dist/cjs/ChartBuilder.d.ts +3 -2
  5. package/dist/cjs/ChartBuilder.d.ts.map +1 -1
  6. package/dist/cjs/ChartBuilder.js +172 -138
  7. package/dist/cjs/ChartEditor.d.ts +2 -2
  8. package/dist/cjs/ChartEditor.d.ts.map +1 -1
  9. package/dist/cjs/ChartEditor.js +5 -2
  10. package/dist/cjs/Context.d.ts +121 -41
  11. package/dist/cjs/Context.d.ts.map +1 -1
  12. package/dist/cjs/Context.js +449 -261
  13. package/dist/cjs/Dashboard.d.ts.map +1 -1
  14. package/dist/cjs/Dashboard.js +26 -25
  15. package/dist/cjs/DateRangePicker/QuillDateRangePicker.js +0 -3
  16. package/dist/cjs/DateRangePicker/dateRangePickerUtils.d.ts +24 -10
  17. package/dist/cjs/DateRangePicker/dateRangePickerUtils.d.ts.map +1 -1
  18. package/dist/cjs/DateRangePicker/dateRangePickerUtils.js +472 -96
  19. package/dist/cjs/QuillProvider.d.ts +3 -1
  20. package/dist/cjs/QuillProvider.d.ts.map +1 -1
  21. package/dist/cjs/QuillProvider.js +2 -2
  22. package/dist/cjs/ReportBuilder.d.ts.map +1 -1
  23. package/dist/cjs/ReportBuilder.js +25 -14
  24. package/dist/cjs/SQLEditor.d.ts +1 -1
  25. package/dist/cjs/SQLEditor.d.ts.map +1 -1
  26. package/dist/cjs/SQLEditor.js +51 -16
  27. package/dist/cjs/Table.d.ts.map +1 -1
  28. package/dist/cjs/Table.js +85 -14
  29. package/dist/cjs/assets/ExclamationFilledIcon.d.ts.map +1 -1
  30. package/dist/cjs/components/Chart/BarChart.d.ts.map +1 -1
  31. package/dist/cjs/components/Chart/BarChart.js +2 -1
  32. package/dist/cjs/components/Chart/CustomReferenceLine.d.ts +1 -1
  33. package/dist/cjs/components/Chart/CustomReferenceLine.d.ts.map +1 -1
  34. package/dist/cjs/components/Chart/CustomReferenceLine.js +7 -6
  35. package/dist/cjs/components/Chart/GaugeChart.d.ts +1 -1
  36. package/dist/cjs/components/Chart/GaugeChart.d.ts.map +1 -1
  37. package/dist/cjs/components/Chart/GaugeChart.js +63 -36
  38. package/dist/cjs/components/Chart/InternalChart.d.ts.map +1 -1
  39. package/dist/cjs/components/Chart/InternalChart.js +30 -33
  40. package/dist/cjs/components/Chart/LineChart.d.ts.map +1 -1
  41. package/dist/cjs/components/Chart/LineChart.js +3 -1
  42. package/dist/cjs/components/Chart/MapChart.d.ts +3 -3
  43. package/dist/cjs/components/Chart/MapChart.d.ts.map +1 -1
  44. package/dist/cjs/components/Chart/MapChart.js +62 -34
  45. package/dist/cjs/components/Chart/PieChart.d.ts +3 -1
  46. package/dist/cjs/components/Chart/PieChart.d.ts.map +1 -1
  47. package/dist/cjs/components/Chart/PieChart.js +80 -39
  48. package/dist/cjs/components/Dashboard/DashboardFilter.d.ts.map +1 -1
  49. package/dist/cjs/components/Dashboard/DashboardFilter.js +4 -20
  50. package/dist/cjs/components/Dashboard/DashboardTemplate.d.ts.map +1 -1
  51. package/dist/cjs/components/Dashboard/DashboardTemplate.js +2 -1
  52. package/dist/cjs/components/Dashboard/DataLoader.d.ts +4 -4
  53. package/dist/cjs/components/Dashboard/DataLoader.d.ts.map +1 -1
  54. package/dist/cjs/components/Dashboard/DataLoader.js +101 -65
  55. package/dist/cjs/components/Dashboard/MetricComponent.d.ts.map +1 -1
  56. package/dist/cjs/components/Dashboard/MetricComponent.js +2 -2
  57. package/dist/cjs/components/Dashboard/util.d.ts +1 -1
  58. package/dist/cjs/components/Dashboard/util.d.ts.map +1 -1
  59. package/dist/cjs/components/Dashboard/util.js +7 -6
  60. package/dist/cjs/components/QuillMultiSelectSectionList.d.ts.map +1 -1
  61. package/dist/cjs/components/QuillMultiSelectSectionList.js +32 -22
  62. package/dist/cjs/components/QuillMultiSelectWithCombo.d.ts.map +1 -1
  63. package/dist/cjs/components/QuillMultiSelectWithCombo.js +186 -159
  64. package/dist/cjs/components/QuillSelect.d.ts.map +1 -1
  65. package/dist/cjs/components/QuillSelect.js +83 -75
  66. package/dist/cjs/components/QuillSelectWithCombo.d.ts.map +1 -1
  67. package/dist/cjs/components/QuillSelectWithCombo.js +18 -11
  68. package/dist/cjs/components/QuillTable.d.ts.map +1 -1
  69. package/dist/cjs/components/QuillTable.js +59 -61
  70. package/dist/cjs/components/ReportBuilder/FilterStack.d.ts +2 -1
  71. package/dist/cjs/components/ReportBuilder/FilterStack.d.ts.map +1 -1
  72. package/dist/cjs/components/ReportBuilder/FilterStack.js +3 -4
  73. package/dist/cjs/components/ReportBuilder/ui.d.ts +2 -2
  74. package/dist/cjs/components/ReportBuilder/ui.d.ts.map +1 -1
  75. package/dist/cjs/components/ReportBuilder/ui.js +4 -7
  76. package/dist/cjs/components/UiComponents.d.ts +1 -1
  77. package/dist/cjs/hooks/useAskQuill.d.ts.map +1 -1
  78. package/dist/cjs/hooks/useAskQuill.js +5 -1
  79. package/dist/cjs/hooks/useDashboard.d.ts +2 -2
  80. package/dist/cjs/hooks/useDashboard.d.ts.map +1 -1
  81. package/dist/cjs/hooks/useDashboard.js +160 -69
  82. package/dist/cjs/hooks/useExport.d.ts.map +1 -1
  83. package/dist/cjs/hooks/useExport.js +29 -15
  84. package/dist/cjs/hooks/useOnClickOutside.d.ts.map +1 -1
  85. package/dist/cjs/hooks/useQuill.d.ts +1 -0
  86. package/dist/cjs/hooks/useQuill.d.ts.map +1 -1
  87. package/dist/cjs/hooks/useQuill.js +22 -12
  88. package/dist/cjs/hooks/useReport.d.ts +2 -2
  89. package/dist/cjs/hooks/useReport.d.ts.map +1 -1
  90. package/dist/cjs/hooks/useReport.js +3 -4
  91. package/dist/cjs/hooks/useVirtualTables.d.ts.map +1 -1
  92. package/dist/cjs/hooks/useVirtualTables.js +16 -22
  93. package/dist/cjs/index.d.ts +2 -2
  94. package/dist/cjs/index.d.ts.map +1 -1
  95. package/dist/cjs/index.js +2 -1
  96. package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts +2 -1
  97. package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
  98. package/dist/cjs/internals/ReportBuilder/PivotModal.js +19 -7
  99. package/dist/cjs/models/Client.d.ts +0 -1
  100. package/dist/cjs/models/Client.d.ts.map +1 -1
  101. package/dist/cjs/models/Data.d.ts +20 -0
  102. package/dist/cjs/models/Data.d.ts.map +1 -0
  103. package/dist/cjs/models/Data.js +2 -0
  104. package/dist/cjs/models/Filter.d.ts +42 -4
  105. package/dist/cjs/models/Filter.d.ts.map +1 -1
  106. package/dist/cjs/models/Pivot.d.ts.map +1 -1
  107. package/dist/cjs/utils/astProcessing.d.ts +3 -2
  108. package/dist/cjs/utils/astProcessing.d.ts.map +1 -1
  109. package/dist/cjs/utils/astProcessing.js +28 -37
  110. package/dist/cjs/utils/client.d.ts +3 -2
  111. package/dist/cjs/utils/client.d.ts.map +1 -1
  112. package/dist/cjs/utils/client.js +38 -39
  113. package/dist/cjs/utils/columnProcessing.d.ts.map +1 -1
  114. package/dist/cjs/utils/columnProcessing.js +14 -3
  115. package/dist/cjs/utils/constants.d.ts +1 -0
  116. package/dist/cjs/utils/constants.d.ts.map +1 -1
  117. package/dist/cjs/utils/constants.js +2 -1
  118. package/dist/cjs/utils/dashboard.d.ts +3 -2
  119. package/dist/cjs/utils/dashboard.d.ts.map +1 -1
  120. package/dist/cjs/utils/dashboard.js +30 -12
  121. package/dist/cjs/utils/dataFetcher.d.ts +8 -5
  122. package/dist/cjs/utils/dataFetcher.d.ts.map +1 -1
  123. package/dist/cjs/utils/dataFetcher.js +189 -65
  124. package/dist/cjs/utils/filterProcessing.d.ts +2 -1
  125. package/dist/cjs/utils/filterProcessing.d.ts.map +1 -1
  126. package/dist/cjs/utils/filterProcessing.js +24 -38
  127. package/dist/cjs/utils/getDomain.d.ts.map +1 -1
  128. package/dist/cjs/utils/paginationProcessing.d.ts +1 -0
  129. package/dist/cjs/utils/paginationProcessing.d.ts.map +1 -1
  130. package/dist/cjs/utils/paginationProcessing.js +6 -1
  131. package/dist/cjs/utils/pivotConstructor.d.ts +2 -1
  132. package/dist/cjs/utils/pivotConstructor.d.ts.map +1 -1
  133. package/dist/cjs/utils/pivotConstructor.js +15 -9
  134. package/dist/cjs/utils/pivotProcessing.d.ts.map +1 -1
  135. package/dist/cjs/utils/pivotProcessing.js +3 -5
  136. package/dist/cjs/utils/queryConstructor.js +1 -1
  137. package/dist/cjs/utils/report.d.ts +10 -7
  138. package/dist/cjs/utils/report.d.ts.map +1 -1
  139. package/dist/cjs/utils/report.js +52 -60
  140. package/dist/cjs/utils/schema.d.ts +4 -3
  141. package/dist/cjs/utils/schema.d.ts.map +1 -1
  142. package/dist/cjs/utils/schema.js +30 -44
  143. package/dist/cjs/utils/tableProcessing.d.ts +16 -10
  144. package/dist/cjs/utils/tableProcessing.d.ts.map +1 -1
  145. package/dist/cjs/utils/tableProcessing.js +92 -90
  146. package/dist/cjs/utils/textProcessing.d.ts.map +1 -1
  147. package/dist/cjs/utils/textProcessing.js +2 -1
  148. package/dist/cjs/utils/ui.d.ts.map +1 -1
  149. package/dist/esm/Chart.d.ts +2 -2
  150. package/dist/esm/Chart.d.ts.map +1 -1
  151. package/dist/esm/Chart.js +60 -53
  152. package/dist/esm/ChartBuilder.d.ts +3 -2
  153. package/dist/esm/ChartBuilder.d.ts.map +1 -1
  154. package/dist/esm/ChartBuilder.js +173 -139
  155. package/dist/esm/ChartEditor.d.ts +2 -2
  156. package/dist/esm/ChartEditor.d.ts.map +1 -1
  157. package/dist/esm/ChartEditor.js +6 -3
  158. package/dist/esm/Context.d.ts +121 -41
  159. package/dist/esm/Context.d.ts.map +1 -1
  160. package/dist/esm/Context.js +450 -262
  161. package/dist/esm/Dashboard.d.ts.map +1 -1
  162. package/dist/esm/Dashboard.js +28 -27
  163. package/dist/esm/DateRangePicker/QuillDateRangePicker.js +0 -3
  164. package/dist/esm/DateRangePicker/dateRangePickerUtils.d.ts +24 -10
  165. package/dist/esm/DateRangePicker/dateRangePickerUtils.d.ts.map +1 -1
  166. package/dist/esm/DateRangePicker/dateRangePickerUtils.js +471 -95
  167. package/dist/esm/QuillProvider.d.ts +3 -1
  168. package/dist/esm/QuillProvider.d.ts.map +1 -1
  169. package/dist/esm/QuillProvider.js +2 -2
  170. package/dist/esm/ReportBuilder.d.ts.map +1 -1
  171. package/dist/esm/ReportBuilder.js +28 -17
  172. package/dist/esm/SQLEditor.d.ts +1 -1
  173. package/dist/esm/SQLEditor.d.ts.map +1 -1
  174. package/dist/esm/SQLEditor.js +54 -19
  175. package/dist/esm/Table.d.ts.map +1 -1
  176. package/dist/esm/Table.js +88 -17
  177. package/dist/esm/assets/ExclamationFilledIcon.d.ts.map +1 -1
  178. package/dist/esm/components/Chart/BarChart.d.ts.map +1 -1
  179. package/dist/esm/components/Chart/BarChart.js +2 -1
  180. package/dist/esm/components/Chart/CustomReferenceLine.d.ts +1 -1
  181. package/dist/esm/components/Chart/CustomReferenceLine.d.ts.map +1 -1
  182. package/dist/esm/components/Chart/CustomReferenceLine.js +8 -7
  183. package/dist/esm/components/Chart/GaugeChart.d.ts +1 -1
  184. package/dist/esm/components/Chart/GaugeChart.d.ts.map +1 -1
  185. package/dist/esm/components/Chart/GaugeChart.js +65 -38
  186. package/dist/esm/components/Chart/InternalChart.d.ts.map +1 -1
  187. package/dist/esm/components/Chart/InternalChart.js +32 -35
  188. package/dist/esm/components/Chart/LineChart.d.ts.map +1 -1
  189. package/dist/esm/components/Chart/LineChart.js +3 -1
  190. package/dist/esm/components/Chart/MapChart.d.ts +3 -3
  191. package/dist/esm/components/Chart/MapChart.d.ts.map +1 -1
  192. package/dist/esm/components/Chart/MapChart.js +67 -39
  193. package/dist/esm/components/Chart/PieChart.d.ts +3 -1
  194. package/dist/esm/components/Chart/PieChart.d.ts.map +1 -1
  195. package/dist/esm/components/Chart/PieChart.js +80 -39
  196. package/dist/esm/components/Dashboard/DashboardFilter.d.ts.map +1 -1
  197. package/dist/esm/components/Dashboard/DashboardFilter.js +5 -21
  198. package/dist/esm/components/Dashboard/DashboardSection.js +2 -2
  199. package/dist/esm/components/Dashboard/DashboardTemplate.d.ts.map +1 -1
  200. package/dist/esm/components/Dashboard/DashboardTemplate.js +3 -2
  201. package/dist/esm/components/Dashboard/DataLoader.d.ts +4 -4
  202. package/dist/esm/components/Dashboard/DataLoader.d.ts.map +1 -1
  203. package/dist/esm/components/Dashboard/DataLoader.js +102 -66
  204. package/dist/esm/components/Dashboard/MetricComponent.d.ts.map +1 -1
  205. package/dist/esm/components/Dashboard/MetricComponent.js +2 -2
  206. package/dist/esm/components/Dashboard/util.d.ts +1 -1
  207. package/dist/esm/components/Dashboard/util.d.ts.map +1 -1
  208. package/dist/esm/components/Dashboard/util.js +8 -7
  209. package/dist/esm/components/QuillMultiSelectSectionList.d.ts.map +1 -1
  210. package/dist/esm/components/QuillMultiSelectSectionList.js +32 -22
  211. package/dist/esm/components/QuillMultiSelectWithCombo.d.ts.map +1 -1
  212. package/dist/esm/components/QuillMultiSelectWithCombo.js +187 -160
  213. package/dist/esm/components/QuillSelect.d.ts.map +1 -1
  214. package/dist/esm/components/QuillSelect.js +85 -77
  215. package/dist/esm/components/QuillSelectWithCombo.d.ts.map +1 -1
  216. package/dist/esm/components/QuillSelectWithCombo.js +18 -11
  217. package/dist/esm/components/QuillTable.d.ts.map +1 -1
  218. package/dist/esm/components/QuillTable.js +59 -61
  219. package/dist/esm/components/ReportBuilder/FilterStack.d.ts +2 -1
  220. package/dist/esm/components/ReportBuilder/FilterStack.d.ts.map +1 -1
  221. package/dist/esm/components/ReportBuilder/FilterStack.js +3 -4
  222. package/dist/esm/components/ReportBuilder/ui.d.ts +2 -2
  223. package/dist/esm/components/ReportBuilder/ui.d.ts.map +1 -1
  224. package/dist/esm/components/ReportBuilder/ui.js +4 -7
  225. package/dist/esm/components/UiComponents.d.ts +1 -1
  226. package/dist/esm/hooks/useAskQuill.d.ts.map +1 -1
  227. package/dist/esm/hooks/useAskQuill.js +6 -2
  228. package/dist/esm/hooks/useDashboard.d.ts +2 -2
  229. package/dist/esm/hooks/useDashboard.d.ts.map +1 -1
  230. package/dist/esm/hooks/useDashboard.js +162 -71
  231. package/dist/esm/hooks/useExport.d.ts.map +1 -1
  232. package/dist/esm/hooks/useExport.js +31 -17
  233. package/dist/esm/hooks/useOnClickOutside.d.ts.map +1 -1
  234. package/dist/esm/hooks/useQuill.d.ts +1 -0
  235. package/dist/esm/hooks/useQuill.d.ts.map +1 -1
  236. package/dist/esm/hooks/useQuill.js +23 -13
  237. package/dist/esm/hooks/useReport.d.ts +2 -2
  238. package/dist/esm/hooks/useReport.d.ts.map +1 -1
  239. package/dist/esm/hooks/useReport.js +4 -5
  240. package/dist/esm/hooks/useVirtualTables.d.ts.map +1 -1
  241. package/dist/esm/hooks/useVirtualTables.js +17 -23
  242. package/dist/esm/index.d.ts +2 -2
  243. package/dist/esm/index.d.ts.map +1 -1
  244. package/dist/esm/index.js +1 -1
  245. package/dist/esm/internals/ReportBuilder/PivotModal.d.ts +2 -1
  246. package/dist/esm/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
  247. package/dist/esm/internals/ReportBuilder/PivotModal.js +20 -8
  248. package/dist/esm/models/Client.d.ts +0 -1
  249. package/dist/esm/models/Client.d.ts.map +1 -1
  250. package/dist/esm/models/Data.d.ts +20 -0
  251. package/dist/esm/models/Data.d.ts.map +1 -0
  252. package/dist/esm/models/Data.js +1 -0
  253. package/dist/esm/models/Filter.d.ts +42 -4
  254. package/dist/esm/models/Filter.d.ts.map +1 -1
  255. package/dist/esm/models/Pivot.d.ts.map +1 -1
  256. package/dist/esm/utils/astProcessing.d.ts +3 -2
  257. package/dist/esm/utils/astProcessing.d.ts.map +1 -1
  258. package/dist/esm/utils/astProcessing.js +28 -37
  259. package/dist/esm/utils/client.d.ts +3 -2
  260. package/dist/esm/utils/client.d.ts.map +1 -1
  261. package/dist/esm/utils/client.js +38 -39
  262. package/dist/esm/utils/columnProcessing.d.ts.map +1 -1
  263. package/dist/esm/utils/columnProcessing.js +14 -3
  264. package/dist/esm/utils/constants.d.ts +1 -0
  265. package/dist/esm/utils/constants.d.ts.map +1 -1
  266. package/dist/esm/utils/constants.js +1 -0
  267. package/dist/esm/utils/dashboard.d.ts +3 -2
  268. package/dist/esm/utils/dashboard.d.ts.map +1 -1
  269. package/dist/esm/utils/dashboard.js +31 -13
  270. package/dist/esm/utils/dataFetcher.d.ts +8 -5
  271. package/dist/esm/utils/dataFetcher.d.ts.map +1 -1
  272. package/dist/esm/utils/dataFetcher.js +187 -65
  273. package/dist/esm/utils/filterProcessing.d.ts +2 -1
  274. package/dist/esm/utils/filterProcessing.d.ts.map +1 -1
  275. package/dist/esm/utils/filterProcessing.js +25 -39
  276. package/dist/esm/utils/getDomain.d.ts.map +1 -1
  277. package/dist/esm/utils/paginationProcessing.d.ts +1 -0
  278. package/dist/esm/utils/paginationProcessing.d.ts.map +1 -1
  279. package/dist/esm/utils/paginationProcessing.js +5 -0
  280. package/dist/esm/utils/pivotConstructor.d.ts +2 -1
  281. package/dist/esm/utils/pivotConstructor.d.ts.map +1 -1
  282. package/dist/esm/utils/pivotConstructor.js +16 -10
  283. package/dist/esm/utils/pivotProcessing.d.ts.map +1 -1
  284. package/dist/esm/utils/pivotProcessing.js +5 -7
  285. package/dist/esm/utils/queryConstructor.js +1 -1
  286. package/dist/esm/utils/report.d.ts +10 -7
  287. package/dist/esm/utils/report.d.ts.map +1 -1
  288. package/dist/esm/utils/report.js +53 -61
  289. package/dist/esm/utils/schema.d.ts +4 -3
  290. package/dist/esm/utils/schema.d.ts.map +1 -1
  291. package/dist/esm/utils/schema.js +30 -44
  292. package/dist/esm/utils/tableProcessing.d.ts +16 -10
  293. package/dist/esm/utils/tableProcessing.d.ts.map +1 -1
  294. package/dist/esm/utils/tableProcessing.js +94 -92
  295. package/dist/esm/utils/textProcessing.d.ts.map +1 -1
  296. package/dist/esm/utils/textProcessing.js +2 -1
  297. package/dist/esm/utils/ui.d.ts.map +1 -1
  298. package/package.json +2 -1
@@ -1,5 +1,5 @@
1
1
  import { useContext, useEffect, useState } from 'react';
2
- import { ClientContext, SchemaDataContext, TenantContext } from '../Context';
2
+ import { ClientContext, FetchContext, SchemaDataContext, TenantContext, } from '../Context';
3
3
  import { fetchAndProcessASTFromPrompt } from '../utils/astProcessing';
4
4
  import { fetchReportBuilderDataFromAST, } from '../utils/report';
5
5
  import { astToFilterTree, filterTreeToAst, } from '../utils/astFilterProcessing';
@@ -36,6 +36,7 @@ export const useAskQuill = (dashboardName) => {
36
36
  const [client] = useContext(ClientContext);
37
37
  const [schemaData] = useContext(SchemaDataContext);
38
38
  const { tenants } = useContext(TenantContext);
39
+ const { getToken } = useContext(FetchContext);
39
40
  const [astInfo, setAstInfo] = useState(undefined);
40
41
  const [data, setData] = useState({
41
42
  rows: [],
@@ -65,13 +66,13 @@ export const useAskQuill = (dashboardName) => {
65
66
  let curFilterTree = null;
66
67
  setLoading(true);
67
68
  try {
68
- setLoading(true);
69
69
  astInfo = await fetchAndProcessASTFromPrompt({
70
70
  aiPrompt: query,
71
71
  schema: schemaData.schema,
72
72
  client,
73
73
  dashboardName,
74
74
  tenants,
75
+ getToken,
75
76
  });
76
77
  if (astInfo.error) {
77
78
  throw new Error(astInfo.error);
@@ -83,6 +84,7 @@ export const useAskQuill = (dashboardName) => {
83
84
  tenants,
84
85
  pivot: astInfo.pivot,
85
86
  dashboardName,
87
+ getToken,
86
88
  });
87
89
  if (!reportBuilderInfo) {
88
90
  throw new Error('Error fetching report');
@@ -132,6 +134,7 @@ export const useAskQuill = (dashboardName) => {
132
134
  tenants,
133
135
  pivot: newPivot,
134
136
  dashboardName,
137
+ getToken,
135
138
  });
136
139
  setLoading(false);
137
140
  if (!reportBuilderInfo) {
@@ -175,6 +178,7 @@ export const useAskQuill = (dashboardName) => {
175
178
  tenants,
176
179
  pivot: data.pivot || undefined,
177
180
  dashboardName,
181
+ getToken,
178
182
  });
179
183
  setLoading(false);
180
184
  }
@@ -14,6 +14,7 @@ export declare const useDashboard: (dashboardName: string | null, customFilters?
14
14
  }, overrideFilters?: {
15
15
  filters: DashboardFilter[];
16
16
  editedFilterLabel?: string;
17
+ refetchReports?: boolean;
17
18
  }) => Promise<void>;
18
19
  setSectionOrder: (sectionOrder: {
19
20
  section: string;
@@ -53,13 +54,12 @@ export declare const useDashboards: () => {
53
54
  dashboardOwners: string[];
54
55
  dateFilter?: DashboardFilter;
55
56
  }) => Promise<void>;
56
- updateDashboard: (name: string, { newName, filters, dateFilter, customFilters, tenantKeys, sectionOrder, }: {
57
+ updateDashboard: (name: string, { newName, filters, dateFilter, customFilters, tenantKeys, }: {
57
58
  newName: string;
58
59
  filters: DashboardFilter[];
59
60
  dateFilter?: DashboardFilter;
60
61
  customFilters?: InternalFilter[];
61
62
  tenantKeys?: string[];
62
- sectionOrder: string[];
63
63
  }) => Promise<void>;
64
64
  deleteDashboard: (name: string) => Promise<void>;
65
65
  };
@@ -1 +1 @@
1
- {"version":3,"file":"useDashboard.d.ts","sourceRoot":"","sources":["../../../src/hooks/useDashboard.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAEpE,OAAO,EACL,eAAe,EAEf,cAAc,EACf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAGtD,eAAO,MAAM,YAAY,kBACR,MAAM,GAAG,IAAI,kBACZ,cAAc,EAAE;;;;2CAyLc,MAAM;qCAvJ1B,MAAM,4CAEf;QACb,MAAM,EAAE,WAAW,GAAG;YAAE,EAAE,EAAE,MAAM,CAAA;SAAE,CAAC;QACrC,MAAM,EAAE,QAAQ,GAAG,QAAQ,CAAC;KAC7B,oBACiB;QAChB,OAAO,EAAE,eAAe,EAAE,CAAC;QAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;KAC5B;oCA2E0C;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,EAAE,CAAA;KAAC,EAAE;CAkFtG,CAAC;AAEF,eAAO,MAAM,mBAAmB,mBAAoB,MAAM;;;;yBAK5B,OAAO,CAAC,mBAAmB,CAAC;sBAe/B,mBAAmB;CAmB7C,CAAC;AAEF,eAAO,MAAM,aAAa;;;;CAkBzB,CAAA;AAED,eAAO,MAAM,aAAa;;;;;;;;;;;;;;uEA4BrB;QACD,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,eAAe,EAAE,CAAC;QAC3B,eAAe,EAAE,MAAM,EAAE,CAAC;QAC1B,UAAU,CAAC,EAAE,eAAe,CAAC;KAC9B;4BAuDO,MAAM,8EAQT;QACD,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,eAAe,EAAE,CAAC;QAC3B,UAAU,CAAC,EAAE,eAAe,CAAC;QAC7B,aAAa,CAAC,EAAE,cAAc,EAAE,CAAC;QACjC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;QACtB,YAAY,EAAE,MAAM,EAAE,CAAC;KACxB;4BAkHkC,MAAM;CA+B5C,CAAC"}
1
+ {"version":3,"file":"useDashboard.d.ts","sourceRoot":"","sources":["../../../src/hooks/useDashboard.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,EAEL,eAAe,EAGf,cAAc,EAEf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAGtD,eAAO,MAAM,YAAY,kBACR,MAAM,GAAG,IAAI,kBACZ,cAAc,EAAE;;;;2CA0Mc,MAAM;qCAtK1B,MAAM,4CAEf;QACb,MAAM,EAAE,WAAW,GAAG;YAAE,EAAE,EAAE,MAAM,CAAA;SAAE,CAAC;QACrC,MAAM,EAAE,QAAQ,GAAG,QAAQ,CAAC;KAC7B,oBACiB;QAChB,OAAO,EAAE,eAAe,EAAE,CAAC;QAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,cAAc,CAAC,EAAE,OAAO,CAAC;KAC1B;oCAmFa;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,EAAE,CAAA;KAAE,EAAE;CAwF3E,CAAC;AAEF,eAAO,MAAM,mBAAmB,mBAAoB,MAAM;;;;yBAK5B,OAAO,CAAC,mBAAmB,CAAC;sBAiB/B,mBAAmB;CAoB7C,CAAC;AAEF,eAAO,MAAM,aAAa;;;;CAqBzB,CAAC;AAEF,eAAO,MAAM,aAAa;;;;;;;;;;;;;;uEAsCrB;QACD,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,eAAe,EAAE,CAAC;QAC3B,eAAe,EAAE,MAAM,EAAE,CAAC;QAC1B,UAAU,CAAC,EAAE,eAAe,CAAC;KAC9B;4BAqDO,MAAM,gEAOT;QACD,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,eAAe,EAAE,CAAC;QAC3B,UAAU,CAAC,EAAE,eAAe,CAAC;QAC7B,aAAa,CAAC,EAAE,cAAc,EAAE,CAAC;QACjC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;KACvB;4BAkOkC,MAAM;CAwB5C,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { useContext, useMemo } from 'react';
2
- import { ClientContext, DashboardConfigContext, DashboardContext, DashboardFiltersContext, ReportsContext, } from '../Context';
3
- import { PRIMARY_RANGE } from '../DateRangePicker/dateRangePickerUtils';
2
+ import { ClientContext, DashboardConfigContext, DashboardContext, DashboardFiltersContext, FetchContext, ReportFiltersContext, ReportsContext, } from '../Context';
3
+ import { convertPresetOptionsToSelectableList, PRIMARY_RANGE, } from '../DateRangePicker/dateRangePickerUtils';
4
4
  import { DashboardFilterType, } from '../models/Filter';
5
5
  import { createDefaultDateFilter } from '../utils/filterProcessing';
6
6
  export const useDashboard = (dashboardName, customFilters) => {
@@ -10,14 +10,15 @@ export const useDashboard = (dashboardName, customFilters) => {
10
10
  //TODO: handle error states
11
11
  // const [error, setError] = useState<any>(null);
12
12
  const [client, isClientLoading] = useContext(ClientContext);
13
+ const { quillFetchWithToken } = useContext(FetchContext);
13
14
  const loading = useMemo(() => {
14
- return !dashboardName ||
15
+ return (!dashboardName ||
15
16
  isClientLoading ||
16
17
  isDashboardsLoading ||
17
18
  dashboardConfig[dashboardName]?.loading ||
18
19
  (dashboardConfig[dashboardName] &&
19
- !dashboardConfig[dashboardName]?.config.sections);
20
- }, [isClientLoading, dashboardConfig, dashboardName]);
20
+ !dashboardConfig[dashboardName]?.config.sections));
21
+ }, [isClientLoading, dashboardConfig, dashboardName, isDashboardsLoading]);
21
22
  const populatedDashboardFilters = useMemo(() => {
22
23
  return dashboardName && dashboardFilters[dashboardName] !== undefined
23
24
  ? Object.values(dashboardFilters[dashboardName] ?? {}).map((f) => f.filter)
@@ -48,9 +49,10 @@ export const useDashboard = (dashboardName, customFilters) => {
48
49
  : []),
49
50
  ...(overrideFilters.filters.filter((f) => f.filterType !== 'date_range') ?? []),
50
51
  ], overrideFilters.editedFilterLabel, customFilters);
51
- return;
52
+ if (!overrideFilters.refetchReports)
53
+ return;
52
54
  }
53
- const dashboard = await loadDashboard(overrideDashboardName ?? dashboardName, fetchFromServer, reportAction);
55
+ const updatedDashboard = await loadDashboard(overrideDashboardName ?? dashboardName, fetchFromServer, reportAction);
54
56
  if (!fetchFromServer &&
55
57
  Object.keys(dashboardFilters[dashboardName] ?? {}).length &&
56
58
  // there exists no non date filter that has undefined options
@@ -58,20 +60,32 @@ export const useDashboard = (dashboardName, customFilters) => {
58
60
  filter.filter.options)) {
59
61
  return;
60
62
  }
61
- const dateFilter = dashboard?.dateFilter
62
- ? createDefaultDateFilter(dashboard?.dateFilter, Object.values(dashboard?.sections ?? {}).flat(), dashboardName)
63
+ if (overrideFilters)
64
+ return;
65
+ const dateFilter = updatedDashboard?.dateFilter
66
+ ? createDefaultDateFilter(updatedDashboard.dateFilter, Object.values(dashboard?.sections ?? {}).flat(), dashboardName)
63
67
  : undefined;
64
68
  // Append dateFilter to the filters unless it's undefined
65
- loadFiltersForDashboard(dashboardName, [...(dateFilter ? [dateFilter] : []), ...(dashboard?.filters ?? [])], undefined, customFilters);
69
+ loadFiltersForDashboard(dashboardName, [
70
+ ...(dateFilter ? [dateFilter] : []),
71
+ ...(updatedDashboard?.filters?.map((filter) => ({
72
+ ...filter,
73
+ query: undefined,
74
+ })) ?? []),
75
+ ], undefined, customFilters);
66
76
  };
67
77
  const setSectionOrder = async (sectionOrder) => {
68
78
  if (!client || !dashboardName)
69
79
  return;
70
80
  if (dashboardConfig[dashboardName]) {
71
81
  const newSections = sectionOrder.reduce((acc, section) => {
72
- acc[section.section] = section.reportOrder.map((id, index) => {
73
- return dashboard?.[dashboardName]?.[id] ? { ...dashboard[dashboardName][id], order: index } : null;
74
- }).filter((r) => r);
82
+ acc[section.section] = section.reportOrder
83
+ .map((id, index) => {
84
+ return dashboard?.[dashboardName]?.[id]
85
+ ? { ...dashboard[dashboardName][id], id: id, order: index }
86
+ : null;
87
+ })
88
+ .filter((r) => r);
75
89
  return acc;
76
90
  }, {});
77
91
  dashboardConfigDispatch({
@@ -96,15 +110,11 @@ export const useDashboard = (dashboardName, customFilters) => {
96
110
  sectionOrder,
97
111
  };
98
112
  try {
99
- const response = await fetch(client.queryEndpoint, {
100
- method: 'POST',
101
- headers: {
102
- ...client.queryHeaders,
103
- 'Content-Type': 'application/json',
104
- },
105
- body: JSON.stringify({ metadata: body }),
106
- credentials: client.withCredentials ? 'include' : 'omit',
107
- }).then((res) => res.json());
113
+ const response = await quillFetchWithToken({
114
+ client,
115
+ task: 'set-section-order',
116
+ metadata: body,
117
+ });
108
118
  Object.entries(response?.data?.newIds ?? {}).forEach(([section, newId]) => {
109
119
  dashboardConfigDispatch({
110
120
  type: 'UPDATE_DASHBOARD',
@@ -153,6 +163,8 @@ export const useDashboardReports = (dashboardName) => {
153
163
  const updateReport = (data) => {
154
164
  if (!dashboardName)
155
165
  throw new Error('No dashboard name provided for updateReport');
166
+ if (!data.id)
167
+ throw new Error('No report id provided for updateReport');
156
168
  dispatch({
157
169
  type: 'UPDATE_DASHBOARD_ITEM',
158
170
  id: data.id,
@@ -200,18 +212,22 @@ export const useAllReports = () => {
200
212
  reportMap[report.id] = report;
201
213
  });
202
214
  return reportMap;
203
- }, [reports]);
215
+ }, [reports, dashboard]);
204
216
  return {
205
217
  allReportsById,
206
218
  };
207
219
  };
208
220
  export const useDashboards = () => {
209
- const [, dashboardDispatch] = useContext(DashboardContext);
221
+ const [dashboardReports, dashboardDispatch] = useContext(DashboardContext);
210
222
  const { dashboardConfig, isLoading: isDashboardsLoading, dashboardConfigDispatch, } = useContext(DashboardConfigContext);
211
- const { loadFiltersForDashboard, dispatch: dashboardFiltersDispatch } = useContext(DashboardFiltersContext);
223
+ const { dashboardFilters, loadFiltersForDashboard, dispatch: dashboardFiltersDispatch, } = useContext(DashboardFiltersContext);
224
+ const { reportsDispatch } = useContext(ReportsContext);
225
+ const { reportFiltersDispatch } = useContext(ReportFiltersContext);
212
226
  const [client, isLoading] = useContext(ClientContext);
227
+ const { quillFetchWithToken } = useContext(FetchContext);
213
228
  const dashboards = useMemo(() => {
214
- return Object.values(dashboardConfig).map((dashboard) => {
229
+ return Object.values(dashboardConfig)
230
+ .map((dashboard) => {
215
231
  return {
216
232
  name: dashboard.config.name,
217
233
  id: dashboard.config.dashboardId,
@@ -220,7 +236,8 @@ export const useDashboards = () => {
220
236
  createdAt: dashboard.config.createdAt,
221
237
  sectionOrder: dashboard.config.sectionOrder,
222
238
  };
223
- });
239
+ })
240
+ .sort((a, b) => (a.createdAt?.getTime() ?? 0) - (b.createdAt?.getTime() ?? 0));
224
241
  }, [dashboardConfig]);
225
242
  const createDashboard = async ({ name, filters, dateFilter, dashboardOwners, }) => {
226
243
  if (!client)
@@ -252,30 +269,28 @@ export const useDashboards = () => {
252
269
  tenantKeys: dashboardOwners,
253
270
  };
254
271
  try {
255
- const response = await fetch(client.queryEndpoint, {
256
- method: 'POST',
257
- headers: {
258
- ...client.queryHeaders,
259
- 'Content-Type': 'application/json',
260
- },
261
- body: JSON.stringify({ metadata: body }),
262
- credentials: client.withCredentials ? 'include' : 'omit',
272
+ const updated = await quillFetchWithToken({
273
+ client,
274
+ task: 'edit-dashboard',
275
+ metadata: body,
263
276
  });
264
- const updated = await response.json();
265
277
  dashboardConfigDispatch({
266
278
  type: 'UPDATE_DASHBOARD',
267
279
  id: name,
268
- data: { config: {
280
+ data: {
281
+ config: {
269
282
  ...updated.data.dashboard,
270
- createdAt: new Date(updated.data.dashboard.createdAt)
271
- }, loading: false },
283
+ createdAt: new Date(updated.data.dashboard.createdAt),
284
+ },
285
+ loading: false,
286
+ },
272
287
  });
273
288
  }
274
289
  catch (e) {
275
290
  console.error(e);
276
291
  }
277
292
  };
278
- const updateDashboard = async (name, { newName, filters, dateFilter, customFilters, tenantKeys, sectionOrder, }) => {
293
+ const updateDashboard = async (name, { newName, filters, dateFilter, customFilters, tenantKeys, }) => {
279
294
  if (!client)
280
295
  return;
281
296
  if (tenantKeys?.some((key) => !key)) {
@@ -286,6 +301,7 @@ export const useDashboards = () => {
286
301
  type: 'DELETE_DASHBOARD',
287
302
  id: name,
288
303
  });
304
+ const oldFilters = dashboardFilters[name];
289
305
  dashboardFiltersDispatch({
290
306
  type: 'DELETE_DASHBOARD_FILTERS',
291
307
  dashboardName: name,
@@ -298,19 +314,13 @@ export const useDashboards = () => {
298
314
  task: 'edit-dashboard',
299
315
  clientId: client.clientId,
300
316
  tenantKeys,
301
- sectionOrder,
302
317
  };
303
318
  try {
304
- const response = await fetch(client.queryEndpoint, {
305
- method: 'POST',
306
- headers: {
307
- ...client.queryHeaders,
308
- 'Content-Type': 'application/json',
309
- },
310
- body: JSON.stringify({ metadata: body }),
311
- credentials: client.withCredentials ? 'include' : 'omit',
319
+ const updated = await quillFetchWithToken({
320
+ client,
321
+ task: 'edit-dashboard',
322
+ metadata: body,
312
323
  });
313
- const updated = await response.json();
314
324
  dashboardConfigDispatch({
315
325
  type: 'UPDATE_DASHBOARD',
316
326
  id: updated.data.dashboard.name,
@@ -318,6 +328,29 @@ export const useDashboards = () => {
318
328
  config: {
319
329
  ...dashboard,
320
330
  ...updated.data.dashboard,
331
+ dateFilter: updated.data.dashboard.dateFilter
332
+ ? {
333
+ ...updated.data.dashboard.dateFilter,
334
+ presetOptions: updated.data.dashboard.dateFilter.presetOptions?.map((preset) => ({
335
+ ...preset,
336
+ loopStart: preset.loopStart
337
+ ? new Date(preset.loopStart)
338
+ : undefined,
339
+ loopEnd: preset.loopEnd
340
+ ? new Date(preset.loopEnd)
341
+ : undefined,
342
+ })),
343
+ defaultPresetRanges: updated.data.dashboard.dateFilter.defaultPresetRanges?.map((preset) => ({
344
+ ...preset,
345
+ loopStart: preset.loopStart
346
+ ? new Date(preset.loopStart)
347
+ : undefined,
348
+ loopEnd: preset.loopEnd
349
+ ? new Date(preset.loopEnd)
350
+ : undefined,
351
+ })),
352
+ }
353
+ : undefined,
321
354
  createdAt: new Date(updated.data.dashboard.createdAt),
322
355
  },
323
356
  loading: false,
@@ -328,20 +361,60 @@ export const useDashboards = () => {
328
361
  .flat()
329
362
  .forEach((report) => {
330
363
  dashboardDispatch({
331
- type: 'UPDATE_DASHBOARD_ITEM',
364
+ type: 'ADD_DASHBOARD_ITEM',
332
365
  id: report._id,
333
- dashboard: name,
366
+ dashboard: newName,
334
367
  data: {
368
+ ...dashboardReports[report._id],
369
+ id: report._id,
335
370
  filterMap: report.filterMap,
371
+ dashboardName: newName,
372
+ rows: undefined,
336
373
  },
337
374
  });
375
+ dashboardDispatch({
376
+ type: 'REMOVE_DASHBOARD_ITEM',
377
+ id: report._id,
378
+ });
379
+ reportsDispatch({
380
+ type: 'DELETE_REPORT',
381
+ id: report._id,
382
+ });
383
+ reportFiltersDispatch({
384
+ type: 'CLEAR_REPORT_FILTERS',
385
+ id: report._id,
386
+ });
338
387
  });
339
- const range = updated.data.dashboard.dateFilter?.presetRanges?.find((range) => range.value === updated.data.dashboard.dateFilter?.primaryRange?.value) ??
340
- PRIMARY_RANGE[updated.data.dashboard.dateFilter?.primaryRange?.value ?? 'LAST_30_DAYS'] ??
388
+ if (dashboardFilters[name])
389
+ dashboardFiltersDispatch({
390
+ type: 'ADD_DASHBOARD_FILTERS',
391
+ dashboardName: newName,
392
+ data: dashboardFilters[name],
393
+ });
394
+ const range = convertPresetOptionsToSelectableList(updated.data.dashboard.dateFilter?.presetOptions ?? [], updated.data.dashboard.dateFilter?.defaultPresetRanges ?? []).find((option) => option.value ===
395
+ updated.data.dashboard.dateFilter?.primaryRange?.value) ??
396
+ PRIMARY_RANGE[updated.data.dashboard.dateFilter?.primaryRange?.value ??
397
+ 'LAST_30_DAYS'] ??
341
398
  PRIMARY_RANGE['LAST_30_DAYS'];
342
399
  const updatedDateFilter = updated.data.dashboard.dateFilter
343
400
  ? {
344
401
  ...updated.data.dashboard.dateFilter,
402
+ presetOptions: updated.data.dashboard.dateFilter.presetOptions?.map((preset) => ({
403
+ ...preset,
404
+ loopStart: preset.loopStart
405
+ ? new Date(preset.loopStart)
406
+ : undefined,
407
+ loopEnd: preset.loopEnd ? new Date(preset.loopEnd) : undefined,
408
+ })),
409
+ defaultPresetRanges: updated.data.dashboard.dateFilter.defaultPresetRanges?.map((preset) => ({
410
+ ...preset,
411
+ loopStart: preset.loopStart
412
+ ? new Date(preset.loopStart)
413
+ : undefined,
414
+ loopEnd: preset.loopEnd
415
+ ? new Date(preset.loopEnd)
416
+ : undefined,
417
+ })),
345
418
  dashboardName: updated.data.dashboard.name,
346
419
  preset: updated.data.dashboard.dateFilter.primaryRange,
347
420
  filterType: DashboardFilterType.Date,
@@ -362,10 +435,35 @@ export const useDashboards = () => {
362
435
  : new Date(range.endDate), // when range.endDate is a string
363
436
  }
364
437
  : undefined;
365
- loadFiltersForDashboard(updated.data.dashboard.name, [
438
+ const newFilters = [
366
439
  ...(updatedDateFilter ? [updatedDateFilter] : []),
367
- ...(updated.data.dashboard.filters ?? []),
368
- ], undefined, customFilters);
440
+ ...(updated.data.dashboard.filters.map((f) => ({
441
+ ...f,
442
+ selectedValue: oldFilters?.[f.label]?.filter?.selectedValue,
443
+ values: oldFilters?.[f.label]?.filter?.values,
444
+ operator: oldFilters?.[f.label]?.filter?.operator,
445
+ })) ?? []),
446
+ ].map((f) => {
447
+ if (f.filterType === DashboardFilterType.Date) {
448
+ return {
449
+ ...f,
450
+ startDate: dashboardFilters[name]?.[f.label]?.filter?.startDate,
451
+ endDate: dashboardFilters[name]?.[f.label]?.filter?.endDate,
452
+ preset: dashboardFilters[name]?.[f.label]?.filter?.preset,
453
+ };
454
+ }
455
+ else {
456
+ return {
457
+ ...f,
458
+ selectedValue: dashboardFilters[name]?.[f.label]?.filter?.selectedValue,
459
+ };
460
+ }
461
+ });
462
+ dashboardFiltersDispatch({
463
+ type: 'DELETE_DASHBOARD_FILTERS',
464
+ dashboardName: name,
465
+ });
466
+ loadFiltersForDashboard(updated.data.dashboard.name, newFilters, undefined, customFilters);
369
467
  }
370
468
  catch (e) {
371
469
  console.error(e);
@@ -374,21 +472,14 @@ export const useDashboards = () => {
374
472
  const deleteDashboard = async (name) => {
375
473
  if (!client)
376
474
  return;
377
- await fetch(client.queryEndpoint, {
378
- method: 'POST',
379
- headers: {
380
- ...client.queryHeaders,
381
- 'Content-Type': 'application/json',
475
+ await quillFetchWithToken({
476
+ client,
477
+ task: 'delete-dashboard',
478
+ metadata: {
479
+ clientId: client.clientId,
480
+ databaseType: client.databaseType,
481
+ name,
382
482
  },
383
- body: JSON.stringify({
384
- metadata: {
385
- task: 'delete-dashboard',
386
- clientId: client.clientId,
387
- databaseType: client.databaseType,
388
- name,
389
- },
390
- }),
391
- credentials: client.withCredentials ? 'include' : 'omit',
392
483
  });
393
484
  dashboardConfigDispatch({
394
485
  type: 'DELETE_DASHBOARD',
@@ -1 +1 @@
1
- {"version":3,"file":"useExport.d.ts","sourceRoot":"","sources":["../../../src/hooks/useExport.tsx"],"names":[],"mappings":"AAYA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAoE/C,eAAO,MAAM,SAAS,cACT,MAAM,mEAMd;IACD,uBAAuB,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,GAAG,CAAC,OAAO,CAAC;IAChE,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,KACA;IACD,WAAW,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,YAAY,EAAE,OAAO,CAAC;CAwPvB,CAAC;AAEF,UAAU,aAAa;IACrB,MAAM,EAAE,WAAW,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;CAC5B"}
1
+ {"version":3,"file":"useExport.d.ts","sourceRoot":"","sources":["../../../src/hooks/useExport.tsx"],"names":[],"mappings":"AAaA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAiE/C,eAAO,MAAM,SAAS,cACT,MAAM,mEAMd;IACD,uBAAuB,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,GAAG,CAAC,OAAO,CAAC;IAChE,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,KACA;IACD,WAAW,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,YAAY,EAAE,OAAO,CAAC;CAiRvB,CAAC;AAEF,UAAU,aAAa;IACrB,MAAM,EAAE,WAAW,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;CAC5B"}
@@ -1,48 +1,49 @@
1
1
  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
- import { getData } from '../utils/dataFetcher';
5
- import { ClientContext, DashboardFiltersContext, ReportFiltersContext, ReportsContext, SchemaDataContext, TenantContext, } from '../Context';
4
+ import { parseFetchResponse, quillFetch } from '../utils/dataFetcher';
5
+ import { ClientContext, DashboardFiltersContext, FetchContext, ReportFiltersContext, ReportsContext, SchemaDataContext, TenantContext, } from '../Context';
6
6
  import { cleanDashboardItem } from '../utils/dashboard';
7
7
  import { createRoot } from 'react-dom/client';
8
8
  import { flushSync } from 'react-dom';
9
9
  import { fetchReport } from '../utils/report';
10
10
  import jsPDF from 'jspdf';
11
11
  import { quillFormat } from '../utils/valueFormatter';
12
- async function getExportData(client, dashboardFilters, reportId, tenants, flags, customFields) {
12
+ import { useAllReports } from './useDashboard';
13
+ async function getExportData(client, dashboardFilters, reportId, getToken, tenants, flags, customFields) {
13
14
  const minimalFilters = Object.values(dashboardFilters).length
14
15
  ? Object.values(dashboardFilters).map((filter) => {
15
16
  const newFilter = { ...filter };
16
17
  if (newFilter.filterType === 'date_range') {
17
18
  delete newFilter['field'];
18
19
  delete newFilter['selectedValue'];
20
+ delete newFilter['presetOptions'];
19
21
  }
20
22
  delete newFilter['options'];
21
23
  return newFilter;
22
24
  })
23
25
  : [];
24
- const hostedBody = {
26
+ const fetchResp = await quillFetch({
27
+ client,
28
+ task: 'item',
25
29
  metadata: {
26
30
  dashboardItemId: reportId,
27
31
  clientId: client.publicKey,
28
- task: 'item',
29
32
  databaseType: client?.databaseType,
30
33
  filters: minimalFilters,
31
34
  useNewNodeSql: true,
32
35
  tenants,
33
36
  flags,
34
37
  },
35
- };
36
- const cloudBody = {
37
- id: reportId,
38
- useNewNodeSql: true,
39
- };
40
- const resp = await getData(client, 'itempost', 'same-origin', hostedBody, cloudBody);
38
+ getToken,
39
+ });
40
+ const resp = await parseFetchResponse(client, 'item', fetchResp, getToken);
41
41
  const cleanedReport = await cleanDashboardItem({
42
42
  item: resp,
43
43
  dashboardFilters,
44
44
  client,
45
45
  customFields,
46
+ getToken,
46
47
  });
47
48
  if (cleanedReport.chartType === 'table' && cleanedReport.pivot) {
48
49
  cleanedReport.columns = cleanedReport.yAxisFields;
@@ -52,11 +53,14 @@ async function getExportData(client, dashboardFilters, reportId, tenants, flags,
52
53
  export const useExport = (reportId, { CustomDocumentComponent = QuillCustomDocumentComponent, maximumRowsPerPage = 20,
53
54
  // if sectionKeyField is passed, then we will group by that field
54
55
  sectionField, } = {}) => {
55
- const { dashboardFilters } = useContext(DashboardFiltersContext);
56
+ const { dashboardFilters, dashboardCustomFilters } = useContext(DashboardFiltersContext);
56
57
  const { reports } = useContext(ReportsContext);
57
- const { reportFilters } = useContext(ReportFiltersContext);
58
+ const { reportFilters, customReportFilters } = useContext(ReportFiltersContext);
59
+ const { allReportsById } = useAllReports();
60
+ const dashboardReport = allReportsById[reportId ?? ''];
58
61
  const [schemaData] = useContext(SchemaDataContext);
59
62
  const { tenants, flags } = useContext(TenantContext);
63
+ const { getToken } = useContext(FetchContext);
60
64
  const specificDashboardFilters = useMemo(() => {
61
65
  if (!reportId) {
62
66
  return [];
@@ -93,8 +97,12 @@ sectionField, } = {}) => {
93
97
  }
94
98
  setIsCSVLoading(true);
95
99
  const resp = await getExportData(client, specificReportFilters.length > 0
96
- ? specificReportFilters
97
- : specificDashboardFilters, reportId, tenants, flags, schemaData?.customFields);
100
+ ? specificReportFilters.concat(customReportFilters[reportId] ??
101
+ dashboardCustomFilters[dashboardReport?.dashboardName ?? ''] ??
102
+ [])
103
+ : specificDashboardFilters.concat(customReportFilters[reportId] ??
104
+ dashboardCustomFilters[dashboardReport?.dashboardName ?? ''] ??
105
+ []), reportId, getToken, tenants, flags, schemaData?.customFields);
98
106
  downloadCSV({
99
107
  rows: resp.pivot && resp.pivotRows ? resp.pivotRows : resp.rows,
100
108
  fields: resp.pivot && resp.pivotColumns ? resp.pivotColumns : resp.columns,
@@ -107,15 +115,21 @@ sectionField, } = {}) => {
107
115
  const filters = specificReportFilters.length > 0
108
116
  ? specificReportFilters
109
117
  : specificDashboardFilters;
110
- const { report: fetchedReport } = await fetchReport({
118
+ const { report: fetchedReport, error } = await fetchReport({
111
119
  reportId,
112
120
  client,
113
121
  tenants,
114
122
  flags,
115
123
  useReportTask: true,
116
- filters,
124
+ filters: filters.concat((customReportFilters[reportId] ??
125
+ dashboardCustomFilters[dashboardReport?.dashboardName ?? ''])),
117
126
  customFields: schemaData?.customFields,
127
+ getToken,
118
128
  });
129
+ if (error) {
130
+ console.error(error);
131
+ return;
132
+ }
119
133
  const report = fetchedReport;
120
134
  if (report.pivot && report.pivotRows && report.pivotColumns) {
121
135
  report.rows = report.pivotRows;
@@ -1 +1 @@
1
- {"version":3,"file":"useOnClickOutside.d.ts","sourceRoot":"","sources":["../../../src/hooks/useOnClickOutside.tsx"],"names":[],"mappings":"AAEA,QAAA,MAAM,iBAAiB,QAChB,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,WAC3B;IAAE,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI,CAAA;CAAE,cACnB,OAAO,SAqBpB,CAAC;AAEF,eAAO,MAAM,kBAAkB,YAAa,WAAW,KAAG,MAoBzD,CAAC;AAmBF,eAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"useOnClickOutside.d.ts","sourceRoot":"","sources":["../../../src/hooks/useOnClickOutside.tsx"],"names":[],"mappings":"AAEA,QAAA,MAAM,iBAAiB,QAChB,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,WAC3B;IAAE,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI,CAAA;CAAE,cACnB,OAAO,SAqBpB,CAAC;AAEF,eAAO,MAAM,kBAAkB,YAAa,WAAW,KAAG,MAoBzD,CAAC;AAqBF,eAAe,iBAAiB,CAAC"}
@@ -19,5 +19,6 @@ export declare const useQuill: (reportId?: string, pagination?: {
19
19
  fetchMore: (page: number) => void;
20
20
  setSort: (field: string, direction: string) => void;
21
21
  calculate: ((calcType: Calculation) => number | undefined) | (() => undefined);
22
+ resetFilters: () => void;
22
23
  };
23
24
  //# sourceMappingURL=useQuill.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useQuill.d.ts","sourceRoot":"","sources":["../../../src/hooks/useQuill.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EACL,WAAW,EAIZ,MAAM,yBAAyB,CAAC;AAKjC,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,QAAQ,cACR,MAAM,eACJ;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,KAC3D;IACD,IAAI,EAAE,WAAW,GAAG,IAAI,CAAC;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACpD,SAAS,EACL,CAAC,CAAC,QAAQ,EAAE,WAAW,KAAK,MAAM,GAAG,SAAS,CAAC,GAC/C,CAAC,MAAM,SAAS,CAAC,CAAC;CAwNvB,CAAC"}
1
+ {"version":3,"file":"useQuill.d.ts","sourceRoot":"","sources":["../../../src/hooks/useQuill.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EACL,WAAW,EAIZ,MAAM,yBAAyB,CAAC;AAKjC,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,QAAQ,cACR,MAAM,eACJ;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,KAC3D;IACD,IAAI,EAAE,WAAW,GAAG,IAAI,CAAC;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACpD,SAAS,EACL,CAAC,CAAC,QAAQ,EAAE,WAAW,KAAK,MAAM,GAAG,SAAS,CAAC,GAC/C,CAAC,MAAM,SAAS,CAAC,CAAC;IACtB,YAAY,EAAE,MAAM,IAAI,CAAC;CAqO1B,CAAC"}