@quillsql/react 2.12.29 → 2.12.31

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 (530) hide show
  1. package/dist/cjs/Chart.d.ts +29 -46
  2. package/dist/cjs/Chart.d.ts.map +1 -1
  3. package/dist/cjs/Chart.js +187 -468
  4. package/dist/cjs/ChartBuilder.d.ts +30 -61
  5. package/dist/cjs/ChartBuilder.d.ts.map +1 -1
  6. package/dist/cjs/ChartBuilder.js +190 -131
  7. package/dist/cjs/ChartEditor.d.ts +14 -2
  8. package/dist/cjs/ChartEditor.d.ts.map +1 -1
  9. package/dist/cjs/ChartEditor.js +70 -125
  10. package/dist/cjs/Context.d.ts +4 -1
  11. package/dist/cjs/Context.d.ts.map +1 -1
  12. package/dist/cjs/Context.js +52 -6
  13. package/dist/cjs/Dashboard.d.ts +74 -118
  14. package/dist/cjs/Dashboard.d.ts.map +1 -1
  15. package/dist/cjs/Dashboard.js +273 -47
  16. package/dist/cjs/DateRangePicker/Calendar.d.ts.map +1 -1
  17. package/dist/cjs/DateRangePicker/Calendar.js +3 -6
  18. package/dist/cjs/DateRangePicker/DateRangePicker.d.ts.map +1 -1
  19. package/dist/cjs/DateRangePicker/DateRangePicker.js +2 -29
  20. package/dist/cjs/DateRangePicker/DateRangePickerButton.d.ts +1 -2
  21. package/dist/cjs/DateRangePicker/DateRangePickerButton.d.ts.map +1 -1
  22. package/dist/cjs/DateRangePicker/DateRangePickerButton.js +2 -4
  23. package/dist/cjs/DateRangePicker/QuillDateRangePicker.d.ts +2 -1
  24. package/dist/cjs/DateRangePicker/QuillDateRangePicker.d.ts.map +1 -1
  25. package/dist/cjs/DateRangePicker/QuillDateRangePicker.js +4 -4
  26. package/dist/cjs/DateRangePicker/dateRangePickerUtils.d.ts +1 -1
  27. package/dist/cjs/DateRangePicker/dateRangePickerUtils.d.ts.map +1 -1
  28. package/dist/cjs/DateRangePicker/dateRangePickerUtils.js +1 -15
  29. package/dist/cjs/ReportBuilder.d.ts +18 -6
  30. package/dist/cjs/ReportBuilder.d.ts.map +1 -1
  31. package/dist/cjs/ReportBuilder.js +477 -489
  32. package/dist/cjs/SQLEditor.d.ts +4 -11
  33. package/dist/cjs/SQLEditor.d.ts.map +1 -1
  34. package/dist/cjs/SQLEditor.js +76 -88
  35. package/dist/cjs/Table.d.ts +19 -3
  36. package/dist/cjs/Table.d.ts.map +1 -1
  37. package/dist/cjs/Table.js +130 -114
  38. package/dist/cjs/TableChart.d.ts.map +1 -1
  39. package/dist/cjs/TableChart.js +0 -1
  40. package/dist/cjs/assets/ArrowDownHeadIcon.d.ts.map +1 -1
  41. package/dist/cjs/assets/ArrowDownIcon.d.ts.map +1 -1
  42. package/dist/cjs/assets/ArrowDownRightIcon.d.ts.map +1 -1
  43. package/dist/cjs/assets/ArrowLeftHeadIcon.d.ts.map +1 -1
  44. package/dist/cjs/assets/ArrowRightHeadIcon.d.ts.map +1 -1
  45. package/dist/cjs/assets/ArrowRightIcon.d.ts.map +1 -1
  46. package/dist/cjs/assets/ArrowUpHeadIcon.d.ts.map +1 -1
  47. package/dist/cjs/assets/ArrowUpIcon.d.ts.map +1 -1
  48. package/dist/cjs/assets/ArrowUpRightIcon.d.ts.map +1 -1
  49. package/dist/cjs/assets/CalendarIcon.d.ts.map +1 -1
  50. package/dist/cjs/assets/DoubleArrowLeftHeadIcon.d.ts.map +1 -1
  51. package/dist/cjs/assets/DoubleArrowRightHeadIcon.d.ts.map +1 -1
  52. package/dist/cjs/assets/ExclamationFilledIcon.d.ts.map +1 -1
  53. package/dist/cjs/assets/LoadingSpinner.d.ts.map +1 -1
  54. package/dist/cjs/assets/SearchIcon.d.ts.map +1 -1
  55. package/dist/cjs/assets/XCircleIcon.d.ts.map +1 -1
  56. package/dist/cjs/components/Banner/index.d.ts +1 -1
  57. package/dist/cjs/components/Banner/index.d.ts.map +1 -1
  58. package/dist/cjs/components/Banner/index.js +1 -1
  59. package/dist/cjs/components/BigModal/BigModal.d.ts.map +1 -1
  60. package/dist/cjs/components/BigModal/BigModal.js +6 -12
  61. package/dist/cjs/components/Chart/BarChart.d.ts.map +1 -1
  62. package/dist/cjs/components/Chart/BarChart.js +12 -1
  63. package/dist/cjs/components/Chart/BarList.d.ts.map +1 -1
  64. package/dist/cjs/components/Chart/BarList.js +21 -14
  65. package/dist/cjs/components/Chart/ChartError.d.ts +8 -1
  66. package/dist/cjs/components/Chart/ChartError.d.ts.map +1 -1
  67. package/dist/cjs/components/Chart/ChartError.js +40 -5
  68. package/dist/cjs/components/Chart/ChartTooltip.d.ts.map +1 -1
  69. package/dist/cjs/components/Chart/ChartTooltip.js +8 -2
  70. package/dist/cjs/components/Chart/LineChart.d.ts +2 -1
  71. package/dist/cjs/components/Chart/LineChart.d.ts.map +1 -1
  72. package/dist/cjs/components/Chart/LineChart.js +27 -3
  73. package/dist/cjs/components/Chart/PieChart.d.ts.map +1 -1
  74. package/dist/cjs/components/Chart/PieChart.js +1 -3
  75. package/dist/cjs/components/Dashboard/ChartComponent.d.ts +1 -1
  76. package/dist/cjs/components/Dashboard/ChartComponent.d.ts.map +1 -1
  77. package/dist/cjs/components/Dashboard/ChartComponent.js +1 -1
  78. package/dist/cjs/components/Dashboard/DashboardFilter.d.ts +5 -1
  79. package/dist/cjs/components/Dashboard/DashboardFilter.d.ts.map +1 -1
  80. package/dist/cjs/components/Dashboard/DashboardFilter.js +10 -5
  81. package/dist/cjs/components/Dashboard/DataLoader.d.ts +8 -12
  82. package/dist/cjs/components/Dashboard/DataLoader.d.ts.map +1 -1
  83. package/dist/cjs/components/Dashboard/DataLoader.js +137 -194
  84. package/dist/cjs/components/Dashboard/MetricComponent.d.ts.map +1 -1
  85. package/dist/cjs/components/Dashboard/MetricComponent.js +11 -45
  86. package/dist/cjs/components/Dashboard/TableComponent.d.ts +2 -5
  87. package/dist/cjs/components/Dashboard/TableComponent.d.ts.map +1 -1
  88. package/dist/cjs/components/Dashboard/TableComponent.js +3 -32
  89. package/dist/cjs/components/Dropdown/Dropdown.d.ts.map +1 -1
  90. package/dist/cjs/components/Dropdown/Dropdown.js +1 -3
  91. package/dist/cjs/components/Dropdown/DropdownItem.d.ts.map +1 -1
  92. package/dist/cjs/components/Dropdown/DropdownItem.js +3 -8
  93. package/dist/cjs/components/Dropdown/index.d.ts +2 -2
  94. package/dist/cjs/components/Modal/Modal.d.ts.map +1 -1
  95. package/dist/cjs/components/Modal/Modal.js +2 -3
  96. package/dist/cjs/components/Modal/index.d.ts +1 -1
  97. package/dist/cjs/components/QuillMultiSelect.d.ts.map +1 -1
  98. package/dist/cjs/components/QuillMultiSelect.js +18 -3
  99. package/dist/cjs/components/QuillMultiSelectWithCombo.d.ts.map +1 -1
  100. package/dist/cjs/components/QuillMultiSelectWithCombo.js +18 -3
  101. package/dist/cjs/components/QuillSelect.js +1 -1
  102. package/dist/cjs/components/QuillSelectWithCombo.d.ts.map +1 -1
  103. package/dist/cjs/components/QuillSelectWithCombo.js +6 -3
  104. package/dist/cjs/components/QuillTable.d.ts +1 -4
  105. package/dist/cjs/components/QuillTable.d.ts.map +1 -1
  106. package/dist/cjs/components/QuillTable.js +5 -11
  107. package/dist/cjs/components/ReportBuilder/AddColumnModal.d.ts +3 -1
  108. package/dist/cjs/components/ReportBuilder/AddColumnModal.d.ts.map +1 -1
  109. package/dist/cjs/components/ReportBuilder/AddColumnModal.js +5 -8
  110. package/dist/cjs/components/ReportBuilder/AddLimitPopover.d.ts.map +1 -1
  111. package/dist/cjs/components/ReportBuilder/AddLimitPopover.js +1 -3
  112. package/dist/cjs/components/ReportBuilder/AddSortPopover.d.ts.map +1 -1
  113. package/dist/cjs/components/ReportBuilder/AddSortPopover.js +12 -1
  114. package/dist/cjs/components/ReportBuilder/FilterModal.d.ts +30 -0
  115. package/dist/cjs/components/ReportBuilder/FilterModal.d.ts.map +1 -0
  116. package/dist/cjs/components/ReportBuilder/FilterModal.js +579 -0
  117. package/dist/cjs/components/ReportBuilder/ast.d.ts +2 -1
  118. package/dist/cjs/components/ReportBuilder/ast.d.ts.map +1 -1
  119. package/dist/cjs/components/ReportBuilder/ast.js +33 -6
  120. package/dist/cjs/components/ReportBuilder/constants.d.ts +18 -3
  121. package/dist/cjs/components/ReportBuilder/constants.d.ts.map +1 -1
  122. package/dist/cjs/components/ReportBuilder/constants.js +24 -3
  123. package/dist/cjs/components/ReportBuilder/convert.d.ts +18 -16
  124. package/dist/cjs/components/ReportBuilder/convert.d.ts.map +1 -1
  125. package/dist/cjs/components/ReportBuilder/convert.js +378 -494
  126. package/dist/cjs/components/ReportBuilder/operators.d.ts +24 -4
  127. package/dist/cjs/components/ReportBuilder/operators.d.ts.map +1 -1
  128. package/dist/cjs/components/ReportBuilder/operators.js +32 -4
  129. package/dist/cjs/components/ReportBuilder/ui.d.ts +20 -0
  130. package/dist/cjs/components/ReportBuilder/ui.d.ts.map +1 -1
  131. package/dist/cjs/components/ReportBuilder/ui.js +15 -5
  132. package/dist/cjs/components/ReportBuilder/util.d.ts +3 -11
  133. package/dist/cjs/components/ReportBuilder/util.d.ts.map +1 -1
  134. package/dist/cjs/components/ReportBuilder/util.js +15 -18
  135. package/dist/cjs/components/UiComponents.d.ts +36 -8
  136. package/dist/cjs/components/UiComponents.d.ts.map +1 -1
  137. package/dist/cjs/components/UiComponents.js +106 -12
  138. package/dist/cjs/components/selectUtils.d.ts +0 -1
  139. package/dist/cjs/components/selectUtils.d.ts.map +1 -1
  140. package/dist/cjs/components/selectUtils.js +1 -22
  141. package/dist/cjs/hooks/index.d.ts +4 -4
  142. package/dist/cjs/hooks/useAstToFilterTree.d.ts +11 -0
  143. package/dist/cjs/hooks/useAstToFilterTree.d.ts.map +1 -0
  144. package/dist/cjs/hooks/useAstToFilterTree.js +26 -0
  145. package/dist/cjs/hooks/useDashboard.d.ts.map +1 -1
  146. package/dist/cjs/hooks/useDashboard.js +5 -1
  147. package/dist/cjs/hooks/useExport.d.ts.map +1 -1
  148. package/dist/cjs/hooks/useExport.js +3 -1
  149. package/dist/cjs/hooks/useOnClickOutside.js +4 -4
  150. package/dist/cjs/hooks/useOnWindowResize.d.ts.map +1 -1
  151. package/dist/cjs/hooks/useOnWindowResize.js +2 -2
  152. package/dist/cjs/hooks/useQuill.d.ts +10 -27
  153. package/dist/cjs/hooks/useQuill.d.ts.map +1 -1
  154. package/dist/cjs/hooks/useQuill.js +133 -85
  155. package/dist/cjs/hooks/useSelectOnKeyDown.d.ts.map +1 -1
  156. package/dist/cjs/hooks/useSelectOnKeyDown.js +4 -4
  157. package/dist/cjs/hooks/useTheme.js +1 -1
  158. package/dist/cjs/index.d.ts +3 -1
  159. package/dist/cjs/index.d.ts.map +1 -1
  160. package/dist/cjs/index.js +3 -1
  161. package/dist/cjs/internals/ReportBuilder/PivotForm.d.ts.map +1 -1
  162. package/dist/cjs/internals/ReportBuilder/PivotForm.js +8 -1
  163. package/dist/cjs/internals/ReportBuilder/PivotList.d.ts +2 -2
  164. package/dist/cjs/internals/ReportBuilder/PivotList.d.ts.map +1 -1
  165. package/dist/cjs/internals/ReportBuilder/PivotList.js +2 -2
  166. package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts +2 -1
  167. package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
  168. package/dist/cjs/internals/ReportBuilder/PivotModal.js +8 -21
  169. package/dist/cjs/lib/utils.js +2 -2
  170. package/dist/cjs/models/Columns.d.ts +2 -1
  171. package/dist/cjs/models/Columns.d.ts.map +1 -1
  172. package/dist/cjs/models/Filter.d.ts +115 -4
  173. package/dist/cjs/models/Filter.d.ts.map +1 -1
  174. package/dist/cjs/models/Filter.js +99 -0
  175. package/dist/cjs/models/Pagination.d.ts +10 -0
  176. package/dist/cjs/models/Pagination.d.ts.map +1 -0
  177. package/dist/cjs/models/Pagination.js +2 -0
  178. package/dist/cjs/models/Report.d.ts +103 -0
  179. package/dist/cjs/models/Report.d.ts.map +1 -0
  180. package/dist/cjs/models/Report.js +2 -0
  181. package/dist/cjs/utils/aggregate.js +1 -1
  182. package/dist/cjs/utils/astFilterProcessing.d.ts +36 -0
  183. package/dist/cjs/utils/astFilterProcessing.d.ts.map +1 -0
  184. package/dist/cjs/utils/astFilterProcessing.js +8091 -0
  185. package/dist/cjs/utils/astProcessing.d.ts.map +1 -1
  186. package/dist/cjs/utils/astProcessing.js +4 -3
  187. package/dist/cjs/utils/axisFormatter.js +0 -71
  188. package/dist/cjs/utils/color.js +9 -87
  189. package/dist/cjs/utils/columnProcessing.d.ts +2 -0
  190. package/dist/cjs/utils/columnProcessing.d.ts.map +1 -1
  191. package/dist/cjs/utils/columnProcessing.js +54 -1
  192. package/dist/cjs/utils/csv.d.ts.map +1 -1
  193. package/dist/cjs/utils/dashboard.d.ts +1 -1
  194. package/dist/cjs/utils/dashboard.d.ts.map +1 -1
  195. package/dist/cjs/utils/dashboard.js +6 -59
  196. package/dist/cjs/utils/dataFetcher.d.ts.map +1 -1
  197. package/dist/cjs/utils/dataFetcher.js +63 -1
  198. package/dist/cjs/utils/dataProcessing.d.ts +10 -0
  199. package/dist/cjs/utils/dataProcessing.d.ts.map +1 -0
  200. package/dist/cjs/utils/dataProcessing.js +144 -0
  201. package/dist/cjs/utils/dates.d.ts +2 -1
  202. package/dist/cjs/utils/dates.d.ts.map +1 -1
  203. package/dist/cjs/utils/dates.js +23 -1
  204. package/dist/cjs/utils/error.d.ts +5 -0
  205. package/dist/cjs/utils/error.d.ts.map +1 -0
  206. package/dist/cjs/utils/error.js +12 -0
  207. package/dist/cjs/utils/filterConstants.d.ts +34 -0
  208. package/dist/cjs/utils/filterConstants.d.ts.map +1 -0
  209. package/dist/cjs/utils/filterConstants.js +36 -0
  210. package/dist/cjs/utils/filterProcessing.d.ts +7 -1
  211. package/dist/cjs/utils/filterProcessing.d.ts.map +1 -1
  212. package/dist/cjs/utils/filterProcessing.js +104 -17
  213. package/dist/cjs/utils/logging.d.ts.map +1 -1
  214. package/dist/cjs/utils/logging.js +1 -0
  215. package/dist/cjs/utils/merge.js +0 -21
  216. package/dist/cjs/utils/{monacoAutocomplete.d.ts → monacoConfig.d.ts} +3 -2
  217. package/dist/cjs/utils/monacoConfig.d.ts.map +1 -0
  218. package/dist/cjs/utils/monacoConfig.js +324 -0
  219. package/dist/cjs/utils/paginationProcessing.d.ts +5 -0
  220. package/dist/cjs/utils/paginationProcessing.d.ts.map +1 -0
  221. package/dist/cjs/utils/paginationProcessing.js +30 -0
  222. package/dist/cjs/utils/pivotConstructor.d.ts +2 -1
  223. package/dist/cjs/utils/pivotConstructor.d.ts.map +1 -1
  224. package/dist/cjs/utils/pivotConstructor.js +16 -1
  225. package/dist/cjs/utils/pivotProcessing.d.ts.map +1 -1
  226. package/dist/cjs/utils/pivotProcessing.js +12 -6
  227. package/dist/cjs/utils/queryConstructor.d.ts.map +1 -1
  228. package/dist/cjs/utils/queryConstructor.js +4 -3
  229. package/dist/cjs/utils/report.d.ts +10 -0
  230. package/dist/cjs/utils/report.d.ts.map +1 -0
  231. package/dist/cjs/utils/report.js +180 -0
  232. package/dist/cjs/utils/schema.d.ts.map +1 -1
  233. package/dist/cjs/utils/schema.js +35 -6
  234. package/dist/cjs/utils/styles.d.ts +1 -1
  235. package/dist/cjs/utils/styles.d.ts.map +1 -1
  236. package/dist/cjs/utils/tableProcessing.d.ts +22 -8
  237. package/dist/cjs/utils/tableProcessing.d.ts.map +1 -1
  238. package/dist/cjs/utils/tableProcessing.js +116 -35
  239. package/dist/cjs/utils/textProcessing.js +3 -3
  240. package/dist/cjs/utils/validation.d.ts +9 -0
  241. package/dist/cjs/utils/validation.d.ts.map +1 -0
  242. package/dist/cjs/utils/validation.js +24 -0
  243. package/dist/cjs/utils/valueFormatter.d.ts.map +1 -1
  244. package/dist/cjs/utils/valueFormatter.js +8 -4
  245. package/dist/esm/Chart.d.ts +29 -46
  246. package/dist/esm/Chart.d.ts.map +1 -1
  247. package/dist/esm/Chart.js +189 -471
  248. package/dist/esm/ChartBuilder.d.ts +30 -61
  249. package/dist/esm/ChartBuilder.d.ts.map +1 -1
  250. package/dist/esm/ChartBuilder.js +191 -129
  251. package/dist/esm/ChartEditor.d.ts +14 -2
  252. package/dist/esm/ChartEditor.d.ts.map +1 -1
  253. package/dist/esm/ChartEditor.js +71 -126
  254. package/dist/esm/Context.d.ts +4 -1
  255. package/dist/esm/Context.d.ts.map +1 -1
  256. package/dist/esm/Context.js +51 -5
  257. package/dist/esm/Dashboard.d.ts +74 -118
  258. package/dist/esm/Dashboard.d.ts.map +1 -1
  259. package/dist/esm/Dashboard.js +275 -49
  260. package/dist/esm/DateRangePicker/Calendar.d.ts.map +1 -1
  261. package/dist/esm/DateRangePicker/Calendar.js +5 -8
  262. package/dist/esm/DateRangePicker/DateRangePicker.d.ts.map +1 -1
  263. package/dist/esm/DateRangePicker/DateRangePicker.js +2 -29
  264. package/dist/esm/DateRangePicker/DateRangePickerButton.d.ts +1 -2
  265. package/dist/esm/DateRangePicker/DateRangePickerButton.d.ts.map +1 -1
  266. package/dist/esm/DateRangePicker/DateRangePickerButton.js +2 -4
  267. package/dist/esm/DateRangePicker/QuillDateRangePicker.d.ts +2 -1
  268. package/dist/esm/DateRangePicker/QuillDateRangePicker.d.ts.map +1 -1
  269. package/dist/esm/DateRangePicker/QuillDateRangePicker.js +4 -4
  270. package/dist/esm/DateRangePicker/dateRangePickerUtils.d.ts +1 -1
  271. package/dist/esm/DateRangePicker/dateRangePickerUtils.d.ts.map +1 -1
  272. package/dist/esm/DateRangePicker/dateRangePickerUtils.js +1 -15
  273. package/dist/esm/ReportBuilder.d.ts +18 -6
  274. package/dist/esm/ReportBuilder.d.ts.map +1 -1
  275. package/dist/esm/ReportBuilder.js +484 -496
  276. package/dist/esm/SQLEditor.d.ts +4 -11
  277. package/dist/esm/SQLEditor.d.ts.map +1 -1
  278. package/dist/esm/SQLEditor.js +75 -87
  279. package/dist/esm/Table.d.ts +19 -3
  280. package/dist/esm/Table.d.ts.map +1 -1
  281. package/dist/esm/Table.js +132 -116
  282. package/dist/esm/TableChart.d.ts.map +1 -1
  283. package/dist/esm/TableChart.js +0 -1
  284. package/dist/esm/assets/ArrowDownHeadIcon.d.ts.map +1 -1
  285. package/dist/esm/assets/ArrowDownIcon.d.ts.map +1 -1
  286. package/dist/esm/assets/ArrowDownRightIcon.d.ts.map +1 -1
  287. package/dist/esm/assets/ArrowLeftHeadIcon.d.ts.map +1 -1
  288. package/dist/esm/assets/ArrowRightHeadIcon.d.ts.map +1 -1
  289. package/dist/esm/assets/ArrowRightIcon.d.ts.map +1 -1
  290. package/dist/esm/assets/ArrowUpHeadIcon.d.ts.map +1 -1
  291. package/dist/esm/assets/ArrowUpIcon.d.ts.map +1 -1
  292. package/dist/esm/assets/ArrowUpRightIcon.d.ts.map +1 -1
  293. package/dist/esm/assets/CalendarIcon.d.ts.map +1 -1
  294. package/dist/esm/assets/DoubleArrowLeftHeadIcon.d.ts.map +1 -1
  295. package/dist/esm/assets/DoubleArrowRightHeadIcon.d.ts.map +1 -1
  296. package/dist/esm/assets/ExclamationFilledIcon.d.ts.map +1 -1
  297. package/dist/esm/assets/LoadingSpinner.d.ts.map +1 -1
  298. package/dist/esm/assets/SearchIcon.d.ts.map +1 -1
  299. package/dist/esm/assets/XCircleIcon.d.ts.map +1 -1
  300. package/dist/esm/components/Banner/index.d.ts +1 -1
  301. package/dist/esm/components/Banner/index.d.ts.map +1 -1
  302. package/dist/esm/components/Banner/index.js +1 -1
  303. package/dist/esm/components/BigModal/BigModal.d.ts.map +1 -1
  304. package/dist/esm/components/BigModal/BigModal.js +7 -13
  305. package/dist/esm/components/Chart/BarChart.d.ts.map +1 -1
  306. package/dist/esm/components/Chart/BarChart.js +13 -2
  307. package/dist/esm/components/Chart/BarList.d.ts.map +1 -1
  308. package/dist/esm/components/Chart/BarList.js +21 -14
  309. package/dist/esm/components/Chart/ChartError.d.ts +8 -1
  310. package/dist/esm/components/Chart/ChartError.d.ts.map +1 -1
  311. package/dist/esm/components/Chart/ChartError.js +39 -6
  312. package/dist/esm/components/Chart/ChartTooltip.d.ts.map +1 -1
  313. package/dist/esm/components/Chart/ChartTooltip.js +8 -2
  314. package/dist/esm/components/Chart/LineChart.d.ts +2 -1
  315. package/dist/esm/components/Chart/LineChart.d.ts.map +1 -1
  316. package/dist/esm/components/Chart/LineChart.js +28 -4
  317. package/dist/esm/components/Chart/PieChart.d.ts.map +1 -1
  318. package/dist/esm/components/Chart/PieChart.js +1 -3
  319. package/dist/esm/components/Dashboard/ChartComponent.d.ts +1 -1
  320. package/dist/esm/components/Dashboard/ChartComponent.d.ts.map +1 -1
  321. package/dist/esm/components/Dashboard/ChartComponent.js +1 -1
  322. package/dist/esm/components/Dashboard/DashboardFilter.d.ts +5 -1
  323. package/dist/esm/components/Dashboard/DashboardFilter.d.ts.map +1 -1
  324. package/dist/esm/components/Dashboard/DashboardFilter.js +10 -5
  325. package/dist/esm/components/Dashboard/DataLoader.d.ts +8 -12
  326. package/dist/esm/components/Dashboard/DataLoader.d.ts.map +1 -1
  327. package/dist/esm/components/Dashboard/DataLoader.js +137 -194
  328. package/dist/esm/components/Dashboard/MetricComponent.d.ts.map +1 -1
  329. package/dist/esm/components/Dashboard/MetricComponent.js +11 -45
  330. package/dist/esm/components/Dashboard/TableComponent.d.ts +2 -5
  331. package/dist/esm/components/Dashboard/TableComponent.d.ts.map +1 -1
  332. package/dist/esm/components/Dashboard/TableComponent.js +3 -32
  333. package/dist/esm/components/Dropdown/Dropdown.d.ts.map +1 -1
  334. package/dist/esm/components/Dropdown/Dropdown.js +2 -4
  335. package/dist/esm/components/Dropdown/DropdownItem.d.ts.map +1 -1
  336. package/dist/esm/components/Dropdown/DropdownItem.js +4 -9
  337. package/dist/esm/components/Dropdown/index.d.ts +2 -2
  338. package/dist/esm/components/Dropdown/index.js +2 -2
  339. package/dist/esm/components/Modal/Modal.d.ts.map +1 -1
  340. package/dist/esm/components/Modal/Modal.js +2 -3
  341. package/dist/esm/components/Modal/index.d.ts +1 -1
  342. package/dist/esm/components/Modal/index.js +1 -1
  343. package/dist/esm/components/QuillMultiSelect.d.ts.map +1 -1
  344. package/dist/esm/components/QuillMultiSelect.js +18 -3
  345. package/dist/esm/components/QuillMultiSelectWithCombo.d.ts.map +1 -1
  346. package/dist/esm/components/QuillMultiSelectWithCombo.js +18 -3
  347. package/dist/esm/components/QuillSelect.js +1 -1
  348. package/dist/esm/components/QuillSelectWithCombo.d.ts.map +1 -1
  349. package/dist/esm/components/QuillSelectWithCombo.js +7 -4
  350. package/dist/esm/components/QuillTable.d.ts +1 -4
  351. package/dist/esm/components/QuillTable.d.ts.map +1 -1
  352. package/dist/esm/components/QuillTable.js +5 -11
  353. package/dist/esm/components/ReportBuilder/AddColumnModal.d.ts +3 -1
  354. package/dist/esm/components/ReportBuilder/AddColumnModal.d.ts.map +1 -1
  355. package/dist/esm/components/ReportBuilder/AddColumnModal.js +8 -11
  356. package/dist/esm/components/ReportBuilder/AddLimitPopover.d.ts.map +1 -1
  357. package/dist/esm/components/ReportBuilder/AddLimitPopover.js +2 -4
  358. package/dist/esm/components/ReportBuilder/AddSortPopover.d.ts.map +1 -1
  359. package/dist/esm/components/ReportBuilder/AddSortPopover.js +12 -1
  360. package/dist/esm/components/ReportBuilder/FilterModal.d.ts +30 -0
  361. package/dist/esm/components/ReportBuilder/FilterModal.d.ts.map +1 -0
  362. package/dist/esm/components/ReportBuilder/FilterModal.js +576 -0
  363. package/dist/esm/components/ReportBuilder/ast.d.ts +2 -1
  364. package/dist/esm/components/ReportBuilder/ast.d.ts.map +1 -1
  365. package/dist/esm/components/ReportBuilder/ast.js +31 -5
  366. package/dist/esm/components/ReportBuilder/constants.d.ts +18 -3
  367. package/dist/esm/components/ReportBuilder/constants.d.ts.map +1 -1
  368. package/dist/esm/components/ReportBuilder/constants.js +24 -3
  369. package/dist/esm/components/ReportBuilder/convert.d.ts +18 -16
  370. package/dist/esm/components/ReportBuilder/convert.d.ts.map +1 -1
  371. package/dist/esm/components/ReportBuilder/convert.js +375 -493
  372. package/dist/esm/components/ReportBuilder/convert.uspec.d.ts +2 -0
  373. package/dist/esm/components/ReportBuilder/convert.uspec.d.ts.map +1 -0
  374. package/dist/esm/components/ReportBuilder/convert.uspec.js +1419 -0
  375. package/dist/esm/components/ReportBuilder/operators.d.ts +24 -4
  376. package/dist/esm/components/ReportBuilder/operators.d.ts.map +1 -1
  377. package/dist/esm/components/ReportBuilder/operators.js +32 -4
  378. package/dist/esm/components/ReportBuilder/ui.d.ts +20 -0
  379. package/dist/esm/components/ReportBuilder/ui.d.ts.map +1 -1
  380. package/dist/esm/components/ReportBuilder/ui.js +13 -4
  381. package/dist/esm/components/ReportBuilder/util.d.ts +3 -11
  382. package/dist/esm/components/ReportBuilder/util.d.ts.map +1 -1
  383. package/dist/esm/components/ReportBuilder/util.js +16 -19
  384. package/dist/esm/components/UiComponents.d.ts +36 -8
  385. package/dist/esm/components/UiComponents.d.ts.map +1 -1
  386. package/dist/esm/components/UiComponents.js +104 -11
  387. package/dist/esm/components/selectUtils.d.ts +0 -1
  388. package/dist/esm/components/selectUtils.d.ts.map +1 -1
  389. package/dist/esm/components/selectUtils.js +0 -20
  390. package/dist/esm/hooks/index.d.ts +4 -4
  391. package/dist/esm/hooks/index.js +4 -4
  392. package/dist/esm/hooks/useAstToFilterTree.d.ts +11 -0
  393. package/dist/esm/hooks/useAstToFilterTree.d.ts.map +1 -0
  394. package/dist/esm/hooks/useAstToFilterTree.js +24 -0
  395. package/dist/esm/hooks/useDashboard.d.ts.map +1 -1
  396. package/dist/esm/hooks/useDashboard.js +5 -1
  397. package/dist/esm/hooks/useExport.d.ts.map +1 -1
  398. package/dist/esm/hooks/useExport.js +4 -2
  399. package/dist/esm/hooks/useOnClickOutside.js +5 -5
  400. package/dist/esm/hooks/useOnWindowResize.d.ts.map +1 -1
  401. package/dist/esm/hooks/useOnWindowResize.js +3 -3
  402. package/dist/esm/hooks/useQuill.d.ts +10 -27
  403. package/dist/esm/hooks/useQuill.d.ts.map +1 -1
  404. package/dist/esm/hooks/useQuill.js +133 -85
  405. package/dist/esm/hooks/useSelectOnKeyDown.d.ts.map +1 -1
  406. package/dist/esm/hooks/useSelectOnKeyDown.js +5 -5
  407. package/dist/esm/hooks/useTheme.js +1 -1
  408. package/dist/esm/index.d.ts +3 -1
  409. package/dist/esm/index.d.ts.map +1 -1
  410. package/dist/esm/index.js +1 -0
  411. package/dist/esm/internals/ReportBuilder/PivotForm.d.ts.map +1 -1
  412. package/dist/esm/internals/ReportBuilder/PivotForm.js +9 -2
  413. package/dist/esm/internals/ReportBuilder/PivotList.d.ts +2 -2
  414. package/dist/esm/internals/ReportBuilder/PivotList.d.ts.map +1 -1
  415. package/dist/esm/internals/ReportBuilder/PivotList.js +3 -3
  416. package/dist/esm/internals/ReportBuilder/PivotModal.d.ts +2 -1
  417. package/dist/esm/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
  418. package/dist/esm/internals/ReportBuilder/PivotModal.js +11 -24
  419. package/dist/esm/lib/utils.js +2 -2
  420. package/dist/esm/models/Columns.d.ts +2 -1
  421. package/dist/esm/models/Columns.d.ts.map +1 -1
  422. package/dist/esm/models/Filter.d.ts +115 -4
  423. package/dist/esm/models/Filter.d.ts.map +1 -1
  424. package/dist/esm/models/Filter.js +98 -1
  425. package/dist/esm/models/Pagination.d.ts +10 -0
  426. package/dist/esm/models/Pagination.d.ts.map +1 -0
  427. package/dist/esm/models/Pagination.js +1 -0
  428. package/dist/esm/models/Report.d.ts +103 -0
  429. package/dist/esm/models/Report.d.ts.map +1 -0
  430. package/dist/esm/models/Report.js +1 -0
  431. package/dist/esm/test-utils/constants.d.ts +56 -0
  432. package/dist/esm/test-utils/constants.d.ts.map +1 -0
  433. package/dist/esm/test-utils/constants.js +271 -0
  434. package/dist/esm/test-utils/generators.d.ts +4 -0
  435. package/dist/esm/test-utils/generators.d.ts.map +1 -0
  436. package/dist/esm/test-utils/generators.js +37 -0
  437. package/dist/esm/utils/aggregate.js +1 -1
  438. package/dist/esm/utils/astFilterProcessing.d.ts +36 -0
  439. package/dist/esm/utils/astFilterProcessing.d.ts.map +1 -0
  440. package/dist/esm/utils/astFilterProcessing.js +8084 -0
  441. package/dist/esm/utils/astFilterProcessing.uspec.d.ts +2 -0
  442. package/dist/esm/utils/astFilterProcessing.uspec.d.ts.map +1 -0
  443. package/dist/esm/utils/astFilterProcessing.uspec.js +2877 -0
  444. package/dist/esm/utils/astProcessing.d.ts.map +1 -1
  445. package/dist/esm/utils/astProcessing.js +4 -3
  446. package/dist/esm/utils/axisFormatter.js +0 -71
  447. package/dist/esm/utils/color.js +9 -87
  448. package/dist/esm/utils/columnProcessing.d.ts +2 -0
  449. package/dist/esm/utils/columnProcessing.d.ts.map +1 -1
  450. package/dist/esm/utils/columnProcessing.js +52 -0
  451. package/dist/esm/utils/columnProcessing.uspec.d.ts +2 -0
  452. package/dist/esm/utils/columnProcessing.uspec.d.ts.map +1 -0
  453. package/dist/esm/utils/columnProcessing.uspec.js +65 -0
  454. package/dist/esm/utils/csv.d.ts.map +1 -1
  455. package/dist/esm/utils/dashboard.d.ts +1 -1
  456. package/dist/esm/utils/dashboard.d.ts.map +1 -1
  457. package/dist/esm/utils/dashboard.js +6 -59
  458. package/dist/esm/utils/dataFetcher.d.ts.map +1 -1
  459. package/dist/esm/utils/dataFetcher.js +63 -1
  460. package/dist/esm/utils/dataProcessing.d.ts +10 -0
  461. package/dist/esm/utils/dataProcessing.d.ts.map +1 -0
  462. package/dist/esm/utils/dataProcessing.js +138 -0
  463. package/dist/esm/utils/dataProcessing.uspec.d.ts +2 -0
  464. package/dist/esm/utils/dataProcessing.uspec.d.ts.map +1 -0
  465. package/dist/esm/utils/dataProcessing.uspec.js +205 -0
  466. package/dist/esm/utils/dates.d.ts +2 -1
  467. package/dist/esm/utils/dates.d.ts.map +1 -1
  468. package/dist/esm/utils/dates.js +21 -0
  469. package/dist/esm/utils/error.d.ts +5 -0
  470. package/dist/esm/utils/error.d.ts.map +1 -0
  471. package/dist/esm/utils/error.js +8 -0
  472. package/dist/esm/utils/filterConstants.d.ts +34 -0
  473. package/dist/esm/utils/filterConstants.d.ts.map +1 -0
  474. package/dist/esm/utils/filterConstants.js +33 -0
  475. package/dist/esm/utils/filterProcessing.d.ts +7 -1
  476. package/dist/esm/utils/filterProcessing.d.ts.map +1 -1
  477. package/dist/esm/utils/filterProcessing.js +101 -16
  478. package/dist/esm/utils/filterProcessing.uspec.d.ts +2 -0
  479. package/dist/esm/utils/filterProcessing.uspec.d.ts.map +1 -0
  480. package/dist/esm/utils/filterProcessing.uspec.js +245 -0
  481. package/dist/esm/utils/logging.d.ts.map +1 -1
  482. package/dist/esm/utils/logging.js +1 -0
  483. package/dist/esm/utils/merge.js +0 -21
  484. package/dist/esm/utils/{monacoAutocomplete.d.ts → monacoConfig.d.ts} +3 -2
  485. package/dist/esm/utils/monacoConfig.d.ts.map +1 -0
  486. package/dist/esm/utils/monacoConfig.js +319 -0
  487. package/dist/esm/utils/paginationProcessing.d.ts +5 -0
  488. package/dist/esm/utils/paginationProcessing.d.ts.map +1 -0
  489. package/dist/esm/utils/paginationProcessing.js +25 -0
  490. package/dist/esm/utils/pivotConstructor.d.ts +2 -1
  491. package/dist/esm/utils/pivotConstructor.d.ts.map +1 -1
  492. package/dist/esm/utils/pivotConstructor.js +16 -1
  493. package/dist/esm/utils/pivotProcessing.d.ts.map +1 -1
  494. package/dist/esm/utils/pivotProcessing.js +12 -6
  495. package/dist/esm/utils/queryConstructor.d.ts.map +1 -1
  496. package/dist/esm/utils/queryConstructor.js +4 -3
  497. package/dist/esm/utils/queryConstructor.uspec.js +21 -21
  498. package/dist/esm/utils/report.d.ts +10 -0
  499. package/dist/esm/utils/report.d.ts.map +1 -0
  500. package/dist/esm/utils/report.ispec.d.ts +2 -0
  501. package/dist/esm/utils/report.ispec.d.ts.map +1 -0
  502. package/dist/esm/utils/report.ispec.js +46 -0
  503. package/dist/esm/utils/report.js +174 -0
  504. package/dist/esm/utils/report.uspec.d.ts +2 -0
  505. package/dist/esm/utils/report.uspec.d.ts.map +1 -0
  506. package/dist/esm/utils/report.uspec.js +66 -0
  507. package/dist/esm/utils/schema.d.ts.map +1 -1
  508. package/dist/esm/utils/schema.js +35 -6
  509. package/dist/esm/utils/styles.d.ts +1 -1
  510. package/dist/esm/utils/styles.d.ts.map +1 -1
  511. package/dist/esm/utils/tableProcessing.d.ts +22 -8
  512. package/dist/esm/utils/tableProcessing.d.ts.map +1 -1
  513. package/dist/esm/utils/tableProcessing.ispec.d.ts +2 -0
  514. package/dist/esm/utils/tableProcessing.ispec.d.ts.map +1 -0
  515. package/dist/esm/utils/tableProcessing.ispec.js +61 -0
  516. package/dist/esm/utils/tableProcessing.js +112 -33
  517. package/dist/esm/utils/textProcessing.js +3 -3
  518. package/dist/esm/utils/validation.d.ts +9 -0
  519. package/dist/esm/utils/validation.d.ts.map +1 -0
  520. package/dist/esm/utils/validation.js +20 -0
  521. package/dist/esm/utils/valueFormatter.d.ts.map +1 -1
  522. package/dist/esm/utils/valueFormatter.js +8 -4
  523. package/package.json +1 -1
  524. package/dist/cjs/utils/monacoAutocomplete.d.ts.map +0 -1
  525. package/dist/cjs/utils/monacoAutocomplete.js +0 -145
  526. package/dist/cjs/utils/queryConstructor.uspec.d.ts +0 -2
  527. package/dist/cjs/utils/queryConstructor.uspec.d.ts.map +0 -1
  528. package/dist/cjs/utils/queryConstructor.uspec.js +0 -225
  529. package/dist/esm/utils/monacoAutocomplete.d.ts.map +0 -1
  530. package/dist/esm/utils/monacoAutocomplete.js +0 -140
