@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
@@ -73,11 +73,20 @@ exports.QUILL_SERVER = (typeof process !== 'undefined' && process?.env?.QUILL_SE
73
73
  * ### Report Builder API
74
74
  * @see https://docs.quillsql.com/components/report-builder
75
75
  */
76
- function ReportBuilder({ initialTableName = '', onSubmitEditReport = () => void null, onSubmitCreateReport = () => void null, onDiscardChanges = undefined, onSaveChanges = undefined, destinationDashboard = undefined, organizationName = '', ButtonComponent = UiComponents_1.MemoizedButton, SecondaryButtonComponent = UiComponents_1.MemoizedSecondaryButton, DeleteButtonComponent = UiComponents_1.MemoizedDeleteButton, ModalComponent = UiComponents_1.MemoizedModal, TextInputComponent = UiComponents_2.QuillTextInput, SelectComponent = QuillSelect_1.QuillSelectComponent, MultiSelectComponent = QuillMultiSelectWithCombo_1.QuillMultiSelectComponentWithCombo, TableComponent = UiComponents_1.QuillTableSQLEditorComponent, PopoverComponent = UiComponents_1.MemoizedPopover, TabsComponent = UiComponents_1.QuillTabs,
76
+ function ReportBuilder({ initialTableName = '', onSubmitEditReport = () => void null, onSubmitCreateReport = () => void null, onDiscardChanges = undefined, onSaveChanges = undefined, onCloseChartBuilder = undefined, destinationDashboard = undefined, organizationName = '', ButtonComponent = UiComponents_1.MemoizedButton, SecondaryButtonComponent = UiComponents_1.MemoizedSecondaryButton, DeleteButtonComponent = UiComponents_1.MemoizedDeleteButton, ModalComponent = UiComponents_1.MemoizedModal, TextInputComponent = UiComponents_2.QuillTextInput, SelectComponent = QuillSelect_1.QuillSelectComponent, MultiSelectComponent = QuillMultiSelectWithCombo_1.QuillMultiSelectComponentWithCombo, TableComponent = UiComponents_1.QuillTableSQLEditorComponent, PopoverComponent = UiComponents_1.MemoizedPopover, TabsComponent = UiComponents_1.QuillTabs,
77
77
  // CheckboxComponent = MemoizedCheckbox,
78
78
  SidebarComponent = ui_1.QuillSidebar, ContainerComponent = ui_1.CustomContainer, SelectColumnComponent = ui_1.QuillSelectColumn, DraggableColumnComponent = ui_1.QuillDraggableColumn, SidebarHeadingComponent = ui_1.QuillSidebarHeading, FilterPopoverComponent = ui_1.QuillFilterPopover, SortPopoverComponent = ui_1.QuillSortPopover, LimitPopoverComponent = ui_1.QuillLimitPopover, CardComponent = QuillCard_1.QuillCard, LabelComponent = UiComponents_1.MemoizedLabel, HeaderComponent = UiComponents_1.MemoizedHeader, SubHeaderComponent = UiComponents_1.MemoizedSubHeader, TextComponent = UiComponents_1.MemoizedText, ErrorMessageComponent = UiComponents_1.QuillErrorMessageComponent, ChartBuilderInputRowContainer = UiComponents_1.QuillChartBuilderInputRowContainer, ChartBuilderInputColumnContainer = UiComponents_1.QuillChartBuilderInputColumnContainer, PivotRowContainer = UiComponents_1.QuillPivotRowContainer, PivotColumnContainer = UiComponents_1.QuillPivotColumnContainer, LoadingComponent = UiComponents_1.QuillLoadingComponent, ColumnSearchEmptyState = UiComponents_1.QuillColumnSearchEmptyState, ChartBuilderFormContainer = UiComponents_1.QuillChartBuilderFormContainer, ChartBuilderModalComponent = UiComponents_1.MemoizedModal, isAdminEnabled = false, isAIEnabled = true, showChartBuilderTableFormatOptions = true, containerStyle, className, pivotRecommendationsEnabled = true, reportId, hideCopySQL = true, isChartBuilderHorizontalView = true, onClickChartElement, }) {
79
79
  const [dashboard] = (0, react_1.useContext)(Context_1.DashboardContext);
80
80
  const [schemaData] = (0, react_1.useContext)(Context_1.SchemaDataContext);
81
+ const { dashboardFilters } = (0, react_1.useContext)(Context_1.DashboardFiltersContext);
82
+ const specificDashboardFilters = (0, react_1.useMemo)(() => {
83
+ if (!reportId)
84
+ return [];
85
+ const dashboardName = dashboard[reportId]?.dashboardName;
86
+ if (!dashboardName)
87
+ return [];
88
+ return Object.values(dashboardFilters[dashboardName] ?? {}).map((f) => f.filter);
89
+ }, [dashboardFilters, reportId, dashboard]);
81
90
  const [reportInfo, setReportInfo] = (0, react_1.useState)(null);
82
91
  const [aiPrompt, setAiPrompt] = (0, react_1.useState)('');
83
92
  const [errorMessage, setErrorMessage] = (0, react_1.useState)('');
@@ -92,7 +101,7 @@ SidebarComponent = ui_1.QuillSidebar, ContainerComponent = ui_1.CustomContainer,
92
101
  const [openPopover, setOpenPopover] = (0, react_1.useState)(null);
93
102
  const [loading, setLoading] = (0, react_1.useState)(!!initialTableName);
94
103
  const [isChartBuilderOpen, setIsChartBuilderOpen] = (0, react_1.useState)(false);
95
- const [, setIsPending] = (0, react_1.useState)(false);
104
+ const [isAddLoading, setIsAddLoading] = (0, react_1.useState)(false);
96
105
  const [isCopying, setIsCopying] = (0, react_1.useState)(false);
97
106
  const [dataDisplayed, setDataDisplayed] = (0, react_1.useState)(false);
98
107
  const [rows, setRows] = (0, react_1.useState)([]);
@@ -100,6 +109,7 @@ SidebarComponent = ui_1.QuillSidebar, ContainerComponent = ui_1.CustomContainer,
100
109
  const [columns, setColumns] = (0, react_1.useState)([]);
101
110
  const [tempReport, setTempReport] = (0, react_1.useState)(report_1.EMPTY_INTERNAL_REPORT);
102
111
  const [uniqueValues, setUniqueValues] = (0, react_1.useState)({});
112
+ const [uniqueValuesIsLoading, setUniqueValuesIsLoading] = (0, react_1.useState)(false);
103
113
  const [pivot, setPivot] = (0, react_1.useState)(null);
104
114
  const [pivotData, setPivotData] = (0, react_1.useState)(null);
105
115
  const [createdPivots, setCreatedPivots] = (0, react_1.useState)([]);
@@ -124,18 +134,23 @@ SidebarComponent = ui_1.QuillSidebar, ContainerComponent = ui_1.CustomContainer,
124
134
  const [pivotAggregation, setPivotAggregation] = (0, react_1.useState)(undefined);
125
135
  const [dateRanges, setDateRanges] = (0, react_1.useState)(null);
126
136
  const [client] = (0, react_1.useContext)(Context_1.ClientContext);
127
- // JANK: This is temp and stupid
128
- const [overrideRecommendations, setOverrideRecommendations] = (0, react_1.useState)(true);
129
137
  const [fieldValuesMap, setFieldValuesMap] = (0, react_1.useState)({}); // Mapping of unique values per field, used in string filter 'in' and 'not in'
130
138
  const [globalUniqueValues, setGlobalUniqueValues] = (0, react_1.useState)({});
139
+ const [globalUniqueValuesIsLoading, setGlobalUniqueValuesIsLoading] = (0, react_1.useState)(false);
131
140
  const { filterTree, filterStack } = (0, useAstToFilterTree_1.default)(formData, client); // Stores the state of filters
132
141
  const [removingFilter, setRemovingFilter] = (0, react_1.useState)(false);
142
+ const [pivotRecommendationsEnabledState, setPivotRecommendationsEnabledState,] = (0, react_1.useState)(pivotRecommendationsEnabled);
143
+ const REPORT_BUILDER_PAGINATION = {
144
+ page: 0,
145
+ rowsPerPage: 20,
146
+ rowsPerRequest: 1000,
147
+ };
133
148
  (0, react_1.useEffect)(() => {
134
149
  if (!client) {
135
150
  return;
136
151
  }
137
- if (client.publicKey === '663416663aa9bc716e59a89d') {
138
- setOverrideRecommendations(false);
152
+ if (client.recommendedPivotsDisabled !== undefined) {
153
+ setPivotRecommendationsEnabledState(!client.recommendedPivotsDisabled);
139
154
  }
140
155
  if (!initialLoad && client.publicKey) {
141
156
  clearAllState();
@@ -145,13 +160,18 @@ SidebarComponent = ui_1.QuillSidebar, ContainerComponent = ui_1.CustomContainer,
145
160
  (0, width_1.updateFirstChildWidth)(askAIContainerRef, setAskAIInputWidth, { gap: 12 });
146
161
  (0, width_1.updateFirstChildWidth)(askAILoadingContainerRef, setAskAILoadingContainerWidth, { gap: 12 });
147
162
  }, [dataDisplayed]);
163
+ (0, react_1.useEffect)(() => {
164
+ if (isChartBuilderOpen === false) {
165
+ onCloseChartBuilder && onCloseChartBuilder();
166
+ }
167
+ }, [isChartBuilderOpen]);
148
168
  // Whenever unique values changes, update the fieldValuesMap, used in FilterModals
149
- const updateFieldValuesMap = (curUnqiueValues, tableName) => {
169
+ const updateFieldValuesMap = (curUniqueValues, tableName) => {
150
170
  const newFieldValues = {};
151
- if (curUnqiueValues[tableName]) {
152
- for (const field of Object.keys(curUnqiueValues[tableName])) {
171
+ if (curUniqueValues[tableName]) {
172
+ for (const field of Object.keys(curUniqueValues[tableName])) {
153
173
  newFieldValues[field] = [];
154
- for (const value of Object.keys(curUnqiueValues[tableName][field])) {
174
+ for (const value of Object.keys(curUniqueValues[tableName][field])) {
155
175
  newFieldValues[field]?.push(value);
156
176
  }
157
177
  }
@@ -172,7 +192,7 @@ SidebarComponent = ui_1.QuillSidebar, ContainerComponent = ui_1.CustomContainer,
172
192
  };
173
193
  }, []);
174
194
  const updatePivot = async (changeField, fieldKey) => {
175
- const newPivot = pivot;
195
+ const newPivot = (0, util_1.deepCopy)(pivot);
176
196
  setTableLoading(true);
177
197
  // @ts-ignore
178
198
  newPivot[fieldKey] = changeField;
@@ -197,19 +217,19 @@ SidebarComponent = ui_1.QuillSidebar, ContainerComponent = ui_1.CustomContainer,
197
217
  dateBucket = (0, dates_1.getDateBucketFromRange)(tempDateRange.dateRange);
198
218
  }
199
219
  let distinctValuesForQuery = {};
200
- if (pivot.columnField) {
220
+ setPivot(newPivot);
221
+ if (newPivot.columnField) {
201
222
  distinctValuesForQuery = await (0, tableProcessing_1.getUniqueValuesByColumns)([
202
223
  {
203
- field: pivot.columnField,
204
- label: pivot.columnField,
224
+ field: newPivot.columnField,
225
+ label: newPivot.columnField,
205
226
  format: 'string',
206
227
  },
207
228
  ], activeQuery, [], client, schemaData.customFields ?? []);
208
229
  }
209
- const pivotedData = await (0, PivotModal_1.generatePivotTable)(pivot, rows, undefined, false, -1, undefined, dateBucket, tempReport, client, distinctValuesForQuery);
230
+ const pivotedData = await (0, PivotModal_1.generatePivotTable)(newPivot, rows, undefined, false, -1, undefined, dateBucket, tempReport, client, distinctValuesForQuery);
210
231
  setPivotData(pivotedData || []);
211
232
  const formattedRows = formatRows(pivotedData.rows, columns, true, newPivot.aggregationType);
212
- setPivot(newPivot);
213
233
  setFormattedRows(formattedRows);
214
234
  setTableLoading(false);
215
235
  };
@@ -241,7 +261,6 @@ SidebarComponent = ui_1.QuillSidebar, ContainerComponent = ui_1.CustomContainer,
241
261
  setActivePath(null);
242
262
  setOpenPopover(null);
243
263
  setLoading(false);
244
- setIsPending(false);
245
264
  setDataDisplayed(false);
246
265
  setRows([]);
247
266
  setColumns([]);
@@ -254,8 +273,10 @@ SidebarComponent = ui_1.QuillSidebar, ContainerComponent = ui_1.CustomContainer,
254
273
  }, 0);
255
274
  };
256
275
  const fetchGlobalUniqueValues = async (columns, currentTable, client) => {
257
- const global = await (0, tableProcessing_1.getUniqueStringValues)(columns, currentTable, client);
276
+ setGlobalUniqueValuesIsLoading(true);
277
+ const global = await (0, tableProcessing_1.getUniqueStringValues)(columns, currentTable, client, schemaData.customFields, undefined, true);
258
278
  setGlobalUniqueValues((0, filterProcessing_1.uniqueValuesToStringMap)(global));
279
+ setGlobalUniqueValuesIsLoading(false);
259
280
  };
260
281
  const uniqueValuesDependenciesRef = (0, react_1.useRef)({ client, columns, currentTable });
261
282
  const memoizedFetchGlobalUniqueValues = (0, react_1.useCallback)(fetchGlobalUniqueValues, []);
@@ -403,11 +424,13 @@ SidebarComponent = ui_1.QuillSidebar, ContainerComponent = ui_1.CustomContainer,
403
424
  setLoading(true);
404
425
  const tableInfo = tables.find((tableInfo) => tableInfo.name === initialTableName);
405
426
  if (tableInfo) {
406
- const newUniqueValues = await (0, tableProcessing_1.getUniqueStringValues)(tableInfo.columns, initialTableName, client, schemaData.customFields, uniqueValues);
427
+ setUniqueValuesIsLoading(true);
428
+ const newUniqueValues = await (0, tableProcessing_1.getUniqueStringValues)(tableInfo.columns, initialTableName, client, schemaData.customFields, uniqueValues, true);
407
429
  if ((0, crypto_1.hashCode)(uniqueValues) !== (0, crypto_1.hashCode)(newUniqueValues)) {
408
430
  setUniqueValues(newUniqueValues);
409
431
  updateFieldValuesMap(newUniqueValues, initialTableName);
410
432
  }
433
+ setUniqueValuesIsLoading(false);
411
434
  const dateRangesTemp = await getDateRanges(tableInfo.columns, initialTableName);
412
435
  setDateRanges(dateRangesTemp);
413
436
  }
@@ -688,13 +711,14 @@ SidebarComponent = ui_1.QuillSidebar, ContainerComponent = ui_1.CustomContainer,
688
711
  };
689
712
  const [previousPage, setPreviousPage] = (0, react_1.useState)(0);
690
713
  const [currentProcessing, setCurrentProcessing] = (0, react_1.useState)({
691
- page: paginationProcessing_1.DEFAULT_PAGINATION,
714
+ page: REPORT_BUILDER_PAGINATION,
692
715
  });
693
716
  const [numberOfRows, setNumberOfRows] = (0, react_1.useState)(0);
717
+ const [rowCountIsLoading, setRowCountIsLoading] = (0, react_1.useState)(false);
694
718
  const [tableLoading, setTableLoading] = (0, react_1.useState)(false);
695
719
  const onPageChange = (page) => {
696
720
  if (currentProcessing.page &&
697
- (0, paginationProcessing_1.shouldFetchMore)(paginationProcessing_1.DEFAULT_PAGINATION, page, previousPage)) {
721
+ (0, paginationProcessing_1.shouldFetchMore)(REPORT_BUILDER_PAGINATION, page, previousPage)) {
698
722
  const newPagination = { ...currentProcessing.page, page };
699
723
  const updatedProcessing = { ...currentProcessing, page: newPagination };
700
724
  setCurrentProcessing(updatedProcessing);
@@ -705,28 +729,50 @@ SidebarComponent = ui_1.QuillSidebar, ContainerComponent = ui_1.CustomContainer,
705
729
  }
706
730
  };
707
731
  const onSortChange = (sort) => {
708
- if ((0, paginationProcessing_1.shouldSortInMemory)(paginationProcessing_1.DEFAULT_PAGINATION, numberOfRows, !!pivot)) {
732
+ if ((0, paginationProcessing_1.shouldSortInMemory)(REPORT_BUILDER_PAGINATION, numberOfRows, !!pivot)) {
709
733
  return;
710
734
  }
711
- const updatedProcessing = { page: paginationProcessing_1.DEFAULT_PAGINATION, sort };
735
+ const updatedProcessing = { page: REPORT_BUILDER_PAGINATION, sort };
712
736
  handleRunQuery(updatedProcessing, true);
713
737
  setCurrentProcessing(updatedProcessing);
714
738
  setPreviousPage(0);
715
739
  };
716
- const handleRunQuery = async (processing, resetRows = false) => {
740
+ const onFilterPreviewChange = (preview) => {
741
+ handleRunQuery(currentProcessing, true, preview);
742
+ };
743
+ const fetchRowCount = async (processing, includeFilters) => {
744
+ if (!client || !activeQuery) {
745
+ return;
746
+ }
747
+ setRowCountIsLoading(true);
748
+ const tableInfo = await (0, tableProcessing_1.fetchResultsByQuery)(activeQuery, client, processing, schemaData.customFields, includeFilters ? specificDashboardFilters : undefined, includeFilters
749
+ ? tempReport.dateField ?? reportInfo?.dateField
750
+ : undefined, false, true);
751
+ if (tableInfo.rowCount) {
752
+ setNumberOfRows(tableInfo.rowCount);
753
+ }
754
+ setRowCountIsLoading(false);
755
+ };
756
+ const fetchRowCountFromAST = async (ast, where) => {
757
+ setRowCountIsLoading(true);
758
+ const tableData = await (0, tableProcessing_1.fetchTableByAST)({ ...ast, where }, client, { page: REPORT_BUILDER_PAGINATION }, undefined, false, true);
759
+ if (tableData.rowCount) {
760
+ setNumberOfRows(tableData.rowCount);
761
+ }
762
+ setRowCountIsLoading(false);
763
+ };
764
+ const handleRunQuery = async (processing, resetRows = false, includeFilters = false) => {
717
765
  try {
718
766
  setErrorMessage('');
719
767
  setTableLoading(true);
720
- const tableInfo = await (0, tableProcessing_1.fetchTableByQuery)(activeQuery, client, processing, schemaData.customFields);
768
+ const tableInfo = await (0, tableProcessing_1.fetchResultsByQuery)(activeQuery, client, processing, schemaData.customFields, includeFilters ? specificDashboardFilters : undefined, includeFilters ? tempReport.dateField : undefined, true);
721
769
  if (tableInfo.error) {
722
770
  throw new Error(tableInfo.error);
723
771
  }
724
772
  else if (tableInfo.rows.length === 0) {
725
773
  throw new Error('No data found');
726
774
  }
727
- if (tableInfo.rowCount) {
728
- setNumberOfRows(tableInfo.rowCount);
729
- }
775
+ fetchRowCount(processing, includeFilters);
730
776
  setCurrentProcessing(processing);
731
777
  let tempRows = [...rows, ...tableInfo.rows];
732
778
  if (resetRows) {
@@ -734,6 +780,11 @@ SidebarComponent = ui_1.QuillSidebar, ContainerComponent = ui_1.CustomContainer,
734
780
  }
735
781
  setRows(tempRows);
736
782
  setFormattedRows((0, report_1.formatRowsFromReport)({ rows: tempRows, columns: tableInfo.columns }));
783
+ setTempReport({
784
+ ...tempReport,
785
+ rows: tempRows,
786
+ rowCount: tableInfo.rowCount ?? tempReport.rowCount,
787
+ });
737
788
  setColumns(tableInfo.columns);
738
789
  setTableLoading(false);
739
790
  }
@@ -745,7 +796,7 @@ SidebarComponent = ui_1.QuillSidebar, ContainerComponent = ui_1.CustomContainer,
745
796
  return;
746
797
  }
747
798
  };
748
- const renderFilters = () => {
799
+ const renderFilters = (actionsEnabled = true) => {
749
800
  // Render filterStack
750
801
  return ((0, jsx_runtime_1.jsx)("div", { style: {
751
802
  display: 'flex',
@@ -789,7 +840,7 @@ SidebarComponent = ui_1.QuillSidebar, ContainerComponent = ui_1.CustomContainer,
789
840
  } }) }, index));
790
841
  }
791
842
  else if (item.value) {
792
- return ((0, jsx_runtime_1.jsx)(ui_1.FilterPopoverWrapper, { schema: schemaData.schema.find((s) => s.name === currentTable || s.displayName === currentTable) ?? schemaData.schema[0], filter: item.value, filterLabel: item.value ? (0, filterProcessing_1.filterSentence)(item.value) : '', index: index, FilterTagComponent: FilterPopoverComponent, FilterModal: FilterModal_1.default, fieldValuesMap: globalUniqueValues, priorFilters: filterStack.slice(0, index > 0 ? index - 1 : 0), columns: columns, client: client, customFields: schemaData.customFields, baseAst: baseAst, endpoint: exports.QUILL_SERVER, ButtonComponent: ButtonComponent, SecondaryButtonComponent: SecondaryButtonComponent, SelectComponent: SelectComponent, TextInputComponent: TextInputComponent, MultiSelectComponent: MultiSelectComponent, handleFilterSave: (filter) => {
843
+ return ((0, jsx_runtime_1.jsx)(ui_1.FilterPopoverWrapper, { schema: schemaData.schema.find((s) => s.name === currentTable || s.displayName === currentTable) ?? schemaData.schema[0], filter: item.value, filterLabel: item.value ? (0, filterProcessing_1.filterSentence)(item.value) : '', index: index, FilterTagComponent: FilterPopoverComponent, FilterModal: FilterModal_1.default, fieldValuesMap: globalUniqueValues, fieldValuesMapIsLoading: globalUniqueValuesIsLoading, priorFilters: filterStack.slice(0, index > 0 ? index - 1 : 0), columns: columns, client: client, customFields: schemaData.customFields, baseAst: baseAst, endpoint: exports.QUILL_SERVER, ButtonComponent: ButtonComponent, SecondaryButtonComponent: SecondaryButtonComponent, SelectComponent: SelectComponent, TextInputComponent: TextInputComponent, MultiSelectComponent: MultiSelectComponent, handleFilterSave: (filter) => {
793
844
  item.value = filter;
794
845
  let newFormData = null;
795
846
  if (filterTree) {
@@ -853,7 +904,7 @@ SidebarComponent = ui_1.QuillSidebar, ContainerComponent = ui_1.CustomContainer,
853
904
  fetchSqlQuery(newAst, newFormData);
854
905
  setRemovingFilter(false);
855
906
  }
856
- } }, `filter_${index}_${item.value ? (0, filterProcessing_1.filterSentence)(item.value) : ''}`));
907
+ }, disabled: !actionsEnabled }, `filter_${index}_${item.value ? (0, filterProcessing_1.filterSentence)(item.value) : ''}`));
857
908
  }
858
909
  }) }));
