@quillsql/react 2.13.48 → 2.13.50

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 (297) hide show
  1. package/dist/cjs/Chart.d.ts +2 -2
  2. package/dist/cjs/Chart.d.ts.map +1 -1
  3. package/dist/cjs/Chart.js +31 -43
  4. package/dist/cjs/ChartBuilder.d.ts +2 -2
  5. package/dist/cjs/ChartBuilder.d.ts.map +1 -1
  6. package/dist/cjs/ChartBuilder.js +172 -147
  7. package/dist/cjs/ChartEditor.d.ts +2 -2
  8. package/dist/cjs/ChartEditor.d.ts.map +1 -1
  9. package/dist/cjs/ChartEditor.js +3 -1
  10. package/dist/cjs/Context.d.ts +10 -3
  11. package/dist/cjs/Context.d.ts.map +1 -1
  12. package/dist/cjs/Context.js +328 -250
  13. package/dist/cjs/Dashboard.d.ts.map +1 -1
  14. package/dist/cjs/Dashboard.js +12 -25
  15. package/dist/cjs/DateRangePicker/QuillDateRangePicker.d.ts.map +1 -1
  16. package/dist/cjs/DateRangePicker/QuillDateRangePicker.js +32 -14
  17. package/dist/cjs/DateRangePicker/dateRangePickerUtils.d.ts +24 -10
  18. package/dist/cjs/DateRangePicker/dateRangePickerUtils.d.ts.map +1 -1
  19. package/dist/cjs/DateRangePicker/dateRangePickerUtils.js +472 -96
  20. package/dist/cjs/QuillProvider.d.ts +7 -1
  21. package/dist/cjs/QuillProvider.d.ts.map +1 -1
  22. package/dist/cjs/QuillProvider.js +6 -5
  23. package/dist/cjs/ReportBuilder.d.ts.map +1 -1
  24. package/dist/cjs/ReportBuilder.js +23 -11
  25. package/dist/cjs/SQLEditor.d.ts +1 -1
  26. package/dist/cjs/SQLEditor.d.ts.map +1 -1
  27. package/dist/cjs/SQLEditor.js +52 -18
  28. package/dist/cjs/Table.d.ts.map +1 -1
  29. package/dist/cjs/Table.js +20 -7
  30. package/dist/cjs/assets/ExclamationFilledIcon.d.ts.map +1 -1
  31. package/dist/cjs/components/Chart/BarChart.d.ts.map +1 -1
  32. package/dist/cjs/components/Chart/BarChart.js +4 -2
  33. package/dist/cjs/components/Chart/BarList.d.ts.map +1 -1
  34. package/dist/cjs/components/Chart/BarList.js +2 -1
  35. package/dist/cjs/components/Chart/CustomReferenceLine.d.ts +1 -1
  36. package/dist/cjs/components/Chart/CustomReferenceLine.d.ts.map +1 -1
  37. package/dist/cjs/components/Chart/CustomReferenceLine.js +7 -6
  38. package/dist/cjs/components/Chart/GaugeChart.d.ts +1 -1
  39. package/dist/cjs/components/Chart/GaugeChart.d.ts.map +1 -1
  40. package/dist/cjs/components/Chart/GaugeChart.js +62 -35
  41. package/dist/cjs/components/Chart/InternalChart.d.ts.map +1 -1
  42. package/dist/cjs/components/Chart/InternalChart.js +32 -34
  43. package/dist/cjs/components/Chart/LineChart.d.ts.map +1 -1
  44. package/dist/cjs/components/Chart/LineChart.js +5 -2
  45. package/dist/cjs/components/Chart/MapChart.d.ts +3 -3
  46. package/dist/cjs/components/Chart/MapChart.d.ts.map +1 -1
  47. package/dist/cjs/components/Chart/MapChart.js +62 -34
  48. package/dist/cjs/components/Chart/PieChart.d.ts +3 -1
  49. package/dist/cjs/components/Chart/PieChart.d.ts.map +1 -1
  50. package/dist/cjs/components/Chart/PieChart.js +82 -40
  51. package/dist/cjs/components/Dashboard/DashboardFilter.d.ts.map +1 -1
  52. package/dist/cjs/components/Dashboard/DashboardFilter.js +4 -20
  53. package/dist/cjs/components/Dashboard/DashboardTemplate.d.ts.map +1 -1
  54. package/dist/cjs/components/Dashboard/DashboardTemplate.js +2 -1
  55. package/dist/cjs/components/Dashboard/DataLoader.d.ts +4 -4
  56. package/dist/cjs/components/Dashboard/DataLoader.d.ts.map +1 -1
  57. package/dist/cjs/components/Dashboard/DataLoader.js +31 -14
  58. package/dist/cjs/components/Dashboard/MetricComponent.js +4 -3
  59. package/dist/cjs/components/Dashboard/util.d.ts +1 -1
  60. package/dist/cjs/components/Dashboard/util.d.ts.map +1 -1
  61. package/dist/cjs/components/Dashboard/util.js +7 -6
  62. package/dist/cjs/components/QuillMultiSelect.d.ts.map +1 -1
  63. package/dist/cjs/components/QuillMultiSelect.js +15 -9
  64. package/dist/cjs/components/QuillMultiSelectSectionList.d.ts.map +1 -1
  65. package/dist/cjs/components/QuillMultiSelectSectionList.js +52 -34
  66. package/dist/cjs/components/QuillMultiSelectWithCombo.d.ts.map +1 -1
  67. package/dist/cjs/components/QuillMultiSelectWithCombo.js +204 -171
  68. package/dist/cjs/components/QuillSelect.d.ts.map +1 -1
  69. package/dist/cjs/components/QuillSelect.js +93 -82
  70. package/dist/cjs/components/QuillSelectWithCombo.d.ts.map +1 -1
  71. package/dist/cjs/components/QuillSelectWithCombo.js +101 -99
  72. package/dist/cjs/components/QuillTable.d.ts.map +1 -1
  73. package/dist/cjs/components/QuillTable.js +1 -0
  74. package/dist/cjs/components/ReportBuilder/FilterStack.d.ts +2 -1
  75. package/dist/cjs/components/ReportBuilder/FilterStack.d.ts.map +1 -1
  76. package/dist/cjs/components/ReportBuilder/FilterStack.js +3 -4
  77. package/dist/cjs/components/ReportBuilder/ui.d.ts +2 -2
  78. package/dist/cjs/components/ReportBuilder/ui.d.ts.map +1 -1
  79. package/dist/cjs/components/ReportBuilder/ui.js +5 -7
  80. package/dist/cjs/components/UiComponents.d.ts +7 -0
  81. package/dist/cjs/components/UiComponents.d.ts.map +1 -1
  82. package/dist/cjs/components/UiComponents.js +92 -5
  83. package/dist/cjs/hooks/useAskQuill.d.ts.map +1 -1
  84. package/dist/cjs/hooks/useAskQuill.js +5 -1
  85. package/dist/cjs/hooks/useDashboard.d.ts.map +1 -1
  86. package/dist/cjs/hooks/useDashboard.js +96 -58
  87. package/dist/cjs/hooks/useExport.d.ts.map +1 -1
  88. package/dist/cjs/hooks/useExport.js +23 -13
  89. package/dist/cjs/hooks/useOnClickOutside.d.ts.map +1 -1
  90. package/dist/cjs/hooks/useQuill.d.ts.map +1 -1
  91. package/dist/cjs/hooks/useQuill.js +8 -10
  92. package/dist/cjs/hooks/useReport.d.ts.map +1 -1
  93. package/dist/cjs/hooks/useVirtualTables.d.ts.map +1 -1
  94. package/dist/cjs/hooks/useVirtualTables.js +16 -22
  95. package/dist/cjs/index.d.ts +2 -2
  96. package/dist/cjs/index.d.ts.map +1 -1
  97. package/dist/cjs/index.js +2 -1
  98. package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts +2 -1
  99. package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
  100. package/dist/cjs/internals/ReportBuilder/PivotModal.js +19 -7
  101. package/dist/cjs/models/Client.d.ts +0 -1
  102. package/dist/cjs/models/Client.d.ts.map +1 -1
  103. package/dist/cjs/models/Data.d.ts +20 -0
  104. package/dist/cjs/models/Data.d.ts.map +1 -0
  105. package/dist/cjs/models/Data.js +2 -0
  106. package/dist/cjs/models/Filter.d.ts +42 -4
  107. package/dist/cjs/models/Filter.d.ts.map +1 -1
  108. package/dist/cjs/models/Pivot.d.ts.map +1 -1
  109. package/dist/cjs/utils/astProcessing.d.ts +3 -2
  110. package/dist/cjs/utils/astProcessing.d.ts.map +1 -1
  111. package/dist/cjs/utils/astProcessing.js +28 -37
  112. package/dist/cjs/utils/client.d.ts +3 -2
  113. package/dist/cjs/utils/client.d.ts.map +1 -1
  114. package/dist/cjs/utils/client.js +38 -39
  115. package/dist/cjs/utils/columnProcessing.d.ts.map +1 -1
  116. package/dist/cjs/utils/columnProcessing.js +14 -3
  117. package/dist/cjs/utils/constants.d.ts +1 -0
  118. package/dist/cjs/utils/constants.d.ts.map +1 -1
  119. package/dist/cjs/utils/constants.js +2 -1
  120. package/dist/cjs/utils/dashboard.d.ts +3 -2
  121. package/dist/cjs/utils/dashboard.d.ts.map +1 -1
  122. package/dist/cjs/utils/dashboard.js +30 -12
  123. package/dist/cjs/utils/dataFetcher.d.ts +8 -5
  124. package/dist/cjs/utils/dataFetcher.d.ts.map +1 -1
  125. package/dist/cjs/utils/dataFetcher.js +188 -65
  126. package/dist/cjs/utils/filterProcessing.d.ts +2 -1
  127. package/dist/cjs/utils/filterProcessing.d.ts.map +1 -1
  128. package/dist/cjs/utils/filterProcessing.js +24 -38
  129. package/dist/cjs/utils/getDomain.d.ts.map +1 -1
  130. package/dist/cjs/utils/pivotConstructor.d.ts +2 -1
  131. package/dist/cjs/utils/pivotConstructor.d.ts.map +1 -1
  132. package/dist/cjs/utils/pivotConstructor.js +15 -11
  133. package/dist/cjs/utils/pivotProcessing.d.ts.map +1 -1
  134. package/dist/cjs/utils/pivotProcessing.js +3 -5
  135. package/dist/cjs/utils/queryConstructor.js +1 -1
  136. package/dist/cjs/utils/report.d.ts +10 -7
  137. package/dist/cjs/utils/report.d.ts.map +1 -1
  138. package/dist/cjs/utils/report.js +52 -60
  139. package/dist/cjs/utils/schema.d.ts +4 -3
  140. package/dist/cjs/utils/schema.d.ts.map +1 -1
  141. package/dist/cjs/utils/schema.js +30 -44
  142. package/dist/cjs/utils/tableProcessing.d.ts +16 -10
  143. package/dist/cjs/utils/tableProcessing.d.ts.map +1 -1
  144. package/dist/cjs/utils/tableProcessing.js +91 -90
  145. package/dist/cjs/utils/textProcessing.d.ts.map +1 -1
  146. package/dist/cjs/utils/textProcessing.js +2 -1
  147. package/dist/cjs/utils/ui.d.ts.map +1 -1
  148. package/dist/esm/Chart.d.ts +2 -2
  149. package/dist/esm/Chart.d.ts.map +1 -1
  150. package/dist/esm/Chart.js +33 -45
  151. package/dist/esm/ChartBuilder.d.ts +2 -2
  152. package/dist/esm/ChartBuilder.d.ts.map +1 -1
  153. package/dist/esm/ChartBuilder.js +173 -148
  154. package/dist/esm/ChartEditor.d.ts +2 -2
  155. package/dist/esm/ChartEditor.d.ts.map +1 -1
  156. package/dist/esm/ChartEditor.js +4 -2
  157. package/dist/esm/Context.d.ts +10 -3
  158. package/dist/esm/Context.d.ts.map +1 -1
  159. package/dist/esm/Context.js +330 -252
  160. package/dist/esm/Dashboard.d.ts.map +1 -1
  161. package/dist/esm/Dashboard.js +14 -27
  162. package/dist/esm/DateRangePicker/QuillDateRangePicker.d.ts.map +1 -1
  163. package/dist/esm/DateRangePicker/QuillDateRangePicker.js +32 -14
  164. package/dist/esm/DateRangePicker/dateRangePickerUtils.d.ts +24 -10
  165. package/dist/esm/DateRangePicker/dateRangePickerUtils.d.ts.map +1 -1
  166. package/dist/esm/DateRangePicker/dateRangePickerUtils.js +471 -95
  167. package/dist/esm/QuillProvider.d.ts +7 -1
  168. package/dist/esm/QuillProvider.d.ts.map +1 -1
  169. package/dist/esm/QuillProvider.js +6 -5
  170. package/dist/esm/ReportBuilder.d.ts.map +1 -1
  171. package/dist/esm/ReportBuilder.js +25 -13
  172. package/dist/esm/SQLEditor.d.ts +1 -1
  173. package/dist/esm/SQLEditor.d.ts.map +1 -1
  174. package/dist/esm/SQLEditor.js +55 -21
  175. package/dist/esm/Table.d.ts.map +1 -1
  176. package/dist/esm/Table.js +21 -8
  177. package/dist/esm/assets/ExclamationFilledIcon.d.ts.map +1 -1
  178. package/dist/esm/components/Chart/BarChart.d.ts.map +1 -1
  179. package/dist/esm/components/Chart/BarChart.js +4 -2
  180. package/dist/esm/components/Chart/BarList.d.ts.map +1 -1
  181. package/dist/esm/components/Chart/BarList.js +2 -1
  182. package/dist/esm/components/Chart/CustomReferenceLine.d.ts +1 -1
  183. package/dist/esm/components/Chart/CustomReferenceLine.d.ts.map +1 -1
  184. package/dist/esm/components/Chart/CustomReferenceLine.js +8 -7
  185. package/dist/esm/components/Chart/GaugeChart.d.ts +1 -1
  186. package/dist/esm/components/Chart/GaugeChart.d.ts.map +1 -1
  187. package/dist/esm/components/Chart/GaugeChart.js +64 -37
  188. package/dist/esm/components/Chart/InternalChart.d.ts.map +1 -1
  189. package/dist/esm/components/Chart/InternalChart.js +34 -36
  190. package/dist/esm/components/Chart/LineChart.d.ts.map +1 -1
  191. package/dist/esm/components/Chart/LineChart.js +5 -2
  192. package/dist/esm/components/Chart/MapChart.d.ts +3 -3
  193. package/dist/esm/components/Chart/MapChart.d.ts.map +1 -1
  194. package/dist/esm/components/Chart/MapChart.js +67 -39
  195. package/dist/esm/components/Chart/PieChart.d.ts +3 -1
  196. package/dist/esm/components/Chart/PieChart.d.ts.map +1 -1
  197. package/dist/esm/components/Chart/PieChart.js +82 -40
  198. package/dist/esm/components/Dashboard/DashboardFilter.d.ts.map +1 -1
  199. package/dist/esm/components/Dashboard/DashboardFilter.js +5 -21
  200. package/dist/esm/components/Dashboard/DashboardSection.js +2 -2
  201. package/dist/esm/components/Dashboard/DashboardTemplate.d.ts.map +1 -1
  202. package/dist/esm/components/Dashboard/DashboardTemplate.js +3 -2
  203. package/dist/esm/components/Dashboard/DataLoader.d.ts +4 -4
  204. package/dist/esm/components/Dashboard/DataLoader.d.ts.map +1 -1
  205. package/dist/esm/components/Dashboard/DataLoader.js +32 -15
  206. package/dist/esm/components/Dashboard/MetricComponent.js +4 -3
  207. package/dist/esm/components/Dashboard/util.d.ts +1 -1
  208. package/dist/esm/components/Dashboard/util.d.ts.map +1 -1
  209. package/dist/esm/components/Dashboard/util.js +8 -7
  210. package/dist/esm/components/QuillMultiSelect.d.ts.map +1 -1
  211. package/dist/esm/components/QuillMultiSelect.js +15 -9
  212. package/dist/esm/components/QuillMultiSelectSectionList.d.ts.map +1 -1
  213. package/dist/esm/components/QuillMultiSelectSectionList.js +52 -34
  214. package/dist/esm/components/QuillMultiSelectWithCombo.d.ts.map +1 -1
  215. package/dist/esm/components/QuillMultiSelectWithCombo.js +205 -172
  216. package/dist/esm/components/QuillSelect.d.ts.map +1 -1
  217. package/dist/esm/components/QuillSelect.js +95 -84
  218. package/dist/esm/components/QuillSelectWithCombo.d.ts.map +1 -1
  219. package/dist/esm/components/QuillSelectWithCombo.js +102 -100
  220. package/dist/esm/components/QuillTable.d.ts.map +1 -1
  221. package/dist/esm/components/QuillTable.js +1 -0
  222. package/dist/esm/components/ReportBuilder/FilterStack.d.ts +2 -1
  223. package/dist/esm/components/ReportBuilder/FilterStack.d.ts.map +1 -1
  224. package/dist/esm/components/ReportBuilder/FilterStack.js +3 -4
  225. package/dist/esm/components/ReportBuilder/ui.d.ts +2 -2
  226. package/dist/esm/components/ReportBuilder/ui.d.ts.map +1 -1
  227. package/dist/esm/components/ReportBuilder/ui.js +5 -7
  228. package/dist/esm/components/UiComponents.d.ts +7 -0
  229. package/dist/esm/components/UiComponents.d.ts.map +1 -1
  230. package/dist/esm/components/UiComponents.js +90 -4
  231. package/dist/esm/hooks/useAskQuill.d.ts.map +1 -1
  232. package/dist/esm/hooks/useAskQuill.js +6 -2
  233. package/dist/esm/hooks/useDashboard.d.ts.map +1 -1
  234. package/dist/esm/hooks/useDashboard.js +98 -60
  235. package/dist/esm/hooks/useExport.d.ts.map +1 -1
  236. package/dist/esm/hooks/useExport.js +25 -15
  237. package/dist/esm/hooks/useOnClickOutside.d.ts.map +1 -1
  238. package/dist/esm/hooks/useQuill.d.ts.map +1 -1
  239. package/dist/esm/hooks/useQuill.js +9 -11
  240. package/dist/esm/hooks/useReport.d.ts.map +1 -1
  241. package/dist/esm/hooks/useReport.js +1 -1
  242. package/dist/esm/hooks/useVirtualTables.d.ts.map +1 -1
  243. package/dist/esm/hooks/useVirtualTables.js +17 -23
  244. package/dist/esm/index.d.ts +2 -2
  245. package/dist/esm/index.d.ts.map +1 -1
  246. package/dist/esm/index.js +1 -1
  247. package/dist/esm/internals/ReportBuilder/PivotModal.d.ts +2 -1
  248. package/dist/esm/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
  249. package/dist/esm/internals/ReportBuilder/PivotModal.js +20 -8
  250. package/dist/esm/models/Client.d.ts +0 -1
  251. package/dist/esm/models/Client.d.ts.map +1 -1
  252. package/dist/esm/models/Data.d.ts +20 -0
  253. package/dist/esm/models/Data.d.ts.map +1 -0
  254. package/dist/esm/models/Data.js +1 -0
  255. package/dist/esm/models/Filter.d.ts +42 -4
  256. package/dist/esm/models/Filter.d.ts.map +1 -1
  257. package/dist/esm/models/Pivot.d.ts.map +1 -1
  258. package/dist/esm/utils/astProcessing.d.ts +3 -2
  259. package/dist/esm/utils/astProcessing.d.ts.map +1 -1
  260. package/dist/esm/utils/astProcessing.js +28 -37
  261. package/dist/esm/utils/client.d.ts +3 -2
  262. package/dist/esm/utils/client.d.ts.map +1 -1
  263. package/dist/esm/utils/client.js +38 -39
  264. package/dist/esm/utils/columnProcessing.d.ts.map +1 -1
  265. package/dist/esm/utils/columnProcessing.js +14 -3
  266. package/dist/esm/utils/constants.d.ts +1 -0
  267. package/dist/esm/utils/constants.d.ts.map +1 -1
  268. package/dist/esm/utils/constants.js +1 -0
  269. package/dist/esm/utils/dashboard.d.ts +3 -2
  270. package/dist/esm/utils/dashboard.d.ts.map +1 -1
  271. package/dist/esm/utils/dashboard.js +31 -13
  272. package/dist/esm/utils/dataFetcher.d.ts +8 -5
  273. package/dist/esm/utils/dataFetcher.d.ts.map +1 -1
  274. package/dist/esm/utils/dataFetcher.js +186 -65
  275. package/dist/esm/utils/filterProcessing.d.ts +2 -1
  276. package/dist/esm/utils/filterProcessing.d.ts.map +1 -1
  277. package/dist/esm/utils/filterProcessing.js +25 -39
  278. package/dist/esm/utils/getDomain.d.ts.map +1 -1
  279. package/dist/esm/utils/pivotConstructor.d.ts +2 -1
  280. package/dist/esm/utils/pivotConstructor.d.ts.map +1 -1
  281. package/dist/esm/utils/pivotConstructor.js +16 -12
  282. package/dist/esm/utils/pivotProcessing.d.ts.map +1 -1
  283. package/dist/esm/utils/pivotProcessing.js +5 -7
  284. package/dist/esm/utils/queryConstructor.js +1 -1
  285. package/dist/esm/utils/report.d.ts +10 -7
  286. package/dist/esm/utils/report.d.ts.map +1 -1
  287. package/dist/esm/utils/report.js +53 -61
  288. package/dist/esm/utils/schema.d.ts +4 -3
  289. package/dist/esm/utils/schema.d.ts.map +1 -1
  290. package/dist/esm/utils/schema.js +30 -44
  291. package/dist/esm/utils/tableProcessing.d.ts +16 -10
  292. package/dist/esm/utils/tableProcessing.d.ts.map +1 -1
  293. package/dist/esm/utils/tableProcessing.js +93 -92
  294. package/dist/esm/utils/textProcessing.d.ts.map +1 -1
  295. package/dist/esm/utils/textProcessing.js +2 -1
  296. package/dist/esm/utils/ui.d.ts.map +1 -1
  297. package/package.json +2 -1