@@ -1,17 +1,13 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.DashboardFilterModal = exports.ChartBuilderWithModal = exports.dateFormatOptions = exports.numberFormatOptions = exports.createInitialFormData = void 0;
7
4
  const jsx_runtime_1 = require("react/jsx-runtime");
8
- /* eslint-disable no-unused-vars */
9
5
  const react_1 = require("react");
10
6
  const Context_1 = require("./Context");
11
7
  const dataFetcher_1 = require("./utils/dataFetcher");
12
8
  const PivotModal_1 = require("./internals/ReportBuilder/PivotModal");
13
9
  const PivotList_1 = require("./internals/ReportBuilder/PivotList");
14
- const Chart_1 = __importDefault(require("./Chart"));
10
+ const Chart_1 = require("./Chart");
15
11
  const UiComponents_1 = require("./components/UiComponents");
16
12
  const merge_1 = require("./utils/merge");
17
13
  const textProcessing_1 = require("./utils/textProcessing");
@@ -22,6 +18,9 @@ const columnProcessing_1 = require("./utils/columnProcessing");
22
18
  const astProcessing_1 = require("./utils/astProcessing");
23
19
  const schema_1 = require("./utils/schema");
24
20
  const dates_1 = require("./utils/dates");
21
+ const validation_1 = require("./utils/validation");
22
+ const ChartError_1 = require("./components/Chart/ChartError");
23
+ const report_1 = require("./utils/report");
25
24
  const CHART_TYPES = ['column', 'line', 'table', 'metric', 'bar', 'pie'];