859
910
  };
@@ -880,12 +931,18 @@ SidebarComponent = ui_1.QuillSidebar, ContainerComponent = ui_1.CustomContainer,
880
931
  },
881
932
  as: null,
882
933
  });
934
+ const updateUniqueValue = (uniqueStrings, table) => {
935
+ const uniqueStringsObj = {};
936
+ uniqueStringsObj[table] = uniqueStrings ?? {};
937
+ setUniqueValues(uniqueStringsObj);
938
+ updateFieldValuesMap(uniqueStringsObj, table);
939
+ };
883
940
  const fetchReportFromASTHelper = async (baseAst, newFormData, curPivot, curSchema, previousReport) => {
884
941
  const curFormData = newFormData !== undefined ? newFormData : formData;
885
942
  let reportBuilderInfo = undefined;
886
943
  try {
887
944
  setLoading(true);
888
- reportBuilderInfo = await (0, report_1.fetchReportBuilderDataFromAST)(baseAst, curFormData, curSchema ?? schemaData.schema, client, curPivot ?? pivot, formData, currentTable, { uniqueStrings: uniqueValues, dateRanges: dateRanges ?? {} }, previousReport ?? reportInfo ?? undefined, schemaData.customFields);
945
+ reportBuilderInfo = await (0, report_1.fetchReportBuilderDataFromAST)(baseAst, curFormData, curSchema ?? schemaData.schema, client, curPivot ?? pivot, formData, currentTable, { uniqueStrings: uniqueValues, dateRanges: dateRanges ?? {} }, previousReport ?? reportInfo ?? undefined, schemaData.customFields, true, true, { page: REPORT_BUILDER_PAGINATION });
889
946
  if (reportBuilderInfo.error) {
890
947
  throw new Error(reportBuilderInfo.error);
891
948
  }
@@ -904,21 +961,22 @@ SidebarComponent = ui_1.QuillSidebar, ContainerComponent = ui_1.CustomContainer,
904
961
  setErrorMessage('Failed to fetch');
905
962
  return;
906
963
  }
964
+ fetchRowCountFromAST(baseAst, curFormData);
907
965
  const reportTable = reportBuilderInfo.table;
908
966
  const reportBuilderInfoColumns = reportBuilderInfo.columns.map((column) => {
909
967
  return `${reportTable}.${column.field}`;
910
968
  });
969
+ const prevFormData = formData;
970
+ const prevTable = currentTable;
911
971
  setRows(reportBuilderInfo.rows);
912
972
  setColumns(reportBuilderInfo.columns);
913
- setNumberOfRows(reportBuilderInfo.rowCount);
973
+ // setNumberOfRows(reportBuilderInfo.rowCount);
914
974
  setPivot(reportBuilderInfo.pivot);
915
975
  setPivotData(reportBuilderInfo.pivotData);
976
+ setDateRanges(reportBuilderInfo.dateRanges);
916
977
  setFormattedRows(reportBuilderInfo.formattedRows);
917
978
  setTempReport(reportBuilderInfo.report);
918
979
  setSelectedColumns(reportBuilderInfoColumns);
919
- setUniqueValues(reportBuilderInfo.uniqueValues);
920
- updateFieldValuesMap(reportBuilderInfo.uniqueValues, reportBuilderInfo.table);
921
- setDateRanges(reportBuilderInfo.dateRanges);
922
980
  setLoading(false);
923
981
  setDataDisplayed(true);
924
982
  setCurrentTable(reportBuilderInfo.table);
@@ -930,6 +988,31 @@ SidebarComponent = ui_1.QuillSidebar, ContainerComponent = ui_1.CustomContainer,
930
988
  setPivotValueField(reportBuilderInfo.pivot.valueField);
931
989
  }
