@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
@@ -13,14 +13,15 @@ const useDashboard = (dashboardName, customFilters) => {
13
13
  //TODO: handle error states
14
14
  // const [error, setError] = useState<any>(null);
15
15
  const [client, isClientLoading] = (0, react_1.useContext)(Context_1.ClientContext);
16
+ const { quillFetchWithToken } = (0, react_1.useContext)(Context_1.FetchContext);
16
17
  const loading = (0, react_1.useMemo)(() => {
17
- return !dashboardName ||
18
+ return (!dashboardName ||
18
19
  isClientLoading ||
19
20
  isDashboardsLoading ||
20
21
  dashboardConfig[dashboardName]?.loading ||
21
22
  (dashboardConfig[dashboardName] &&
22
- !dashboardConfig[dashboardName]?.config.sections);
23
- }, [isClientLoading, dashboardConfig, dashboardName]);
23
+ !dashboardConfig[dashboardName]?.config.sections));
24
+ }, [isClientLoading, dashboardConfig, dashboardName, isDashboardsLoading]);
24
25
  const populatedDashboardFilters = (0, react_1.useMemo)(() => {
25
26
  return dashboardName && dashboardFilters[dashboardName] !== undefined
26
27
  ? Object.values(dashboardFilters[dashboardName] ?? {}).map((f) => f.filter)
@@ -51,9 +52,10 @@ const useDashboard = (dashboardName, customFilters) => {
51
52
  : []),
52
53
  ...(overrideFilters.filters.filter((f) => f.filterType !== 'date_range') ?? []),
53
54
  ], overrideFilters.editedFilterLabel, customFilters);
54
- return;
55
+ if (!overrideFilters.refetchReports)
56
+ return;
55
57
  }
56
- const dashboard = await loadDashboard(overrideDashboardName ?? dashboardName, fetchFromServer, reportAction);
58
+ const updatedDashboard = await loadDashboard(overrideDashboardName ?? dashboardName, fetchFromServer, reportAction);
57
59
  if (!fetchFromServer &&
58
60
  Object.keys(dashboardFilters[dashboardName] ?? {}).length &&
59
61
  // there exists no non date filter that has undefined options
@@ -61,20 +63,32 @@ const useDashboard = (dashboardName, customFilters) => {
61
63
  filter.filter.options)) {
62
64
  return;
63
65
  }
64
- const dateFilter = dashboard?.dateFilter
65
- ? (0, filterProcessing_1.createDefaultDateFilter)(dashboard?.dateFilter, Object.values(dashboard?.sections ?? {}).flat(), dashboardName)
66
+ if (overrideFilters)
67
+ return;
68
+ const dateFilter = updatedDashboard?.dateFilter
69
+ ? (0, filterProcessing_1.createDefaultDateFilter)(updatedDashboard.dateFilter, Object.values(dashboard?.sections ?? {}).flat(), dashboardName)
66
70
  : undefined;
67
71
  // Append dateFilter to the filters unless it's undefined
68
- loadFiltersForDashboard(dashboardName, [...(dateFilter ? [dateFilter] : []), ...(dashboard?.filters ?? [])], undefined, customFilters);
72
+ loadFiltersForDashboard(dashboardName, [
73
+ ...(dateFilter ? [dateFilter] : []),
74
+ ...(updatedDashboard?.filters?.map((filter) => ({
75
+ ...filter,
76
+ query: undefined,
77
+ })) ?? []),
78
+ ], undefined, customFilters);
69
79
  };
