@quillsql/react 2.12.52 → 2.13.0

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 (263) hide show
  1. package/dist/cjs/Chart.d.ts.map +1 -1
  2. package/dist/cjs/Chart.js +5 -3
  3. package/dist/cjs/ChartBuilder.d.ts +10 -3
  4. package/dist/cjs/ChartBuilder.d.ts.map +1 -1
  5. package/dist/cjs/ChartBuilder.js +62 -26
  6. package/dist/cjs/ChartEditor.d.ts +3 -1
  7. package/dist/cjs/ChartEditor.d.ts.map +1 -1
  8. package/dist/cjs/ChartEditor.js +74 -16
  9. package/dist/cjs/Context.d.ts +17 -6
  10. package/dist/cjs/Context.d.ts.map +1 -1
  11. package/dist/cjs/Context.js +138 -73
  12. package/dist/cjs/Dashboard.d.ts +8 -4
  13. package/dist/cjs/Dashboard.d.ts.map +1 -1
  14. package/dist/cjs/Dashboard.js +146 -367
  15. package/dist/cjs/DateRangePicker/QuillDateRangePicker.d.ts.map +1 -1
  16. package/dist/cjs/DateRangePicker/QuillDateRangePicker.js +20 -14
  17. package/dist/cjs/DateRangePicker/dateRangePickerUtils.d.ts +1 -0
  18. package/dist/cjs/DateRangePicker/dateRangePickerUtils.d.ts.map +1 -1
  19. package/dist/cjs/DateRangePicker/dateRangePickerUtils.js +1 -1
  20. package/dist/cjs/QuillProvider.js +1 -1
  21. package/dist/cjs/ReportBuilder.d.ts +8 -12
  22. package/dist/cjs/ReportBuilder.d.ts.map +1 -1
  23. package/dist/cjs/ReportBuilder.js +163 -83
  24. package/dist/cjs/SQLEditor.d.ts +8 -1
  25. package/dist/cjs/SQLEditor.d.ts.map +1 -1
  26. package/dist/cjs/SQLEditor.js +81 -28
  27. package/dist/cjs/Table.d.ts.map +1 -1
  28. package/dist/cjs/Table.js +6 -3
  29. package/dist/cjs/assets/AdjustmentsIcon.d.ts +5 -0
  30. package/dist/cjs/assets/AdjustmentsIcon.d.ts.map +1 -0
  31. package/dist/cjs/assets/AdjustmentsIcon.js +5 -0
  32. package/dist/cjs/assets/ArrowDownHeadIcon.d.ts.map +1 -1
  33. package/dist/cjs/components/Chart/ChartError.js +2 -2
  34. package/dist/cjs/components/Dashboard/DashboardFilter.d.ts +4 -3
  35. package/dist/cjs/components/Dashboard/DashboardFilter.d.ts.map +1 -1
  36. package/dist/cjs/components/Dashboard/DashboardFilter.js +12 -12
  37. package/dist/cjs/components/Dashboard/DashboardTemplate.d.ts +2 -2
  38. package/dist/cjs/components/Dashboard/DashboardTemplate.d.ts.map +1 -1
  39. package/dist/cjs/components/Dashboard/DataLoader.d.ts +11 -5
  40. package/dist/cjs/components/Dashboard/DataLoader.d.ts.map +1 -1
  41. package/dist/cjs/components/Dashboard/DataLoader.js +91 -32
  42. package/dist/cjs/components/Dashboard/TableComponent.d.ts +2 -1
  43. package/dist/cjs/components/Dashboard/TableComponent.d.ts.map +1 -1
  44. package/dist/cjs/components/Dashboard/TableComponent.js +10 -3
  45. package/dist/cjs/components/Dashboard/util.d.ts +2 -2
  46. package/dist/cjs/components/Dashboard/util.d.ts.map +1 -1
  47. package/dist/cjs/components/Dashboard/util.js +2 -2
  48. package/dist/cjs/components/QuillMultiSelect.d.ts.map +1 -1
  49. package/dist/cjs/components/QuillMultiSelect.js +18 -13
  50. package/dist/cjs/components/QuillMultiSelectWithCombo.d.ts.map +1 -1
  51. package/dist/cjs/components/QuillMultiSelectWithCombo.js +67 -45
  52. package/dist/cjs/components/QuillSelect.d.ts +1 -1
  53. package/dist/cjs/components/QuillSelect.d.ts.map +1 -1
  54. package/dist/cjs/components/QuillSelect.js +29 -7
  55. package/dist/cjs/components/QuillSelectWithCombo.d.ts +1 -1
  56. package/dist/cjs/components/QuillSelectWithCombo.d.ts.map +1 -1
  57. package/dist/cjs/components/QuillSelectWithCombo.js +47 -26
  58. package/dist/cjs/components/QuillTable.d.ts +3 -2
  59. package/dist/cjs/components/QuillTable.d.ts.map +1 -1
  60. package/dist/cjs/components/QuillTable.js +32 -19
  61. package/dist/cjs/components/ReportBuilder/AddLimitPopover.d.ts +2 -1
  62. package/dist/cjs/components/ReportBuilder/AddLimitPopover.d.ts.map +1 -1
  63. package/dist/cjs/components/ReportBuilder/AddLimitPopover.js +2 -2
  64. package/dist/cjs/components/ReportBuilder/AddSortPopover.d.ts +2 -1
  65. package/dist/cjs/components/ReportBuilder/AddSortPopover.d.ts.map +1 -1
  66. package/dist/cjs/components/ReportBuilder/AddSortPopover.js +2 -2
  67. package/dist/cjs/components/ReportBuilder/FilterModal.d.ts +2 -1
  68. package/dist/cjs/components/ReportBuilder/FilterModal.d.ts.map +1 -1
  69. package/dist/cjs/components/ReportBuilder/FilterModal.js +17 -4
  70. package/dist/cjs/components/ReportBuilder/ui.d.ts +13 -8
  71. package/dist/cjs/components/ReportBuilder/ui.d.ts.map +1 -1
  72. package/dist/cjs/components/ReportBuilder/ui.js +15 -24
  73. package/dist/cjs/components/UiComponents.d.ts +17 -9
  74. package/dist/cjs/components/UiComponents.d.ts.map +1 -1
  75. package/dist/cjs/components/UiComponents.js +30 -24
  76. package/dist/cjs/hooks/useAstToFilterTree.d.ts +2 -2
  77. package/dist/cjs/hooks/useAstToFilterTree.d.ts.map +1 -1
  78. package/dist/cjs/hooks/useDashboard.d.ts +13 -5
  79. package/dist/cjs/hooks/useDashboard.d.ts.map +1 -1
  80. package/dist/cjs/hooks/useDashboard.js +158 -70
  81. package/dist/cjs/hooks/useExport.d.ts.map +1 -1
  82. package/dist/cjs/hooks/useExport.js +9 -3
  83. package/dist/cjs/hooks/useQuill.d.ts.map +1 -1
  84. package/dist/cjs/hooks/useQuill.js +15 -15
  85. package/dist/cjs/hooks/useVirtualTables.d.ts +12 -3
  86. package/dist/cjs/hooks/useVirtualTables.d.ts.map +1 -1
  87. package/dist/cjs/hooks/useVirtualTables.js +105 -1
  88. package/dist/cjs/internals/ReportBuilder/PivotForm.d.ts +3 -1
  89. package/dist/cjs/internals/ReportBuilder/PivotForm.d.ts.map +1 -1
  90. package/dist/cjs/internals/ReportBuilder/PivotForm.js +9 -9
  91. package/dist/cjs/internals/ReportBuilder/PivotList.d.ts.map +1 -1
  92. package/dist/cjs/internals/ReportBuilder/PivotList.js +21 -15
  93. package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts +3 -2
  94. package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
  95. package/dist/cjs/internals/ReportBuilder/PivotModal.js +9 -9
  96. package/dist/cjs/models/Client.d.ts +16 -2
  97. package/dist/cjs/models/Client.d.ts.map +1 -1
  98. package/dist/cjs/models/Dashboard.d.ts +1 -1
  99. package/dist/cjs/models/Dashboard.d.ts.map +1 -1
  100. package/dist/cjs/models/Filter.d.ts +4 -3
  101. package/dist/cjs/models/Filter.d.ts.map +1 -1
  102. package/dist/cjs/models/Filter.js +38 -1
  103. package/dist/cjs/utils/astProcessing.d.ts +3 -3
  104. package/dist/cjs/utils/astProcessing.d.ts.map +1 -1
  105. package/dist/cjs/utils/client.d.ts.map +1 -1
  106. package/dist/cjs/utils/client.js +2 -7
  107. package/dist/cjs/utils/dashboard.d.ts +5 -5
  108. package/dist/cjs/utils/dashboard.d.ts.map +1 -1
  109. package/dist/cjs/utils/dashboard.js +90 -9
  110. package/dist/cjs/utils/dataFetcher.d.ts +4 -4
  111. package/dist/cjs/utils/dataFetcher.d.ts.map +1 -1
  112. package/dist/cjs/utils/dataFetcher.js +1 -1
  113. package/dist/cjs/utils/filterProcessing.d.ts.map +1 -1
  114. package/dist/cjs/utils/filterProcessing.js +2 -8
  115. package/dist/cjs/utils/paginationProcessing.js +1 -1
  116. package/dist/cjs/utils/pivotConstructor.d.ts +2 -2
  117. package/dist/cjs/utils/pivotConstructor.d.ts.map +1 -1
  118. package/dist/cjs/utils/pivotConstructor.js +1 -1
  119. package/dist/cjs/utils/pivotProcessing.d.ts.map +1 -1
  120. package/dist/cjs/utils/pivotProcessing.js +6 -2
  121. package/dist/cjs/utils/queryConstructor.d.ts.map +1 -1
  122. package/dist/cjs/utils/queryConstructor.js +12 -9
  123. package/dist/cjs/utils/report.d.ts +6 -5
  124. package/dist/cjs/utils/report.d.ts.map +1 -1
  125. package/dist/cjs/utils/report.js +71 -25
  126. package/dist/cjs/utils/schema.d.ts +3 -3
  127. package/dist/cjs/utils/schema.d.ts.map +1 -1
  128. package/dist/cjs/utils/schema.js +39 -35
  129. package/dist/cjs/utils/tableProcessing.d.ts +18 -11
  130. package/dist/cjs/utils/tableProcessing.d.ts.map +1 -1
  131. package/dist/cjs/utils/tableProcessing.js +44 -23
  132. package/dist/esm/Chart.d.ts.map +1 -1
  133. package/dist/esm/Chart.js +6 -4
  134. package/dist/esm/ChartBuilder.d.ts +10 -3
  135. package/dist/esm/ChartBuilder.d.ts.map +1 -1
  136. package/dist/esm/ChartBuilder.js +59 -26
  137. package/dist/esm/ChartEditor.d.ts +3 -1
  138. package/dist/esm/ChartEditor.d.ts.map +1 -1
  139. package/dist/esm/ChartEditor.js +76 -18
  140. package/dist/esm/Context.d.ts +17 -6
  141. package/dist/esm/Context.d.ts.map +1 -1
  142. package/dist/esm/Context.js +139 -74
  143. package/dist/esm/Dashboard.d.ts +8 -4
  144. package/dist/esm/Dashboard.d.ts.map +1 -1
  145. package/dist/esm/Dashboard.js +146 -367
  146. package/dist/esm/DateRangePicker/QuillDateRangePicker.d.ts.map +1 -1
  147. package/dist/esm/DateRangePicker/QuillDateRangePicker.js +21 -15
  148. package/dist/esm/DateRangePicker/dateRangePickerUtils.d.ts +1 -0
  149. package/dist/esm/DateRangePicker/dateRangePickerUtils.d.ts.map +1 -1
  150. package/dist/esm/DateRangePicker/dateRangePickerUtils.js +1 -1
  151. package/dist/esm/QuillProvider.js +1 -1
  152. package/dist/esm/ReportBuilder.d.ts +8 -12
  153. package/dist/esm/ReportBuilder.d.ts.map +1 -1
  154. package/dist/esm/ReportBuilder.js +167 -87
  155. package/dist/esm/SQLEditor.d.ts +8 -1
  156. package/dist/esm/SQLEditor.d.ts.map +1 -1
  157. package/dist/esm/SQLEditor.js +84 -31
  158. package/dist/esm/Table.d.ts.map +1 -1
  159. package/dist/esm/Table.js +7 -4
  160. package/dist/esm/assets/AdjustmentsIcon.d.ts +5 -0
  161. package/dist/esm/assets/AdjustmentsIcon.d.ts.map +1 -0
  162. package/dist/esm/assets/AdjustmentsIcon.js +3 -0
  163. package/dist/esm/assets/ArrowDownHeadIcon.d.ts.map +1 -1
  164. package/dist/esm/components/Chart/ChartError.js +2 -2
  165. package/dist/esm/components/Dashboard/DashboardFilter.d.ts +4 -3
  166. package/dist/esm/components/Dashboard/DashboardFilter.d.ts.map +1 -1
  167. package/dist/esm/components/Dashboard/DashboardFilter.js +12 -12
  168. package/dist/esm/components/Dashboard/DashboardTemplate.d.ts +2 -2
  169. package/dist/esm/components/Dashboard/DashboardTemplate.d.ts.map +1 -1
  170. package/dist/esm/components/Dashboard/DataLoader.d.ts +11 -5
  171. package/dist/esm/components/Dashboard/DataLoader.d.ts.map +1 -1
  172. package/dist/esm/components/Dashboard/DataLoader.js +94 -35
  173. package/dist/esm/components/Dashboard/TableComponent.d.ts +2 -1
  174. package/dist/esm/components/Dashboard/TableComponent.d.ts.map +1 -1
  175. package/dist/esm/components/Dashboard/TableComponent.js +10 -3
  176. package/dist/esm/components/Dashboard/util.d.ts +2 -2
  177. package/dist/esm/components/Dashboard/util.d.ts.map +1 -1
  178. package/dist/esm/components/Dashboard/util.js +2 -2
  179. package/dist/esm/components/QuillMultiSelect.d.ts.map +1 -1
  180. package/dist/esm/components/QuillMultiSelect.js +19 -14
  181. package/dist/esm/components/QuillMultiSelectWithCombo.d.ts.map +1 -1
  182. package/dist/esm/components/QuillMultiSelectWithCombo.js +68 -46
  183. package/dist/esm/components/QuillSelect.d.ts +1 -1
  184. package/dist/esm/components/QuillSelect.d.ts.map +1 -1
  185. package/dist/esm/components/QuillSelect.js +30 -8
  186. package/dist/esm/components/QuillSelectWithCombo.d.ts +1 -1
  187. package/dist/esm/components/QuillSelectWithCombo.d.ts.map +1 -1
  188. package/dist/esm/components/QuillSelectWithCombo.js +48 -27
  189. package/dist/esm/components/QuillTable.d.ts +3 -2
  190. package/dist/esm/components/QuillTable.d.ts.map +1 -1
  191. package/dist/esm/components/QuillTable.js +32 -19
  192. package/dist/esm/components/ReportBuilder/AddLimitPopover.d.ts +2 -1
  193. package/dist/esm/components/ReportBuilder/AddLimitPopover.d.ts.map +1 -1
  194. package/dist/esm/components/ReportBuilder/AddLimitPopover.js +2 -2
  195. package/dist/esm/components/ReportBuilder/AddSortPopover.d.ts +2 -1
  196. package/dist/esm/components/ReportBuilder/AddSortPopover.d.ts.map +1 -1
  197. package/dist/esm/components/ReportBuilder/AddSortPopover.js +2 -2
  198. package/dist/esm/components/ReportBuilder/FilterModal.d.ts +2 -1
  199. package/dist/esm/components/ReportBuilder/FilterModal.d.ts.map +1 -1
  200. package/dist/esm/components/ReportBuilder/FilterModal.js +17 -4
  201. package/dist/esm/components/ReportBuilder/ui.d.ts +13 -8
  202. package/dist/esm/components/ReportBuilder/ui.d.ts.map +1 -1
  203. package/dist/esm/components/ReportBuilder/ui.js +14 -19
  204. package/dist/esm/components/UiComponents.d.ts +17 -9
  205. package/dist/esm/components/UiComponents.d.ts.map +1 -1
  206. package/dist/esm/components/UiComponents.js +30 -24
  207. package/dist/esm/hooks/useAstToFilterTree.d.ts +2 -2
  208. package/dist/esm/hooks/useAstToFilterTree.d.ts.map +1 -1
  209. package/dist/esm/hooks/useDashboard.d.ts +13 -5
  210. package/dist/esm/hooks/useDashboard.d.ts.map +1 -1
  211. package/dist/esm/hooks/useDashboard.js +158 -73
  212. package/dist/esm/hooks/useExport.d.ts.map +1 -1
  213. package/dist/esm/hooks/useExport.js +10 -4
  214. package/dist/esm/hooks/useQuill.d.ts.map +1 -1
  215. package/dist/esm/hooks/useQuill.js +17 -17
  216. package/dist/esm/hooks/useVirtualTables.d.ts +12 -3
  217. package/dist/esm/hooks/useVirtualTables.d.ts.map +1 -1
  218. package/dist/esm/hooks/useVirtualTables.js +106 -2
  219. package/dist/esm/internals/ReportBuilder/PivotForm.d.ts +3 -1
  220. package/dist/esm/internals/ReportBuilder/PivotForm.d.ts.map +1 -1
  221. package/dist/esm/internals/ReportBuilder/PivotForm.js +9 -9
  222. package/dist/esm/internals/ReportBuilder/PivotList.d.ts.map +1 -1
  223. package/dist/esm/internals/ReportBuilder/PivotList.js +21 -15
  224. package/dist/esm/internals/ReportBuilder/PivotModal.d.ts +3 -2
  225. package/dist/esm/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
  226. package/dist/esm/internals/ReportBuilder/PivotModal.js +9 -9
  227. package/dist/esm/models/Client.d.ts +16 -2
  228. package/dist/esm/models/Client.d.ts.map +1 -1
  229. package/dist/esm/models/Dashboard.d.ts +1 -1
  230. package/dist/esm/models/Dashboard.d.ts.map +1 -1
  231. package/dist/esm/models/Filter.d.ts +4 -3
  232. package/dist/esm/models/Filter.d.ts.map +1 -1
  233. package/dist/esm/models/Filter.js +36 -0
  234. package/dist/esm/utils/astProcessing.d.ts +3 -3
  235. package/dist/esm/utils/astProcessing.d.ts.map +1 -1
  236. package/dist/esm/utils/client.d.ts.map +1 -1
  237. package/dist/esm/utils/client.js +2 -7
  238. package/dist/esm/utils/dashboard.d.ts +5 -5
  239. package/dist/esm/utils/dashboard.d.ts.map +1 -1
  240. package/dist/esm/utils/dashboard.js +90 -9
  241. package/dist/esm/utils/dataFetcher.d.ts +4 -4
  242. package/dist/esm/utils/dataFetcher.d.ts.map +1 -1
  243. package/dist/esm/utils/dataFetcher.js +1 -1
  244. package/dist/esm/utils/filterProcessing.d.ts.map +1 -1
  245. package/dist/esm/utils/filterProcessing.js +2 -8
  246. package/dist/esm/utils/paginationProcessing.js +1 -1
  247. package/dist/esm/utils/pivotConstructor.d.ts +2 -2
  248. package/dist/esm/utils/pivotConstructor.d.ts.map +1 -1
  249. package/dist/esm/utils/pivotConstructor.js +1 -1
  250. package/dist/esm/utils/pivotProcessing.d.ts.map +1 -1
  251. package/dist/esm/utils/pivotProcessing.js +6 -2
  252. package/dist/esm/utils/queryConstructor.d.ts.map +1 -1
  253. package/dist/esm/utils/queryConstructor.js +12 -9
  254. package/dist/esm/utils/report.d.ts +6 -5
  255. package/dist/esm/utils/report.d.ts.map +1 -1
  256. package/dist/esm/utils/report.js +70 -25
  257. package/dist/esm/utils/schema.d.ts +3 -3
  258. package/dist/esm/utils/schema.d.ts.map +1 -1
  259. package/dist/esm/utils/schema.js +39 -35
  260. package/dist/esm/utils/tableProcessing.d.ts +18 -11
  261. package/dist/esm/utils/tableProcessing.d.ts.map +1 -1
  262. package/dist/esm/utils/tableProcessing.js +41 -20
  263. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ChartEditor.d.ts","sourceRoot":"","sources":["../../src/ChartEditor.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ChartEditor.d.ts","sourceRoot":"","sources":["../../src/ChartEditor.tsx"],"names":[],"mappings":"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"}