@@ -1,6 +1,6 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import { useEffect, useRef, useState, useContext, useMemo, } from 'react';
3
- import { ClientContext, DashboardConfigContext, DashboardFiltersContext, ReportFiltersContext, ReportsContext, SchemaDataContext, TenantContext, ThemeContext, } from './Context';
3
+ import { ClientContext, DashboardConfigContext, DashboardFiltersContext, FetchContext, ReportFiltersContext, ReportsContext, SchemaDataContext, TenantContext, ThemeContext, } from './Context';
4
4
  import { PivotModal, generatePivotTable, isDateField, } from './internals/ReportBuilder/PivotModal';
5
5
  import { PivotCard } from './internals/ReportBuilder/PivotList';
6
6
  import { MemoizedModal, QuillTextInput, MemoizedButton, MemoizedSecondaryButton, MemoizedHeader, MemoizedLabel, MemoizedDeleteButton, MemoizedText, MemoizedPopover, QuillTableComponent, QuillChartBuilderInputRowContainer, QuillChartBuilderInputColumnContainer, MemoizedSubHeader, QuillErrorMessageComponent, QuillPivotRowContainer, QuillPivotColumnContainer, QuillChartBuilderFormContainer, QuillLoadingComponent, QuillToolTip, QuillChartBuilderCheckboxComponent, } from './components/UiComponents';