932
990
  setReportInfo(reportBuilderInfo.report);
991
+ // fetch unique values after everything else since it is the most expensive
992
+ if (prevTable !== reportBuilderInfo.table ||
993
+ !(0, fast_deep_equal_1.default)(prevFormData, curFormData)) {
994
+ try {
995
+ setUniqueValuesIsLoading(true);
996
+ const schema = curSchema ?? schemaData.schema;
997
+ const tableInfo = schema.find((tableInfo) => tableInfo.name === reportBuilderInfo?.table);
998
+ if (!reportBuilderInfo.table || !tableInfo) {
999
+ throw new Error('No table found;');
1000
+ }
1001
+ const uniqueStrings = await (0, tableProcessing_1.getUniqueStringValues)(tableInfo.columns, reportBuilderInfo.table, client, schemaData.customFields, undefined, true, reportBuilderInfo.query);
1002
+ updateUniqueValue(uniqueStrings, reportBuilderInfo.table);
1003
+ setUniqueValuesIsLoading(false);
1004
+ }
1005
+ catch (err) {
1006
+ if (err instanceof Error) {
1007
+ setErrorMessage(err.message);
1008
+ setLoading(false);
1009
+ return { error: true, message: err.message, rows: [] };
1010
+ }
1011
+ setLoading(false);
1012
+ setErrorMessage('Failed to fetch');
1013
+ return { error: true, message: 'Failed to fetch', rows: [] };
1014
+ }
1015
+ }
933
1016
  };