26
25
  const POSTGRES_DATE_TYPES = [
27
26
  'timestamp',
@@ -64,12 +63,12 @@ function createInitialFormData(columns) {
64
63
  return { ...col, label: (0, textProcessing_1.snakeAndCamelCaseToTitleCase)(col.label) };
65
64
  }),
66
65
  xAxisField: columns?.[0]?.field || '',
67
- xAxisFormat: columns?.[0]?.format || '',
66
+ xAxisFormat: columns?.[0]?.format || 'whole_number',
68
67
  yAxisFields: [
69
68
  {
70
69
  field: firstNumberColumn?.field || columns?.[0]?.field || '',
71
70
  label: '',
72
- format: firstNumberColumn?.format || columns?.[0]?.field || '',
71
+ format: firstNumberColumn?.format || columns?.[0]?.format || 'string',
73
72
  },
74
73
  ],
75
74
  xAxisLabel: '',
@@ -81,18 +80,26 @@ function createInitialFormData(columns) {
81
80
  return formEmptyState;
82
81
  }
83
82
  exports.createInitialFormData = createInitialFormData;
84
- function getChartTypeOptions(formData) {
83
+ function getChartTypeOptions(formData, dashboard) {
84
+ let viableCharts = CHART_TYPES;
85
+ if (dashboard.dateFilter && dashboard.dateFilter.comparison) {
86
+ viableCharts = viableCharts.filter((chart) => !['table', 'metric', 'bar', 'pie'].includes(chart));
87
+ }
85
88
  if (formData.pivot && !formData.pivot.rowField) {
86
- return CHART_TYPES.filter((elem) => elem === 'metric' || elem === 'table').map((elem) => ({
89
+ return viableCharts
90
+ .filter((elem) => elem === 'metric' || elem === 'table')
91
+ .map((elem) => ({
87
92
  label: elem,
88
93
  value: elem,
89
94
  }));
90
95
  }
91
96
  else {
92
- return CHART_TYPES.filter((elem) => !((formData.pivot && elem === 'metric') ||
97
+ return viableCharts
98
+ .filter((elem) => !((formData.pivot && elem === 'metric') ||
93
99
  (formData.pivot &&
94
100
  formData.pivot.columnField &&
95
- (elem === 'bar' || elem === 'pie')))).map((elem) => ({ label: elem, value: elem }));
101
+ (elem === 'bar' || elem === 'pie'))))
102
+ .map((elem) => ({ label: elem, value: elem }));
96
103
  }
97
104
  }
98
105
  function getTablesHelper(ast, allTables) {
@@ -108,8 +115,9 @@ function getTablesHelper(ast, allTables) {
108
115
  // With statement column references
109
116
  if (ast.with) {
110
117
  for (const withStmt of ast.with) {
111
- if (withStmt.stmt.ast.from) {
112
- const withReferencedColumns = (0, astProcessing_1.getColumnsByTableFromASTAndSchema)(withStmt.stmt.ast, allTables, tableAliasMap);
118
+ const astFrom = withStmt.stmt.from ?? withStmt.stmt.ast.from;
119
+ if (astFrom) {
120
+ const withReferencedColumns = (0, astProcessing_1.getColumnsByTableFromASTAndSchema)(withStmt.stmt.ast ?? withStmt.stmt, allTables, tableAliasMap);
113
121
  // @ts-ignore
114
122
  Object.keys(withReferencedColumns).forEach((tableName) => {
115
123
  if (referencedColumns[tableName]) {
@@ -136,7 +144,7 @@ function getTablesHelper(ast, allTables) {
136
144
  }) || [],
137
145
  };
138
146
  });
139
- let dateFields = allTables
147
+ const dateFields = allTables
140
148
  .filter((table) => onlyReferenceTables.includes(table.displayName))
141
149
  .map((table) => {
142
150
  return {
@@ -151,12 +159,32 @@ function getTablesHelper(ast, allTables) {
151
159
  return { referencedTablesAndColumns, dateFields };
152
160
  }
153
161
  async function getReferencedTables(client, sqlQuery, dbTables) {
154
- const resp = await (0, dataFetcher_1.getDataFromCloud)(client, `astify`, { query: sqlQuery });
162
+ const resp = await (0, dataFetcher_1.getDataFromCloud)(client, `astify`, {
163
+ query: sqlQuery,
164
+ useNewNodeSql: true,
165
+ });
155
166
  if (resp.success === false) {
156
167
  return getTablesHelper((0, astProcessing_1.getSelectFromAST)({}), dbTables);
157
168
  }
158
169
  return getTablesHelper((0, astProcessing_1.getSelectFromAST)(resp.ast), dbTables);
159
170
  }
171
+ function createReportFromForm(formData, report, selectedPivotTable, rows = []) {
172
+ return (0, report_1.convertInternalReportToReport)({
173
+ ...formData,
174
+ dashboardName: formData.dashboardName || '',
175
+ pivot: formData.pivot,
176
+ id: '',
177
+ order: -1,
178
+ compareRows: report?.compareRows || [],
179
+ filtersApplied: report?.filtersApplied || [],
180
+ queryString: '',
181
+ rows: selectedPivotTable?.rows ?? rows,
182
+ rowCount: report?.rowCount || selectedPivotTable?.rows?.length || rows.length || 0,
183
+ yAxisFields: formData.yAxisFields ?? [],
184
+ pivotColumns: selectedPivotTable?.columns ?? undefined,
185
+ pivotRows: selectedPivotTable?.rows ?? undefined,
186
+ });
187
+ }
160
188
  exports.numberFormatOptions = [
161
189
  'whole_number',
162
190
  'one_decimal_place',
@@ -268,7 +296,7 @@ exports.ChartBuilderWithModal = ChartBuilderWithModal;
268
296
  * ### Chart Builder API
269
297
  * @see https://docs.quillsql.com/components/chart-builder
270
298
  */
271
- function ChartBuilder({ TextInputComponent = UiComponents_1.QuillTextInput, SelectComponent = QuillSelect_1.QuillSelectComponent, ButtonComponent = UiComponents_1.MemoizedButton, SecondaryButtonComponent = UiComponents_1.MemoizedSecondaryButton, HeaderComponent = UiComponents_1.MemoizedHeader, SubHeaderComponent = UiComponents_1.MemoizedSubHeader, LabelComponent = UiComponents_1.MemoizedLabel, DeleteButtonComponent = UiComponents_1.MemoizedDeleteButton, TextComponent = UiComponents_1.MemoizedText, PopoverComponent = UiComponents_1.MemoizedPopover, CardComponent = QuillCard_1.QuillCard, TableComponent = UiComponents_1.QuillTableComponent, ModalComponent, LoadingComponent = UiComponents_1.QuillLoadingComponent, ErrorMessageComponent = UiComponents_1.QuillErrorMessageComponent, ChartBuilderInputRowContainer = UiComponents_1.QuillChartBuilderInputRowContainer, ChartBuilderInputColumnContainer = UiComponents_1.QuillChartBuilderInputColumnContainer, PivotRowContainer = UiComponents_1.QuillPivotRowContainer, PivotColumnContainer = UiComponents_1.QuillPivotColumnContainer, FormContainer = UiComponents_1.QuillChartBuilderFormContainer, isOpen, isHorizontalView = true, pivot, setIsOpen, rows, columns, query, queryNoDateColumn, dateRange: dr, showTableFormatOptions = false, showDateFieldOptions = false, showAccessControlOptions = false, showDashboardDropdown = true, onAddToDashboardComplete, onDelete, report = undefined, recommendedPivots: rp = [], createdPivots: cp = [], destinationDashboard, dateColumn, buttonLabel, organizationName, pivotData, hideDeleteButton = false, hideSubmitButton = false, hideDateRangeFilter = false, initialUniqueValues, pivotRecommendationsEnabled = true, onSortChange, onPageChange, rowCount, isLoading, isComparison, onClickChartElement, }) {
299
+ function ChartBuilder({ TextInputComponent = UiComponents_1.QuillTextInput, SelectComponent = QuillSelect_1.QuillSelectComponent, ButtonComponent = UiComponents_1.MemoizedButton, SecondaryButtonComponent = UiComponents_1.MemoizedSecondaryButton, HeaderComponent = UiComponents_1.MemoizedHeader, SubHeaderComponent = UiComponents_1.MemoizedSubHeader, LabelComponent = UiComponents_1.MemoizedLabel, DeleteButtonComponent = UiComponents_1.MemoizedDeleteButton, TextComponent = UiComponents_1.MemoizedText, PopoverComponent = UiComponents_1.MemoizedPopover, CardComponent = QuillCard_1.QuillCard, TableComponent = UiComponents_1.QuillTableComponent, ModalComponent = UiComponents_1.MemoizedModal, LoadingComponent = UiComponents_1.QuillLoadingComponent, ErrorMessageComponent = UiComponents_1.QuillErrorMessageComponent, ChartBuilderInputRowContainer = UiComponents_1.QuillChartBuilderInputRowContainer, ChartBuilderInputColumnContainer = UiComponents_1.QuillChartBuilderInputColumnContainer, PivotRowContainer = UiComponents_1.QuillPivotRowContainer, PivotColumnContainer = UiComponents_1.QuillPivotColumnContainer, FormContainer = UiComponents_1.QuillChartBuilderFormContainer, ErrorComponent = ChartError_1.QuillChartErrorWithAction, onClickChartError, isOpen, isHorizontalView = true, pivot, setIsOpen, rows, columns, query, queryNoDateColumn, dateRange: dr, showTableFormatOptions = false, showDateFieldOptions = false, showAccessControlOptions = false, showDashboardDropdown = true, onAddToDashboardComplete, onDelete, report = undefined, recommendedPivots: rp = [], createdPivots: cp = [], destinationDashboard, dateColumn, buttonLabel, organizationName, pivotData, hideDeleteButton = false, hideSubmitButton = false, hideDateRangeFilter = false, initialUniqueValues, pivotRecommendationsEnabled = true, onSortChange, onPageChange, rowCount, isLoading, isComparison, onClickChartElement, }) {
272
300
  const dateRange = dr;
273
301
  const [client] = (0, react_1.useContext)(Context_1.ClientContext);
274
302
  const [theme] = (0, react_1.useContext)(Context_1.ThemeContext);
@@ -276,15 +304,27 @@ function ChartBuilder({ TextInputComponent = UiComponents_1.QuillTextInput, Sele
276
304
  const [windowWidth, setWindowWidth] = (0, react_1.useState)(1200);
277
305
  const [isSubmitting, setIsSubmitting] = (0, react_1.useState)(false);
278
306
  const [pivotCardWidth, setPivotCardWidth] = (0, react_1.useState)(665);
307
+ const [chartTypes, setChartTypes] = (0, react_1.useState)(CHART_TYPES.map((type) => {
308
+ return { label: type, value: type };
309
+ }));
279
310
  const [formWidth, setFormWidth] = (0, react_1.useState)(665);
280
311
  const inputRef = (0, react_1.useRef)(null);
281
312
  const selectRef = (0, react_1.useRef)(null);
282
- const { dispatch } = (0, react_1.useContext)(Context_1.DashboardContext);
313
+ const [, dispatch] = (0, react_1.useContext)(Context_1.DashboardContext);
283
314
  const [processedColumns, setProcessedColumns] = (0, react_1.useState)(columns);
284
315
  const parentRef = (0, react_1.useRef)(null);
285
316
  const deleteRef = (0, react_1.useRef)(null);
286
317
  const modalPadding = 20;
287
318
  const deleteButtonMargin = -12;
319
+ const validationHelper = (formData, dashboard, dateField, tables) => {
320
+ const issues = (0, validation_1.validateReport)(formData, dashboard, dateField || defaultDateField, tables || allTables);
321
+ if (issues.length > 0) {
322
+ setFilterIssues(issues);
323
+ }
324
+ else {
325
+ setFilterIssues([]);
326
+ }
327
+ };
288
328
  (0, react_1.useEffect)(() => {
289
329
  if (schema) {
290
330
  const newProcessedColumns = columns.map((col) => {
@@ -369,18 +409,14 @@ function ChartBuilder({ TextInputComponent = UiComponents_1.QuillTextInput, Sele
369
409
  const [dashboardOptions, setDashboardOptions] = (0, react_1.useState)([]);
370
410
  const [defaultDashboardName, setDefaultDashboardName] = (0, react_1.useState)(destinationDashboard || report?.dashboardName || '');
371
411
  const { dashboardFilters } = (0, react_1.useContext)(Context_1.DashboardFiltersContext);
372
- const [chartRows, setChartRows] = (0, react_1.useState)(rows);
412
+ const { dashboardData } = (0, react_1.useContext)(Context_1.DashboardDataContext);
373
413
  const specificDashboardFilter = (0, react_1.useMemo)(() => {
374
414
  return dashboardFilters.filter((f) => f && defaultDashboardName === f.dashboardName);
375
415
  }, [dashboardFilters]);
376
- const [dashboardFilters2, setDashboardFilters] = (0, react_1.useState)([]);
377
- const [dashboardHasDateFilter, setDashboardHasDateFilter] = (0, react_1.useState)(false);
378
- const [dashboardHasDateComparison, setDashboardHasDateComparison] = (0, react_1.useState)(false);
379
416
  const [showFilterModal, setShowFilterModal] = (0, react_1.useState)(false);
380
417
  const [filterIssues, setFilterIssues] = (0, react_1.useState)([]);
381
418
  const [showPivotPopover, setShowPivotPopover] = (0, react_1.useState)(false);
382
419
  const [isEdittingPivot, setIsEdittingPivot] = (0, react_1.useState)(false);
383
- const [intialLoad, setInitialLoad] = (0, react_1.useState)(true);
384
420
  const [selectedPivotIndex, setSelectedPivotIndex] = (0, react_1.useState)(-1);
385
421
  const [tableName, setTableName] = (0, react_1.useState)(undefined);
386
422
  const selectedTable = schema?.find((t) => t.displayName === tableName);
@@ -410,12 +446,12 @@ function ChartBuilder({ TextInputComponent = UiComponents_1.QuillTextInput, Sele
410
446
  return { ...col, label: (0, textProcessing_1.snakeAndCamelCaseToTitleCase)(col.label) };
411
447
  }),
412
448
  xAxisField: columns?.[0]?.field || '',
413
- xAxisFormat: columns?.[0]?.format || '',
449
+ xAxisFormat: columns?.[0]?.format || 'string',
414
450
  yAxisFields: [
415
451
  {
416
452
  field: firstNumberColumn?.field || columns?.[0]?.field || '',
417
453
  label: '',
418
- format: firstNumberColumn?.format || columns?.[0]?.field || '',
454
+ format: firstNumberColumn?.format || columns?.[0]?.format || 'string',
419
455
  },
420
456
  ],
421
457
  xAxisLabel: '',
@@ -425,6 +461,9 @@ function ChartBuilder({ TextInputComponent = UiComponents_1.QuillTextInput, Sele
425
461
  template: false,
426
462
  };
427
463
  const updateDashboardFilters = async (dashboardName) => {
464
+ if (dashboardData && dashboardData[dashboardName]) {
465
+ return dashboardData[dashboardName];
466
+ }
428
467
  const { queryEndpoint, queryHeaders, publicKey, customerId } = client;
429
468
  if (queryEndpoint) {
430
469
  const response = await fetch(queryEndpoint, {
@@ -440,22 +479,22 @@ function ChartBuilder({ TextInputComponent = UiComponents_1.QuillTextInput, Sele
440
479
  name: dashboardName,
441
480
  clientId: publicKey,
442
481
  databaseType: client.databaseType,
482
+ useNewNodeSql: true,
443
483
  },
444
484
  }),
445
485
  credentials: 'omit', // If withCredentials is true, set to 'include'. Otherwise, set to 'omit'.
446
486
  });
447
487
  const responseData = (await response.json()).data;
448
488
  if (responseData) {
449
- setDashboardFilters(responseData.filters);
450
- setDashboardHasDateFilter(!!responseData.dateFilter);
451
- setDashboardHasDateComparison(responseData.dateFilter?.comparison || false);
489
+ return responseData;
452
490
  }
453
491
  }
454
492
  };
455
493
  const pivotFormData = (pivot) => {
456
494
  const yAxisField = pivot.columnField || pivot.valueField;
457
- const yAxisLabel = report?.yAxisFields?.length > 0
458
- ? report.yAxisFields[0].label
495
+ const yAxisLabel = report?.yAxisFields && report?.yAxisFields?.length > 0
496
+ ? // @ts-ignore
497
+ report.yAxisFields[0].label
459
498
  : pivot.valueField;
460
499
  // date labels for pivots should be treated like strings since they are
461
500
  const yAxisIsDate = pivot.columnField
@@ -469,6 +508,7 @@ function ChartBuilder({ TextInputComponent = UiComponents_1.QuillTextInput, Sele
469
508
  xAxisFormat: (0, PivotModal_1.isDateField)(pivot.rowFieldType)
470
509
  ? 'string'
471
510
  : columns.find((col) => col.field === pivot.rowField)?.format ||
511
+ report?.xAxisFormat ||
472
512
  'whole_number',
473
513
  xAxisLabel: report?.xAxisLabel || pivot.rowField,
474
514
  yAxisFields: [
@@ -477,22 +517,33 @@ function ChartBuilder({ TextInputComponent = UiComponents_1.QuillTextInput, Sele
477
517
  label: yAxisLabel,
478
518
  format: yAxisIsDate
479
519
  ? 'string'
480
- : report?.yAxisFields?.length > 0
481
- ? report?.yAxisFields[0].format
520
+ : report?.yAxisFields && report?.yAxisFields?.length > 0
521
+ ? // @ts-ignore
522
+ report?.yAxisFields[0].format
482
523
  : columns.find((col) => col.field === pivot.valueField)?.format ||
483
524
  'whole_number',
484
525
  },
485
526
  ],
486
527
  };
487
528
  };
488
- const [formData, setFormData] = (0, react_1.useState)(pivot
489
- ? {
529
+ const formFormDataFromReport = (report) => {
530
+ let pivotData = {};
531
+ let dateField = defaultDateField;
532
+ if (pivot) {
533
+ pivotData = pivotFormData(pivot);
534
+ }
535
+ if (report) {
536
+ dateField = report.dateField || defaultDateField;
537
+ }
538
+ return {
490
539
  ...formEmptyState,
491
540
  ...report,
492
- ...pivotFormData(pivot),
541
+ ...pivotData,
493
542
  ...(destinationDashboard && { dashboardName: destinationDashboard }),
494
- }
495
- : report || formEmptyState);
543
+ dateField: dateField,
544
+ };
545
+ };
546
+ const [formData, setFormData] = (0, react_1.useState)(formFormDataFromReport(report));
496
547
  (0, react_1.useEffect)(() => {
497
548
  if (!loadingFormData && triggeredEditChart) {
498
549
  editChart();
@@ -502,8 +553,14 @@ function ChartBuilder({ TextInputComponent = UiComponents_1.QuillTextInput, Sele
502
553
  async function getFormData() {
503
554
  setLoadingFormData(true);
504
555
  const curFormData = formData;
505
- const resp = await (0, dataFetcher_1.getDataFromCloud)(client, `dashnames/${client.publicKey}/`, null, 'GET');
506
- let dashboardOptions = resp.dashboardNames
556
+ let dashNames = Object.keys(dashboardData).map((dashboard) => {
557
+ return dashboard;
558
+ }) ?? [];
559
+ if (dashNames.length === 0) {
560
+ const resp = await (0, dataFetcher_1.getDataFromCloud)(client, `dashnames/${client.publicKey}/`, null, 'GET');
561
+ dashNames = resp.dashboardNames;
562
+ }
563
+ let dashboardOptions = dashNames
507
564
  .filter((elem) => elem !== null)
508
565
  .map((key) => ({ label: key, value: key }));
509
566
  if (!dashboardOptions.length) {
@@ -516,13 +573,16 @@ function ChartBuilder({ TextInputComponent = UiComponents_1.QuillTextInput, Sele
516
573
  { label: destinationDashboard, value: destinationDashboard },
517
574
  ];
518
575
  }
519
- await updateDashboardFilters(destinationDashboard ??
520
- (report ? report?.dashboardName : dashboardOptions[0]?.label));
576
+ let dashboardName = report?.dashboardName
577
+ ? report.dashboardName
578
+ : dashboardOptions[0]?.label || '';
579
+ if (destinationDashboard) {
580
+ dashboardName = destinationDashboard;
581
+ }
582
+ const curDashboard = await updateDashboardFilters(dashboardName);
521
583
  setDashboardOptions(dashboardOptions);
522
- const dashboardName = destinationDashboard ??
523
- (report ? report?.dashboardName : dashboardOptions[0]?.label);
524
584
  curFormData.dashboardName = dashboardName;
525
- setDefaultDashboardName(destinationDashboard ??
585
+ setDefaultDashboardName(dashboardName ??
526
586
  (report ? report?.dashboardName : dashboardOptions[0]?.label));
527
587
  let curSchemaData = schema;
528
588
  if (!curSchemaData || curSchemaData.length === 0) {
@@ -546,7 +606,7 @@ function ChartBuilder({ TextInputComponent = UiComponents_1.QuillTextInput, Sele
546
606
  const tableNames = result.referencedTablesAndColumns.map((table) => table.name);
547
607
  setAllTables(tableNames);
548
608
  let customFieldUsage = false;
549
- for (let table of tableNames) {
609
+ for (const table of tableNames) {
550
610
  const tableInfo = curSchemaData.find((elem) => elem.name === table);
551
611
  if (tableInfo?.customFieldInfo) {
552
612
  customFieldUsage = true;
@@ -566,18 +626,22 @@ function ChartBuilder({ TextInputComponent = UiComponents_1.QuillTextInput, Sele
566
626
  result.dateFields[0]?.columns[0]?.field ||
567
627
  '',
568
628
  };
569
- curFormData.dateField = dateField;
570
629
  let isTemplate = curFormData.template;
571
630
  if (customFieldUsage) {
572
631
  isTemplate = false;
573
632
  }
574
- setFormData({
575
- ...curFormData,
576
- dashboardName: report && report.dashboardName
633
+ curFormData.dashboardName =
634
+ report && report.dashboardName
577
635
  ? report?.dashboardName
578
- : dashboardOptions[0]?.label,
579
- template: isTemplate,
580
- });
636
+ : dashboardOptions[0]?.label;
637
+ curFormData.template = isTemplate;
638
+ if (!curFormData.dateField.field || !curFormData.dateField.table) {
639
+ if (dateField.field) {
640
+ curFormData.dateField = dateField;
641
+ }
642
+ }
643
+ setFormData(curFormData);
644
+ validationHelper(curFormData, curDashboard, curFormData.dateField ?? dateField, tableNames);
581
645
  setLoadingFormData(false);
582
646
  }
583
647
  getFormData();
@@ -585,7 +649,6 @@ function ChartBuilder({ TextInputComponent = UiComponents_1.QuillTextInput, Sele
585
649
  const [selectedPivotTable, setSelectedPivotTable] = (0, react_1.useState)(pivotData || undefined);
586
650
  const fetchPivotData = async (pivot, uniqueValues, overrideDateRange) => {
587
651
  if (pivot && rows) {
588
- setInitialLoad(false);
589
652
  const dateFilter = report
590
653
  ? report.filtersApplied.find((filter) => {
591
654
  return filter.filterType === 'date_range';
@@ -641,8 +704,15 @@ function ChartBuilder({ TextInputComponent = UiComponents_1.QuillTextInput, Sele
641
704
  }, {});
642
705
  });
643
706
  }
644
- }, [selectedPivotTable, formData.columns, formData.chartType, rows]);
645
- const handleChange = (value, fieldName, index) => {
707
+ }, [
708
+ selectedPivotTable,
709
+ formData.columns,
710
+ formData.chartType,
711
+ rows,
712
+ formData.pivot,
713
+ ]);
714
+ const handleChange = async (value, fieldName, index) => {
715
+ let updatedForm = { ...formData };
646
716
  try {
647
717
  // WE NEED TO REPROCESS THE PIVOT TABLE IF THE PIVOT COLUMN CHANGES
648
718
  // WE NEED TO UPDATE BOTH VALUEFIELDTYPE AND COLUMN FIELD TYPES
@@ -656,14 +726,14 @@ function ChartBuilder({ TextInputComponent = UiComponents_1.QuillTextInput, Sele
656
726
  valueFieldType: value,
657
727
  };
658
728
  // @ts-ignore
659
- setFormData({ ...formData, pivot: updatedPivot });
660
- return;
729
+ updatedForm.pivot = updatedPivot;
661
730
  }
662
- if (index !== undefined) {
731
+ else if (index !== undefined) {
663
732
  // For dynamic array fields
664
733
  const [field, subfield] = fieldName.split('.');
665
734
  // @ts-ignore
666
735
  const updatedArray = formData[field].map((item, i) => i === index ? { ...item, [subfield]: value } : item);
736
+ updatedForm = { ...formData, [field]: updatedArray };
667
737
  setFormData({ ...formData, [field]: updatedArray });
668
738
  }
669
739
  else if (fieldName.includes('.')) {
@@ -673,19 +743,18 @@ function ChartBuilder({ TextInputComponent = UiComponents_1.QuillTextInput, Sele
673
743
  const subfieldTypeFieldName = subfield + 'Type';
674
744
  if (value.length) {
675
745
  const subFieldType = columns.find((columns) => columns.field === value).fieldType;
676
- setFormData({
677
- ...formData,
746
+ updatedForm = {
747
+ ...updatedForm,
678
748
  // @ts-ignore
679
749
  [field]: {
680
- ...formData[field],
750
+ ...updatedForm[field],
681
751
  [subfield]: value,
682
752
  [subfieldTypeFieldName]: subFieldType,
683
753
  },
684
- });
685
- return;
754
+ };
686
755
  }
687
756
  else {
688
- setFormData({
757
+ updatedForm = {
689
758
  ...formData,
690
759
  // @ts-ignore
691
760
  [field]: {
@@ -693,36 +762,42 @@ function ChartBuilder({ TextInputComponent = UiComponents_1.QuillTextInput, Sele
693
762
  [subfield]: '',
694
763
  [subfieldTypeFieldName]: '',
695
764
  },
696
- });
697
- return;
765
+ };
698
766
  }
699
767
  }
700
- if (field === 'dateField' &&
768
+ else if (field === 'dateField' &&
701
769
  subfield === 'table' &&
702
770
  !formData.dateField.field) {
703
771
  const field = schema?.find((elem) => elem.name === value)
704
772
  ?.columns?.[0]?.name;
705
- setFormData({
706
- ...formData,
773
+ updatedForm.dateField = {
707
774
  // @ts-ignore
708
- dateField: { ...formData[field], [subfield]: value, field: field },
709
- });
710
- return;
775
+ ...updatedForm[field],
776
+ [subfield]: value,
777
+ field: field,
778
+ };
711
779
  }
712
- setFormData({
713
- ...formData,
780
+ updatedForm = {
781
+ ...updatedForm,
714
782
  // @ts-ignore
715
- [field]: { ...formData[field], [subfield]: value },
716
- });
783
+ [field]: { ...updatedForm[field], [subfield]: value },
784
+ };
717
785
  }
718
786
  else {
719
787
  // For simple fields
720
- setFormData({ ...formData, [fieldName]: value });
788
+ updatedForm = { ...updatedForm, [fieldName]: value };
789
+ }
790
+ let dashboardName = updatedForm.dashboardName;
791
+ if (fieldName === 'dashboardName') {
792
+ dashboardName = value;
721
793
  }
794
+ validationHelper(updatedForm, dashboardData[dashboardName || '']);
795
+ setChartTypes(getChartTypeOptions(updatedForm, dashboardData[dashboardName || '']));
722
796
  }
723
797
  catch (e) {
724
- setFormData({ ...formData, [fieldName]: value });
798
+ updatedForm = { ...updatedForm, [fieldName]: value };
725
799
  }
800
+ setFormData(updatedForm);
726
801
  };
727
802
  const handleAddPivot = async (pivot, uniqueValues, dateRange, pivotData) => {
728
803
  const newPivotFormData = pivotFormData(pivot);
@@ -788,7 +863,7 @@ function ChartBuilder({ TextInputComponent = UiComponents_1.QuillTextInput, Sele
788
863
  columnField: '',
789
864
  columnFieldType: '',
790
865
  valueField: '',
791
- aggregationType: '',
866
+ aggregationType: 'sum',
792
867
  },
793
868
  });
794
869
  }
@@ -809,12 +884,12 @@ function ChartBuilder({ TextInputComponent = UiComponents_1.QuillTextInput, Sele
809
884
  event.preventDefault();
810
885
  };
811
886
  const deleteChart = async () => {
812
- if (!report._id || !client) {
887
+ if (!report?.id || !client) {
813
888
  return;
814
889
  }
815
890
  const { publicKey, customerId } = client;
816
891
  const cloudBody = {
817
- dashboardItemId: report._id,
892
+ dashboardItemId: report.id,
818
893
  };
819
894
  const searchParams = new URLSearchParams(customerId
820
895
  ? {
@@ -831,30 +906,7 @@ function ChartBuilder({ TextInputComponent = UiComponents_1.QuillTextInput, Sele
831
906
  setIsOpen(false);
832
907
  setIsSubmitting(false);
833
908
  };
834
- const editChart = async (override = false) => {
835
- if (!override) {
836
- let dashboardDiscrepancyIssues = [];
837
- if (dashboardHasDateComparison && formData.chartType === 'pie') {
838
- dashboardDiscrepancyIssues.push(`The ${formData.dashboardName} dashboard is used for comparing date fields, you cannot add a pie chart to this dashboard.`);
839
- }
840
- if (dashboardHasDateFilter &&
841
- ((!defaultDateField.table && !defaultDateField.field) ||
842
- (!formData.dateField.field && !formData.dateField.table))) {
843
- dashboardDiscrepancyIssues.push(`The dashboard "${formData.dashboardName}" has a global date filter but this chart doesn't reference any tables with a date field.`);
844
- }
845
- dashboardFilters2.forEach((filter) => {
846
- const table = allTables.find((elem) => elem === filter.table);
847
- if (!table) {
848
- dashboardDiscrepancyIssues.push(`The dashboard "${formData.dashboardName}" a global filter on "${filter.table}" "${filter.field}" but this chart doesn't reference "${filter.table}".`);
849
- }
850
- });
851
- if (dashboardDiscrepancyIssues.length) {
852
- setFilterIssues(dashboardDiscrepancyIssues);
853
- setShowFilterModal(true);
854
- setTriggeredEditChart(false);
855
- return;
856
- }
857
- }
909
+ const editChart = async () => {
858
910
  if (isSubmitting) {
859
911
  setTriggeredEditChart(false);
860
912
  return;
@@ -866,8 +918,8 @@ function ChartBuilder({ TextInputComponent = UiComponents_1.QuillTextInput, Sele
866
918
  return;
867
919
  }
868
920
  // If the dashbaordItem is a template but the editor isn't an admin, create a new dashboardItem and set the template to false
869
- let dashboardItemId = report ? report._id : undefined;
870
- if (report && !showAccessControlOptions && report.template) {
921
+ let dashboardItemId = report ? report.id : undefined;
922
+ if (report && !showAccessControlOptions && formData.template) {
871
923
  dashboardItemId = undefined;
872
924
  }
873
925
  const cloudBody = {
@@ -884,10 +936,11 @@ function ChartBuilder({ TextInputComponent = UiComponents_1.QuillTextInput, Sele
884
936
  pivot: formData.pivot,
885
937
  referencedTables: allTables,
886
938
  referencedColumns,
887
- template: report && !showAccessControlOptions && report.template
939
+ template: report && !showAccessControlOptions && formData.template
888
940
  ? false
889
941
  : formData.template,
890
942
  customerId: customerId || '*',
943
+ useNewNodeSql: true,
891
944
  };
892
945
  // @ts-ignore
893
946
  if (cloudBody['rows']) {
@@ -905,6 +958,7 @@ function ChartBuilder({ TextInputComponent = UiComponents_1.QuillTextInput, Sele
905
958
  databaseType: databaseType,
906
959
  ...cloudBody,
907
960
  orgId: customerId || '*',
961
+ useNewNodeSql: true,
908
962
  },
909
963
  };
910
964
  const searchParams = new URLSearchParams(customerId
@@ -974,14 +1028,8 @@ function ChartBuilder({ TextInputComponent = UiComponents_1.QuillTextInput, Sele
974
1028
  maxWidth: !isOpen ? '100%' : `calc(100% - ${formWidth}px - 20px)`, // width of left sidebar plus gap
975
1029
  }),
976
1030
  ...(!isHorizontalView && isOpen && { width: formWidth }),
977
- }, children: [((!isHorizontalView && windowWidth >= 1200) ||
978
- formData.chartType !== 'table') && ((0, jsx_runtime_1.jsx)(Chart_1.default, { colors: theme.chartColors, config: {
979
- ...formData,
980
- rows: chartRows,
981
- pivotRows: selectedPivotTable?.rows || undefined,
982
- pivotColumns: selectedPivotTable?.columns || undefined,
983
- rowCount,
984
- }, hideDateRangeFilter: hideDateRangeFilter, containerStyle: {
1031
+ }, children: [report?.adminError || report?.error ? ((0, jsx_runtime_1.jsx)(ErrorComponent, { label: report.adminError || report.error, onClick: onClickChartError })) : (((!isHorizontalView && windowWidth >= 1200) ||
1032
+ formData.chartType !== 'table') && ((0, jsx_runtime_1.jsx)(Chart_1.ChartDisplay, { reportId: report ? report.id : undefined, config: createReportFromForm(formData, report, selectedPivotTable, rows), colors: theme.chartColors, loading: isLoading ? true : false, hideDateRangeFilter: hideDateRangeFilter, containerStyle: {
985
1033
  width: '100%',
986
1034
  height: formData.chartType === 'metric'
987
1035
  ? 100
@@ -991,7 +1039,7 @@ function ChartBuilder({ TextInputComponent = UiComponents_1.QuillTextInput, Sele
991
1039
  : 'calc(100% - 10px)'
992
1040
  : 400,
993
1041
  ...(isHorizontalView && { flexGrow: 1 }),
994
- }, onClickChartElement: onClickChartElement })),
1042
+ }, onClickChartElement: onClickChartElement }))),
995
1043
  // Make sure to display non-pivoted table when using pivot chart
996
1044
  showTableFormatOptions &&
997
1045
  (isHorizontalView || (!isOpen && windowWidth < 1200)) && ((0, jsx_runtime_1.jsx)("div", { style: {
@@ -1032,7 +1080,7 @@ function ChartBuilder({ TextInputComponent = UiComponents_1.QuillTextInput, Sele
1032
1080
  })), width: 200 }) })), (0, jsx_runtime_1.jsx)("div", { ref: selectRef, style: { display: 'flex', flexDirection: 'column' }, children: (0, jsx_runtime_1.jsx)(SelectComponent, { label: "Chart type", value: formData.chartType, onChange: (e) => handleChange(e.target.value, 'chartType'),
1033
1081
  // filter out metric for all pivots
1034
1082
  // filter out bar and pie for row and column pivot
1035
- options: getChartTypeOptions(formData), width: 200 }) })] }), (0, jsx_runtime_1.jsxs)("div", { style: {
1083
+ options: chartTypes, width: 200 }) })] }), (0, jsx_runtime_1.jsxs)("div", { style: {
1036
1084
  display: 'flex',
1037
1085
  flexDirection: 'column',
1038
1086
  gap: 6,
@@ -1067,7 +1115,11 @@ function ChartBuilder({ TextInputComponent = UiComponents_1.QuillTextInput, Sele
1067
1115
  : formData.xAxisFormat, onChange: (e) => handleChange(e.target.value, 'xAxisFormat'), options: formData.pivot &&
1068
1116
  (0, PivotModal_1.isDateField)(formData.pivot.rowFieldType)
1069
1117
  ? [{ value: 'pivot_date', label: 'date' }]
1070
- : formatOptions, width: 200 })] })] })), CHART_TO_LABELS[formData.chartType]?.yAxisLabel && ((0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)(SubHeaderComponent, { label: CHART_TO_LABELS[formData.chartType]?.yAxisLabel ?? '' }), (0, jsx_runtime_1.jsxs)(ChartBuilderInputColumnContainer, { children: [formData.yAxisFields.map((yAxisField, index) => ((0, jsx_runtime_1.jsxs)(ChartBuilderInputRowContainer, { children: [(0, jsx_runtime_1.jsx)(SelectComponent, { value: formData.pivot
1118
+ : formatOptions, width: 200 })] })] })), CHART_TO_LABELS[formData.chartType]?.yAxisLabel && ((0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)(SubHeaderComponent, { label: CHART_TO_LABELS[formData.chartType]?.yAxisLabel ?? '' }), (0, jsx_runtime_1.jsxs)(ChartBuilderInputColumnContainer, { children: [formData.yAxisFields
1119
+ .filter((yAxisField) => {
1120
+ return !yAxisField.field.startsWith('comparison_');
1121
+ })
1122
+ .map((yAxisField, index) => ((0, jsx_runtime_1.jsxs)(ChartBuilderInputRowContainer, { children: [(0, jsx_runtime_1.jsx)(SelectComponent, { value: formData.pivot
1071
1123
  ? formData.pivot.valueField || 'count'
1072
1124
  : yAxisField.field, onChange: (e) => handleChange(e.target.value, 'yAxisFields.field', index), options: formData.pivot
1073
1125
  ? [
@@ -1162,18 +1214,25 @@ function ChartBuilder({ TextInputComponent = UiComponents_1.QuillTextInput, Sele
1162
1214
  justifyContent: 'flex-end',
1163
1215
  marginTop: 'auto',
1164
1216
  gap: 10,
1165
- }, children: [!hideDeleteButton && !isHorizontalView && report && ((0, jsx_runtime_1.jsx)(SecondaryButtonComponent, { onClick: deleteChart, label: 'Delete' })), !hideSubmitButton && ((0, jsx_runtime_1.jsx)(ButtonComponent, { onClick: () => {
1166
- if (loadingFormData) {
1167
- setTriggeredEditChart(true);
1168
- }
1169
- else {
1170
- editChart();
1171
- }
1172
- }, label: buttonLabel
1173
- ? buttonLabel
1174
- : report
1175
- ? 'Save changes'
1176
- : 'Add to dashboard' }))] })] }))] }), (0, jsx_runtime_1.jsx)(DashboardFilterModal, { isOpen: showFilterModal, setIsOpen: setShowFilterModal, issues: filterIssues, ButtonComponent: ButtonComponent })] }));
1217
+ }, children: [!hideDeleteButton && !isHorizontalView && report && ((0, jsx_runtime_1.jsx)(SecondaryButtonComponent, { onClick: deleteChart, label: 'Delete' })), !hideSubmitButton && ((0, jsx_runtime_1.jsxs)("div", { style: {
1218
+ display: 'flex',
1219
+ flexDirection: 'row',
1220
+ width: '100%',
1221
+ justifyContent: 'space-between',
1222
+ alignItems: 'center',
1223
+ gap: 6,
1224
+ }, children: [filterIssues.length === 0 ? ((0, jsx_runtime_1.jsx)("div", {})) : ((0, jsx_runtime_1.jsx)(ErrorMessageComponent, { errorMessage: filterIssues[0] || 'Dashbord - Report issues', containerStyle: { height: '100%' } })), (0, jsx_runtime_1.jsx)(ButtonComponent, { onClick: () => {
1225
+ if (loadingFormData) {
1226
+ setTriggeredEditChart(true);
1227
+ }
1228
+ else {
1229
+ editChart();
1230
+ }
1231
+ }, disabled: filterIssues.length !== 0, label: buttonLabel
1232
+ ? buttonLabel
1233
+ : report
1234
+ ? 'Save changes'
1235
+ : 'Add to dashboard' })] }))] })] }))] }), (0, jsx_runtime_1.jsx)(DashboardFilterModal, { isOpen: showFilterModal, setIsOpen: setShowFilterModal, issues: filterIssues, ButtonComponent: ButtonComponent, ModalComponent: ModalComponent })] }));
1177
1236
  }
1178
1237
  exports.default = ChartBuilder;
1179
1238
  function SegmentedControl({ onChange, value, theme, organizationName, customFieldTableRef, }) {
@@ -1249,7 +1308,7 @@ function DashboardFilterModal({ isOpen, setIsOpen, issues, ModalComponent = UiCo
1249
1308
  boxSizing: 'border-box',
1250
1309
  overflow: 'scroll',
1251
1310
  maxHeight: 600,
1252
- }, children: [issues.map((issue, index) => ((0, jsx_runtime_1.jsx)("span", { style: { paddingTop: '10px' }, children: issue }, issue))), (0, jsx_runtime_1.jsx)("div", { style: {
1311
+ }, children: [issues.map((issue) => ((0, jsx_runtime_1.jsx)("span", { style: { paddingTop: '10px' }, children: issue }, issue))), (0, jsx_runtime_1.jsx)("div", { style: {
1253
1312
  display: 'flex',
1254
1313
  flexDirection: 'row',
1255
1314
  justifyContent: 'flex-end',