@@ -23,7 +23,6 @@ import { shouldFetchMore,
23
23
  import { fetchResultsByQuery, getUniqueValuesByQuery, } from './utils/tableProcessing';
24
24
  import { getDateBucketFromRange } from './utils/dates';
25
25
  import { QuillMultiSelectComponentWithCombo as MultiSelectComponent } from './components/QuillMultiSelectWithCombo';
26
- import { useQuillCloud } from './utils/dataFetcher';
27
26
  import { QuillMultiSelectSectionList } from './components/QuillMultiSelectSectionList';
28
27
  import { ALL_TENANTS, REFERENCE_LINE, SINGLE_TENANT } from './utils/constants';
29
28
  import { disambiguatedValueField } from './utils/pivotConstructor';
@@ -268,7 +267,9 @@ export function ChartBuilderWithModal(props) {
268
267
  return (_jsx("div", { style: { height: '100%' }, ref: parentRef, children: _jsx(Modal, { isOpen: isOpen, setIsOpen: setIsOpen, title: title || 'Add to dashboard',
269
268
  // For isHorizontalView, use full viewport size minus 80px for padding,
270
269
  // otherwise use the default layout method of the modal (contents).
271
- width: isHorizontalView ? modalWidth : undefined, height: isHorizontalView ? modalHeight : undefined, children: (props.reportId ? dashboard[props.reportId] ?? props.tempReport : props.tempReport) ? (_jsx(ChartBuilder, { ...props })) : (_jsx("div", { style: { padding: 20 }, children: _jsx(QuillLoadingComponent, {}) })) }) }));
270
+ width: isHorizontalView ? modalWidth : undefined, height: isHorizontalView ? modalHeight : undefined, children: (props.reportId
271
+ ? (dashboard[props.reportId] ?? props.tempReport)
272
+ : props.tempReport) ? (_jsx(ChartBuilder, { ...props })) : (_jsx("div", { style: { padding: 20 }, children: _jsx(QuillLoadingComponent, {}) })) }) }));
272
273
  }