@@ -4,9 +4,9 @@ import ChartBuilder from './ChartBuilder';
4
4
  import { DashboardContext, DashboardFiltersContext, ClientContext, SchemaDataContext, } from './Context';
5
5
  import { MemoizedModal, QuillChartBuilderFormContainer, QuillChartBuilderInputColumnContainer, QuillChartBuilderInputRowContainer, QuillErrorMessageComponent, QuillLoadingComponent, QuillPivotColumnContainer, QuillPivotRowContainer, QuillTableComponent, } from './components/UiComponents';
6
6
  import { QuillCard } from './components/QuillCard';
7
- import { fetchTableByReport } from './utils/tableProcessing';
7
+ import { fetchResultsByQuery, fetchResultsByReport, } from './utils/tableProcessing';
8
8
  import { QuillChartErrorWithAction } from './components/Chart/ChartError';
9
- import { fetchReport } from './utils/report';
9
+ import { fetchReport, fetchReportRowCount } from './utils/report';
10
10
  import { shouldFetchMore, DEFAULT_PAGINATION, shouldSortInMemory, } from './utils/paginationProcessing';
11
11
  /**
12
12
  * ### Quill Chart Editor
@@ -34,30 +34,39 @@ import { shouldFetchMore, DEFAULT_PAGINATION, shouldSortInMemory, } from './util
34
34
  * ### Chart Editor API
35
35
  * @see https://docs.quillsql.com/components/chart-editor
36
36
  */