934
1017
  const fetchAstFromPromptHelper = async (overridePrompt) => {
935
1018
  let astInfo = {};
@@ -995,7 +1078,7 @@ SidebarComponent = ui_1.QuillSidebar, ContainerComponent = ui_1.CustomContainer,
995
1078
  };
996
1079
  return ((0, jsx_runtime_1.jsx)("div", { style: { ...style }, ref: setNodeRef, children: (0, jsx_runtime_1.jsx)(DraggableColumnComponent, { label: (0, textProcessing_1.snakeAndCamelCaseToTitleCase)(label), onDelete: onDelete, DragHandle: (props) => ((0, jsx_runtime_1.jsx)("div", { style: {
997
1080
  cursor: 'grab',
998
- }, ...attributes, ...listeners, children: (0, jsx_runtime_1.jsx)(props.dragIcon, {}) })) }) }));
1081
+ }, ...attributes, ...listeners, children: (0, jsx_runtime_1.jsx)(props.dragIcon, {}) })), deleteDisabled: loading }) }));
999
1082
  };
1000
1083
  function DraggableColumns() {
1001
1084
  const sensors = (0, core_1.useSensors)((0, core_1.useSensor)(core_1.PointerSensor), (0, core_1.useSensor)(core_1.KeyboardSensor, {
@@ -1070,7 +1153,7 @@ SidebarComponent = ui_1.QuillSidebar, ContainerComponent = ui_1.CustomContainer,
1070
1153
  display: 'flex',
1071
1154
  flexDirection: 'column',
1072
1155
  gap: 8,
1073
- }, children: [columnNamesInAst.map((name) => ((0, jsx_runtime_1.jsx)(DraggableItem, { id: name, label: name, onDelete: () => handleDeleteColumn(name) }, name))), columnNamesInAst?.length > 0 && (0, jsx_runtime_1.jsx)("div", { style: { height: 6 } })] }) }) }));
1156
+ }, children: [columnNamesInAst.map((name) => ((0, jsx_runtime_1.jsx)(DraggableItem, { id: name, label: name, onDelete: () => !loading && handleDeleteColumn(name) }, name))), columnNamesInAst?.length > 0 && (0, jsx_runtime_1.jsx)("div", { style: { height: 6 } })] }) }) }));
1074
1157
  }
1075
1158
  // TODO: Refactor this part