273
274
  /**
274
275
  * ### Quill Chart Builder
@@ -302,11 +303,11 @@ destinationDashboard, onClickChartElement, isEditingMode = false, disableSort =
302
303
  const [client] = useContext(ClientContext);
303
304
  const [theme] = useContext(ThemeContext);
304
305
  const [schemaData] = useContext(SchemaDataContext);
306
+ const { getToken, quillFetchWithToken } = useContext(FetchContext);
305
307
  const { addReport } = useDashboardReports(destinationDashboard);
306
308
  const { allReportsById } = useAllReports();
307
309
  const { dashboardConfig } = useContext(DashboardConfigContext);
308
310
  const { tenants, flags } = useContext(TenantContext);
309
- const { getDataFromCloud } = useQuillCloud();
310
311
  const report = useMemo(() => {
311
312
  return reportId && !tempReport ? allReportsById[reportId] : tempReport;
312
313
  }, [reportId]);
@@ -395,7 +396,7 @@ destinationDashboard, onClickChartElement, isEditingMode = false, disableSort =
395
396
  };
396
397
  }, [isOpen]);
397
398
  const [dashboardOptions, setDashboardOptions] = useState([]);
398
- const { reportFilters, loadFiltersForReport, reportFiltersDispatch, abortLoadingFilters } = useContext(ReportFiltersContext);
399
+ const { reportFilters, loadFiltersForReport, reportFiltersDispatch, abortLoadingFilters, } = useContext(ReportFiltersContext);
399
400
  const { reportsDispatch } = useContext(ReportsContext);
400
401
  const initialFilters = useRef(reportFilters[report?.id ?? TEMP_REPORT_ID]);
401
402
  useEffect(() => {
@@ -499,7 +500,12 @@ destinationDashboard, onClickChartElement, isEditingMode = false, disableSort =
499
500
  ? Object.fromEntries(Object.entries(report.flags).map(([key, value]) => {
500
501
  if (value === ALL_TENANTS) {
501
502
  const tenantType = client?.allTenantTypes?.find((t) => t.tenantField === key);
502
- return [key, tenantType?.tenantField === SINGLE_TENANT ? tenantType?.flags ?? [] : tenantType?.tenantIds?.map((id) => id.flag) ?? []];
503
+ return [
504
+ key,
505
+ tenantType?.tenantField === SINGLE_TENANT
506
+ ? (tenantType?.flags ?? [])
507
+ : (tenantType?.tenantIds?.map((id) => id.flag) ?? []),
508
+ ];
503
509
  }
504
510
  else {
505
511
  return [key, value];
@@ -514,7 +520,7 @@ destinationDashboard, onClickChartElement, isEditingMode = false, disableSort =
514
520
  const formEmptyState = {
515
521
  name: report?.name ?? '',
516
522
  dashboardName: dashboardOptions[0]?.label ?? '',
517
- columns: report?.columns.map((col) => {
523
+ columns: report?.columns?.map((col) => {
518
524
  return { ...col, label: snakeAndCamelCaseToTitleCase(col.label) };
519
525
  }) ?? [],
520
526
  xAxisField: report?.columns?.[0]?.field ?? '',
@@ -540,33 +546,45 @@ destinationDashboard, onClickChartElement, isEditingMode = false, disableSort =
540
546
  if (!client) {
541
547
  return;
542
548
  }
543
- const { queryEndpoint, queryHeaders, publicKey, withCredentials } = client;
544
- if (queryEndpoint) {
545
- const response = await fetch(queryEndpoint, {
546
- method: 'POST',
547
- headers: {
548
- ...queryHeaders,
549
- 'Content-Type': 'application/json',
550
- },
551
- body: JSON.stringify({
552
- metadata: {
553
- task: 'dashboard',
554
- name: dashboardName,
555
- clientId: publicKey,
556
- databaseType: client.databaseType,
557
- useNewNodeSql: true,
558
- tenants,
559
- },
560
- }),
561
- credentials: withCredentials ? 'include' : 'omit',
562
- });
563
- const responseData = (await response.json()).data;
564
- if (responseData) {
565
- return {
566
- ...responseData,
567
- createdAt: responseData.createdAt && new Date(responseData.createdAt),
568
- };
569
- }
549
+ const { data: responseData } = await quillFetchWithToken({
550
+ client,
551
+ task: 'dashboard',
552
+ metadata: {
553
+ name: dashboardName,
554
+ clientId: client.clientId,
555
+ databaseType: client.databaseType,
556
+ useNewNodeSql: true,
557
+ tenants,
558
+ },
559
+ });
560
+ if (responseData) {
561
+ return {
562
+ ...responseData,
563
+ createdAt: responseData.createdAt && new Date(responseData.createdAt),
564
+ dateFilter: responseData.dateFilter
565
+ ? {
566
+ ...responseData.dateFilter,
567
+ presetOptions: responseData.dateFilter.presetOptions?.map((preset) => ({
568
+ ...preset,
569
+ loopStart: preset.loopStart
570
+ ? new Date(preset.loopStart)
571
+ : undefined,
572
+ loopEnd: preset.loopEnd
573
+ ? new Date(preset.loopEnd)
574
+ : undefined,
575
+ })),
576
+ defaultPresetRanges: responseData.dateFilter.defaultPresetRanges?.map((preset) => ({
577
+ ...preset,
578
+ loopStart: preset.loopStart
579
+ ? new Date(preset.loopStart)
580
+ : undefined,
581
+ loopEnd: preset.loopEnd
582
+ ? new Date(preset.loopEnd)
583
+ : undefined,
584
+ })),
585
+ }
586
+ : undefined,
587
+ };
570
588
  }
571
589
  };
572
590
  const pivotFormData = (pivot) => {
@@ -580,21 +598,26 @@ destinationDashboard, onClickChartElement, isEditingMode = false, disableSort =
580
598
  : false;
581
599
  const chartType = formData?.chartType ?? (pivot.rowField ? 'column' : 'metric');
582
600
  const rowColumn = (selectedPivotTable?.columns ?? columns).find((col) => col.field === pivot.rowField);
583
- const xAxisField = pivot.rowField && !(['metric', 'gauge'].includes(chartType) && !NUMBER_FORMAT_TYPES.includes(rowColumn?.format ?? ''))
601
+ const xAxisField = pivot.rowField &&
602
+ !(['metric', 'gauge'].includes(chartType) &&
603
+ !NUMBER_FORMAT_TYPES.includes(rowColumn?.format ?? ''))
584
604
  ? pivot.rowField
585
605
  : disambiguatedValueField(pivot);
586
606
  const result = {
587
607
  pivot,
588
608
  chartType: chartType,
589
609
  xAxisField,
590
- xAxisFormat: chartType === 'gauge' ? 'percent' : chartType === 'metric' ? 'whole_number' :
591
- isDateType(pivot.rowFieldType ?? '')
592
- ? 'string'
593
- : isNumberType(pivot.rowFieldType ?? '')
594
- ? 'whole_number'
595
- : isNumberType(disambiguatedValueField(pivot) ?? '')
610
+ xAxisFormat: chartType === 'gauge'
611
+ ? 'percent'
612
+ : chartType === 'metric'
613
+ ? 'whole_number'
614
+ : isDateType(pivot.rowFieldType ?? '')
615
+ ? 'string'
616
+ : isNumberType(pivot.rowFieldType ?? '')
596
617
  ? 'whole_number'
597
- : 'string',
618
+ : isNumberType(disambiguatedValueField(pivot) ?? '')
619
+ ? 'whole_number'
620
+ : 'string',
598
621
  xAxisLabel: report?.xAxisLabel || pivot.rowField,
599
622
  yAxisFields: [
600
623
  {
@@ -611,10 +634,14 @@ destinationDashboard, onClickChartElement, isEditingMode = false, disableSort =
611
634
  return result;
612
635
  };
613
636
  const getReferencedTables = async (client, sqlQuery, dbTables, skipStar) => {
614
- const resp = await getDataFromCloud(client, `astify`, {
615
- query: sqlQuery,
616
- publicKey: client.publicKey,
617
- useNewNodeSql: true,
637
+ const { data: resp } = await quillFetchWithToken({
638
+ client,
639
+ task: 'astify',
640
+ metadata: {
641
+ query: sqlQuery,
642
+ clientId: client.clientId,
643
+ useNewNodeSql: true,
644
+ },
618
645
  });
619
646
  if (resp.success === false) {
620
647
  return getTablesHelper(getSelectFromAST({}), dbTables, skipStar);
@@ -774,7 +801,13 @@ destinationDashboard, onClickChartElement, isEditingMode = false, disableSort =
774
801
  const curFormData = formData;
775
802
  let dashNames = Object.keys(dashboardConfig);
776
803
  if (dashNames.length === 0) {
777
- const resp = await getDataFromCloud(client, `dashnames/${client.publicKey}/`, null, 'GET');
804
+ const { data: resp } = await quillFetchWithToken({
805
+ client,
806
+ task: 'dashnames',
807
+ metadata: {
808
+ clientId: client.clientId,
809
+ },
810
+ });
778
811
  dashNames = resp.dashboardNames;
779
812
  }
780
813
  let dashboardOptions = dashNames
@@ -934,6 +967,7 @@ destinationDashboard, onClickChartElement, isEditingMode = false, disableSort =
934
967
  dashboardName: destinationDashboardName,
935
968
  tenants,
936
969
  additionalProcessing: baseProcessing,
970
+ getToken,
937
971
  });
938
972
  setSelectedPivotTable(pivotTable);
939
973
  return pivotTable;
@@ -1008,6 +1042,7 @@ destinationDashboard, onClickChartElement, isEditingMode = false, disableSort =
1008
1042
  const tableInfo = await fetchResultsByQuery({
1009
1043
  query,
1010
1044
  client,
1045
+ getToken,
1011
1046
  tenants,
1012
1047
  processing,
1013
1048
  customFields: schemaData.customFields,
@@ -1071,6 +1106,7 @@ destinationDashboard, onClickChartElement, isEditingMode = false, disableSort =
1071
1106
  rowCountOnly: false,
1072
1107
  filterMap: canonicalFilterMap,
1073
1108
  dashboardName: destinationDashboardName,
1109
+ getToken,
1074
1110
  });
1075
1111
  setCurrentProcessing(processing);
1076
1112
  setRows(tableInfo.rows);
@@ -1083,6 +1119,7 @@ destinationDashboard, onClickChartElement, isEditingMode = false, disableSort =
1083
1119
  columns: tableInfo.columns.filter((column) => column.field === formData.pivot?.columnField),
1084
1120
  query: report.queryString,
1085
1121
  client,
1122
+ getToken,
1086
1123
  tenants,
1087
1124
  customFields: schemaData.customFields ?? {},
1088
1125
  filters: overrideFilters,
@@ -1146,6 +1183,7 @@ destinationDashboard, onClickChartElement, isEditingMode = false, disableSort =
1146
1183
  ? report.comparisonPivotQuery
1147
1184
  : undefined,
1148
1185
  client,
1186
+ getToken,
1149
1187
  tenants,
1150
1188
  processing: updatedProcessing,
1151
1189
  customFields: schemaData.customFields,
@@ -1189,71 +1227,53 @@ destinationDashboard, onClickChartElement, isEditingMode = false, disableSort =
1189
1227
  const handleChange = async (value, fieldName, index) => {
1190
1228
  let updatedForm = { ...formData };
1191
1229
  try {
1192
- // WE NEED TO REPROCESS THE PIVOT TABLE IF THE PIVOT COLUMN CHANGES
1193
- // WE NEED TO UPDATE BOTH VALUEFIELDTYPE AND COLUMN FIELD TYPES
1194
- if (fieldName === 'pivotColumn') {
1195
- // CAN'T EDIT THE TYPE OF THE RowField
1196
- if (index === 0) {
1197
- return;
1198
- }
1199
- const updatedPivot = {
1200
- ...formData.pivot,
1201
- valueFieldType: value,
1202
- };
1203
- // @ts-ignore
1204
- updatedForm.pivot = updatedPivot;
1205
- }
1206
- else if (index !== undefined) {
1230
+ if (index !== undefined) {
1207
1231
  // For dynamic array fields
1208
1232
  const [field, subfield] = fieldName.split('.');
1209
- let newLabel = undefined;
1210
- if (field === 'columns' && subfield === 'field') {
1211
- if (!formData['columns'][index]?.label) {
1233
+ if (field === 'pivot' && !!subfield) {
1234
+ if (!selectedPivotTable) {
1235
+ return;
1236
+ }
1237
+ let newLabel = undefined;
1238
+ if (subfield === 'field') {
1212
1239
  newLabel = snakeAndCamelCaseToTitleCase(value);
1213
1240
  }
1241
+ const newColumns = selectedPivotTable.columns.map((col, i) => i === index
1242
+ ? {
1243
+ ...col,
1244
+ label: newLabel ? newLabel : col.label,
1245
+ [subfield]: value,
1246
+ }
1247
+ : col);
1248
+ setSelectedPivotTable({
1249
+ ...selectedPivotTable,
1250
+ columns: newColumns,
1251
+ });
1214
1252
  }
1215
- // @ts-ignore
1216
- const updatedArray = formData[field].map((item, i) => i === index
1217
- ? {
1218
- ...item,
1219
- label: newLabel ? newLabel : item.label,
1220
- [subfield]: value,
1253
+ else {
1254
+ let newLabel = undefined;
1255
+ if (field === 'columns' && subfield === 'field') {
1256
+ if (!formData['columns'][index]?.label) {
1257
+ newLabel = snakeAndCamelCaseToTitleCase(value);
1258
+ }
1221
1259
  }
1222
- : item);
1223
- updatedForm = { ...formData, [field]: updatedArray };
1224
- setFormData(updatedForm);
1225
- setChartTypes(getChartTypeOptions(updatedForm, dashboardConfig[updatedForm.dashboardName ?? '']));
1260
+ // @ts-ignore
1261
+ const updatedArray = formData[field].map((item, i) => i === index
1262
+ ? {
1263
+ ...item,
1264
+ label: newLabel ? newLabel : item.label,
1265
+ [subfield]: value,
1266
+ }
1267
+ : item);
1268
+ updatedForm = { ...formData, [field]: updatedArray };
1269
+ setFormData(updatedForm);
1270
+ setChartTypes(getChartTypeOptions(updatedForm, dashboardConfig[updatedForm.dashboardName ?? '']));
1271
+ }
1226
1272
  }
1227
1273
  else if (fieldName.includes('.')) {
1228
1274
  // For nested fields
1229
1275
  const [field, subfield] = fieldName.split('.');
1230
- if (field === 'pivot' && subfield !== '') {
1231
- const subfieldTypeFieldName = subfield + 'Type';
1232
- if (value.length) {
1233
- const subFieldType = columns.find((columns) => columns.field === value).fieldType;
1234
- updatedForm = {
1235
- ...updatedForm,
1236
- // @ts-ignore
1237
- [field]: {
1238
- ...updatedForm[field],
1239
- [subfield]: value,
1240
- [subfieldTypeFieldName]: subFieldType,
1241
- },
1242
- };
1243
- }
1244
- else {
1245
- updatedForm = {
1246
- ...formData,
1247
- // @ts-ignore
1248
- [field]: {
1249
- ...formData[field],
1250
- [subfield]: '',
1251
- [subfieldTypeFieldName]: '',
1252
- },
1253
- };
1254
- }
1255
- }
1256
- else if (field === 'dateField' &&
1276
+ if (field === 'dateField' &&
1257
1277
  subfield === 'table' &&
1258
1278
  !formData.dateField?.field) {
1259
1279
  const field = schemaData.schemaWithCustomFields?.find((elem) => elem.name === value)?.columns?.[0]?.field;
@@ -1279,14 +1299,16 @@ destinationDashboard, onClickChartElement, isEditingMode = false, disableSort =
1279
1299
  updatedForm.xAxisFormat = 'whole_number';
1280
1300
  const currentXAxisColumn = (selectedPivotTable?.columns ?? columns).find((c) => c.field === updatedForm.xAxisField);
1281
1301
  if (!NUMBER_FORMAT_TYPES.includes(currentXAxisColumn?.format ?? '')) {
1282
- updatedForm.xAxisField = (selectedPivotTable?.columns ?? columns).find((c) => NUMBER_FORMAT_TYPES.includes(c.format))?.field ?? updatedForm.xAxisField;
1302
+ updatedForm.xAxisField =
1303
+ (selectedPivotTable?.columns ?? columns).find((c) => NUMBER_FORMAT_TYPES.includes(c.format))?.field ?? updatedForm.xAxisField;
1283
1304
  }
1284
1305
  }
1285
1306
  else if (value === 'gauge') {
1286
1307
  updatedForm.xAxisFormat = 'percent';
1287
1308
  const currentXAxisColumn = (selectedPivotTable?.columns ?? columns).find((c) => c.field === updatedForm.xAxisField);
1288
1309
  if (!NUMBER_FORMAT_TYPES.includes(currentXAxisColumn?.format ?? '')) {
1289
- updatedForm.xAxisField = (selectedPivotTable?.columns ?? columns).find((c) => NUMBER_FORMAT_TYPES.includes(c.format))?.field ?? updatedForm.xAxisField;
1310
+ updatedForm.xAxisField =
1311
+ (selectedPivotTable?.columns ?? columns).find((c) => NUMBER_FORMAT_TYPES.includes(c.format))?.field ?? updatedForm.xAxisField;
1290
1312
  }
1291
1313
  }
1292
1314
  }
@@ -1328,9 +1350,11 @@ destinationDashboard, onClickChartElement, isEditingMode = false, disableSort =
1328
1350
  // This method is *potentially* flawed because it chooses the first matching field it finds
1329
1351
  // which may not be robust to joins, aliases, disambiguations, etc.
1330
1352
  // unfortunately the pivot doesn't store the table of the rowField so we can't do better
1331
- const dateField = pivot.rowField && isDateField(pivot.rowFieldType ?? '') ? dateFieldOptions.find((table) => {
1332
- return table.columns.find((col) => col.field === pivot.rowField);
1333
- }) : undefined;
1353
+ const dateField = pivot.rowField && isDateField(pivot.rowFieldType ?? '')
1354
+ ? dateFieldOptions.find((table) => {
1355
+ return table.columns.find((col) => col.field === pivot.rowField);
1356
+ })
1357
+ : undefined;
1334
1358
  setFormData((formData) => ({
1335
1359
  ...formData,
1336
1360
  ...newPivotFormData,
@@ -1489,6 +1513,7 @@ destinationDashboard, onClickChartElement, isEditingMode = false, disableSort =
1489
1513
  report: { ...newReport, rows: undefined, pivotRows: undefined }, // stop including rows in request
1490
1514
  dashboardItemId,
1491
1515
  client,
1516
+ getToken,
1492
1517
  });
1493
1518
  if (resp && resp.name !== 'error') {
1494
1519
  const data = {
@@ -1548,9 +1573,7 @@ destinationDashboard, onClickChartElement, isEditingMode = false, disableSort =
1548
1573
  height: isHorizontalView || !isOpen ? '100%' : 800,
1549
1574
  ...(isHorizontalView && {
1550
1575
  // flexGrow: 1,
1551
- width: !isOpen
1552
- ? '100%'
1553
- : `calc(100% - ${formWidth}px - 20px)`, // width of left sidebar plus gap
1576
+ width: !isOpen ? '100%' : `calc(100% - ${formWidth}px - 20px)`, // width of left sidebar plus gap
1554
1577
  }),
1555
1578
  ...(!isHorizontalView && isOpen && { width: formWidth }),
1556
1579
  }, children: [!isEditingMode && (report?.adminError || report?.error) ? (_jsx(ErrorComponent, { label: report.adminError || report.error, onClick: onClickChartError })) : ((isHorizontalView || (!isOpen && windowWidth > 1200)) && (_jsx(InternalChart, { report: chartData, filtersEnabled: filtersEnabled, setFiltersEnabled: (hide) => {
@@ -1564,7 +1587,7 @@ destinationDashboard, onClickChartElement, isEditingMode = false, disableSort =
1564
1587
  ...(isHorizontalView && {
1565
1588
  flexGrow: !['table'].includes(formData.chartType) ? 1 : 0,
1566
1589
  }),
1567
- }, onClickChartElement: onClickChartElement, filterToggleDisabled: Object.values(validFilter).includes(false), onDashboardFilterChange: onDashboardFilterChange, layoutChanged: isOpen }))),
1590
+ }, onClickChartElement: onClickChartElement, filterToggleDisabled: Object.values(validFilter).includes(false), onDashboardFilterChange: onDashboardFilterChange, layoutChanged: isOpen, SelectComponent: SelectComponent, MultiSelectComponent: MultiSelectComponent, LoadingComponent: LoadingComponent }))),
1568
1591
  // Make sure to display non-pivoted table when using pivot chart
1569
1592
  !hideChartView &&
1570
1593
  (isHorizontalView || (!isOpen && windowWidth < 1200)) && (_jsxs("div", { style: {
@@ -1581,11 +1604,12 @@ destinationDashboard, onClickChartElement, isEditingMode = false, disableSort =
1581
1604
  onFiltersEnabledChanged(hide);
1582
1605
  }, colors: theme?.chartColors, loading: isLoading, hideDateRangeFilter: hideDateRangeFilter, isAdmin: isAdmin, containerStyle: {
1583
1606
  width: '100%',
1584
- height: formData.chartType === 'table'
1585
- ? 200
1586
- : formData.chartType === 'metric'
1587
- ? 300
1588
- : 500,
1607
+ // height:
1608
+ // formData.chartType === 'table'
1609
+ // ? 200
1610
+ // : formData.chartType === 'metric'
1611
+ // ? 300
1612
+ // : 500,
1589
1613
  flexGrow: formData.chartType !== 'table' ? 1 : 0,
1590
1614
  }, onClickChartElement: onClickChartElement, filterToggleDisabled: Object.values(validFilter).includes(false), onDashboardFilterChange: onDashboardFilterChange, layoutChanged: isOpen })), hideTableView ? null : formData.chartType !== 'table' ? (_jsx(TableComponent, { rows: formattedRows, columns: includeCustomFields && !containsCustomFields
1591
1615
  ? formData.columns.concat(reportCustomFields)
@@ -1626,14 +1650,15 @@ destinationDashboard, onClickChartElement, isEditingMode = false, disableSort =
1626
1650
  onFiltersEnabledChanged(hide);
1627
1651
  }, colors: theme?.chartColors, loading: isLoading, hideDateRangeFilter: hideDateRangeFilter, isAdmin: isAdmin, containerStyle: {
1628
1652
  width: '100%',
1629
- height: formData.chartType === 'table'
1630
- ? 200
1631
- : formData.chartType === 'metric'
1632
- ? 300
1633
- : formData.chartType === 'US map' ||
1634
- formData.chartType === 'World map'
1635
- ? 'fit-content'
1636
- : 500,
1653
+ // height:
1654
+ // formData.chartType === 'table'
1655
+ // ? 200
1656
+ // : formData.chartType === 'metric'
1657
+ // ? 300
1658
+ // : formData.chartType === 'US map' ||
1659
+ // formData.chartType === 'World map'
1660
+ // ? 'fit-content'
1661
+ // : 500,
1637
1662
  flexGrow: !['table'].includes(formData.chartType)
1638
1663
  ? 1
1639
1664
  : 0,
@@ -1647,9 +1672,17 @@ destinationDashboard, onClickChartElement, isEditingMode = false, disableSort =
1647
1672
  }, options: dashboardOptions.map((elem) => ({
1648
1673
  label: elem.label,
1649
1674
  value: elem.label,
1650
- })), width: 200 }) })), hideChartType ? (_jsx("div", { style: { width: 200 } })) : (_jsxs(_Fragment, { children: [_jsx("div", { ref: selectRef, style: { display: 'flex', flexDirection: 'column' }, children: _jsx(SelectComponent, { label: "Chart type", value: formData.chartType, onChange: (e) => handleChange(e.target.value, 'chartType'), options: chartTypes, width: 200 }) }), currentDashboard?.sectionOrder?.some((s) => s.section) && _jsx("div", { style: { display: currentDashboard?.sectionOrder?.length ? 'flex' : 'none', flexDirection: 'column' }, children: _jsx(SelectComponent, { label: "Section", value: formData.section ?? '', options: currentDashboard?.sectionOrder?.map((s) => ({ label: s.section ? s.section : 'No section', value: s.section })) ?? [], onChange: (e) => {
1675
+ })), width: 200 }) })), hideChartType ? (_jsx("div", { style: { width: 200 } })) : (_jsxs(_Fragment, { children: [_jsx("div", { ref: selectRef, style: { display: 'flex', flexDirection: 'column' }, children: _jsx(SelectComponent, { label: "Chart type", value: formData.chartType, onChange: (e) => handleChange(e.target.value, 'chartType'), options: chartTypes, width: 200 }) }), currentDashboard?.sectionOrder?.some((s) => s.section) && (_jsx("div", { style: {
1676
+ display: currentDashboard?.sectionOrder?.length
1677
+ ? 'flex'
1678
+ : 'none',
1679
+ flexDirection: 'column',
1680
+ }, children: _jsx(SelectComponent, { label: "Section", value: formData.section ?? '', options: currentDashboard?.sectionOrder?.map((s) => ({
1681
+ label: s.section ? s.section : 'No section',
1682
+ value: s.section,
1683
+ })) ?? [], onChange: (e) => {
1651
1684
  handleChange(e.target.value ?? '', 'section');
1652
- }, width: 200, hideEmptyOption: true }) })] }))] }), hidePivotForm ? null : (_jsxs("div", { style: {
1685
+ }, width: 200, hideEmptyOption: true }) }))] }))] }), hidePivotForm ? null : (_jsxs("div", { style: {
1653
1686
  display: 'flex',
1654
1687
  flexDirection: 'column',
1655
1688
  gap: 6,
@@ -1658,7 +1691,7 @@ destinationDashboard, onClickChartElement, isEditingMode = false, disableSort =
1658
1691
  // marginTop: 6,
1659
1692
  display: 'flex',
1660
1693
  flexDirection: 'column',
1661
- }, children: _jsx(PivotModal, { pivotRowField: pivotRowField, setPivotRowField: setPivotRowField, pivotColumnField: pivotColumnField, setPivotColumnField: setPivotColumnField, pivotAggregations: pivotAggregations, setPivotAggregations: setPivotAggregations, createdPivots: createdPivots, setCreatedPivots: setCreatedPivots, recommendedPivots: recommendedPivots, setRecommendedPivots: setRecommendedPivots, popUpTitle: pivotPopUpTitle, setPopUpTitle: setPivotPopUpTitle, selectedTable: selectedTable, SelectComponent: SelectComponent, ButtonComponent: ButtonComponent, CardComponent: CardComponent, SecondaryButtonComponent: SecondaryButtonComponent, PopoverComponent: PopoverComponent, LabelComponent: LabelComponent, TextComponent: TextComponent, HeaderComponent: HeaderComponent, SubheaderComponent: SubHeaderComponent, DeleteButtonComponent: DeleteButtonComponent, ErrorMessageComponent: ErrorMessageComponent, PivotRowContainer: PivotRowContainer, PivotColumnContainer: PivotColumnContainer, LoadingComponent: LoadingComponent, theme: theme, isOpen: showPivotPopover, setIsOpen: setShowPivotPopover, showUpdatePivot: isEdittingPivot, setShowUpdatePivot: setIsEdittingPivot, parentRef: parentRef, data: rows, columns: processedColumns, triggerButtonText: 'Add pivot +', selectedPivotIndex: selectedPivotIndex, setSelectedPivotIndex: setSelectedPivotIndex, removePivot: handleDeletePivot, selectPivot: handleAddPivot, dateRange: dateRange, selectPivotOnEdit: true, showTrigger: !formData.pivot, query: query, pivotCountRequest: 4, initialUniqueValues: initialUniqueValues, uniqueValuesIsLoading: initialUniqueValuesIsLoading, initialSelectedPivotTable: selectedPivotTable, pivotRecommendationsEnabled: pivotRecommendationsEnabled, report: report, dashboardName: destinationDashboardName || '', dateFilter: filtersEnabled
1694
+ }, children: _jsx(PivotModal, { pivotRowField: pivotRowField, setPivotRowField: setPivotRowField, pivotColumnField: pivotColumnField, setPivotColumnField: setPivotColumnField, pivotAggregations: pivotAggregations, setPivotAggregations: setPivotAggregations, createdPivots: createdPivots, setCreatedPivots: setCreatedPivots, recommendedPivots: recommendedPivots, setRecommendedPivots: setRecommendedPivots, popUpTitle: pivotPopUpTitle, setPopUpTitle: setPivotPopUpTitle, selectedTable: selectedTable, SelectComponent: SelectComponent, ButtonComponent: ButtonComponent, CardComponent: CardComponent, SecondaryButtonComponent: SecondaryButtonComponent, PopoverComponent: PopoverComponent, LabelComponent: LabelComponent, TextComponent: TextComponent, HeaderComponent: HeaderComponent, SubheaderComponent: SubHeaderComponent, DeleteButtonComponent: DeleteButtonComponent, ErrorMessageComponent: ErrorMessageComponent, PivotRowContainer: PivotRowContainer, PivotColumnContainer: PivotColumnContainer, LoadingComponent: LoadingComponent, theme: theme, isOpen: showPivotPopover, setIsOpen: setShowPivotPopover, showUpdatePivot: isEdittingPivot, setShowUpdatePivot: setIsEdittingPivot, parentRef: parentRef, data: rows, columns: processedColumns, triggerButtonText: 'Add pivot +', selectedPivotIndex: selectedPivotIndex, setSelectedPivotIndex: setSelectedPivotIndex, removePivot: handleDeletePivot, selectPivot: handleAddPivot, dateRange: dateRange, selectPivotOnEdit: true, showTrigger: !formData.pivot, query: query, pivotCountRequest: 4, initialUniqueValues: initialUniqueValues, uniqueValuesIsLoading: initialUniqueValuesIsLoading, initialSelectedPivotTable: selectedPivotTable, pivotRecommendationsEnabled: pivotRecommendationsEnabled, report: report ? { ...report, ...{ itemQuery } } : undefined, dashboardName: destinationDashboardName || '', dateFilter: filtersEnabled
1662
1695
  ? currentDashboardFilters?.find((f) => f.filterType === 'date_range')
1663
1696
  : undefined }) }), formData.pivot && (_jsx("div", { children: _jsx("div", { style: { width: pivotCardWidth }, children: _jsx(PivotCard, { pivotTable: pivotCardTable, theme: theme, index: 0, onSelectPivot: () => {
1664
1697
  setIsEdittingPivot(true);
@@ -1765,25 +1798,16 @@ destinationDashboard, onClickChartElement, isEditingMode = false, disableSort =
1765
1798
  selectedPivotTable.columns &&
1766
1799
  formData.chartType === 'table'
1767
1800
  ? // THIS CASE IF FOR PIVOT TABLES ONLY
1768
- selectedPivotTable.columns.map((column, index) => (_jsxs(ChartBuilderInputRowContainer, { children: [_jsx(SelectComponent, { value: column.label, onChange: (e) => handleChange(e.target.value, 'columns.field', index), options: selectedPivotTable.columns.map((elem) => ({
1769
- label: elem.label,
1770
- value: elem.label,
1771
- })), width: 200 }), _jsx(TextInputComponent, { id: `chart-builder-column-label-${index}`, width: 200, value: column.label, placeholder: "Column Label", onChange: (e) => handleChange(e.target.value, 'columns.label', index) }), _jsx(SelectComponent, { value:
1801
+ selectedPivotTable.columns.map((column, index) => (_jsxs(ChartBuilderInputRowContainer, { children: [_jsx(SelectComponent, { value: column.field, onChange: (e) => handleChange(e.target.value, 'pivot.field', index), options: selectedPivotTable.columns.map((elem) => ({
1802
+ label: elem.field,
1803
+ value: elem.field,
1804
+ })), disabled: index === 0, width: 200, hideEmptyOption: true }), _jsx(TextInputComponent, { id: `chart-builder-column-label-${index}`, width: 200, value: column.label, placeholder: "Column Label", onChange: (e) => handleChange(e.target.value, 'pivot.label', index) }), _jsx(SelectComponent, { value:
1772
1805
  // The first index use rowField for the rest of them use value fields
1773
- formData.pivot &&
1774
- column.field === formData.pivot.rowField
1775
- ? formData.pivot &&
1776
- isDateField(formData.pivot.rowFieldType || '')
1777
- ? 'string'
1778
- : 'string'
1779
- : formData.pivot?.aggregationType ===
1780
- 'percentage'
1781
- ? 'percent'
1782
- : 'two_decimal_places', onChange: (e) => handleChange(e.target.value, 'pivotColumn', index), options: formData.pivot && index === 0
1806
+ column.format, onChange: (e) => handleChange(e.target.value, 'pivot.format', index), options: formData.pivot && index === 0
1783
1807
  ? isDateField(formData.pivot.rowFieldType || '')
1784
1808
  ? [{ label: 'date', value: 'string' }]
1785
1809
  : [{ label: 'string', value: 'string' }]
1786
- : [...NUMBER_OPTIONS], width: 200 })] }, 'column' + index)))
1810
+ : [...NUMBER_OPTIONS], width: 200, hideEmptyOption: true })] }, 'column' + index)))
1787
1811
  : formData.columns.map((column, index) => (_jsxs(ChartBuilderInputRowContainer, { children: [_jsx(SelectComponent, { value: column.field, onChange: (e) => handleChange(e.target.value, 'columns.field', index), options: rows[0]
1788
1812
  ? Object.keys(rows[0]).map((elem) => ({
1789
1813
  label: elem,
@@ -1792,7 +1816,7 @@ destinationDashboard, onClickChartElement, isEditingMode = false, disableSort =
1792
1816
  : columns.map((elem) => ({
1793
1817
  label: elem.field,
1794
1818
  value: elem.field,
1795
- })), width: 200 }), _jsx(TextInputComponent, { id: `chart-builder-column-label-${index}`, width: 200, value: column.label, placeholder: "Column Label", onChange: (e) => handleChange(e.target.value, 'columns.label', index) }), _jsx(SelectComponent, { value: column.format, onChange: (e) => handleChange(e.target.value, 'columns.format', index), options: ALL_FORMAT_OPTIONS, width: 200 }), _jsx("div", { ref: deleteRef, style: { marginLeft: deleteButtonMargin }, children: _jsx(DeleteButtonComponent, { onClick: () => handleRemoveField('columns', index) }) })] }, 'column' + index))), _jsx("div", { children: !(
1819
+ })), width: 200, hideEmptyOption: true }), _jsx(TextInputComponent, { id: `chart-builder-column-label-${index}`, width: 200, value: column.label, placeholder: "Column Label", onChange: (e) => handleChange(e.target.value, 'columns.label', index) }), _jsx(SelectComponent, { value: column.format, onChange: (e) => handleChange(e.target.value, 'columns.format', index), options: ALL_FORMAT_OPTIONS, width: 200, hideEmptyOption: true }), _jsx("div", { ref: deleteRef, style: { marginLeft: deleteButtonMargin }, children: _jsx(DeleteButtonComponent, { onClick: () => handleRemoveField('columns', index) }) })] }, 'column' + index))), _jsx("div", { children: !(
1796
1820
  // hide when pivoted and chartType === 'table'
1797
1821
  (formData.pivot &&
1798
1822
  selectedPivotTable &&
@@ -1892,7 +1916,7 @@ destinationDashboard, onClickChartElement, isEditingMode = false, disableSort =
1892
1916
  label: t.label ?? t.flag,
1893
1917
  value: t.flag,
1894
1918
  })) ?? []), width: 200, emptyLabel: dashboardOwner.scope === 'database'
1895
- ? 'No flags supplied'
1919
+ ? 'No tags supplied'
1896
1920
  : undefined, allSelectedLabel: 'All ' + dashboardOwner.name + 's', style: {
1897
1921
  display: customTenantAccess || containsCustomFields
1898
1922
  ? 'inline'
@@ -1916,6 +1940,7 @@ destinationDashboard, onClickChartElement, isEditingMode = false, disableSort =
1916
1940
  display: 'flex',
1917
1941
  flexDirection: 'column',
1918
1942
  gap: 6,
1943
+ marginBottom: 128,
1919
1944
  }, children: [_jsx(HeaderComponent, { label: "Dashboard filter fields" }), isAdmin &&
1920
1945
  formData.dateField &&
1921
1946
  dashboardConfig[formData.dashboardName ?? destinationDashboardName ?? '']?.config.dateFilter?.label && (_jsxs(ChartBuilderInputRowContainer, { children: [_jsx(TextInputComponent, { id: 'filterMap.dateFilter.' +
@@ -1924,12 +1949,12 @@ destinationDashboard, onClickChartElement, isEditingMode = false, disableSort =
1924
1949
  ?.config.dateFilter?.label ?? 'Date', width: 200, onChange: () => { }, label: 'Filter', disabled: true }), _jsx("div", { style: { display: 'flex', flexDirection: 'column' }, children: _jsx(SelectComponent, { label: "Virtual Table", value: formData.dateField?.table, onChange: (e) => handleChange(e.target.value, 'dateField.table'), options: dateFieldOptions.map((elem) => ({
1925
1950
  label: elem.name,
1926
1951
  value: elem.name,
1927
- })), width: 200 }) }), _jsx("div", { style: { display: 'flex', flexDirection: 'column' }, children: _jsx(SelectComponent, { label: "Field", value: removeDoubleQuotes(formData.dateField?.field), onChange: (e) => handleChange(e.target.value, 'dateField.field'), options: dateFieldOptions
1952
+ })), width: 200, hideEmptyOption: true }) }), _jsx("div", { style: { display: 'flex', flexDirection: 'column' }, children: _jsx(SelectComponent, { label: "Field", value: removeDoubleQuotes(formData.dateField?.field), onChange: (e) => handleChange(e.target.value, 'dateField.field'), options: dateFieldOptions
1928
1953
  ?.find((elem) => elem.name === formData.dateField?.table)
1929
1954
  ?.columns?.map((elem) => ({
1930
1955
  label: elem.field,
1931
1956
  value: elem.field,
1932
- })) || [], width: 200 }) }), (!formData.dateField?.table ||
1957
+ })) || [], width: 200, hideEmptyOption: true }) }), (!formData.dateField?.table ||
1933
1958
  !formData.dateField?.field) && (_jsx("div", { style: { marginBottom: 8, marginTop: 'auto' }, children: _jsx(ExclamationFilledIcon, { height: 28, width: 28, style: {
1934
1959
  color: '#dc143c',
1935
1960
  } }) }))] })), specificDashboardFilters.length > 0 && (_jsx("div", { style: {
@@ -1965,7 +1990,7 @@ destinationDashboard, onClickChartElement, isEditingMode = false, disableSort =
1965
1990
  }), options: allTables.map((elem) => ({
1966
1991
  label: elem,
1967
1992
  value: elem,
1968
- })), width: 200 }), _jsx(SelectComponent, { label: index === 0 &&
1993
+ })), width: 200, hideEmptyOption: true }), _jsx(SelectComponent, { label: index === 0 &&
1969
1994
  !(isAdmin &&
1970
1995
  formData.dateField &&
1971
1996
  dashboardConfig[formData.dashboardName ?? '']
@@ -1987,7 +2012,7 @@ destinationDashboard, onClickChartElement, isEditingMode = false, disableSort =
1987
2012
  .map((elem) => ({
1988
2013
  label: elem.label,
1989
2014
  value: elem.field,
1990
- })) ?? [], width: 200 }), !validFilter[filter.label] && (_jsx("div", { style: { marginBottom: 8, marginTop: 'auto' }, children: _jsx(ExclamationFilledIcon, { height: 28, width: 28, style: {
2015
+ })) ?? [], width: 200, hideEmptyOption: true }), !validFilter[filter.label] && (_jsx("div", { style: { marginBottom: 8, marginTop: 'auto' }, children: _jsx(ExclamationFilledIcon, { height: 28, width: 28, style: {
1991
2016
  color: '#dc143c',
1992
2017
  } }) }))] }, filter.label))) }))] })), isAdmin && !tenants && !flags && (_jsxs("div", { style: {
1993
2018
  display: 'flex',
@@ -27,10 +27,10 @@ export interface ChartEditorProps {
27
27
  /** A callback function triggered when the chart error button is clicked */
28
28
  onClickChartError?: (element: any) => void;
29
29
  /** A callback that is fired when the item is deleted. */
30
- onDelete?: () => boolean;
30
+ onDelete?: () => boolean | Promise<boolean>;
31
31
  /** A select component. */
32
32
  SelectComponent?: (props: {
33
- value: string;
33
+ value: string | null | undefined;
34
34
  label?: string;
35
35
  options: {
36
36
  value: string;