37
- export default function ChartEditor({ isOpen, reportId, isAdmin = false, destinationDashboard, chartBuilderTitle = 'Edit chart', chartBuilderButtonLabel, onAddToDashboardComplete, organizationName, isHorizontalView = true, onDelete, setIsOpen, SelectComponent, TextInputComponent, ButtonComponent, SecondaryButtonComponent, HeaderComponent, SubHeaderComponent, LabelComponent, TextComponent, DeleteButtonComponent, ModalComponent = MemoizedModal, CardComponent = QuillCard, PopoverComponent, LoadingComponent = QuillLoadingComponent, TableComponent = QuillTableComponent, ChartBuilderInputRowContainer = QuillChartBuilderInputRowContainer, ChartBuilderInputColumnContainer = QuillChartBuilderInputColumnContainer, PivotRowContainer = QuillPivotRowContainer, PivotColumnContainer = QuillPivotColumnContainer, ErrorMessageComponent = QuillErrorMessageComponent, ChartBuilderFormContainer = QuillChartBuilderFormContainer, ErrorComponent = QuillChartErrorWithAction, hideDeleteButton = false, hideSubmitButton = false, hideOrganizationDetails = false, onClickChartElement, onClickChartError, }) {
37
+ export default function ChartEditor({ isOpen, reportId, isAdmin = false, isDashboardLoading, destinationDashboard, chartBuilderTitle = 'Edit chart', chartBuilderButtonLabel, onAddToDashboardComplete, organizationName, isHorizontalView = true, onDelete, setIsOpen, SelectComponent, TextInputComponent, ButtonComponent, SecondaryButtonComponent, HeaderComponent, SubHeaderComponent, LabelComponent, TextComponent, DeleteButtonComponent, ModalComponent = MemoizedModal, CardComponent = QuillCard, PopoverComponent, LoadingComponent = QuillLoadingComponent, TableComponent = QuillTableComponent, ChartBuilderInputRowContainer = QuillChartBuilderInputRowContainer, ChartBuilderInputColumnContainer = QuillChartBuilderInputColumnContainer, PivotRowContainer = QuillPivotRowContainer, PivotColumnContainer = QuillPivotColumnContainer, ErrorMessageComponent = QuillErrorMessageComponent, ChartBuilderFormContainer = QuillChartBuilderFormContainer, ErrorComponent = QuillChartErrorWithAction, hideDeleteButton = false, hideSubmitButton = false, hideOrganizationDetails = false, onClickChartElement, onClickChartError, }) {
38
38
  const parentRef = useRef(null);
39
39
  const [modalWidth, setModalWidth] = useState(200);
40
40
  const [modalHeight, setModalHeight] = useState(200);
41
41
  const [dashboard, dispatch] = useContext(DashboardContext);
42
42
  const { dashboardFilters } = useContext(DashboardFiltersContext);
43
- const specificDashboardFilter = useMemo(() => {
44
- const tempReport = dashboard?.[reportId];
43
+ const specificDashboardFilters = useMemo(() => {
44
+ const tempReport = dashboard[reportId];
45
45
  if (!tempReport) {
46
46
  return [];
47
47
  }
48
- return dashboardFilters.filter((f) => f && tempReport.dashboardName === f.dashboardName);
48
+ return Object.values(dashboardFilters[tempReport.dashboardName] || {}).map((f) => f.filter);
49
49
  }, [dashboardFilters]);
50
50
  const [client] = useContext(ClientContext);
51
- const [isLoading, setIsLoading] = useState(false);
52
- const [additionalProcessing, setAdditionalProcessing] = useState({});
51
+ const [isChartLoading, setIsLoading] = useState(false);
52
+ const isLoading = isDashboardLoading || isChartLoading;
53
53
  const [rowCount, setRowCount] = useState(undefined);
54
+ const [rowCountIsLoading, setRowCountIsLoading] = useState(false);
54
55
  const [maxPage, setMaxPage] = useState(0);
55
56
  const [schemaData] = useContext(SchemaDataContext);
57
+ const [overrideRows, setOverrideRows] = useState(undefined);
56
58
  const report = useMemo(() => {
57
59
  return dashboard?.[reportId];
58
60
  }, [dashboard, reportId]);
61
+ const [additionalProcessing, setAdditionalProcessing] = useState({
62
+ page: report?.pagination || {
63
+ page: 0,
64
+ rowsPerPage: 10,
65
+ rowsPerRequest: report?.chartType === 'table' ? 50 : 500,
66
+ },
67
+ });
59
68
  const [chartBuilderKey, setChartBuilderKey] = useState(0);
60
- const dateFilter = Object.values(specificDashboardFilter).find((filter) => filter.filterType == 'date_range');
69
+ const dateFilter = Object.values(specificDashboardFilters).find((filter) => filter.filterType == 'date_range');
61
70
  const dateRange = dateFilter?.startDate
62
71
  ? { start: dateFilter.startDate, end: dateFilter.endDate }
63
72
  : undefined;
@@ -80,8 +89,11 @@ export default function ChartEditor({ isOpen, reportId, isAdmin = false, destina
80
89
  }, []);
81
90
  const onPageChange = (page) => {
82
91
  if (additionalProcessing.page &&
83
- shouldFetchMore(DEFAULT_PAGINATION, page, maxPage)) {
84
- const newPagination = { ...additionalProcessing.page, page };
92
+ shouldFetchMore(additionalProcessing.page, page, maxPage)) {
93
+ const newPagination = {
94
+ ...additionalProcessing.page,
95
+ page,
96
+ };
85
97
  const updatedProcessing = {
86
98
  ...additionalProcessing,
87
99
  page: newPagination,
@@ -102,6 +114,21 @@ export default function ChartEditor({ isOpen, reportId, isAdmin = false, destina
102
114
  setAdditionalProcessing(updatedProcessing);
103
115
  setMaxPage(0);
104
116
  };
117
+ const handleRunQuery = async (processing, includeFilters = false) => {
118
+ if (!client || !report) {
119
+ return;
120
+ }
121
+ try {
122
+ setIsLoading(true);
123
+ const tableInfo = await fetchResultsByQuery(report?.queryString, client, processing, schemaData.customFields, includeFilters ? specificDashboardFilters : undefined, includeFilters ? report.dateField : undefined);
124
+ setOverrideRows(tableInfo.rows);
125
+ setRowCount(tableInfo.rowCount);
126
+ setIsLoading(false);
127
+ }
128
+ catch (e) {
129
+ console.log(e);
130
+ }
131
+ };
105
132
  const updateTableRows = async (processing, resetRows = false) => {
106
133
  if (!client) {
107
134
  return;
@@ -110,7 +137,7 @@ export default function ChartEditor({ isOpen, reportId, isAdmin = false, destina
110
137
  setIsLoading(true);
111
138
  try {
112
139
  const updatedProcessing = { ...additionalProcessing, ...processing };
113
- const paginatedRows = await fetchTableByReport(report.id, client, updatedProcessing, specificDashboardFilter, schemaData.customFields);
140
+ const paginatedRows = await fetchResultsByReport(report.id, client, updatedProcessing, specificDashboardFilters, schemaData.customFields, true);
114
141
  if (paginatedRows.error) {
115
142
  throw new Error('Error fetching chart');
116
143
  }
@@ -137,6 +164,22 @@ export default function ChartEditor({ isOpen, reportId, isAdmin = false, destina
137
164
  }
138
165
  }
139
166
  };
167
+ const fetchRowCount = async (useReportTask = true, filters, processing) => {
168
+ if (!client) {
169
+ return;
170
+ }
171
+ setRowCountIsLoading(true);
172
+ const rowCount = await fetchReportRowCount(reportId, client, useReportTask, filters, processing, schemaData.customFields);
173
+ if (rowCount) {
174
+ dispatch({
175
+ type: 'UPDATE_DASHBOARD_ITEM',
176
+ id: reportId,
177
+ data: { rowCount },
178
+ });
179
+ setRowCount(rowCount);
180
+ }
181
+ setRowCountIsLoading(false);
182
+ };
140
183
  const fetchReportHelper = async (useReportTask = true, processing) => {
141
184
  if (isLoading) {
142
185
  return;
@@ -145,8 +188,8 @@ export default function ChartEditor({ isOpen, reportId, isAdmin = false, destina
145
188
  return;
146
189
  }
147
190
  setIsLoading(true);
148
- const minimalFilters = Object.values(specificDashboardFilter).length
149
- ? Object.values(specificDashboardFilter).map((filter) => {
191
+ const minimalFilters = Object.values(specificDashboardFilters).length
192
+ ? Object.values(specificDashboardFilters).map((filter) => {
150
193
  const newFilter = { ...filter };
151
194
  if (newFilter.filterType === 'date_range') {
152
195
  delete newFilter['field'];
@@ -156,7 +199,7 @@ export default function ChartEditor({ isOpen, reportId, isAdmin = false, destina
156
199
  return newFilter;
157
200
  })
158
201
  : [];
159
- const { report, error } = await fetchReport(reportId, client, useReportTask, minimalFilters, processing, undefined, schemaData.customFields);
202
+ const { report, error } = await fetchReport(reportId, client, useReportTask, minimalFilters, processing, undefined, schemaData.customFields, true);
160
203
  if (error) {
161
204
  setIsLoading(false);
162
205
  return;
@@ -166,6 +209,7 @@ export default function ChartEditor({ isOpen, reportId, isAdmin = false, destina
166
209
  id: reportId,
167
210
  data: report,
168
211
  });
212
+ fetchRowCount(useReportTask, minimalFilters, processing);
169
213
  setAdditionalProcessing(processing);
170
214
  setIsLoading(false);
171
215
  };
@@ -180,7 +224,13 @@ export default function ChartEditor({ isOpen, reportId, isAdmin = false, destina
180
224
  }
181
225
  else {
182
226
  const rowLength = report.rows ? report.rows.length : undefined;
183
- setRowCount(report.rowCount ?? rowLength);
227
+ if (report.rowCount || rowLength === 0) {
228
+ setRowCount(report.rowCount || 0);
229
+ }
230
+ else {
231
+ setRowCountIsLoading(true);
232
+ setRowCount(rowLength);
233
+ }
184
234
  }
185
235
  }
186
236
  return;
@@ -191,9 +241,17 @@ export default function ChartEditor({ isOpen, reportId, isAdmin = false, destina
191
241
  return (_jsx("div", { ref: parentRef, style: { height: '100%' }, children: _jsx(ModalComponent, { isOpen: isOpen, setIsOpen: setIsOpen, title: chartBuilderTitle || 'Add to dashboard',
192
242
  // For isHorizontalView, use full viewport size minus 80px for padding,
193
243
  // otherwise use the default layout method of the modal (contents).
194
- width: isHorizontalView ? modalWidth : undefined, height: isHorizontalView ? modalHeight : undefined, children: _jsx(ChartBuilder, { report: report, rows: report.rows, isAdmin: isAdmin, columns: report.columnInternal, query: report.queryString, pivot: report.pivot || undefined, isOpen: isOpen, isComparison: dateFilter?.comparisonRange, isLoading: isLoading, setIsOpen: setIsOpen, showTableFormatOptions: isAdmin, showDateFieldOptions: isAdmin, showAccessControlOptions: isAdmin && !hideOrganizationDetails, showDashboardDropdown: isAdmin, destinationDashboard: destinationDashboard, onAddToDashboardComplete: onAddToDashboardComplete, dateRange: dateRange, SelectComponent: SelectComponent, TextInputComponent: TextInputComponent, ButtonComponent: ButtonComponent, SecondaryButtonComponent: SecondaryButtonComponent, HeaderComponent: HeaderComponent, SubHeaderComponent: SubHeaderComponent, LabelComponent: LabelComponent, TextComponent: TextComponent, DeleteButtonComponent: DeleteButtonComponent, CardComponent: CardComponent, ModalComponent: ModalComponent, isHorizontalView: isHorizontalView, PopoverComponent: PopoverComponent, TableComponent: TableComponent, ChartBuilderInputRowContainer: ChartBuilderInputRowContainer, ChartBuilderInputColumnContainer: ChartBuilderInputColumnContainer, PivotRowContainer: PivotRowContainer, PivotColumnContainer: PivotColumnContainer, ErrorMessageComponent: ErrorMessageComponent, LoadingComponent: LoadingComponent, ErrorComponent: ErrorComponent, onClickChartError: onClickChartError, onDelete: onDelete, onDiscardChanges: () => {
244
+ width: isHorizontalView ? modalWidth : undefined, height: isHorizontalView ? modalHeight : undefined, children: _jsx(ChartBuilder, { report: report, rows: overrideRows ?? report.rows, isAdmin: isAdmin, columns: report.columnInternal, query: report.queryString, pivot: report.pivot || undefined, isOpen: isOpen, isComparison: dateFilter?.comparisonRange, isLoading: isLoading, setIsOpen: setIsOpen, showTableFormatOptions: isAdmin || report.chartType === 'table', showDateFieldOptions: isAdmin, showAccessControlOptions: isAdmin && !hideOrganizationDetails, showDashboardDropdown: isAdmin, destinationDashboard: destinationDashboard, onAddToDashboardComplete: onAddToDashboardComplete, dateRange: dateRange, SelectComponent: SelectComponent, TextInputComponent: TextInputComponent, ButtonComponent: ButtonComponent, SecondaryButtonComponent: SecondaryButtonComponent, HeaderComponent: HeaderComponent, SubHeaderComponent: SubHeaderComponent, LabelComponent: LabelComponent, TextComponent: TextComponent, DeleteButtonComponent: DeleteButtonComponent, CardComponent: CardComponent, ModalComponent: ModalComponent, isHorizontalView: isHorizontalView, PopoverComponent: PopoverComponent, TableComponent: TableComponent, ChartBuilderInputRowContainer: ChartBuilderInputRowContainer, ChartBuilderInputColumnContainer: ChartBuilderInputColumnContainer, PivotRowContainer: PivotRowContainer, PivotColumnContainer: PivotColumnContainer, ErrorMessageComponent: ErrorMessageComponent, LoadingComponent: LoadingComponent, ErrorComponent: ErrorComponent, onClickChartError: onClickChartError, onDelete: onDelete, onDiscardChanges: () => {
195
245
  setChartBuilderKey(chartBuilderKey + 1);
196
- }, title: chartBuilderTitle, buttonLabel: chartBuilderButtonLabel, organizationName: organizationName, hideSubmitButton: hideSubmitButton, hideDeleteButton: hideDeleteButton, FormContainer: ChartBuilderFormContainer, onPageChange: onPageChange, onSortChange: onSortChange, rowCount: rowCount, onClickChartElement: onClickChartElement, pivotData: report.pivotColumns
246
+ setOverrideRows(undefined);
247
+ }, title: chartBuilderTitle, buttonLabel: chartBuilderButtonLabel, organizationName: organizationName, hideSubmitButton: hideSubmitButton, hideDeleteButton: hideDeleteButton, FormContainer: ChartBuilderFormContainer, onPageChange: onPageChange, onSortChange: onSortChange, onFilterPreviewChange: (preview) => {
248
+ if (!preview) {
249
+ handleRunQuery({ page: DEFAULT_PAGINATION }, false);
250
+ }
251
+ else {
252
+ setOverrideRows(undefined);
253
+ }
254
+ }, rowCount: rowCount, rowCountIsLoading: rowCountIsLoading, onClickChartElement: onClickChartElement, pivotData: report.pivotColumns
197
255
  ? {
198
256
  rows: report.pivotRows || [],
199
257
  columns: report.pivotColumns,
@@ -1,13 +1,25 @@
1
1
  import React from 'react';
2
2
  import { QuillReportInternal } from './models/Report';
3
- import { Client } from './models/Client';
3
+ import { QuillProviderClient } from './models/Client';
4
4
  import { QuillTheme } from './QuillProvider';
5
5
  import { DashboardConfig } from './models/Dashboard';
6
6
  import { SchemaData } from './models/Schema';
7
+ import { DashboardFilter } from './models/Filter';
7
8
  export declare const SchemaDataContext: React.Context<[SchemaData, (value: React.SetStateAction<SchemaData>) => void]>;
8
9
  export declare const ThemeContext: React.Context<[QuillTheme | null, (value: React.SetStateAction<QuillTheme | null>) => void]>;
9
- export declare const ClientContext: React.Context<[Client | null, boolean, (value: React.SetStateAction<Client | null>) => void]>;
10
- export declare const DashboardFiltersContext: React.Context<any>;
10
+ export declare const ClientContext: React.Context<[QuillProviderClient | null, boolean, (value: React.SetStateAction<QuillProviderClient | null>) => void]>;
11
+ export declare const DashboardFiltersContext: React.Context<{
12
+ dashboardFilters: {
13
+ [dashboardName: string]: {
14
+ [filterName: string]: {
15
+ filter: DashboardFilter;
16
+ loading: boolean;
17
+ };
18
+ };
19
+ };
20
+ dispatch: any;
21
+ loadFiltersForDashboard: (dashboardName: string, filters: DashboardFilter[], updatedFilterLabel?: string) => void;
22
+ }>;
11
23
  export declare const ReportFiltersContext: React.Context<any>;
12
24
  export declare const DashboardContext: React.Context<[{
13
25
  [key: string]: QuillReportInternal;
@@ -15,12 +27,11 @@ export declare const DashboardContext: React.Context<[{
15
27
  export declare const DashboardConfigContext: React.Context<[{
16
28
  [key: string]: DashboardConfig;
17
29
  }, any]>;
18
- export declare const ContextProvider: ({ children, initialTheme, publicKey, customerId, userId, queryEndpoint, queryHeaders, withCredentials, }: {
30
+ export declare const ContextProvider: ({ children, initialTheme, publicKey, organizationId, queryEndpoint, queryHeaders, withCredentials, }: {
19
31
  children: React.ReactNode;
20
32
  initialTheme: QuillTheme;
21
33
  publicKey: string;
22
- customerId?: string | undefined;
23
- userId?: string | undefined;
34
+ organizationId?: string | undefined;
24
35
  queryEndpoint: string;
25
36
  queryHeaders?: HeadersInit | undefined;
26
37
  withCredentials?: boolean | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"Context.d.ts","sourceRoot":"","sources":["../../src/Context.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyD,MAAM,OAAO,CAAC;AAE9E,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEtD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAI7C,eAAO,MAAM,iBAAiB,qCACP,MAAM,cAAc,CAAC,UAAU,CAAC,KAAK,IAAI,EAQ9D,CAAC;AACH,eAAO,MAAM,YAAY,4CACK,MAAM,cAAc,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,IAAI,EACxD,CAAC;AACvB,eAAO,MAAM,aAAa,iDACS,MAAM,cAAc,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,IAAI,EAC1C,CAAC;AACtC,eAAO,MAAM,uBAAuB,oBAAwC,CAAC;AAC7E,eAAO,MAAM,oBAAoB,oBAAwC,CAAC;AAmC1E,eAAO,MAAM,gBAAgB;;QAEJ,CAAC;AAsC1B,eAAO,MAAM,sBAAsB;;QAEJ,CAAC;AAyChC,eAAO,MAAM,eAAe;cAUhB,MAAM,SAAS;kBACX,UAAU;eACb,MAAM;;;mBAGF,MAAM;;;oDAiOtB,CAAC"}
1
+ {"version":3,"file":"Context.d.ts","sourceRoot":"","sources":["../../src/Context.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyD,MAAM,OAAO,CAAC;AAE9E,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAIlD,eAAO,MAAM,iBAAiB,qCACP,MAAM,cAAc,CAAC,UAAU,CAAC,KAAK,IAAI,EAQ9D,CAAC;AACH,eAAO,MAAM,YAAY,4CACK,MAAM,cAAc,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,IAAI,EACxD,CAAC;AACvB,eAAO,MAAM,aAAa,8DAId,MAAM,cAAc,CAAC,mBAAmB,GAAG,IAAI,CAAC,KAAK,IAAI,EAExC,CAAC;AAE9B,eAAO,MAAM,uBAAuB;;;;wBAIpB,eAAe;yBACd,OAAO;;;;cAIZ,GAAG;6CAEI,MAAM,WACZ,eAAe,EAAE,uBACL,MAAM,KACxB,IAAI;EAKT,CAAC;AACH,eAAO,MAAM,oBAAoB,oBAAwC,CAAC;AAmC1E,eAAO,MAAM,gBAAgB;;QAEJ,CAAC;AAsC1B,eAAO,MAAM,sBAAsB;;QAEJ,CAAC;AA0DhC,eAAO,MAAM,eAAe;cAShB,MAAM,SAAS;kBACX,UAAU;eACb,MAAM;;mBAEF,MAAM;;;oDA4RtB,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { useState, createContext, useEffect, useReducer } from 'react';
3
3
  import { getSchemaInfoWithCustomFields } from './utils/schema';
4
- import { EMPTY_CLIENT, fetchClient } from './utils/client';
4
+ import { fetchClient } from './utils/client';
5
5
  const dummySetter = () => { };
6
6
  export const SchemaDataContext = createContext([
7
7
  {
@@ -12,12 +12,16 @@ export const SchemaDataContext = createContext([
12
12
  dummySetter,
13
13
  ]);
14
14
  export const ThemeContext = createContext([null, dummySetter]);
15
- export const ClientContext = createContext([EMPTY_CLIENT, false, dummySetter]);
16
- export const DashboardFiltersContext = createContext([[], dummySetter]);
15
+ export const ClientContext = createContext([null, false, dummySetter]);
16
+ export const DashboardFiltersContext = createContext({
17
+ dashboardFilters: {},
18
+ dispatch: dummySetter,
19
+ loadFiltersForDashboard: () => { },
20
+ });
17
21
  export const ReportFiltersContext = createContext([{}, dummySetter]);
18
22
  const dashboardReducer = (state = {}, action) => {
19
23
  switch (action.type) {
20
- //NOTE: Because update dashboard item doesn't overwrite the previous data, it can leave stale properties when it should be removing them
24
+ // NOTE: Because update dashboard item doesn't overwrite the previous data, it can leave stale properties when it should be removing them
21
25
  // We either want to make sure we're using null instead of undefined, or use ADD_DASHBOARD_ITEM more often.
22
26
  case 'UPDATE_DASHBOARD_ITEM':
23
27
  if (!action.id || !action.data) {
@@ -88,40 +92,45 @@ const reportFiltersReducer = (state, action) => {
88
92
  return state;
89
93
  }
90
94
  };
91
- const dashboardFiltersReducer = (state, action) => {
92
- let newFilters = [];
93
- let index = -1;
95
+ const dashboardFiltersReducer = (state = {}, action) => {
94
96
  switch (action.type) {
95
97
  case 'UPDATE_DASHBOARD_FILTER':
96
- index = state.findIndex((filter) => filter.field === action.data.field &&
97
- filter.dashboardName === action.data.dashboardName);
98
- if (index === -1)
99
- return state;
100
- return [...state.slice(0, index), action.data, ...state.slice(index + 1)];
98
+ return {
99
+ ...state,
100
+ [action.dashboardName]: {
101
+ ...state[action.dashboardName],
102
+ [action.filterName]: action.data,
103
+ },
104
+ };
105
+ case 'UPDATE_DASHBOARD_FILTERS':
106
+ return {
107
+ ...state,
108
+ [action.dashboardName]: {
109
+ ...state[action.dashboardName],
110
+ ...action.data,
111
+ },
112
+ };
101
113
  case 'ADD_DASHBOARD_FILTERS':
102
- return [...state, ...action.data];
114
+ return {
115
+ ...state,
116
+ [action.dashboardName]: action.data,
117
+ };
103
118
  case 'ADD_DASHBOARD_FILTER':
104
- return [...state, action.data];
105
- case 'CLEAR_AND_ADD_DASHBOARD_FILTERS':
106
- newFilters = state.filter((filter) => filter.dashboardName !== action.dashboardName);
107
- return [...newFilters, ...action.data];
119
+ return {
120
+ ...state,
121
+ [action.dashboardName]: {
122
+ ...state[action.dashboardName],
123
+ [action.data.filterName]: action.data,
124
+ },
125
+ };
108
126
  case 'CLEAR_DASHBOARD_FILTERS':
109
- return [];
127
+ return {};
110
128
  default:
111
129
  return state;
112
130
  }
113
131
  };
114
- export const ContextProvider = ({ children, initialTheme, publicKey, customerId, userId, queryEndpoint, queryHeaders, withCredentials, }) => {
115
- const [client, setClient] = useState({
116
- name: '',
117
- customerId: customerId ?? '*',
118
- userId,
119
- publicKey,
120
- queryEndpoint,
121
- queryHeaders,
122
- withCredentials: withCredentials ?? false,
123
- clientId: publicKey,
124
- });
132
+ export const ContextProvider = ({ children, initialTheme, publicKey, organizationId, queryEndpoint, queryHeaders, withCredentials, }) => {
133
+ const [client, setClient] = useState(null);
125
134
  const [isClientLoading, setIsClientLoading] = useState(false);
126
135
  const [theme, setTheme] = useState(null);
127
136
  const [schemaData, setSchemaData] = useState({
@@ -131,7 +140,7 @@ export const ContextProvider = ({ children, initialTheme, publicKey, customerId,
131
140
  });
132
141
  const [dashboard, dispatch] = useReducer(dashboardReducer, {});
133
142
  const [dashboardConfig, dashboardConfigDispatch] = useReducer(dashboardConfigReducer, {});
134
- const [dashboardFilters, dashboardFiltersDispatch] = useReducer(dashboardFiltersReducer, []);
143
+ const [dashboardFilters, dashboardFiltersDispatch] = useReducer(dashboardFiltersReducer, {});
135
144
  const [reportFilters, reportFiltersDispatch] = useReducer(reportFiltersReducer, {});
136
145
  // SETS INITIAL THEME
137
146
  useEffect(() => {
@@ -153,21 +162,76 @@ export const ContextProvider = ({ children, initialTheme, publicKey, customerId,
153
162
  setTheme(newTheme);
154
163
  }
155
164
  }, [initialTheme]);
156
- useEffect(() => {
157
- const initialClient = {
158
- name: '',
159
- customerId: customerId ?? '*',
160
- userId,
161
- publicKey,
162
- queryEndpoint,
163
- queryHeaders,
164
- withCredentials: withCredentials ?? false,
165
- clientId: publicKey,
166
- };
167
- if (!client) {
168
- setClient(initialClient);
169
- }
170
- }, []);
165
+ async function loadFiltersForDashboard(dashboardName, filters, updatedFilterLabel) {
166
+ dashboardFiltersDispatch({
167
+ type: 'ADD_DASHBOARD_FILTERS',
168
+ dashboardName,
169
+ data: filters.reduce((acc, filter) => {
170
+ acc[filter.label] = {
171
+ filter,
172
+ loading: filter.label !== updatedFilterLabel,
173
+ };
174
+ return acc;
175
+ }, {}),
176
+ });
177
+ // For each filter, send a fetch request to get the filter options
178
+ // Once the options are received, update the filter in the state
179
+ await Promise.all(filters.map(async (filter) => {
180
+ if (filter.filterType !== 'string')
181
+ return null;
182
+ if (filter.label === updatedFilterLabel)
183
+ return null;
184
+ try {
185
+ const response = await fetch(`${queryEndpoint}?filterOptions`, {
186
+ method: 'POST',
187
+ headers: {
188
+ ...queryHeaders,
189
+ 'Content-Type': 'application/json',
190
+ },
191
+ body: JSON.stringify({
192
+ metadata: {
193
+ clientId: client?.publicKey,
194
+ publicKey: client?.publicKey,
195
+ orgId: client?.organizationId,
196
+ name: dashboardName,
197
+ task: 'filter-options',
198
+ useNewNodeSql: true,
199
+ filter: {
200
+ ...filter,
201
+ options: undefined,
202
+ },
203
+ appliedFilters: filters
204
+ .filter((f) => f.label !== filter.label)
205
+ .map((f) => ({
206
+ ...f,
207
+ query: undefined,
208
+ options: undefined,
209
+ })),
210
+ },
211
+ }),
212
+ credentials: withCredentials ? 'include' : 'omit',
213
+ });
214
+ return response.json().then((result) => {
215
+ const filterOptions = result.data?.filters[0]?.options ?? [];
216
+ dashboardFiltersDispatch({
217
+ type: 'UPDATE_DASHBOARD_FILTER',
218
+ dashboardName,
219
+ filterName: filter.label,
220
+ data: {
221
+ filter: {
222
+ ...filter,
223
+ options: filterOptions,
224
+ },
225
+ loading: false,
226
+ },
227
+ });
228
+ });
229
+ }
230
+ catch (error) {
231
+ console.error('ERROR:', error);
232
+ }
233
+ }));
234
+ }
171
235
  async function fetchSchema(client, caller) {
172
236
  // add custom fields here and also store in schema context
173
237
  setSchemaData({ ...schemaData, isSchemaLoading: true });
@@ -181,32 +245,25 @@ export const ContextProvider = ({ children, initialTheme, publicKey, customerId,
181
245
  useEffect(() => {
182
246
  async function fetchDatabaseType(publicKey) {
183
247
  const newClient = await fetchClient(publicKey, queryEndpoint, withCredentials, queryHeaders);
184
- if (client) {
185
- if (!newClient.databaseType) {
186
- const newClient2 = await fetchClient(publicKey, queryEndpoint, withCredentials, queryHeaders);
187
- setClient({
188
- ...client,
189
- ...newClient2,
190
- databaseType: newClient2.databaseType,
191
- publicKey: publicKey,
192
- });
193
- }
194
- else {
195
- setClient({
196
- ...client,
197
- ...newClient,
198
- publicKey: publicKey,
199
- });
200
- }
201
- }
202
- else {
203
- setClient({
204
- ...newClient,
205
- queryEndpoint: queryEndpoint,
206
- withCredentials: withCredentials || false,
207
- publicKey: publicKey,
208
- });
248
+ if (!newClient.adminCustomerId && !newClient.multiTenancyDisabled) {
249
+ console.error('Default organization not found. Please select a default organization for this environment');
250
+ return;
209
251
  }
252
+ setClient({
253
+ ...client,
254
+ queryEndpoint: queryEndpoint,
255
+ withCredentials: withCredentials ?? false,
256
+ multiTenancyDisabled: newClient.multiTenancyDisabled ? true : false,
257
+ databaseType: newClient.databaseType,
258
+ name: newClient.name,
259
+ clientId: publicKey,
260
+ publicKey: publicKey,
261
+ organizationId: newClient.multiTenancyDisabled
262
+ ? '*'
263
+ : newClient.adminCustomerId,
264
+ recommendedPivotsDisabled: newClient.recommendedPivotsDisabled,
265
+ featureFlags: newClient.featureFlags,
266
+ });
210
267
  }
211
268
  async function fetchDashboards(publicKey) {
212
269
  if (!publicKey) {
@@ -260,20 +317,28 @@ export const ContextProvider = ({ children, initialTheme, publicKey, customerId,
260
317
  fetchSchema(client, 'context');
261
318
  }
262
319
  }, [client]);
320
+ useEffect(() => {
321
+ // Clear context
322
+ dashboardConfigDispatch({ type: 'CLEAR_DASHBOARD' });
323
+ dashboardFiltersDispatch({ type: 'CLEAR_DASHBOARD_FILTERS' });
324
+ reportFiltersDispatch({ type: 'CLEAR_REPORT_FILTERS' });
325
+ dispatch({ type: 'CLEAR_DASHBOARD' });
326
+ }, [client?.clientId]);
263
327
  useEffect(() => {
264
328
  if (client) {
265
- setClient({ ...client, customerId: customerId ?? '*' });
329
+ setClient({ ...client, organizationId: organizationId ?? '*' });
266
330
  }
267
331
  if (Object.keys(dashboard).length > 0) {
268
332
  dispatch({ type: 'CLEAR_DASHBOARD' });
269
333
  }
270
- }, [customerId]);
334
+ }, [organizationId]);
271
335
  if (!theme) {
272
336
  return null;
273
337
  }
274
- return (_jsx(ClientContext.Provider, { value: [client, isClientLoading, setClient], children: _jsx(ThemeContext.Provider, { value: [theme, setTheme], children: _jsx(SchemaDataContext.Provider, { value: [schemaData, setSchemaData], children: _jsx(DashboardContext.Provider, { value: [dashboard, dispatch], children: _jsx(DashboardConfigContext.Provider, { value: [dashboardConfig, dashboardConfigDispatch], children: _jsx(DashboardFiltersContext.Provider, { value: {
338
+ return (_jsx(ClientContext.Provider, { value: [isClientLoading ? null : client, isClientLoading, setClient], children: _jsx(ThemeContext.Provider, { value: [theme, setTheme], children: _jsx(SchemaDataContext.Provider, { value: [schemaData, setSchemaData], children: _jsx(DashboardContext.Provider, { value: [dashboard, dispatch], children: _jsx(DashboardConfigContext.Provider, { value: [dashboardConfig, dashboardConfigDispatch], children: _jsx(DashboardFiltersContext.Provider, { value: {
275
339
  dashboardFilters,
276
- dashboardFiltersDispatch,
340
+ dispatch: dashboardFiltersDispatch,
341
+ loadFiltersForDashboard,
277
342
  }, children: _jsx(ReportFiltersContext.Provider, { value: {
278
343
  reportFilters,
279
344
  reportFiltersDispatch,
@@ -2,6 +2,7 @@ import React, { CSSProperties, ReactNode, ChangeEvent } from 'react';
2
2
  import { TextInputComponentProps } from './components/UiComponents';
3
3
  import { Filter } from './models/Filter';
4
4
  import { QuillReport } from './models/Report';
5
+ import { Pagination } from './models/Pagination';
5
6
  /**
6
7
  * The props passed into the ChartComponent, TableComponent, and MetricComponent
7
8
  * functions in the dashboard.
@@ -57,13 +58,14 @@ export interface DashboardProps {
57
58
  onClickChartElement?: (data: any) => void;
58
59
  }) => JSX.Element;
59
60
  /** A component that wraps a dashboard item for 'table' chart types. */
60
- TableComponent?: ({ report, onClick, hoverActions, isLoading, error, rowCount, onPageChange, onSortChange, }: {
61
+ TableComponent?: ({ report, onClick, hoverActions, isLoading, error, rowCount, rowCountIsLoading, onPageChange, onSortChange, }: {
61
62
  report: QuillReport;
62
63
  onClick?: (report: QuillReport) => void;
63
64
  hoverActions?: (report: QuillReport) => JSX.Element;
64
65
  isLoading?: boolean;
65
66
  error?: string;
66
67
  rowCount?: number;
68
+ rowCountIsLoading?: boolean;
67
69
  onPageChange?: (page: number) => void;
68
70
  onSortChange?: (sort: {
69
71
  field: string;
@@ -102,7 +104,7 @@ export interface DashboardProps {
102
104
  }) => JSX.Element;
103
105
  /** A select component. */
104
106
  SelectComponent?: ({ label, value, options, onChange, width, }: {
105
- value: string;
107
+ value: string | null | undefined;
106
108
  width: number;
107
109
  label?: string;
108
110
  options: {
@@ -113,7 +115,7 @@ export interface DashboardProps {
113
115
  }) => JSX.Element;
114
116
  /** A multiselect component. */
115
117
  MultiSelectComponent?: ({ label, value, options, onChange, width, }: {
116
- value: string[];
118
+ value: (string | null)[];
117
119
  width: number;
118
120
  label?: string;
119
121
  options: {
@@ -275,6 +277,8 @@ export interface DashboardProps {
275
277
  hideAdminErrors?: boolean;
276
278
  /** Template dashboard */
277
279
  templateDashboardName?: string;
280
+ /** Pagination settings for each table report in this dashboard */
281
+ pagination?: Pagination;
278
282
  }
279
283
  /**
280
284
  * ### Quill Dashboard
@@ -307,5 +311,5 @@ export interface DashboardProps {
307
311
  * ### API Reference
308
312
  * @see https://docs.quillsql.com/components/dashboard
309
313
  */
310
- export default function Dashboard({ name, hidden, SelectComponent, MultiSelectComponent, ModalComponent, ButtonComponent, SecondaryButtonComponent, FilterTagComponent, PopoverComponent, TextInputComponent, EmptyDashboardComponent, DateRangePickerComponent, MetricComponent, ChartComponent, TableComponent, TemplateMetricComponent, TemplateChartComponent, TemplateTableComponent, DashboardSectionComponent, DashboardSectionContainerComponent, FilterContainerComponent, DashboardLoadingComponent, ErrorComponent, onClickReport, hoverActions, onChangeLoading, hideFilters, hideXAxis, hideYAxis, hideCartesianGrid, comparisonLineStyle, containerStyle, className, chartContainerStyle, filters, onClickChartElement, dateBucket, additionalProcessing, hideAdminErrors, templateDashboardName, }: DashboardProps): import("react/jsx-runtime").JSX.Element;
314
+ export default function Dashboard({ name, hidden, SelectComponent, MultiSelectComponent, ModalComponent, ButtonComponent, SecondaryButtonComponent, FilterTagComponent, PopoverComponent, TextInputComponent, EmptyDashboardComponent, DateRangePickerComponent, MetricComponent, ChartComponent, TableComponent, TemplateMetricComponent, TemplateChartComponent, TemplateTableComponent, DashboardSectionComponent, DashboardSectionContainerComponent, FilterContainerComponent, DashboardLoadingComponent, ErrorComponent, onClickReport, hoverActions, onChangeLoading, hideFilters, hideXAxis, hideYAxis, hideCartesianGrid, comparisonLineStyle, containerStyle, className, chartContainerStyle, filters, onClickChartElement, dateBucket, additionalProcessing, hideAdminErrors, templateDashboardName, pagination, }: DashboardProps): import("react/jsx-runtime").JSX.Element;
311
315
  //# sourceMappingURL=Dashboard.d.ts.map