1076
1159
  if (loading || initialChartLoad) {
@@ -1083,11 +1166,10 @@ SidebarComponent = ui_1.QuillSidebar, ContainerComponent = ui_1.CustomContainer,
1083
1166
  if (!openPopover) {
1084
1167
  setOpenPopover('AddColumnModal');
1085
1168
  }
1086
- }, label: 'Select columns' }), (0, jsx_runtime_1.jsx)(ModalComponent, { isOpen: openPopover === 'AddColumnModal', setIsOpen: (isOpen) => {
1169
+ }, label: 'Select columns', disabled: true }), (0, jsx_runtime_1.jsx)(ModalComponent, { isOpen: openPopover === 'AddColumnModal', setIsOpen: (isOpen) => {
1087
1170
  if (!isOpen) {
1088
1171
  // delay onClose callback so onClick no-ops
1089
1172
  setTimeout(() => {
1090
- setIsPending(false);
1091
1173
  setActiveEditItem(null);
1092
1174
  setActivePath(null);
1093
1175
  setOpenPopover(null);
@@ -1105,7 +1187,7 @@ SidebarComponent = ui_1.QuillSidebar, ContainerComponent = ui_1.CustomContainer,
1105
1187
  flexDirection: 'column',
1106
1188
  gap: 8,
1107
1189
  marginBottom: 12,
1108
- }, children: renderFilters() })), (0, jsx_runtime_1.jsxs)("div", { style: {
1190
+ }, children: renderFilters(false) })), (0, jsx_runtime_1.jsxs)("div", { style: {
1109
1191
  display: 'flex',
1110
1192
  flexDirection: 'column',
1111
1193
  alignItems: 'flex-start',
@@ -1131,14 +1213,12 @@ SidebarComponent = ui_1.QuillSidebar, ContainerComponent = ui_1.CustomContainer,
1131
1213
  }
1132
1214
  setOpenPopover('AddFilterPopover');
1133
1215
  setActivePath('');
1134
- setIsPending(true);
1135
1216
  }
1136
- }, label: 'Add filter' }), (0, jsx_runtime_1.jsx)("div", { style: {
1217
+ }, label: 'Add filter', disabled: true }), (0, jsx_runtime_1.jsx)("div", { style: {
1137
1218
  position: 'relative',
1138
1219
  ...(openPopover === 'AddFilterPopover' && { top: 12 }),
1139
1220
  }, children: (0, jsx_runtime_1.jsx)(PopoverComponent, { isOpen: openPopover === 'AddFilterPopover', setIsOpen: (isOpen) => {
1140
1221
  if (!isOpen) {
1141
- setIsPending(false);
1142
1222
  setActivePath(null);
1143
1223
  setOpenPopover(null);
1144
1224
  setTimeout(() => {
@@ -1149,9 +1229,8 @@ SidebarComponent = ui_1.QuillSidebar, ContainerComponent = ui_1.CustomContainer,
1149
1229
  }, popoverTitle: 'Add filter', popoverChildren: (0, jsx_runtime_1.jsx)(FilterModal_1.default, { schema: schemaData.schema.find((s) => s.name === currentTable ||
1150
1230
  s.displayName === currentTable) ?? schemaData.schema[0], fieldValuesMap: uniqueValues[(0, ast_1.getTableNames)(baseAst).length === 1
1151
1231
  ? (0, ast_1.getTableNames)(baseAst)[0]
1152
- : initialTableName], onSubmitFilter: (filter) => {
1232
+ : initialTableName], fieldValuesMapIsLoading: uniqueValuesIsLoading, onSubmitFilter: (filter) => {
1153
1233
  setOpenPopover(null);
1154
- setIsPending(false);
1155
1234
  const item = (0, astFilterProcessing_1.filterToAst)(filter, client.databaseType.toLowerCase());
1156
1235
  handleInsertion(item, 'AND', false);
1157
1236
  }, onDeleteFilter: () => { }, ButtonComponent: ButtonComponent, SelectComponent: SelectComponent, TextInputComponent: TextInputComponent, SecondaryButtonComponent: SecondaryButtonComponent, MultiSelectComponent: MultiSelectComponent }) }) })] })] }), (0, jsx_runtime_1.jsxs)("div", { style: { width: '100%' }, children: [(0, jsx_runtime_1.jsx)(SidebarHeadingComponent, { label: "Pivot" }), (0, jsx_runtime_1.jsx)(PivotModal_1.PivotModal, { pivotRowField: pivotRowField, setPivotRowField: setPivotRowField, pivotColumnField: pivotColumnField, setPivotColumnField: setPivotColumnField, pivotValueField: pivotValueField, setPivotValueField: setPivotValueField, pivotAggregation: pivotAggregation, setPivotAggregation: setPivotAggregation, createdPivots: createdPivots, setCreatedPivots: setCreatedPivots, recommendedPivots: recommendedPivots, setRecommendedPivots: setRecommendedPivots, popUpTitle: pivotPopUpTitle, setPopUpTitle: setPivotPopUpTitle, selectedTable: initialTableName, CardComponent: CardComponent, SelectComponent: SelectComponent, ButtonComponent: ButtonComponent, PopoverComponent: PopoverComponent, TextComponent: TextComponent, ErrorMessageComponent: ErrorMessageComponent, PivotRowContainer: PivotRowContainer, PivotColumnContainer: PivotColumnContainer, LoadingComponent: LoadingComponent, isOpen: showPivotPopover, setIsOpen: setShowPivotPopover, showUpdatePivot: isEditingPivot, setShowUpdatePivot: setIsEditingPivot, parentRef: parentRef, data: rows, columns: columns, triggerButtonText: 'Add pivot', selectedPivotIndex: selectedPivotIndex, setSelectedPivotIndex: setSelectedPivotIndex, removePivot: () => {
@@ -1163,14 +1242,14 @@ SidebarComponent = ui_1.QuillSidebar, ContainerComponent = ui_1.CustomContainer,
1163
1242
  // TODOs
1164
1243
  selectPivot: () => {
1165
1244
  return;
1166
- }, selectPivotOnEdit: true, showTrigger: !pivot, theme: theme, LabelComponent: LabelComponent, HeaderComponent: HeaderComponent, dateRange: undefined, pivotCountRequest: 4, SecondaryButtonComponent: SecondaryButtonComponent, query: activeQuery, initialUniqueValues: uniqueValues[currentTable], disabled: !loading && (!baseAst || !dataDisplayed), pivotRecommendationsEnabled: pivotRecommendationsEnabled && overrideRecommendations, report: tempReport ?? reportInfo }), pivot && ((0, jsx_runtime_1.jsx)(PivotForm_1.default, { columns: columns, uniqueValues: uniqueValues[currentTable], setPivotRowField: (value) => {
1245
+ }, selectPivotOnEdit: true, showTrigger: !pivot, theme: theme, LabelComponent: LabelComponent, HeaderComponent: HeaderComponent, dateRange: undefined, pivotCountRequest: 4, SecondaryButtonComponent: SecondaryButtonComponent, query: activeQuery, initialUniqueValues: uniqueValues[currentTable], disabled: true, pivotRecommendationsEnabled: pivotRecommendationsEnabledState, report: tempReport ?? reportInfo }), pivot && ((0, jsx_runtime_1.jsx)(PivotForm_1.default, { columns: columns, uniqueValues: uniqueValues[currentTable], uniqueValuesIsLoading: uniqueValuesIsLoading, setPivotRowField: (value) => {
1167
1246
  setPivotRowField(value);
1168
1247
  }, setPivotColumnField: setPivotColumnField, setPivotValueField: setPivotValueField, setPivotAggregation: setPivotAggregation, pivotRowField: pivotRowField, pivotColumnField: pivotColumnField, pivotValueField: pivotValueField, pivotAggregation: pivotAggregation, onDelete: () => {
1169
1248
  setPivot(null);
1170
1249
  setPivotData([]);
1171
1250
  const formattedRows = formatRows(rows, columns, false);
1172
1251
  setFormattedRows(formattedRows);
1173
- }, SecondaryButtonComponent: SecondaryButtonComponent, SelectComponent: SelectComponent, PivotColumnContainer: PivotColumnContainer }))] }), (0, jsx_runtime_1.jsxs)("div", { style: { width: '100%' }, children: [(0, jsx_runtime_1.jsx)(SidebarHeadingComponent, { label: "Sort" }), pivot && pivot.sort && ((0, jsx_runtime_1.jsx)("div", { style: {
1252
+ }, isLoading: tableLoading, SecondaryButtonComponent: SecondaryButtonComponent, SelectComponent: SelectComponent, PivotColumnContainer: PivotColumnContainer }))] }), (0, jsx_runtime_1.jsxs)("div", { style: { width: '100%' }, children: [(0, jsx_runtime_1.jsx)(SidebarHeadingComponent, { label: "Sort" }), pivot && pivot.sort && ((0, jsx_runtime_1.jsx)("div", { style: {
1174
1253
  display: 'flex',
1175
1254
  flexDirection: 'column',
1176
1255
  gap: 8,
@@ -1178,7 +1257,7 @@ SidebarComponent = ui_1.QuillSidebar, ContainerComponent = ui_1.CustomContainer,
1178
1257
  }, children: (0, jsx_runtime_1.jsx)(AddSortPopover_1.SortSentence, { sortData: {
1179
1258
  type: pivot.sortDirection,
1180
1259
  expr: { type: 'column_ref', column: pivot.sortField },
1181
- }, columns: selectedColumns, setIsPending: setIsPending, setEditPopoverKey: () => { }, setActiveEditItem: setActiveEditItem, setActivePath: setActivePath, setOpenPopover: setOpenPopover, SortPopover: SortPopoverComponent, EditPopover: AddSortPopover_1.AddSortPopover, handleDelete: () => {
1260
+ }, columns: selectedColumns, setIsPending: () => { }, setEditPopoverKey: () => { }, setActiveEditItem: setActiveEditItem, setActivePath: setActivePath, setOpenPopover: setOpenPopover, SortPopover: SortPopoverComponent, EditPopover: AddSortPopover_1.AddSortPopover, handleDelete: () => {
1182
1261
  setPivot({ ...pivot, sort: false });
1183
1262
  setBaseAst((0, util_1.deepCopy)(baseAst));
1184
1263
  if (!pivot) {
@@ -1206,7 +1285,6 @@ SidebarComponent = ui_1.QuillSidebar, ContainerComponent = ui_1.CustomContainer,
1206
1285
  gap: 8,
1207
1286
  marginBottom: 12,
1208
1287
  }, children: baseAst.orderby.map((sortData, id) => ((0, jsx_runtime_1.jsx)(AddSortPopover_1.SortSentence, { sortData: sortData, columns: selectedColumns, onSave: (column, direction) => {
1209
- setIsPending(false);
1210
1288
  setActiveEditItem(null);
1211
1289
  setOpenPopover(null);
1212
1290
  if (column === '')
@@ -1227,14 +1305,14 @@ SidebarComponent = ui_1.QuillSidebar, ContainerComponent = ui_1.CustomContainer,
1227
1305
  if (!pivot) {
1228
1306
  fetchSqlQuery(newAst);
1229
1307
  }
1230
- }, setIsPending: setIsPending, setEditPopoverKey: () => { }, setActiveEditItem: setActiveEditItem, setActivePath: setActivePath, setOpenPopover: setOpenPopover, SortPopover: SortPopoverComponent, EditPopover: AddSortPopover_1.AddSortPopover, handleDelete: () => {
1308
+ }, setIsPending: () => { }, setEditPopoverKey: () => { }, setActiveEditItem: setActiveEditItem, setActivePath: setActivePath, setOpenPopover: setOpenPopover, SortPopover: SortPopoverComponent, EditPopover: AddSortPopover_1.AddSortPopover, handleDelete: () => {
1231
1309
  const newAst = { ...baseAst };
1232
1310
  newAst.orderby.splice(id, 1);
1233
1311
  setBaseAst((0, util_1.deepCopy)(newAst));
1234
1312
  if (!pivot) {
1235
1313
  fetchSqlQuery(newAst);
1236
1314
  }
1237
- }, Select: SelectComponent, Button: ButtonComponent, SecondaryButton: SecondaryButtonComponent }, `sort-sentence-${id}`))) })), (0, jsx_runtime_1.jsx)(SecondaryButtonComponent, { onClick: () => {
1315
+ }, Select: SelectComponent, Button: ButtonComponent, SecondaryButton: SecondaryButtonComponent, disabled: true }, `sort-sentence-${id}`))) })), (0, jsx_runtime_1.jsx)(SecondaryButtonComponent, { onClick: () => {
1238
1316
  if (!selectedColumns ||
1239
1317
  selectedColumns.length === 0 ||
1240
1318
  loading) {
@@ -1243,9 +1321,8 @@ SidebarComponent = ui_1.QuillSidebar, ContainerComponent = ui_1.CustomContainer,
1243
1321
  if (!openPopover) {
1244
1322
  setOpenPopover('AddSortPopover');
1245
1323
  }
1246
- }, label: "Add sort" }), (0, jsx_runtime_1.jsx)(PopoverComponent, { isOpen: openPopover === 'AddSortPopover', setIsOpen: (isOpen) => {
1324
+ }, label: "Add sort", disabled: true }), (0, jsx_runtime_1.jsx)(PopoverComponent, { isOpen: openPopover === 'AddSortPopover', setIsOpen: (isOpen) => {
1247
1325
  if (!isOpen) {
1248
- setIsPending(false);
1249
1326
  setActiveEditItem(null);
1250
1327
  setActivePath(null);
1251
1328
  setOpenPopover(null);
@@ -1274,7 +1351,7 @@ SidebarComponent = ui_1.QuillSidebar, ContainerComponent = ui_1.CustomContainer,
1274
1351
  setOpenPopover(null);
1275
1352
  setBaseAst((0, util_1.deepCopy)(newAst));
1276
1353
  fetchSqlQuery(newAst);
1277
- }, TextInput: TextInputComponent, Button: ButtonComponent, SecondaryButton: SecondaryButtonComponent }) })) : ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(SecondaryButtonComponent, { onClick: () => {
1354
+ }, TextInput: TextInputComponent, Button: ButtonComponent, SecondaryButton: SecondaryButtonComponent, disabled: true }) })) : ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(SecondaryButtonComponent, { onClick: () => {
1278
1355
  if (!selectedColumns ||
1279
1356
  selectedColumns.length === 0 ||
1280
1357
  loading) {
@@ -1283,9 +1360,8 @@ SidebarComponent = ui_1.QuillSidebar, ContainerComponent = ui_1.CustomContainer,
1283
1360
  if (!openPopover) {
1284
1361
  setOpenPopover('AddLimitPopover');
1285
1362
  }
1286
- }, label: 'Add limit' }), (0, jsx_runtime_1.jsx)(PopoverComponent, { isOpen: openPopover === 'AddLimitPopover', setIsOpen: (isOpen) => {
1363
+ }, label: 'Add limit', disabled: true }), (0, jsx_runtime_1.jsx)(PopoverComponent, { isOpen: openPopover === 'AddLimitPopover', setIsOpen: (isOpen) => {
1287
1364
  if (!isOpen) {
1288
- setIsPending(false);
1289
1365
  setActiveEditItem(null);
1290
1366
  setActivePath(null);
1291
1367
  setOpenPopover(null);
@@ -1332,7 +1408,6 @@ SidebarComponent = ui_1.QuillSidebar, ContainerComponent = ui_1.CustomContainer,
1332
1408
  if (!isOpen) {
1333
1409
  // delay onClose callback so onClick no-ops
1334
1410
  setTimeout(() => {
1335
- setIsPending(false);
1336
1411
  setActiveEditItem(null);
1337
1412
  setActivePath(null);
1338
1413
  setOpenPopover(null);
@@ -1376,7 +1451,6 @@ SidebarComponent = ui_1.QuillSidebar, ContainerComponent = ui_1.CustomContainer,
1376
1451
  }
1377
1452
  setOpenPopover('AddFilterPopover');
1378
1453
  setActivePath('');
1379
- setIsPending(true);
1380
1454
  }
1381
1455
  }, label: 'Add filter' }), (0, jsx_runtime_1.jsx)("div", { style: {
1382
1456
  position: 'relative',
@@ -1386,16 +1460,14 @@ SidebarComponent = ui_1.QuillSidebar, ContainerComponent = ui_1.CustomContainer,
1386
1460
  // delay onClose callback so onClick no-ops
1387
1461
  setOpenPopover(null);
1388
1462
  setTimeout(() => {
1389
- setIsPending(false);
1390
1463
  setActivePath(null);
1391
1464
  clearCheckboxes();
1392
1465
  setActiveEditItem(null);
1393
1466
  }, 300);
1394
1467
  }
1395
1468
  }, popoverTitle: "Add filter", popoverChildren: (0, jsx_runtime_1.jsx)(FilterModal_1.default, { schema: schemaData.schema.find((s) => s.name === currentTable ||
1396
- s.displayName === currentTable) ?? schemaData.schema[0], fieldValuesMap: fieldValuesMap, onSubmitFilter: (filter) => {
1469
+ s.displayName === currentTable) ?? schemaData.schema[0], fieldValuesMap: fieldValuesMap, fieldValuesMapIsLoading: uniqueValuesIsLoading, onSubmitFilter: (filter) => {
1397
1470
  setOpenPopover(null);
1398
- setIsPending(false);
1399
1471
  const item = (0, astFilterProcessing_1.filterToAst)(filter, client.databaseType.toLowerCase());
1400
1472
  handleInsertion(item, 'AND', false);
1401
1473
  }, onDeleteFilter: () => { }, ButtonComponent: ButtonComponent, SelectComponent: SelectComponent, TextInputComponent: TextInputComponent, MultiSelectComponent: MultiSelectComponent }) }) })] })] }), (0, jsx_runtime_1.jsxs)("div", { style: { width: '100%' }, children: [(0, jsx_runtime_1.jsx)(SidebarHeadingComponent, { label: "Pivot" }), (0, jsx_runtime_1.jsx)(PivotModal_1.PivotModal, { pivotRowField: pivotRowField, setPivotRowField: setPivotRowField, pivotColumnField: pivotColumnField, setPivotColumnField: setPivotColumnField, pivotValueField: pivotValueField, setPivotValueField: setPivotValueField, pivotAggregation: pivotAggregation, setPivotAggregation: setPivotAggregation, createdPivots: createdPivots, setCreatedPivots: setCreatedPivots, recommendedPivots: recommendedPivots, setRecommendedPivots: setRecommendedPivots, popUpTitle: pivotPopUpTitle, setPopUpTitle: setPivotPopUpTitle, selectedTable: initialTableName, SelectComponent: SelectComponent, ButtonComponent: ButtonComponent, CardComponent: CardComponent, SecondaryButtonComponent: SecondaryButtonComponent, PopoverComponent: PopoverComponent, TextComponent: TextComponent, ErrorMessageComponent: ErrorMessageComponent, PivotRowContainer: PivotRowContainer, PivotColumnContainer: PivotColumnContainer, LoadingComponent: LoadingComponent, isOpen: showPivotPopover, setIsOpen: setShowPivotPopover, showUpdatePivot: isEditingPivot, setShowUpdatePivot: setIsEditingPivot, parentRef: parentRef, data: rows, columns: columns, triggerButtonText: 'Add pivot', selectedPivotIndex: selectedPivotIndex, setSelectedPivotIndex: setSelectedPivotIndex, removePivot: () => {
@@ -1403,29 +1475,32 @@ SidebarComponent = ui_1.QuillSidebar, ContainerComponent = ui_1.CustomContainer,
1403
1475
  setPivotData(null);
1404
1476
  const formattedRows = formatRows(rows, columns, false);
1405
1477
  setFormattedRows(formattedRows);
1406
- }, selectPivot: async (pivot, uniqueValues, dateRange, pivotTable) => {
1407
- if (!pivot)
1478
+ }, selectPivot: async (selectedPivot, uniqueValues, dateRange, pivotTable) => {
1479
+ if (!selectedPivot)
1408
1480
  return;
1409
1481
  const newAst = { ...baseAst };
1410
1482
  newAst.orderby = null;
1411
- if (pivot.rowFieldType === 'date') {
1412
- pivot['sort'] = true;
1413
- pivot['sortDirection'] = 'ASC';
1483
+ if (selectedPivot.rowFieldType === 'date') {
1484
+ selectedPivot['sort'] = true;
1485
+ selectedPivot['sortDirection'] = 'ASC';
1414
1486
  }
1415
1487
  setBaseAst(newAst); // trigger refetch
1416
1488
  let dateBucket = undefined;
1417
1489
  if (dateRange) {
1418
1490
  dateBucket = (0, dates_1.getDateBucketFromRange)(dateRange);
1419
1491
  }
1492
+ setPivot(selectedPivot);
1420
1493
  if (!pivotTable) {
1421
- pivotTable = await (0, PivotModal_1.generatePivotTable)(pivot, rows, undefined, false, -1, undefined, dateBucket, tempReport, client, uniqueValues);
1494
+ setTableLoading(true);
1495
+ pivotTable = await (0, PivotModal_1.generatePivotTable)(selectedPivot, rows, undefined, false, -1, undefined, dateBucket, tempReport, client, uniqueValues);
1422
1496
  }
1497
+ // no other calls made
1423
1498
  setPivotData(pivotTable || []);
1424
- setPivot(pivot);
1425
- const formattedRows = formatRows(pivotTable.rows, columns, true, pivot.aggregationType);
1499
+ const formattedRows = formatRows(pivotTable.rows, columns, true, selectedPivot.aggregationType);
1426
1500
  setFormattedRows(formattedRows);
1427
1501
  setErrorMessage('');
1428
- }, selectPivotOnEdit: true, showTrigger: !pivot, theme: theme, LabelComponent: LabelComponent, HeaderComponent: HeaderComponent, dateRange: undefined, pivotCountRequest: 4, query: activeQuery, initialUniqueValues: uniqueValues[currentTable], disabled: !baseAst || !dataDisplayed, pivotRecommendationsEnabled: pivotRecommendationsEnabled && overrideRecommendations, report: tempReport }), pivot && ((0, jsx_runtime_1.jsx)(PivotForm_1.default, { columns: columns, uniqueValues: uniqueValues[currentTable], setPivotRowField: (value) => {
1502
+ setTableLoading(false); // only set to false if this was the final call
1503
+ }, selectPivotOnEdit: true, showTrigger: !pivot, theme: theme, LabelComponent: LabelComponent, HeaderComponent: HeaderComponent, dateRange: undefined, pivotCountRequest: 4, query: activeQuery, initialUniqueValues: uniqueValues[currentTable], uniqueValuesIsLoading: uniqueValuesIsLoading, disabled: !baseAst || !dataDisplayed || tableLoading, pivotRecommendationsEnabled: pivotRecommendationsEnabledState, report: tempReport }), pivot && ((0, jsx_runtime_1.jsx)(PivotForm_1.default, { columns: columns, uniqueValues: uniqueValues[currentTable], uniqueValuesIsLoading: uniqueValuesIsLoading, setPivotRowField: (value) => {
1429
1504
  setPivotRowField(value);
1430
1505
  updatePivot(value, 'rowField');
1431
1506
  }, setPivotColumnField: (value) => {
@@ -1442,7 +1517,7 @@ SidebarComponent = ui_1.QuillSidebar, ContainerComponent = ui_1.CustomContainer,
1442
1517
  setPivotData([]);
1443
1518
  const formattedRows = formatRows(rows, columns, false);
1444
1519
  setFormattedRows(formattedRows);
1445
- }, pivotRowField: pivotRowField, pivotColumnField: pivotColumnField, pivotValueField: pivotValueField, pivotAggregation: pivotAggregation, SecondaryButtonComponent: SecondaryButtonComponent, SelectComponent: SelectComponent, PivotColumnContainer: PivotColumnContainer }))] }), (0, jsx_runtime_1.jsxs)("div", { style: { width: '100%' }, children: [(0, jsx_runtime_1.jsx)(SidebarHeadingComponent, { label: "Sort" }), pivot && pivot.sort && ((0, jsx_runtime_1.jsx)("div", { style: {
1520
+ }, isLoading: tableLoading, pivotRowField: pivotRowField, pivotColumnField: pivotColumnField, pivotValueField: pivotValueField, pivotAggregation: pivotAggregation, SecondaryButtonComponent: SecondaryButtonComponent, SelectComponent: SelectComponent, PivotColumnContainer: PivotColumnContainer }))] }), (0, jsx_runtime_1.jsxs)("div", { style: { width: '100%' }, children: [(0, jsx_runtime_1.jsx)(SidebarHeadingComponent, { label: "Sort" }), pivot && pivot.sort && ((0, jsx_runtime_1.jsx)("div", { style: {
1446
1521
  display: 'flex',
1447
1522
  flexDirection: 'column',
1448
1523
  gap: 8,
@@ -1457,7 +1532,7 @@ SidebarComponent = ui_1.QuillSidebar, ContainerComponent = ui_1.CustomContainer,
1457
1532
  `.${pivot.rowField}`,
1458
1533
  `.${pivot.valueField || 'count'}`,
1459
1534
  ]
1460
- : selectedColumns, setIsPending: setIsPending, setEditPopoverKey: () => { }, setActiveEditItem: setActiveEditItem, setActivePath: setActivePath, setOpenPopover: setOpenPopover, SortPopover: SortPopoverComponent, EditPopover: AddSortPopover_1.AddSortPopover, handleDelete: async () => {
1535
+ : selectedColumns, setIsPending: () => { }, setEditPopoverKey: () => { }, setActiveEditItem: setActiveEditItem, setActivePath: setActivePath, setOpenPopover: setOpenPopover, SortPopover: SortPopoverComponent, EditPopover: AddSortPopover_1.AddSortPopover, handleDelete: async () => {
1461
1536
  if (pivot) {
1462
1537
  const tempPivot = { ...pivot, sort: false };
1463
1538
  let dateBucket = undefined;
@@ -1512,7 +1587,7 @@ SidebarComponent = ui_1.QuillSidebar, ContainerComponent = ui_1.CustomContainer,
1512
1587
  flexDirection: 'column',
1513
1588
  gap: 8,
1514
1589
  marginBottom: 12,
1515
- }, children: baseAst.orderby.map((sortData, id) => ((0, jsx_runtime_1.jsx)(AddSortPopover_1.SortSentence, { sortData: sortData, columns: selectedColumns, setIsPending: setIsPending, setEditPopoverKey: () => { }, setActiveEditItem: setActiveEditItem, setActivePath: setActivePath, setOpenPopover: setOpenPopover, SortPopover: SortPopoverComponent, EditPopover: AddSortPopover_1.AddSortPopover, handleDelete: () => {
1590
+ }, children: baseAst.orderby.map((sortData, id) => ((0, jsx_runtime_1.jsx)(AddSortPopover_1.SortSentence, { sortData: sortData, columns: selectedColumns, setIsPending: () => { }, setEditPopoverKey: () => { }, setActiveEditItem: setActiveEditItem, setActivePath: setActivePath, setOpenPopover: setOpenPopover, SortPopover: SortPopoverComponent, EditPopover: AddSortPopover_1.AddSortPopover, handleDelete: () => {
1516
1591
  if (pivot) {
1517
1592
  setPivot({ ...pivot, sort: false });
1518
1593
  return;
@@ -1535,7 +1610,6 @@ SidebarComponent = ui_1.QuillSidebar, ContainerComponent = ui_1.CustomContainer,
1535
1610
  });
1536
1611
  return;
1537
1612
  }
1538
- setIsPending(false);
1539
1613
  setActiveEditItem(null);
1540
1614
  setOpenPopover(null);
1541
1615
  if (column === '')
@@ -1566,7 +1640,6 @@ SidebarComponent = ui_1.QuillSidebar, ContainerComponent = ui_1.CustomContainer,
1566
1640
  ...(openPopover === 'AddSortPopover' && { top: 12 }),
1567
1641
  }, children: (0, jsx_runtime_1.jsx)(PopoverComponent, { isOpen: openPopover === 'AddSortPopover', setIsOpen: (isOpen) => {
1568
1642
  if (!isOpen) {
1569
- setIsPending(false);
1570
1643
  setActiveEditItem(null);
1571
1644
  setActivePath(null);
1572
1645
  setOpenPopover(null);
@@ -1661,7 +1734,6 @@ SidebarComponent = ui_1.QuillSidebar, ContainerComponent = ui_1.CustomContainer,
1661
1734
  ...(openPopover === 'AddLimitPopover' && { top: 12 }),
1662
1735
  }, children: (0, jsx_runtime_1.jsx)(PopoverComponent, { isOpen: openPopover === 'AddLimitPopover', setIsOpen: (isOpen) => {
1663
1736
  if (!isOpen) {
1664
- setIsPending(false);
1665
1737
  setActiveEditItem(null);
1666
1738
  setActivePath(null);
1667
1739
  setOpenPopover(null);
@@ -1695,9 +1767,10 @@ SidebarComponent = ui_1.QuillSidebar, ContainerComponent = ui_1.CustomContainer,
1695
1767
  ? 'Ask a follow-up question...'
1696
1768
  : 'Ask a question...' }), (0, jsx_runtime_1.jsx)(ButtonComponent, { onClick: () => {
1697
1769
  fetchAstFromPromptHelper();
1698
- }, label: 'Ask AI' }), ((baseAst && dataDisplayed) || initialLoad) && !reportId && ((0, jsx_runtime_1.jsx)(SecondaryButtonComponent, { label: 'New report', onClick: clearAllState }))] }) })), baseAst && ((0, jsx_runtime_1.jsx)(TableComponent, { isLoading: tableLoading ||
1699
- (loading && errorMessage.length === 0) ||
1700
- initialChartLoad, rows: formattedRows, rowCount: pivot ? undefined : numberOfRows, rowsPerPage: 20, columns: pivot
1770
+ }, label: 'Ask AI' }), ((baseAst && dataDisplayed) || initialLoad) && !reportId && ((0, jsx_runtime_1.jsx)(SecondaryButtonComponent, { label: 'New report', onClick: clearAllState }))] }) })), baseAst && ((0, jsx_runtime_1.jsx)(TableComponent, { isLoading: !isAddLoading &&
1771
+ (tableLoading ||
1772
+ (loading && errorMessage.length === 0) ||
1773
+ initialChartLoad), rows: formattedRows, rowCount: pivot ? undefined : numberOfRows, rowCountIsLoading: rowCountIsLoading, rowsPerPage: 20, columns: pivot
1701
1774
  ? pivotData?.columns || emptyPivotColumns()
1702
1775
  : enforceOrderOnColumns(Object.keys(rows[0] ?? {})).map((c) => {
1703
1776
  return {
@@ -1721,13 +1794,17 @@ SidebarComponent = ui_1.QuillSidebar, ContainerComponent = ui_1.CustomContainer,
1721
1794
  alignItems: 'center',
1722
1795
  }, children: [(0, jsx_runtime_1.jsx)(ErrorMessageComponent, { errorMessage: errorMessage }), (0, jsx_runtime_1.jsx)(SecondaryButtonComponent, { onClick: () => {
1723
1796
  fetchAstFromPromptHelper();
1724
- }, label: 'Retry' })] })) : ((0, jsx_runtime_1.jsx)("div", { style: { width: '100%' } })), baseAst && dataDisplayed && !initialChartLoad && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [onDiscardChanges && ((0, jsx_runtime_1.jsx)(SecondaryButtonComponent, { onClick: onDiscardChanges, label: "Discard changes" })), !hideCopySQL && ((0, jsx_runtime_1.jsx)(SecondaryButtonComponent, { label: isCopying ? 'Copied' : 'Copy SQL', onClick: () => copySQLToClipboard() })), (0, jsx_runtime_1.jsx)(ButtonComponent, { onClick: () => {
1797
+ }, label: 'Retry' })] })) : ((0, jsx_runtime_1.jsx)("div", { style: { width: '100%' } })), baseAst && dataDisplayed && !initialChartLoad && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [onDiscardChanges && ((0, jsx_runtime_1.jsx)(SecondaryButtonComponent, { onClick: onDiscardChanges, label: "Discard changes" })), !hideCopySQL && ((0, jsx_runtime_1.jsx)(SecondaryButtonComponent, { label: isCopying ? 'Copied' : 'Copy SQL', onClick: () => copySQLToClipboard() })), (0, jsx_runtime_1.jsx)(ButtonComponent, { onClick: async () => {
1798
+ setIsAddLoading(true);
1799
+ await handleRunQuery(currentProcessing, true);
1800
+ setIsAddLoading(false);
1725
1801
  onSaveChanges && onSaveChanges();
1726
1802
  setIsChartBuilderOpen(true);
1727
- }, disabled: !!errorMessage, label: reportId ? 'Save changes' : 'Add to dashboard' })] }))] })] }), (0, jsx_runtime_1.jsx)("style", { children: `body{margin:0;}` })] })), (!isChartBuilderHorizontalView || isChartBuilderOpen) && ((0, jsx_runtime_1.jsx)(ChartBuilder_1.ChartBuilderWithModal, { report: reportInfo
1803
+ }, disabled: !!errorMessage, label: reportId ? 'Save changes' : 'Add to dashboard', isLoading: isAddLoading })] }))] })] }), (0, jsx_runtime_1.jsx)("style", { children: `body{margin:0;}` })] })), (!isChartBuilderHorizontalView || isChartBuilderOpen) && ((0, jsx_runtime_1.jsx)(ChartBuilder_1.ChartBuilderWithModal, { report: reportInfo
1728
1804
  ? {
1729
1805
  ...reportInfo,
1730
1806
  ...tempReport,
1807
+ filtersApplied: specificDashboardFilters,
1731
1808
  pivot: pivot,
1732
1809
  yAxisFields: reportInfo.pivot && !pivot ? [] : reportInfo.yAxisFields,
1733
1810
  columns: reportInfo.columns.filter((col) => {
@@ -1738,6 +1815,9 @@ SidebarComponent = ui_1.QuillSidebar, ContainerComponent = ui_1.CustomContainer,
1738
1815
  queryString: activeQuery,
1739
1816
  rows: rows,
1740
1817
  }
1741
- : tempReport, rows: rows, columns: columns, pivot: pivot, query: activeQuery, showTableFormatOptions: showChartBuilderTableFormatOptions, showDateFieldOptions: isAdminEnabled, showAccessControlOptions: isAdminEnabled, isAdmin: isAdminEnabled, title: reportId ? 'Save changes' : 'Add to dashboard', isHorizontalView: true, isOpen: isChartBuilderOpen, setIsOpen: setIsChartBuilderOpen, onAddToDashboardComplete: reportId ? onSubmitEditReport : onSubmitCreateReport, destinationDashboard: destinationDashboard, organizationName: organizationName, pivotData: pivotData, initialUniqueValues: uniqueValues[currentTable], pivotRecommendationsEnabled: pivotRecommendationsEnabled && overrideRecommendations, SelectComponent: SelectComponent, TextInputComponent: TextInputComponent, ButtonComponent: ButtonComponent, SecondaryButtonComponent: SecondaryButtonComponent, HeaderComponent: HeaderComponent, SubHeaderComponent: SubHeaderComponent, LabelComponent: LabelComponent, TextComponent: TextComponent, CardComponent: CardComponent, ModalComponent: ChartBuilderModalComponent, PopoverComponent: PopoverComponent, TableComponent: TableComponent, DeleteButtonComponent: DeleteButtonComponent, LoadingComponent: LoadingComponent, ChartBuilderInputRowContainer: ChartBuilderInputRowContainer, ChartBuilderInputColumnContainer: ChartBuilderInputColumnContainer, FormContainer: ChartBuilderFormContainer, hideDateRangeFilter: true, buttonLabel: !!reportId ? 'Save changes' : 'Add to dashboard', onClickChartElement: onClickChartElement, rowCount: numberOfRows, onPageChange: onPageChange, onSortChange: onSortChange, isLoading: tableLoading, isEditingMode: true }))] }));
1818
+ : {
1819
+ ...tempReport,
1820
+ filtersApplied: specificDashboardFilters,
1821
+ }, rows: rows, columns: columns, pivot: pivot, query: activeQuery, showTableFormatOptions: showChartBuilderTableFormatOptions, showDateFieldOptions: isAdminEnabled, showAccessControlOptions: isAdminEnabled, isAdmin: isAdminEnabled, title: reportId ? 'Save changes' : 'Add to dashboard', isHorizontalView: true, isOpen: isChartBuilderOpen, setIsOpen: setIsChartBuilderOpen, onAddToDashboardComplete: reportId ? onSubmitEditReport : onSubmitCreateReport, destinationDashboard: destinationDashboard, organizationName: organizationName, pivotData: pivotData, initialUniqueValues: uniqueValues[currentTable], initialUniqueValuesIsLoading: uniqueValuesIsLoading, pivotRecommendationsEnabled: pivotRecommendationsEnabledState, SelectComponent: SelectComponent, TextInputComponent: TextInputComponent, ButtonComponent: ButtonComponent, SecondaryButtonComponent: SecondaryButtonComponent, HeaderComponent: HeaderComponent, SubHeaderComponent: SubHeaderComponent, LabelComponent: LabelComponent, TextComponent: TextComponent, CardComponent: CardComponent, ModalComponent: ChartBuilderModalComponent, PopoverComponent: PopoverComponent, TableComponent: TableComponent, DeleteButtonComponent: DeleteButtonComponent, LoadingComponent: LoadingComponent, ChartBuilderInputRowContainer: ChartBuilderInputRowContainer, ChartBuilderInputColumnContainer: ChartBuilderInputColumnContainer, FormContainer: ChartBuilderFormContainer, hideDateRangeFilter: true, buttonLabel: !!reportId ? 'Save changes' : 'Add to dashboard', onClickChartElement: onClickChartElement, rowCount: numberOfRows, onPageChange: onPageChange, onSortChange: onSortChange, onFilterPreviewChange: onFilterPreviewChange, isLoading: tableLoading || isAddLoading, isEditingMode: true }))] }));
1742
1822
  }
1743
1823
  exports.default = ReportBuilder;