70
80
  const setSectionOrder = async (sectionOrder) => {
71
81
  if (!client || !dashboardName)
72
82
  return;
73
83
  if (dashboardConfig[dashboardName]) {
74
84
  const newSections = sectionOrder.reduce((acc, section) => {
75
- acc[section.section] = section.reportOrder.map((id, index) => {
76
- return dashboard?.[dashboardName]?.[id] ? { ...dashboard[dashboardName][id], order: index } : null;
77
- }).filter((r) => r);
85
+ acc[section.section] = section.reportOrder
86
+ .map((id, index) => {
87
+ return dashboard?.[dashboardName]?.[id]
88
+ ? { ...dashboard[dashboardName][id], id: id, order: index }
89
+ : null;
90
+ })
91
+ .filter((r) => r);
78
92
  return acc;
79
93
  }, {});
80
94
  dashboardConfigDispatch({
@@ -99,15 +113,11 @@ const useDashboard = (dashboardName, customFilters) => {
99
113
  sectionOrder,
100
114
  };
101
115
  try {
102
- const response = await fetch(client.queryEndpoint, {
103
- method: 'POST',
104
- headers: {
105
- ...client.queryHeaders,
106
- 'Content-Type': 'application/json',
107
- },
108
- body: JSON.stringify({ metadata: body }),
109
- credentials: client.withCredentials ? 'include' : 'omit',
110
- }).then((res) => res.json());
116
+ const response = await quillFetchWithToken({
117
+ client,
118
+ task: 'set-section-order',
119
+ metadata: body,
120
+ });
111
121
  Object.entries(response?.data?.newIds ?? {}).forEach(([section, newId]) => {
112
122
  dashboardConfigDispatch({
113
123
  type: 'UPDATE_DASHBOARD',
@@ -157,6 +167,8 @@ const useDashboardReports = (dashboardName) => {
157
167
  const updateReport = (data) => {
158
168
  if (!dashboardName)
159
169
  throw new Error('No dashboard name provided for updateReport');
170
+ if (!data.id)
171
+ throw new Error('No report id provided for updateReport');
160
172
  dispatch({
161
173
  type: 'UPDATE_DASHBOARD_ITEM',
162
174
  id: data.id,
@@ -205,19 +217,23 @@ const useAllReports = () => {
205
217
  reportMap[report.id] = report;
206
218
  });
207
219
  return reportMap;
208
- }, [reports]);
220
+ }, [reports, dashboard]);
209
221
  return {
210
222
  allReportsById,
211
223
  };
212
224
  };
213
225
  exports.useAllReports = useAllReports;
214
226
  const useDashboards = () => {
215
- const [, dashboardDispatch] = (0, react_1.useContext)(Context_1.DashboardContext);
227
+ const [dashboardReports, dashboardDispatch] = (0, react_1.useContext)(Context_1.DashboardContext);
216
228
  const { dashboardConfig, isLoading: isDashboardsLoading, dashboardConfigDispatch, } = (0, react_1.useContext)(Context_1.DashboardConfigContext);
217
- const { loadFiltersForDashboard, dispatch: dashboardFiltersDispatch } = (0, react_1.useContext)(Context_1.DashboardFiltersContext);
229
+ const { dashboardFilters, loadFiltersForDashboard, dispatch: dashboardFiltersDispatch, } = (0, react_1.useContext)(Context_1.DashboardFiltersContext);
230
+ const { reportsDispatch } = (0, react_1.useContext)(Context_1.ReportsContext);
231
+ const { reportFiltersDispatch } = (0, react_1.useContext)(Context_1.ReportFiltersContext);
218
232
  const [client, isLoading] = (0, react_1.useContext)(Context_1.ClientContext);
233
+ const { quillFetchWithToken } = (0, react_1.useContext)(Context_1.FetchContext);
219
234
  const dashboards = (0, react_1.useMemo)(() => {
220
- return Object.values(dashboardConfig).map((dashboard) => {
235
+ return Object.values(dashboardConfig)
236
+ .map((dashboard) => {
221
237
  return {
222
238
  name: dashboard.config.name,
223
239
  id: dashboard.config.dashboardId,
@@ -226,7 +242,8 @@ const useDashboards = () => {
226
242
  createdAt: dashboard.config.createdAt,
227
243
  sectionOrder: dashboard.config.sectionOrder,
228
244
  };
229
- });
245
+ })
246
+ .sort((a, b) => (a.createdAt?.getTime() ?? 0) - (b.createdAt?.getTime() ?? 0));
230
247
  }, [dashboardConfig]);
231
248
  const createDashboard = async ({ name, filters, dateFilter, dashboardOwners, }) => {
232
249
  if (!client)
@@ -258,30 +275,28 @@ const useDashboards = () => {
258
275
  tenantKeys: dashboardOwners,
259
276
  };
260
277
  try {
261
- const response = await fetch(client.queryEndpoint, {
262
- method: 'POST',
263
- headers: {
264
- ...client.queryHeaders,
265
- 'Content-Type': 'application/json',
266
- },
267
- body: JSON.stringify({ metadata: body }),
268
- credentials: client.withCredentials ? 'include' : 'omit',
278
+ const updated = await quillFetchWithToken({
279
+ client,
280
+ task: 'edit-dashboard',
281
+ metadata: body,
269
282
  });
270
- const updated = await response.json();
271
283
  dashboardConfigDispatch({
272
284
  type: 'UPDATE_DASHBOARD',
273
285
  id: name,
274
- data: { config: {
286
+ data: {
287
+ config: {
275
288
  ...updated.data.dashboard,
276
- createdAt: new Date(updated.data.dashboard.createdAt)
277
- }, loading: false },
289
+ createdAt: new Date(updated.data.dashboard.createdAt),
290
+ },
291
+ loading: false,
292
+ },
278
293
  });
279
294
  }
280
295
  catch (e) {
281
296
  console.error(e);
282
297
  }
283
298
  };
284
- const updateDashboard = async (name, { newName, filters, dateFilter, customFilters, tenantKeys, sectionOrder, }) => {
299
+ const updateDashboard = async (name, { newName, filters, dateFilter, customFilters, tenantKeys, }) => {
285
300
  if (!client)
286
301
  return;
287
302
  if (tenantKeys?.some((key) => !key)) {
@@ -292,6 +307,7 @@ const useDashboards = () => {
292
307
  type: 'DELETE_DASHBOARD',
293
308
  id: name,
294
309
  });
310
+ const oldFilters = dashboardFilters[name];
295
311
  dashboardFiltersDispatch({
296
312
  type: 'DELETE_DASHBOARD_FILTERS',
297
313
  dashboardName: name,
@@ -304,19 +320,13 @@ const useDashboards = () => {
304
320
  task: 'edit-dashboard',
305
321
  clientId: client.clientId,
306
322
  tenantKeys,
307
- sectionOrder,
308
323
  };
309
324
  try {
310
- const response = await fetch(client.queryEndpoint, {
311
- method: 'POST',
312
- headers: {
313
- ...client.queryHeaders,
314
- 'Content-Type': 'application/json',
315
- },
316
- body: JSON.stringify({ metadata: body }),
317
- credentials: client.withCredentials ? 'include' : 'omit',
325
+ const updated = await quillFetchWithToken({
326
+ client,
327
+ task: 'edit-dashboard',
328
+ metadata: body,
318
329
  });
319
- const updated = await response.json();
320
330
  dashboardConfigDispatch({
321
331
  type: 'UPDATE_DASHBOARD',
322
332
  id: updated.data.dashboard.name,
@@ -324,6 +334,29 @@ const useDashboards = () => {
324
334
  config: {
325
335
  ...dashboard,
326
336
  ...updated.data.dashboard,
337
+ dateFilter: updated.data.dashboard.dateFilter
338
+ ? {
339
+ ...updated.data.dashboard.dateFilter,
340
+ presetOptions: updated.data.dashboard.dateFilter.presetOptions?.map((preset) => ({
341
+ ...preset,
342
+ loopStart: preset.loopStart
343
+ ? new Date(preset.loopStart)
344
+ : undefined,
345
+ loopEnd: preset.loopEnd
346
+ ? new Date(preset.loopEnd)
347
+ : undefined,
348
+ })),
349
+ defaultPresetRanges: updated.data.dashboard.dateFilter.defaultPresetRanges?.map((preset) => ({
350
+ ...preset,
351
+ loopStart: preset.loopStart
352
+ ? new Date(preset.loopStart)
353
+ : undefined,
354
+ loopEnd: preset.loopEnd
355
+ ? new Date(preset.loopEnd)
356
+ : undefined,
357
+ })),
358
+ }
359
+ : undefined,
327
360
  createdAt: new Date(updated.data.dashboard.createdAt),
328
361
  },
329
362
  loading: false,
@@ -334,20 +367,60 @@ const useDashboards = () => {
334
367
  .flat()
335
368
  .forEach((report) => {
336
369
  dashboardDispatch({
337
- type: 'UPDATE_DASHBOARD_ITEM',
370
+ type: 'ADD_DASHBOARD_ITEM',
338
371
  id: report._id,
339
- dashboard: name,
372
+ dashboard: newName,
340
373
  data: {
374
+ ...dashboardReports[report._id],
375
+ id: report._id,
341
376
  filterMap: report.filterMap,
377
+ dashboardName: newName,
378
+ rows: undefined,
342
379
  },
343
380
  });
381
+ dashboardDispatch({
382
+ type: 'REMOVE_DASHBOARD_ITEM',
383
+ id: report._id,
384
+ });
385
+ reportsDispatch({
386
+ type: 'DELETE_REPORT',
387
+ id: report._id,
388
+ });
389
+ reportFiltersDispatch({
390
+ type: 'CLEAR_REPORT_FILTERS',
391
+ id: report._id,
392
+ });
344
393
  });
345
- const range = updated.data.dashboard.dateFilter?.presetRanges?.find((range) => range.value === updated.data.dashboard.dateFilter?.primaryRange?.value) ??
346
- dateRangePickerUtils_1.PRIMARY_RANGE[updated.data.dashboard.dateFilter?.primaryRange?.value ?? 'LAST_30_DAYS'] ??
394
+ if (dashboardFilters[name])
395
+ dashboardFiltersDispatch({
396
+ type: 'ADD_DASHBOARD_FILTERS',
397
+ dashboardName: newName,
398
+ data: dashboardFilters[name],
399
+ });
400
+ const range = (0, dateRangePickerUtils_1.convertPresetOptionsToSelectableList)(updated.data.dashboard.dateFilter?.presetOptions ?? [], updated.data.dashboard.dateFilter?.defaultPresetRanges ?? []).find((option) => option.value ===
401
+ updated.data.dashboard.dateFilter?.primaryRange?.value) ??
402
+ dateRangePickerUtils_1.PRIMARY_RANGE[updated.data.dashboard.dateFilter?.primaryRange?.value ??
403
+ 'LAST_30_DAYS'] ??
347
404
  dateRangePickerUtils_1.PRIMARY_RANGE['LAST_30_DAYS'];
348
405
  const updatedDateFilter = updated.data.dashboard.dateFilter
349
406
  ? {
350
407
  ...updated.data.dashboard.dateFilter,
408
+ presetOptions: updated.data.dashboard.dateFilter.presetOptions?.map((preset) => ({
409
+ ...preset,
410
+ loopStart: preset.loopStart
411
+ ? new Date(preset.loopStart)
412
+ : undefined,
413
+ loopEnd: preset.loopEnd ? new Date(preset.loopEnd) : undefined,
414
+ })),
415
+ defaultPresetRanges: updated.data.dashboard.dateFilter.defaultPresetRanges?.map((preset) => ({
416
+ ...preset,
417
+ loopStart: preset.loopStart
418
+ ? new Date(preset.loopStart)
419
+ : undefined,
420
+ loopEnd: preset.loopEnd
421
+ ? new Date(preset.loopEnd)
422
+ : undefined,
423
+ })),
351
424
  dashboardName: updated.data.dashboard.name,
352
425
  preset: updated.data.dashboard.dateFilter.primaryRange,
353
426
  filterType: Filter_1.DashboardFilterType.Date,
@@ -368,10 +441,35 @@ const useDashboards = () => {
368
441
  : new Date(range.endDate), // when range.endDate is a string
369
442
  }
370
443
  : undefined;
371
- loadFiltersForDashboard(updated.data.dashboard.name, [
444
+ const newFilters = [
372
445
  ...(updatedDateFilter ? [updatedDateFilter] : []),
373
- ...(updated.data.dashboard.filters ?? []),
374
- ], undefined, customFilters);
446
+ ...(updated.data.dashboard.filters.map((f) => ({
447
+ ...f,
448
+ selectedValue: oldFilters?.[f.label]?.filter?.selectedValue,
449
+ values: oldFilters?.[f.label]?.filter?.values,
450
+ operator: oldFilters?.[f.label]?.filter?.operator,
451
+ })) ?? []),
452
+ ].map((f) => {
453
+ if (f.filterType === Filter_1.DashboardFilterType.Date) {
454
+ return {
455
+ ...f,
456
+ startDate: dashboardFilters[name]?.[f.label]?.filter?.startDate,
457
+ endDate: dashboardFilters[name]?.[f.label]?.filter?.endDate,
458
+ preset: dashboardFilters[name]?.[f.label]?.filter?.preset,
459
+ };
460
+ }
461
+ else {
462
+ return {
463
+ ...f,
464
+ selectedValue: dashboardFilters[name]?.[f.label]?.filter?.selectedValue,
465
+ };
466
+ }
467
+ });
468
+ dashboardFiltersDispatch({
469
+ type: 'DELETE_DASHBOARD_FILTERS',
470
+ dashboardName: name,
471
+ });
472
+ loadFiltersForDashboard(updated.data.dashboard.name, newFilters, undefined, customFilters);
375
473
  }
376
474
  catch (e) {
377
475
  console.error(e);
@@ -380,21 +478,14 @@ const useDashboards = () => {
380
478
  const deleteDashboard = async (name) => {
381
479
  if (!client)
382
480
  return;
383
- await fetch(client.queryEndpoint, {
384
- method: 'POST',
385
- headers: {
386
- ...client.queryHeaders,
387
- 'Content-Type': 'application/json',
481
+ await quillFetchWithToken({
482
+ client,
483
+ task: 'delete-dashboard',
484
+ metadata: {
485
+ clientId: client.clientId,
486
+ databaseType: client.databaseType,
487
+ name,
388
488
  },
389
- body: JSON.stringify({
390
- metadata: {
391
- task: 'delete-dashboard',
392
- clientId: client.clientId,
393
- databaseType: client.databaseType,
394
- name,
395
- },
396
- }),
397
- credentials: client.withCredentials ? 'include' : 'omit',
398
489
  });
399
490
  dashboardConfigDispatch({
400
491
  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"}
@@ -15,40 +15,41 @@ const react_dom_1 = require("react-dom");
15
15
  const report_1 = require("../utils/report");
16
16
  const jspdf_1 = __importDefault(require("jspdf"));
17
17
  const valueFormatter_1 = require("../utils/valueFormatter");
18
- async function getExportData(client, dashboardFilters, reportId, tenants, flags, customFields) {
18
+ const useDashboard_1 = require("./useDashboard");
19
+ async function getExportData(client, dashboardFilters, reportId, getToken, tenants, flags, customFields) {
19
20
  const minimalFilters = Object.values(dashboardFilters).length
20
21
  ? Object.values(dashboardFilters).map((filter) => {
21
22
  const newFilter = { ...filter };
22
23
  if (newFilter.filterType === 'date_range') {
23
24
  delete newFilter['field'];
24
25
  delete newFilter['selectedValue'];
26
+ delete newFilter['presetOptions'];
25
27
  }
26
28
  delete newFilter['options'];
27
29
  return newFilter;
28
30
  })
29
31
  : [];
30
- const hostedBody = {
32
+ const fetchResp = await (0, dataFetcher_1.quillFetch)({
33
+ client,
34
+ task: 'item',
31
35
  metadata: {
32
36
  dashboardItemId: reportId,
33
37
  clientId: client.publicKey,
34
- task: 'item',
35
38
  databaseType: client?.databaseType,
36
39
  filters: minimalFilters,
37
40
  useNewNodeSql: true,
38
41
  tenants,
39
42
  flags,
40
43
  },
41
- };
42
- const cloudBody = {
43
- id: reportId,
44
- useNewNodeSql: true,
45
- };
46
- const resp = await (0, dataFetcher_1.getData)(client, 'itempost', 'same-origin', hostedBody, cloudBody);
44
+ getToken,
45
+ });
46
+ const resp = await (0, dataFetcher_1.parseFetchResponse)(client, 'item', fetchResp, getToken);
47
47
  const cleanedReport = await (0, dashboard_1.cleanDashboardItem)({
48
48
  item: resp,
49
49
  dashboardFilters,
50
50
  client,
51
51
  customFields,
52
+ getToken,
52
53
  });
53
54
  if (cleanedReport.chartType === 'table' && cleanedReport.pivot) {
54
55
  cleanedReport.columns = cleanedReport.yAxisFields;
@@ -58,11 +59,14 @@ async function getExportData(client, dashboardFilters, reportId, tenants, flags,
58
59
  const useExport = (reportId, { CustomDocumentComponent = QuillCustomDocumentComponent, maximumRowsPerPage = 20,
59
60
  // if sectionKeyField is passed, then we will group by that field
60
61
  sectionField, } = {}) => {
61
- const { dashboardFilters } = (0, react_1.useContext)(Context_1.DashboardFiltersContext);
62
+ const { dashboardFilters, dashboardCustomFilters } = (0, react_1.useContext)(Context_1.DashboardFiltersContext);
62
63
  const { reports } = (0, react_1.useContext)(Context_1.ReportsContext);
63
- const { reportFilters } = (0, react_1.useContext)(Context_1.ReportFiltersContext);
64
+ const { reportFilters, customReportFilters } = (0, react_1.useContext)(Context_1.ReportFiltersContext);
65
+ const { allReportsById } = (0, useDashboard_1.useAllReports)();
66
+ const dashboardReport = allReportsById[reportId ?? ''];
64
67
  const [schemaData] = (0, react_1.useContext)(Context_1.SchemaDataContext);
65
68
  const { tenants, flags } = (0, react_1.useContext)(Context_1.TenantContext);
69
+ const { getToken } = (0, react_1.useContext)(Context_1.FetchContext);
66
70
  const specificDashboardFilters = (0, react_1.useMemo)(() => {
67
71
  if (!reportId) {
68
72
  return [];
@@ -99,8 +103,12 @@ sectionField, } = {}) => {
99
103
  }
100
104
  setIsCSVLoading(true);
101
105
  const resp = await getExportData(client, specificReportFilters.length > 0
102
- ? specificReportFilters
103
- : specificDashboardFilters, reportId, tenants, flags, schemaData?.customFields);
106
+ ? specificReportFilters.concat(customReportFilters[reportId] ??
107
+ dashboardCustomFilters[dashboardReport?.dashboardName ?? ''] ??
108
+ [])
109
+ : specificDashboardFilters.concat(customReportFilters[reportId] ??
110
+ dashboardCustomFilters[dashboardReport?.dashboardName ?? ''] ??
111
+ []), reportId, getToken, tenants, flags, schemaData?.customFields);
104
112
  (0, csv_1.downloadCSV)({
105
113
  rows: resp.pivot && resp.pivotRows ? resp.pivotRows : resp.rows,
106
114
  fields: resp.pivot && resp.pivotColumns ? resp.pivotColumns : resp.columns,
@@ -113,15 +121,21 @@ sectionField, } = {}) => {
113
121
  const filters = specificReportFilters.length > 0
114
122
  ? specificReportFilters
115
123
  : specificDashboardFilters;
116
- const { report: fetchedReport } = await (0, report_1.fetchReport)({
124
+ const { report: fetchedReport, error } = await (0, report_1.fetchReport)({
117
125
  reportId,
118
126
  client,
119
127
  tenants,
120
128
  flags,
121
129
  useReportTask: true,
122
- filters,
130
+ filters: filters.concat((customReportFilters[reportId] ??
131
+ dashboardCustomFilters[dashboardReport?.dashboardName ?? ''])),
123
132
  customFields: schemaData?.customFields,
133
+ getToken,
124
134
  });
135
+ if (error) {
136
+ console.error(error);
137
+ return;
138
+ }
125
139
  const report = fetchedReport;
126
140
  if (report.pivot && report.pivotRows && report.pivotColumns) {
127
141
  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"}
@@ -12,8 +12,12 @@ const useDashboard_1 = require("./useDashboard");
12
12
  const useQuill = (reportId, pagination) => {
13
13
  const { reports, reportsDispatch, fetchIndividualReport } = (0, react_1.useContext)(Context_1.ReportsContext);
14
14
  const { allReportsById } = (0, useDashboard_1.useAllReports)();
15
- const { dashboardFilters } = (0, react_1.useContext)(Context_1.DashboardFiltersContext);
16
- const { reportFilters, reportFiltersDispatch } = (0, react_1.useContext)(Context_1.ReportFiltersContext);
15
+ const { getToken } = (0, react_1.useContext)(Context_1.FetchContext);
16
+ const dashboardReport = (0, react_1.useMemo)(() => {
17
+ return allReportsById[reportId ?? ''];
18
+ }, [allReportsById[reportId ?? '']]);
19
+ const { dashboardFilters, dashboardCustomFilters } = (0, react_1.useContext)(Context_1.DashboardFiltersContext);
20
+ const { reportFilters, customReportFilters, reportFiltersDispatch } = (0, react_1.useContext)(Context_1.ReportFiltersContext);
17
21
  const specificReportFilters = (0, react_1.useMemo)(() => {
18
22
  if (!reportId)
19
23
  return null;
@@ -26,14 +30,10 @@ const useQuill = (reportId, pagination) => {
26
30
  const [error, setError] = (0, react_1.useState)(undefined);
27
31
  const [previousPage, setPreviousPage] = (0, react_1.useState)(0);
28
32
  const processedReport = (0, react_1.useMemo)(() => {
29
- return reportId && (allReportsById[reportId])
33
+ return reportId && allReportsById[reportId]
30
34
  ? (0, report_1.convertInternalReportToReport)((0, merge_1.mergeComparisonRange)(allReportsById[reportId]), specificReportFilters ?? [], 'useQuill')
31
35
  : undefined;
32
- }, [
33
- reportId,
34
- reportId && allReportsById[reportId],
35
- specificReportFilters,
36
- ]);
36
+ }, [reportId, reportId && allReportsById[reportId], specificReportFilters]);
37
37
  const [additionalProcessing, setAdditionProcessing] = (0, react_1.useState)(pagination
38
38
  ? {
39
39
  page: pagination,
@@ -97,6 +97,7 @@ const useQuill = (reportId, pagination) => {
97
97
  processing: updatedProcessing,
98
98
  filters: reportFilters[reportId],
99
99
  customFields: schemaData.customFields,
100
+ getToken,
100
101
  });
101
102
  if (paginatedRows.error) {
102
103
  throw new Error('Error fetching chart');
@@ -149,7 +150,9 @@ const useQuill = (reportId, pagination) => {
149
150
  initiator: 'useQuill',
150
151
  fetchRows: true,
151
152
  dashboardFilters: specificReportFilters || [],
152
- customFilters: [],
153
+ customFilters: customReportFilters[curReportId] ??
154
+ dashboardCustomFilters[dashboardReport?.dashboardName ?? ''] ??
155
+ [],
153
156
  additionalProcessing,
154
157
  customFields: schemaData.customFields,
155
158
  });
@@ -187,15 +190,22 @@ const useQuill = (reportId, pagination) => {
187
190
  });
188
191
  }
189
192
  }, [isClientLoading, reportId, specificReportFilters]);
193
+ const resetFilters = () => {
194
+ if (reportId) {
195
+ reportFiltersDispatch({
196
+ type: 'CLEAR_REPORT_FILTERS',
197
+ id: reportId,
198
+ });
199
+ }
200
+ };
190
201
  return {
191
202
  data: processedReport ?? null,
192
- loading: !reportId ||
193
- allReportsById[reportId]?.loadingRows ||
194
- loading,
203
+ loading: !reportId || allReportsById[reportId]?.loadingRows || loading,
195
204
  error,
196
205
  fetchMore,
197
206
  setSort,
198
207
  calculate: calculateFunction,
208
+ resetFilters,
199
209
  };
200
210
  };
201
211
  exports.useQuill = useQuill;
@@ -1,5 +1,5 @@
1
1
  import { QuillReportInternal } from '../models/Report';
2
- import { DashboardFilter, Filter } from '../models/Filter';
2
+ import { DashboardFilter, InternalFilter } from '../models/Filter';
3
3
  export declare const useReports: () => {
4
4
  reloadFilteredReports: (predicate: (report: QuillReportInternal) => boolean) => void;
5
5
  };
@@ -7,6 +7,6 @@ export declare const useReport: (reportId: string) => {
7
7
  reload: (overrideFilters: {
8
8
  filters: DashboardFilter[];
9
9
  editedFilterLabel?: string;
10
- }, customFilters?: Filter[], initiator?: "Chart" | "useQuill" | "useExport") => Promise<void>;
10
+ }, customFilters?: InternalFilter[], initiator?: "Chart" | "useQuill" | "useExport") => Promise<void>;
11
11
  };
12
12
  //# sourceMappingURL=useReport.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useReport.d.ts","sourceRoot":"","sources":["../../../src/hooks/useReport.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAuB,eAAe,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAGhF,eAAO,MAAM,UAAU;uCAIR,CAAC,MAAM,EAAE,mBAAmB,KAAK,OAAO;CAmBtD,CAAC;AAIF,eAAO,MAAM,SAAS,aAAc,MAAM;8BAIrB;QACf,OAAO,EAAE,eAAe,EAAE,CAAC;QAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;KAC5B,kBACc,MAAM,EAAE,cACZ,OAAO,GAAG,UAAU,GAAG,WAAW;CA4BhD,CAAC"}
1
+ {"version":3,"file":"useReport.d.ts","sourceRoot":"","sources":["../../../src/hooks/useReport.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGnE,eAAO,MAAM,UAAU;uCAIR,CAAC,MAAM,EAAE,mBAAmB,KAAK,OAAO;CAmBtD,CAAC;AAIF,eAAO,MAAM,SAAS,aAAc,MAAM;8BAIrB;QACf,OAAO,EAAE,eAAe,EAAE,CAAC;QAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;KAC5B,kBACc,cAAc,EAAE,cACpB,OAAO,GAAG,UAAU,GAAG,WAAW;CA4BhD,CAAC"}
@@ -3,13 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.useReport = exports.useReports = void 0;
4
4
  const react_1 = require("react");
5
5
  const Context_1 = require("../Context");
6
- const Filter_1 = require("../models/Filter");
7
6
  const useDashboard_1 = require("./useDashboard");
8
7
  const useReports = () => {
9
8
  const [dashboard, dispatch] = (0, react_1.useContext)(Context_1.DashboardContext);
10
9
  const reloadFilteredReports = (predicate) => {
11
- for (const dashboardName in Object.keys(dashboard)) {
12
- for (const id in Object.keys(dashboard[dashboardName])) {
10
+ for (const dashboardName of Object.keys(dashboard)) {
11
+ for (const id of Object.keys(dashboard[dashboardName])) {
13
12
  if (predicate(dashboard[dashboardName][id])) {
14
13
  dispatch({
15
14
  type: 'UPDATE_DASHBOARD_ITEM',
@@ -44,7 +43,7 @@ const useReport = (reportId) => {
44
43
  ]
45
44
  : []),
46
45
  ...(overrideFilters.filters.filter((f) => f.filterType !== 'date_range') ?? []),
47
- ], overrideFilters.editedFilterLabel, customFilters.map(Filter_1.convertCustomFilter));
46
+ ], overrideFilters.editedFilterLabel, customFilters);
48
47
  };
49
48
  return { reload };
50
49
  };
@@ -1 +1 @@
1
- {"version":3,"file":"useVirtualTables.d.ts","sourceRoot":"","sources":["../../../src/hooks/useVirtualTables.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEzC,eAAO,MAAM,gBAAgB;;;;;;wBAOS,GAAG,WAAW,MAAM;;;;;;;0BAyDf,GAAG,UAAU,KAAK,EAAE;;;;;;;CA6D9D,CAAC"}
1
+ {"version":3,"file":"useVirtualTables.d.ts","sourceRoot":"","sources":["../../../src/hooks/useVirtualTables.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEzC,eAAO,MAAM,gBAAgB;;;;;;wBAQS,GAAG,WAAW,MAAM;;;;;;;0BAyDf,GAAG,UAAU,KAAK,EAAE;;;;;;;CAsD9D,CAAC"}