@quillsql/react 2.10.31 → 2.10.32

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 (607) hide show
  1. package/dist/cjs/BarList.d.ts +22 -0
  2. package/dist/cjs/BarList.d.ts.map +1 -0
  3. package/dist/cjs/BarList.js +286 -0
  4. package/dist/cjs/Chart.d.ts +42 -0
  5. package/dist/cjs/Chart.d.ts.map +1 -0
  6. package/dist/cjs/Chart.js +360 -0
  7. package/dist/cjs/ChartBuilder.d.ts +46 -0
  8. package/dist/cjs/ChartBuilder.d.ts.map +1 -0
  9. package/dist/cjs/ChartBuilder.js +708 -0
  10. package/dist/cjs/ChartEditor.d.ts +27 -0
  11. package/dist/cjs/ChartEditor.d.ts.map +1 -0
  12. package/dist/cjs/ChartEditor.js +78 -0
  13. package/dist/cjs/Context.d.ts +36 -0
  14. package/dist/cjs/Context.d.ts.map +1 -0
  15. package/dist/cjs/Context.js +230 -0
  16. package/dist/cjs/Dashboard.d.ts +178 -0
  17. package/dist/cjs/Dashboard.d.ts.map +1 -0
  18. package/dist/cjs/Dashboard.js +498 -0
  19. package/dist/cjs/DateRangePicker/Calendar.d.ts +17 -0
  20. package/dist/cjs/DateRangePicker/Calendar.d.ts.map +1 -0
  21. package/dist/cjs/DateRangePicker/Calendar.js +171 -0
  22. package/dist/cjs/DateRangePicker/DateRangePicker.d.ts +39 -0
  23. package/dist/cjs/DateRangePicker/DateRangePicker.d.ts.map +1 -0
  24. package/dist/cjs/DateRangePicker/DateRangePicker.js +150 -0
  25. package/dist/cjs/DateRangePicker/DateRangePickerButton.d.ts +23 -0
  26. package/dist/cjs/DateRangePicker/DateRangePickerButton.d.ts.map +1 -0
  27. package/dist/cjs/DateRangePicker/DateRangePickerButton.js +138 -0
  28. package/dist/cjs/DateRangePicker/QuillDateRangePicker.d.ts +3 -0
  29. package/dist/cjs/DateRangePicker/QuillDateRangePicker.d.ts.map +1 -0
  30. package/dist/cjs/DateRangePicker/QuillDateRangePicker.js +260 -0
  31. package/dist/cjs/DateRangePicker/dateRangePickerUtils.d.ts +80 -0
  32. package/dist/cjs/DateRangePicker/dateRangePickerUtils.d.ts.map +1 -0
  33. package/dist/cjs/DateRangePicker/dateRangePickerUtils.js +549 -0
  34. package/dist/cjs/DateRangePicker/index.d.ts +3 -0
  35. package/dist/cjs/DateRangePicker/index.d.ts.map +1 -0
  36. package/dist/cjs/DateRangePicker/index.js +9 -0
  37. package/dist/cjs/PieChart.d.ts +59 -0
  38. package/dist/cjs/PieChart.d.ts.map +1 -0
  39. package/dist/cjs/PieChart.js +567 -0
  40. package/dist/cjs/QuillProvider.d.ts +58 -0
  41. package/dist/cjs/QuillProvider.d.ts.map +1 -0
  42. package/dist/cjs/QuillProvider.js +34 -0
  43. package/dist/cjs/ReportBuilder.d.ts +41 -0
  44. package/dist/cjs/ReportBuilder.d.ts.map +1 -0
  45. package/dist/cjs/ReportBuilder.js +1004 -0
  46. package/dist/cjs/SQLEditor.d.ts +54 -0
  47. package/dist/cjs/SQLEditor.d.ts.map +1 -0
  48. package/dist/cjs/SQLEditor.js +509 -0
  49. package/dist/cjs/Table.d.ts +26 -0
  50. package/dist/cjs/Table.d.ts.map +1 -0
  51. package/dist/cjs/Table.js +94 -0
  52. package/dist/cjs/TableChart.d.ts +15 -0
  53. package/dist/cjs/TableChart.d.ts.map +1 -0
  54. package/dist/cjs/TableChart.js +317 -0
  55. package/dist/cjs/assets/ArrowDownHeadIcon.d.ts +5 -0
  56. package/dist/cjs/assets/ArrowDownHeadIcon.d.ts.map +1 -0
  57. package/dist/cjs/assets/ArrowDownHeadIcon.js +5 -0
  58. package/dist/cjs/assets/ArrowDownIcon.d.ts +5 -0
  59. package/dist/cjs/assets/ArrowDownIcon.d.ts.map +1 -0
  60. package/dist/cjs/assets/ArrowDownIcon.js +5 -0
  61. package/dist/cjs/assets/ArrowDownRightIcon.d.ts +5 -0
  62. package/dist/cjs/assets/ArrowDownRightIcon.d.ts.map +1 -0
  63. package/dist/cjs/assets/ArrowDownRightIcon.js +5 -0
  64. package/dist/cjs/assets/ArrowLeftHeadIcon.d.ts +5 -0
  65. package/dist/cjs/assets/ArrowLeftHeadIcon.d.ts.map +1 -0
  66. package/dist/cjs/assets/ArrowLeftHeadIcon.js +5 -0
  67. package/dist/cjs/assets/ArrowRightHeadIcon.d.ts +5 -0
  68. package/dist/cjs/assets/ArrowRightHeadIcon.d.ts.map +1 -0
  69. package/dist/cjs/assets/ArrowRightHeadIcon.js +5 -0
  70. package/dist/cjs/assets/ArrowRightIcon.d.ts +5 -0
  71. package/dist/cjs/assets/ArrowRightIcon.d.ts.map +1 -0
  72. package/dist/cjs/assets/ArrowRightIcon.js +5 -0
  73. package/dist/cjs/assets/ArrowUpHeadIcon.d.ts +5 -0
  74. package/dist/cjs/assets/ArrowUpHeadIcon.d.ts.map +1 -0
  75. package/dist/cjs/assets/ArrowUpHeadIcon.js +5 -0
  76. package/dist/cjs/assets/ArrowUpIcon.d.ts +5 -0
  77. package/dist/cjs/assets/ArrowUpIcon.d.ts.map +1 -0
  78. package/dist/cjs/assets/ArrowUpIcon.js +5 -0
  79. package/dist/cjs/assets/ArrowUpRightIcon.d.ts +5 -0
  80. package/dist/cjs/assets/ArrowUpRightIcon.d.ts.map +1 -0
  81. package/dist/cjs/assets/ArrowUpRightIcon.js +5 -0
  82. package/dist/cjs/assets/CalendarIcon.d.ts +5 -0
  83. package/dist/cjs/assets/CalendarIcon.d.ts.map +1 -0
  84. package/dist/cjs/assets/CalendarIcon.js +5 -0
  85. package/dist/cjs/assets/CalendarNormalIcon.d.ts +5 -0
  86. package/dist/cjs/assets/CalendarNormalIcon.d.ts.map +1 -0
  87. package/dist/cjs/assets/CalendarNormalIcon.js +5 -0
  88. package/dist/cjs/assets/DoubleArrowLeftHeadIcon.d.ts +5 -0
  89. package/dist/cjs/assets/DoubleArrowLeftHeadIcon.d.ts.map +1 -0
  90. package/dist/cjs/assets/DoubleArrowLeftHeadIcon.js +5 -0
  91. package/dist/cjs/assets/DoubleArrowRightHeadIcon.d.ts +5 -0
  92. package/dist/cjs/assets/DoubleArrowRightHeadIcon.d.ts.map +1 -0
  93. package/dist/cjs/assets/DoubleArrowRightHeadIcon.js +5 -0
  94. package/dist/cjs/assets/ExclamationFilledIcon.d.ts +5 -0
  95. package/dist/cjs/assets/ExclamationFilledIcon.d.ts.map +1 -0
  96. package/dist/cjs/assets/ExclamationFilledIcon.js +5 -0
  97. package/dist/cjs/assets/FilterIcon.d.ts +5 -0
  98. package/dist/cjs/assets/FilterIcon.d.ts.map +1 -0
  99. package/dist/cjs/assets/FilterIcon.js +5 -0
  100. package/dist/cjs/assets/LoadingSpinner.d.ts +5 -0
  101. package/dist/cjs/assets/LoadingSpinner.d.ts.map +1 -0
  102. package/dist/cjs/assets/LoadingSpinner.js +5 -0
  103. package/dist/cjs/assets/RefreshIcon.d.ts +5 -0
  104. package/dist/cjs/assets/RefreshIcon.d.ts.map +1 -0
  105. package/dist/cjs/assets/RefreshIcon.js +5 -0
  106. package/dist/cjs/assets/SearchIcon.d.ts +5 -0
  107. package/dist/cjs/assets/SearchIcon.d.ts.map +1 -0
  108. package/dist/cjs/assets/SearchIcon.js +5 -0
  109. package/dist/cjs/assets/UpLeftArrowsIcon.d.ts +5 -0
  110. package/dist/cjs/assets/UpLeftArrowsIcon.d.ts.map +1 -0
  111. package/dist/cjs/assets/UpLeftArrowsIcon.js +5 -0
  112. package/dist/cjs/assets/XCircleIcon.d.ts +5 -0
  113. package/dist/cjs/assets/XCircleIcon.d.ts.map +1 -0
  114. package/dist/cjs/assets/XCircleIcon.js +5 -0
  115. package/dist/cjs/assets/XIcon.d.ts +5 -0
  116. package/dist/cjs/assets/XIcon.d.ts.map +1 -0
  117. package/dist/cjs/assets/XIcon.js +5 -0
  118. package/dist/cjs/assets/index.d.ts +22 -0
  119. package/dist/cjs/assets/index.d.ts.map +1 -0
  120. package/dist/cjs/assets/index.js +48 -0
  121. package/dist/cjs/components/Banner/index.d.ts +3 -0
  122. package/dist/cjs/components/Banner/index.d.ts.map +1 -0
  123. package/dist/cjs/components/Banner/index.js +27 -0
  124. package/dist/cjs/components/BigModal/BigModal.d.ts +15 -0
  125. package/dist/cjs/components/BigModal/BigModal.d.ts.map +1 -0
  126. package/dist/cjs/components/BigModal/BigModal.js +87 -0
  127. package/dist/cjs/components/Chart/BarChart.d.ts +18 -0
  128. package/dist/cjs/components/Chart/BarChart.d.ts.map +1 -0
  129. package/dist/cjs/components/Chart/BarChart.js +81 -0
  130. package/dist/cjs/components/Chart/ChartError.d.ts +3 -0
  131. package/dist/cjs/components/Chart/ChartError.d.ts.map +1 -0
  132. package/dist/cjs/components/Chart/ChartError.js +29 -0
  133. package/dist/cjs/components/Chart/ChartSkeleton.d.ts +6 -0
  134. package/dist/cjs/components/Chart/ChartSkeleton.d.ts.map +1 -0
  135. package/dist/cjs/components/Chart/ChartSkeleton.js +20 -0
  136. package/dist/cjs/components/Chart/ChartTooltip.d.ts +29 -0
  137. package/dist/cjs/components/Chart/ChartTooltip.d.ts.map +1 -0
  138. package/dist/cjs/components/Chart/ChartTooltip.js +235 -0
  139. package/dist/cjs/components/Chart/ChartTooltipFrame.d.ts +6 -0
  140. package/dist/cjs/components/Chart/ChartTooltipFrame.d.ts.map +1 -0
  141. package/dist/cjs/components/Chart/ChartTooltipFrame.js +16 -0
  142. package/dist/cjs/components/Chart/ChartTooltipGroup.d.ts +11 -0
  143. package/dist/cjs/components/Chart/ChartTooltipGroup.d.ts.map +1 -0
  144. package/dist/cjs/components/Chart/ChartTooltipGroup.js +29 -0
  145. package/dist/cjs/components/Chart/ChartTooltipRow.d.ts +8 -0
  146. package/dist/cjs/components/Chart/ChartTooltipRow.d.ts.map +1 -0
  147. package/dist/cjs/components/Chart/ChartTooltipRow.js +44 -0
  148. package/dist/cjs/components/Chart/LineChart.d.ts +16 -0
  149. package/dist/cjs/components/Chart/LineChart.d.ts.map +1 -0
  150. package/dist/cjs/components/Chart/LineChart.js +97 -0
  151. package/dist/cjs/components/Dashboard/ChartComponent.d.ts +3 -0
  152. package/dist/cjs/components/Dashboard/ChartComponent.d.ts.map +1 -0
  153. package/dist/cjs/components/Dashboard/ChartComponent.js +64 -0
  154. package/dist/cjs/components/Dashboard/DashboardSection.d.ts +3 -0
  155. package/dist/cjs/components/Dashboard/DashboardSection.d.ts.map +1 -0
  156. package/dist/cjs/components/Dashboard/DashboardSection.js +17 -0
  157. package/dist/cjs/components/Dashboard/DashboardSectionContainer.d.ts +3 -0
  158. package/dist/cjs/components/Dashboard/DashboardSectionContainer.d.ts.map +1 -0
  159. package/dist/cjs/components/Dashboard/DashboardSectionContainer.js +13 -0
  160. package/dist/cjs/components/Dashboard/DataLoader.d.ts +3 -0
  161. package/dist/cjs/components/Dashboard/DataLoader.d.ts.map +1 -0
  162. package/dist/cjs/components/Dashboard/DataLoader.js +74 -0
  163. package/dist/cjs/components/Dashboard/MetricComponent.d.ts +3 -0
  164. package/dist/cjs/components/Dashboard/MetricComponent.d.ts.map +1 -0
  165. package/dist/cjs/components/Dashboard/MetricComponent.js +65 -0
  166. package/dist/cjs/components/Dashboard/TableComponent.d.ts +3 -0
  167. package/dist/cjs/components/Dashboard/TableComponent.d.ts.map +1 -0
  168. package/dist/cjs/components/Dashboard/TableComponent.js +35 -0
  169. package/dist/cjs/components/Dropdown/Dropdown.d.ts +14 -0
  170. package/dist/cjs/components/Dropdown/Dropdown.d.ts.map +1 -0
  171. package/dist/cjs/components/Dropdown/Dropdown.js +99 -0
  172. package/dist/cjs/components/Dropdown/DropdownItem.d.ts +11 -0
  173. package/dist/cjs/components/Dropdown/DropdownItem.d.ts.map +1 -0
  174. package/dist/cjs/components/Dropdown/DropdownItem.js +67 -0
  175. package/dist/cjs/components/Dropdown/index.d.ts +3 -0
  176. package/dist/cjs/components/Dropdown/index.d.ts.map +1 -0
  177. package/dist/cjs/components/Dropdown/index.js +10 -0
  178. package/dist/cjs/components/Modal/Modal.d.ts +15 -0
  179. package/dist/cjs/components/Modal/Modal.d.ts.map +1 -0
  180. package/dist/cjs/components/Modal/Modal.js +90 -0
  181. package/dist/cjs/components/Modal/index.d.ts +2 -0
  182. package/dist/cjs/components/Modal/index.d.ts.map +1 -0
  183. package/dist/cjs/components/Modal/index.js +8 -0
  184. package/dist/cjs/components/QuillCard.d.ts +14 -0
  185. package/dist/cjs/components/QuillCard.d.ts.map +1 -0
  186. package/dist/cjs/components/QuillCard.js +56 -0
  187. package/dist/cjs/components/QuillSelect.d.ts +3 -0
  188. package/dist/cjs/components/QuillSelect.d.ts.map +1 -0
  189. package/dist/cjs/components/QuillSelect.js +128 -0
  190. package/dist/cjs/components/QuillTable.d.ts +3 -0
  191. package/dist/cjs/components/QuillTable.d.ts.map +1 -0
  192. package/dist/cjs/components/QuillTable.js +259 -0
  193. package/dist/cjs/components/UiComponents.d.ts +130 -0
  194. package/dist/cjs/components/UiComponents.d.ts.map +1 -0
  195. package/dist/cjs/components/UiComponents.js +262 -0
  196. package/dist/cjs/components/selectUtils.d.ts +10 -0
  197. package/dist/cjs/components/selectUtils.d.ts.map +1 -0
  198. package/dist/cjs/components/selectUtils.js +47 -0
  199. package/dist/cjs/contexts/BaseColorContext.d.ts +4 -0
  200. package/dist/cjs/contexts/BaseColorContext.d.ts.map +1 -0
  201. package/dist/cjs/contexts/BaseColorContext.js +5 -0
  202. package/dist/cjs/contexts/HoveredValueContext.d.ts +8 -0
  203. package/dist/cjs/contexts/HoveredValueContext.d.ts.map +1 -0
  204. package/dist/cjs/contexts/HoveredValueContext.js +7 -0
  205. package/dist/cjs/contexts/RootStylesContext.d.ts +4 -0
  206. package/dist/cjs/contexts/RootStylesContext.d.ts.map +1 -0
  207. package/dist/cjs/contexts/RootStylesContext.js +5 -0
  208. package/dist/cjs/contexts/SelectedValueContext.d.ts +8 -0
  209. package/dist/cjs/contexts/SelectedValueContext.d.ts.map +1 -0
  210. package/dist/cjs/contexts/SelectedValueContext.js +8 -0
  211. package/dist/cjs/contexts/index.d.ts +5 -0
  212. package/dist/cjs/contexts/index.d.ts.map +1 -0
  213. package/dist/cjs/contexts/index.js +14 -0
  214. package/dist/cjs/hooks/index.d.ts +5 -0
  215. package/dist/cjs/hooks/index.d.ts.map +1 -0
  216. package/dist/cjs/hooks/index.js +14 -0
  217. package/dist/cjs/hooks/useDashboard.d.ts +7 -0
  218. package/dist/cjs/hooks/useDashboard.d.ts.map +1 -0
  219. package/dist/cjs/hooks/useDashboard.js +54 -0
  220. package/dist/cjs/hooks/useExport.d.ts +15 -0
  221. package/dist/cjs/hooks/useExport.d.ts.map +1 -0
  222. package/dist/cjs/hooks/useExport.js +31 -0
  223. package/dist/cjs/hooks/useFormat.d.ts +6 -0
  224. package/dist/cjs/hooks/useFormat.d.ts.map +1 -0
  225. package/dist/cjs/hooks/useFormat.js +25 -0
  226. package/dist/cjs/hooks/useInternalState.d.ts +4 -0
  227. package/dist/cjs/hooks/useInternalState.d.ts.map +1 -0
  228. package/dist/cjs/hooks/useInternalState.js +16 -0
  229. package/dist/cjs/hooks/useOnClickOutside.d.ts +3 -0
  230. package/dist/cjs/hooks/useOnClickOutside.d.ts.map +1 -0
  231. package/dist/cjs/hooks/useOnClickOutside.js +20 -0
  232. package/dist/cjs/hooks/useOnWindowResize.d.ts +5 -0
  233. package/dist/cjs/hooks/useOnWindowResize.d.ts.map +1 -0
  234. package/dist/cjs/hooks/useOnWindowResize.js +16 -0
  235. package/dist/cjs/hooks/useQuill.d.ts +46 -0
  236. package/dist/cjs/hooks/useQuill.d.ts.map +1 -0
  237. package/dist/cjs/hooks/useQuill.js +94 -0
  238. package/dist/cjs/hooks/useSelectOnKeyDown.d.ts +3 -0
  239. package/dist/cjs/hooks/useSelectOnKeyDown.d.ts.map +1 -0
  240. package/dist/cjs/hooks/useSelectOnKeyDown.js +65 -0
  241. package/dist/cjs/index.d.ts +19 -0
  242. package/dist/cjs/index.d.ts.map +1 -0
  243. package/dist/cjs/index.js +38 -0
  244. package/dist/cjs/internals/ReportBuilder/PivotList.d.ts +34 -0
  245. package/dist/cjs/internals/ReportBuilder/PivotList.d.ts.map +1 -0
  246. package/dist/cjs/internals/ReportBuilder/PivotList.js +61 -0
  247. package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts +62 -0
  248. package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts.map +1 -0
  249. package/dist/cjs/internals/ReportBuilder/PivotModal.js +916 -0
  250. package/dist/cjs/internals/ReportBuilder/PivotModal.spec.d.ts +2 -0
  251. package/dist/cjs/internals/ReportBuilder/PivotModal.spec.d.ts.map +1 -0
  252. package/dist/cjs/internals/ReportBuilder/PivotModal.spec.js +213 -0
  253. package/dist/cjs/lib/font.d.ts +14 -0
  254. package/dist/cjs/lib/font.d.ts.map +1 -0
  255. package/dist/cjs/lib/font.js +16 -0
  256. package/dist/cjs/lib/index.d.ts +4 -0
  257. package/dist/cjs/lib/index.d.ts.map +1 -0
  258. package/dist/cjs/lib/index.js +19 -0
  259. package/dist/cjs/lib/inputTypes.d.ts +21 -0
  260. package/dist/cjs/lib/inputTypes.d.ts.map +1 -0
  261. package/dist/cjs/lib/inputTypes.js +56 -0
  262. package/dist/cjs/lib/utils.d.ts +10 -0
  263. package/dist/cjs/lib/utils.d.ts.map +1 -0
  264. package/dist/cjs/lib/utils.js +45 -0
  265. package/dist/cjs/utils/aggregate.d.ts +4 -0
  266. package/dist/cjs/utils/aggregate.d.ts.map +1 -0
  267. package/dist/cjs/utils/aggregate.js +429 -0
  268. package/dist/cjs/utils/axisFormatter.d.ts +20 -0
  269. package/dist/cjs/utils/axisFormatter.d.ts.map +1 -0
  270. package/dist/cjs/utils/axisFormatter.js +194 -0
  271. package/dist/cjs/utils/color.d.ts +13 -0
  272. package/dist/cjs/utils/color.d.ts.map +1 -0
  273. package/dist/cjs/utils/color.js +251 -0
  274. package/dist/cjs/utils/crypto.d.ts +2 -0
  275. package/dist/cjs/utils/crypto.d.ts.map +1 -0
  276. package/dist/cjs/utils/crypto.js +10 -0
  277. package/dist/cjs/utils/csv.d.ts +6 -0
  278. package/dist/cjs/utils/csv.d.ts.map +1 -0
  279. package/dist/cjs/utils/csv.js +80 -0
  280. package/dist/cjs/utils/dashboard.d.ts +12 -0
  281. package/dist/cjs/utils/dashboard.d.ts.map +1 -0
  282. package/dist/cjs/utils/dashboard.js +174 -0
  283. package/dist/cjs/utils/dataFetcher.d.ts +3 -0
  284. package/dist/cjs/utils/dataFetcher.d.ts.map +1 -0
  285. package/dist/cjs/utils/dataFetcher.js +81 -0
  286. package/dist/cjs/utils/dates.d.ts +10 -0
  287. package/dist/cjs/utils/dates.d.ts.map +1 -0
  288. package/dist/cjs/utils/dates.js +37 -0
  289. package/dist/cjs/utils/getDomain.d.ts +8 -0
  290. package/dist/cjs/utils/getDomain.d.ts.map +1 -0
  291. package/dist/cjs/utils/getDomain.js +31 -0
  292. package/dist/cjs/utils/merge.d.ts +2 -0
  293. package/dist/cjs/utils/merge.d.ts.map +1 -0
  294. package/dist/cjs/utils/merge.js +49 -0
  295. package/dist/cjs/utils/styles.d.ts +17 -0
  296. package/dist/cjs/utils/styles.d.ts.map +1 -0
  297. package/dist/cjs/utils/styles.js +20 -0
  298. package/dist/cjs/utils/valueFormatter.d.ts +27 -0
  299. package/dist/cjs/utils/valueFormatter.d.ts.map +1 -0
  300. package/dist/cjs/utils/valueFormatter.js +252 -0
  301. package/dist/cjs/utils/valueFormatterCSV.d.ts +17 -0
  302. package/dist/cjs/utils/valueFormatterCSV.d.ts.map +1 -0
  303. package/dist/cjs/utils/valueFormatterCSV.js +99 -0
  304. package/dist/esm/BarList.d.ts +22 -0
  305. package/dist/esm/BarList.d.ts.map +1 -0
  306. package/dist/esm/BarList.js +279 -0
  307. package/dist/esm/Chart.d.ts +42 -0
  308. package/dist/esm/Chart.d.ts.map +1 -0
  309. package/dist/esm/Chart.js +353 -0
  310. package/dist/esm/ChartBuilder.d.ts +46 -0
  311. package/dist/esm/ChartBuilder.d.ts.map +1 -0
  312. package/dist/esm/ChartBuilder.js +700 -0
  313. package/dist/esm/ChartEditor.d.ts +27 -0
  314. package/dist/esm/ChartEditor.d.ts.map +1 -0
  315. package/dist/esm/ChartEditor.js +72 -0
  316. package/dist/esm/Context.d.ts +36 -0
  317. package/dist/esm/Context.d.ts.map +1 -0
  318. package/dist/esm/Context.js +223 -0
  319. package/dist/esm/Dashboard.d.ts +178 -0
  320. package/dist/esm/Dashboard.d.ts.map +1 -0
  321. package/dist/esm/Dashboard.js +490 -0
  322. package/dist/esm/DateRangePicker/Calendar.d.ts +17 -0
  323. package/dist/esm/DateRangePicker/Calendar.d.ts.map +1 -0
  324. package/dist/esm/DateRangePicker/Calendar.js +167 -0
  325. package/dist/esm/DateRangePicker/DateRangePicker.d.ts +39 -0
  326. package/dist/esm/DateRangePicker/DateRangePicker.d.ts.map +1 -0
  327. package/dist/esm/DateRangePicker/DateRangePicker.js +122 -0
  328. package/dist/esm/DateRangePicker/DateRangePickerButton.d.ts +23 -0
  329. package/dist/esm/DateRangePicker/DateRangePickerButton.d.ts.map +1 -0
  330. package/dist/esm/DateRangePicker/DateRangePickerButton.js +136 -0
  331. package/dist/esm/DateRangePicker/QuillDateRangePicker.d.ts +3 -0
  332. package/dist/esm/DateRangePicker/QuillDateRangePicker.d.ts.map +1 -0
  333. package/dist/esm/DateRangePicker/QuillDateRangePicker.js +256 -0
  334. package/dist/esm/DateRangePicker/dateRangePickerUtils.d.ts +80 -0
  335. package/dist/esm/DateRangePicker/dateRangePickerUtils.d.ts.map +1 -0
  336. package/dist/esm/DateRangePicker/dateRangePickerUtils.js +535 -0
  337. package/dist/esm/DateRangePicker/index.d.ts +3 -0
  338. package/dist/esm/DateRangePicker/index.d.ts.map +1 -0
  339. package/dist/esm/DateRangePicker/index.js +2 -0
  340. package/dist/esm/PieChart.d.ts +59 -0
  341. package/dist/esm/PieChart.d.ts.map +1 -0
  342. package/dist/esm/PieChart.js +533 -0
  343. package/dist/esm/QuillProvider.d.ts +58 -0
  344. package/dist/esm/QuillProvider.d.ts.map +1 -0
  345. package/dist/esm/QuillProvider.js +31 -0
  346. package/dist/esm/ReportBuilder.d.ts +41 -0
  347. package/dist/esm/ReportBuilder.d.ts.map +1 -0
  348. package/dist/esm/ReportBuilder.js +996 -0
  349. package/dist/esm/SQLEditor.d.ts +54 -0
  350. package/dist/esm/SQLEditor.d.ts.map +1 -0
  351. package/dist/esm/SQLEditor.js +500 -0
  352. package/dist/esm/Table.d.ts +26 -0
  353. package/dist/esm/Table.d.ts.map +1 -0
  354. package/dist/esm/Table.js +89 -0
  355. package/dist/esm/TableChart.d.ts +15 -0
  356. package/dist/esm/TableChart.d.ts.map +1 -0
  357. package/dist/esm/TableChart.js +290 -0
  358. package/dist/esm/assets/ArrowDownHeadIcon.d.ts +5 -0
  359. package/dist/esm/assets/ArrowDownHeadIcon.d.ts.map +1 -0
  360. package/dist/esm/assets/ArrowDownHeadIcon.js +3 -0
  361. package/dist/esm/assets/ArrowDownIcon.d.ts +5 -0
  362. package/dist/esm/assets/ArrowDownIcon.d.ts.map +1 -0
  363. package/dist/esm/assets/ArrowDownIcon.js +3 -0
  364. package/dist/esm/assets/ArrowDownRightIcon.d.ts +5 -0
  365. package/dist/esm/assets/ArrowDownRightIcon.d.ts.map +1 -0
  366. package/dist/esm/assets/ArrowDownRightIcon.js +3 -0
  367. package/dist/esm/assets/ArrowLeftHeadIcon.d.ts +5 -0
  368. package/dist/esm/assets/ArrowLeftHeadIcon.d.ts.map +1 -0
  369. package/dist/esm/assets/ArrowLeftHeadIcon.js +3 -0
  370. package/dist/esm/assets/ArrowRightHeadIcon.d.ts +5 -0
  371. package/dist/esm/assets/ArrowRightHeadIcon.d.ts.map +1 -0
  372. package/dist/esm/assets/ArrowRightHeadIcon.js +3 -0
  373. package/dist/esm/assets/ArrowRightIcon.d.ts +5 -0
  374. package/dist/esm/assets/ArrowRightIcon.d.ts.map +1 -0
  375. package/dist/esm/assets/ArrowRightIcon.js +3 -0
  376. package/dist/esm/assets/ArrowUpHeadIcon.d.ts +5 -0
  377. package/dist/esm/assets/ArrowUpHeadIcon.d.ts.map +1 -0
  378. package/dist/esm/assets/ArrowUpHeadIcon.js +3 -0
  379. package/dist/esm/assets/ArrowUpIcon.d.ts +5 -0
  380. package/dist/esm/assets/ArrowUpIcon.d.ts.map +1 -0
  381. package/dist/esm/assets/ArrowUpIcon.js +3 -0
  382. package/dist/esm/assets/ArrowUpRightIcon.d.ts +5 -0
  383. package/dist/esm/assets/ArrowUpRightIcon.d.ts.map +1 -0
  384. package/dist/esm/assets/ArrowUpRightIcon.js +3 -0
  385. package/dist/esm/assets/CalendarIcon.d.ts +5 -0
  386. package/dist/esm/assets/CalendarIcon.d.ts.map +1 -0
  387. package/dist/esm/assets/CalendarIcon.js +3 -0
  388. package/dist/esm/assets/CalendarNormalIcon.d.ts +5 -0
  389. package/dist/esm/assets/CalendarNormalIcon.d.ts.map +1 -0
  390. package/dist/esm/assets/CalendarNormalIcon.js +3 -0
  391. package/dist/esm/assets/DoubleArrowLeftHeadIcon.d.ts +5 -0
  392. package/dist/esm/assets/DoubleArrowLeftHeadIcon.d.ts.map +1 -0
  393. package/dist/esm/assets/DoubleArrowLeftHeadIcon.js +3 -0
  394. package/dist/esm/assets/DoubleArrowRightHeadIcon.d.ts +5 -0
  395. package/dist/esm/assets/DoubleArrowRightHeadIcon.d.ts.map +1 -0
  396. package/dist/esm/assets/DoubleArrowRightHeadIcon.js +3 -0
  397. package/dist/esm/assets/ExclamationFilledIcon.d.ts +5 -0
  398. package/dist/esm/assets/ExclamationFilledIcon.d.ts.map +1 -0
  399. package/dist/esm/assets/ExclamationFilledIcon.js +3 -0
  400. package/dist/esm/assets/FilterIcon.d.ts +5 -0
  401. package/dist/esm/assets/FilterIcon.d.ts.map +1 -0
  402. package/dist/esm/assets/FilterIcon.js +3 -0
  403. package/dist/esm/assets/LoadingSpinner.d.ts +5 -0
  404. package/dist/esm/assets/LoadingSpinner.d.ts.map +1 -0
  405. package/dist/esm/assets/LoadingSpinner.js +3 -0
  406. package/dist/esm/assets/RefreshIcon.d.ts +5 -0
  407. package/dist/esm/assets/RefreshIcon.d.ts.map +1 -0
  408. package/dist/esm/assets/RefreshIcon.js +3 -0
  409. package/dist/esm/assets/SearchIcon.d.ts +5 -0
  410. package/dist/esm/assets/SearchIcon.d.ts.map +1 -0
  411. package/dist/esm/assets/SearchIcon.js +3 -0
  412. package/dist/esm/assets/UpLeftArrowsIcon.d.ts +5 -0
  413. package/dist/esm/assets/UpLeftArrowsIcon.d.ts.map +1 -0
  414. package/dist/esm/assets/UpLeftArrowsIcon.js +3 -0
  415. package/dist/esm/assets/XCircleIcon.d.ts +5 -0
  416. package/dist/esm/assets/XCircleIcon.d.ts.map +1 -0
  417. package/dist/esm/assets/XCircleIcon.js +3 -0
  418. package/dist/esm/assets/XIcon.d.ts +5 -0
  419. package/dist/esm/assets/XIcon.d.ts.map +1 -0
  420. package/dist/esm/assets/XIcon.js +3 -0
  421. package/dist/esm/assets/index.d.ts +22 -0
  422. package/dist/esm/assets/index.d.ts.map +1 -0
  423. package/dist/esm/assets/index.js +21 -0
  424. package/dist/esm/components/Banner/index.d.ts +3 -0
  425. package/dist/esm/components/Banner/index.d.ts.map +1 -0
  426. package/dist/esm/components/Banner/index.js +24 -0
  427. package/dist/esm/components/BigModal/BigModal.d.ts +15 -0
  428. package/dist/esm/components/BigModal/BigModal.d.ts.map +1 -0
  429. package/dist/esm/components/BigModal/BigModal.js +62 -0
  430. package/dist/esm/components/Chart/BarChart.d.ts +18 -0
  431. package/dist/esm/components/Chart/BarChart.d.ts.map +1 -0
  432. package/dist/esm/components/Chart/BarChart.js +75 -0
  433. package/dist/esm/components/Chart/ChartError.d.ts +3 -0
  434. package/dist/esm/components/Chart/ChartError.d.ts.map +1 -0
  435. package/dist/esm/components/Chart/ChartError.js +26 -0
  436. package/dist/esm/components/Chart/ChartSkeleton.d.ts +6 -0
  437. package/dist/esm/components/Chart/ChartSkeleton.d.ts.map +1 -0
  438. package/dist/esm/components/Chart/ChartSkeleton.js +17 -0
  439. package/dist/esm/components/Chart/ChartTooltip.d.ts +29 -0
  440. package/dist/esm/components/Chart/ChartTooltip.d.ts.map +1 -0
  441. package/dist/esm/components/Chart/ChartTooltip.js +229 -0
  442. package/dist/esm/components/Chart/ChartTooltipFrame.d.ts +6 -0
  443. package/dist/esm/components/Chart/ChartTooltipFrame.d.ts.map +1 -0
  444. package/dist/esm/components/Chart/ChartTooltipFrame.js +13 -0
  445. package/dist/esm/components/Chart/ChartTooltipGroup.d.ts +11 -0
  446. package/dist/esm/components/Chart/ChartTooltipGroup.d.ts.map +1 -0
  447. package/dist/esm/components/Chart/ChartTooltipGroup.js +23 -0
  448. package/dist/esm/components/Chart/ChartTooltipRow.d.ts +8 -0
  449. package/dist/esm/components/Chart/ChartTooltipRow.d.ts.map +1 -0
  450. package/dist/esm/components/Chart/ChartTooltipRow.js +41 -0
  451. package/dist/esm/components/Chart/LineChart.d.ts +16 -0
  452. package/dist/esm/components/Chart/LineChart.d.ts.map +1 -0
  453. package/dist/esm/components/Chart/LineChart.js +91 -0
  454. package/dist/esm/components/Dashboard/ChartComponent.d.ts +3 -0
  455. package/dist/esm/components/Dashboard/ChartComponent.d.ts.map +1 -0
  456. package/dist/esm/components/Dashboard/ChartComponent.js +61 -0
  457. package/dist/esm/components/Dashboard/DashboardSection.d.ts +3 -0
  458. package/dist/esm/components/Dashboard/DashboardSection.d.ts.map +1 -0
  459. package/dist/esm/components/Dashboard/DashboardSection.js +14 -0
  460. package/dist/esm/components/Dashboard/DashboardSectionContainer.d.ts +3 -0
  461. package/dist/esm/components/Dashboard/DashboardSectionContainer.d.ts.map +1 -0
  462. package/dist/esm/components/Dashboard/DashboardSectionContainer.js +10 -0
  463. package/dist/esm/components/Dashboard/DataLoader.d.ts +3 -0
  464. package/dist/esm/components/Dashboard/DataLoader.d.ts.map +1 -0
  465. package/dist/esm/components/Dashboard/DataLoader.js +71 -0
  466. package/dist/esm/components/Dashboard/MetricComponent.d.ts +3 -0
  467. package/dist/esm/components/Dashboard/MetricComponent.d.ts.map +1 -0
  468. package/dist/esm/components/Dashboard/MetricComponent.js +62 -0
  469. package/dist/esm/components/Dashboard/TableComponent.d.ts +3 -0
  470. package/dist/esm/components/Dashboard/TableComponent.d.ts.map +1 -0
  471. package/dist/esm/components/Dashboard/TableComponent.js +29 -0
  472. package/dist/esm/components/Dropdown/Dropdown.d.ts +14 -0
  473. package/dist/esm/components/Dropdown/Dropdown.d.ts.map +1 -0
  474. package/dist/esm/components/Dropdown/Dropdown.js +71 -0
  475. package/dist/esm/components/Dropdown/DropdownItem.d.ts +11 -0
  476. package/dist/esm/components/Dropdown/DropdownItem.d.ts.map +1 -0
  477. package/dist/esm/components/Dropdown/DropdownItem.js +42 -0
  478. package/dist/esm/components/Dropdown/index.d.ts +3 -0
  479. package/dist/esm/components/Dropdown/index.d.ts.map +1 -0
  480. package/dist/esm/components/Dropdown/index.js +2 -0
  481. package/dist/esm/components/Modal/Modal.d.ts +15 -0
  482. package/dist/esm/components/Modal/Modal.d.ts.map +1 -0
  483. package/dist/esm/components/Modal/Modal.js +65 -0
  484. package/dist/esm/components/Modal/index.d.ts +2 -0
  485. package/dist/esm/components/Modal/index.d.ts.map +1 -0
  486. package/dist/esm/components/Modal/index.js +1 -0
  487. package/dist/esm/components/QuillCard.d.ts +14 -0
  488. package/dist/esm/components/QuillCard.d.ts.map +1 -0
  489. package/dist/esm/components/QuillCard.js +52 -0
  490. package/dist/esm/components/QuillSelect.d.ts +3 -0
  491. package/dist/esm/components/QuillSelect.d.ts.map +1 -0
  492. package/dist/esm/components/QuillSelect.js +124 -0
  493. package/dist/esm/components/QuillTable.d.ts +3 -0
  494. package/dist/esm/components/QuillTable.d.ts.map +1 -0
  495. package/dist/esm/components/QuillTable.js +256 -0
  496. package/dist/esm/components/UiComponents.d.ts +130 -0
  497. package/dist/esm/components/UiComponents.d.ts.map +1 -0
  498. package/dist/esm/components/UiComponents.js +248 -0
  499. package/dist/esm/components/selectUtils.d.ts +10 -0
  500. package/dist/esm/components/selectUtils.d.ts.map +1 -0
  501. package/dist/esm/components/selectUtils.js +37 -0
  502. package/dist/esm/contexts/BaseColorContext.d.ts +4 -0
  503. package/dist/esm/contexts/BaseColorContext.d.ts.map +1 -0
  504. package/dist/esm/contexts/BaseColorContext.js +3 -0
  505. package/dist/esm/contexts/HoveredValueContext.d.ts +8 -0
  506. package/dist/esm/contexts/HoveredValueContext.d.ts.map +1 -0
  507. package/dist/esm/contexts/HoveredValueContext.js +5 -0
  508. package/dist/esm/contexts/RootStylesContext.d.ts +4 -0
  509. package/dist/esm/contexts/RootStylesContext.d.ts.map +1 -0
  510. package/dist/esm/contexts/RootStylesContext.js +3 -0
  511. package/dist/esm/contexts/SelectedValueContext.d.ts +8 -0
  512. package/dist/esm/contexts/SelectedValueContext.d.ts.map +1 -0
  513. package/dist/esm/contexts/SelectedValueContext.js +6 -0
  514. package/dist/esm/contexts/index.d.ts +5 -0
  515. package/dist/esm/contexts/index.d.ts.map +1 -0
  516. package/dist/esm/contexts/index.js +4 -0
  517. package/dist/esm/hooks/index.d.ts +5 -0
  518. package/dist/esm/hooks/index.d.ts.map +1 -0
  519. package/dist/esm/hooks/index.js +4 -0
  520. package/dist/esm/hooks/useDashboard.d.ts +7 -0
  521. package/dist/esm/hooks/useDashboard.d.ts.map +1 -0
  522. package/dist/esm/hooks/useDashboard.js +50 -0
  523. package/dist/esm/hooks/useExport.d.ts +15 -0
  524. package/dist/esm/hooks/useExport.d.ts.map +1 -0
  525. package/dist/esm/hooks/useExport.js +27 -0
  526. package/dist/esm/hooks/useFormat.d.ts +6 -0
  527. package/dist/esm/hooks/useFormat.d.ts.map +1 -0
  528. package/dist/esm/hooks/useFormat.js +21 -0
  529. package/dist/esm/hooks/useInternalState.d.ts +4 -0
  530. package/dist/esm/hooks/useInternalState.d.ts.map +1 -0
  531. package/dist/esm/hooks/useInternalState.js +14 -0
  532. package/dist/esm/hooks/useOnClickOutside.d.ts +3 -0
  533. package/dist/esm/hooks/useOnClickOutside.d.ts.map +1 -0
  534. package/dist/esm/hooks/useOnClickOutside.js +18 -0
  535. package/dist/esm/hooks/useOnWindowResize.d.ts +5 -0
  536. package/dist/esm/hooks/useOnWindowResize.d.ts.map +1 -0
  537. package/dist/esm/hooks/useOnWindowResize.js +14 -0
  538. package/dist/esm/hooks/useQuill.d.ts +46 -0
  539. package/dist/esm/hooks/useQuill.d.ts.map +1 -0
  540. package/dist/esm/hooks/useQuill.js +90 -0
  541. package/dist/esm/hooks/useSelectOnKeyDown.d.ts +3 -0
  542. package/dist/esm/hooks/useSelectOnKeyDown.d.ts.map +1 -0
  543. package/dist/esm/hooks/useSelectOnKeyDown.js +63 -0
  544. package/dist/esm/index.d.ts +19 -0
  545. package/dist/esm/index.d.ts.map +1 -0
  546. package/dist/esm/index.js +16 -0
  547. package/dist/esm/internals/ReportBuilder/PivotList.d.ts +34 -0
  548. package/dist/esm/internals/ReportBuilder/PivotList.d.ts.map +1 -0
  549. package/dist/esm/internals/ReportBuilder/PivotList.js +56 -0
  550. package/dist/esm/internals/ReportBuilder/PivotModal.d.ts +62 -0
  551. package/dist/esm/internals/ReportBuilder/PivotModal.d.ts.map +1 -0
  552. package/dist/esm/internals/ReportBuilder/PivotModal.js +909 -0
  553. package/dist/esm/internals/ReportBuilder/PivotModal.spec.d.ts +2 -0
  554. package/dist/esm/internals/ReportBuilder/PivotModal.spec.d.ts.map +1 -0
  555. package/dist/esm/internals/ReportBuilder/PivotModal.spec.js +211 -0
  556. package/dist/esm/lib/font.d.ts +14 -0
  557. package/dist/esm/lib/font.d.ts.map +1 -0
  558. package/dist/esm/lib/font.js +13 -0
  559. package/dist/esm/lib/index.d.ts +4 -0
  560. package/dist/esm/lib/index.d.ts.map +1 -0
  561. package/dist/esm/lib/index.js +3 -0
  562. package/dist/esm/lib/inputTypes.d.ts +21 -0
  563. package/dist/esm/lib/inputTypes.d.ts.map +1 -0
  564. package/dist/esm/lib/inputTypes.js +55 -0
  565. package/dist/esm/lib/utils.d.ts +10 -0
  566. package/dist/esm/lib/utils.d.ts.map +1 -0
  567. package/dist/esm/lib/utils.js +35 -0
  568. package/dist/esm/utils/aggregate.d.ts +4 -0
  569. package/dist/esm/utils/aggregate.d.ts.map +1 -0
  570. package/dist/esm/utils/aggregate.js +423 -0
  571. package/dist/esm/utils/axisFormatter.d.ts +20 -0
  572. package/dist/esm/utils/axisFormatter.d.ts.map +1 -0
  573. package/dist/esm/utils/axisFormatter.js +190 -0
  574. package/dist/esm/utils/color.d.ts +13 -0
  575. package/dist/esm/utils/color.d.ts.map +1 -0
  576. package/dist/esm/utils/color.js +247 -0
  577. package/dist/esm/utils/crypto.d.ts +2 -0
  578. package/dist/esm/utils/crypto.d.ts.map +1 -0
  579. package/dist/esm/utils/crypto.js +6 -0
  580. package/dist/esm/utils/csv.d.ts +6 -0
  581. package/dist/esm/utils/csv.d.ts.map +1 -0
  582. package/dist/esm/utils/csv.js +76 -0
  583. package/dist/esm/utils/dashboard.d.ts +12 -0
  584. package/dist/esm/utils/dashboard.d.ts.map +1 -0
  585. package/dist/esm/utils/dashboard.js +170 -0
  586. package/dist/esm/utils/dataFetcher.d.ts +3 -0
  587. package/dist/esm/utils/dataFetcher.d.ts.map +1 -0
  588. package/dist/esm/utils/dataFetcher.js +76 -0
  589. package/dist/esm/utils/dates.d.ts +10 -0
  590. package/dist/esm/utils/dates.d.ts.map +1 -0
  591. package/dist/esm/utils/dates.js +32 -0
  592. package/dist/esm/utils/getDomain.d.ts +8 -0
  593. package/dist/esm/utils/getDomain.d.ts.map +1 -0
  594. package/dist/esm/utils/getDomain.js +28 -0
  595. package/dist/esm/utils/merge.d.ts +2 -0
  596. package/dist/esm/utils/merge.d.ts.map +1 -0
  597. package/dist/esm/utils/merge.js +45 -0
  598. package/dist/esm/utils/styles.d.ts +17 -0
  599. package/dist/esm/utils/styles.d.ts.map +1 -0
  600. package/dist/esm/utils/styles.js +16 -0
  601. package/dist/esm/utils/valueFormatter.d.ts +27 -0
  602. package/dist/esm/utils/valueFormatter.d.ts.map +1 -0
  603. package/dist/esm/utils/valueFormatter.js +246 -0
  604. package/dist/esm/utils/valueFormatterCSV.d.ts +17 -0
  605. package/dist/esm/utils/valueFormatterCSV.d.ts.map +1 -0
  606. package/dist/esm/utils/valueFormatterCSV.js +95 -0
  607. package/package.json +1 -1
@@ -0,0 +1,996 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ // @ts-nocheck
3
+ import { useState, useContext, useCallback, useEffect, useMemo, useRef, } from 'react';
4
+ // import './nightOwlLight.css';
5
+ import { ClientContext, SchemaContext, ThemeContext } from './Context';
6
+ import { convertPostgresColumn } from './SQLEditor';
7
+ import { format } from 'date-fns';
8
+ import { PivotModal, generatePivotTable, } from './internals/ReportBuilder/PivotModal';
9
+ import { getData, getDataFromCloud } from './utils/dataFetcher';
10
+ import { getRangeFromPreset, reportBuilderOptions, } from './DateRangePicker/dateRangePickerUtils';
11
+ import ChartBuilder from './ChartBuilder';
12
+ import { MemoizedModal, MemoizedTextInput, MemoizedSelect, MemoizedButton, MemoizedSecondaryButton, MemoizedHeader, MemoizedLabel, MemoizedDeleteButton, MemoizedText, MemoizedPopover, } from './components/UiComponents';
13
+ export default function ReportBuilder({ onChangeQuery, onChangeData, onChangeColumns, onChangeLoading, onChangePivot, onDateFilterChange, onChangeFields, onError, TextInput = MemoizedTextInput, containerStyle, Select = MemoizedSelect, Button = MemoizedButton, SecondaryButton = MemoizedSecondaryButton, Header = MemoizedHeader, Label = MemoizedLabel, DeleteButton = MemoizedDeleteButton, Text = MemoizedText, Modal = MemoizedModal, Popover = MemoizedPopover, showTableFormatOptions = false, showDateFieldOptions = false, showAccessControlOptions = false, tagStyle, tableName, dateColumn, selectedTagBorderColor, chartBuilderEnabled = false, destinationDashboard, chartBuilderTitle, chartBuilderButtonLabel, editSQLEnabled, navigateToSQLEditor, }) {
14
+ const [data, setData] = useState([]);
15
+ const [client, setClient] = useContext(ClientContext);
16
+ const [schema, setSchema] = useContext(SchemaContext);
17
+ const [theme] = useContext(ThemeContext);
18
+ const [columns, setColumns] = useState([]);
19
+ const [fields, setFields] = useState([]);
20
+ const [loading, setLoading] = useState(false);
21
+ const [selectedPivot, setSelectedPivot] = useState(null);
22
+ const defaultDateRange = [null, null, null];
23
+ const [dateRange, setDateRange] = useState(defaultDateRange);
24
+ useEffect(() => {
25
+ let isSubscribed = true;
26
+ async function getClient() {
27
+ try {
28
+ const resp = await getDataFromCloud(client, `client/${client.publicKey}/`, null, 'GET');
29
+ if (resp) {
30
+ setClient({ ...client, ...resp.client });
31
+ }
32
+ }
33
+ catch (error) {
34
+ console.error('ERROR getting client:', error);
35
+ }
36
+ }
37
+ if (isSubscribed) {
38
+ getClient();
39
+ }
40
+ return () => {
41
+ isSubscribed = false;
42
+ };
43
+ }, []);
44
+ useEffect(() => {
45
+ let isSubscribed = true;
46
+ async function getSchema() {
47
+ const { queryEndpoint, queryHeaders, publicKey } = client;
48
+ const response = await fetch(`${queryEndpoint}`, {
49
+ method: 'POST',
50
+ headers: {
51
+ ...queryHeaders,
52
+ 'Content-Type': 'application/json',
53
+ },
54
+ body: JSON.stringify({
55
+ metadata: {
56
+ clientId: publicKey,
57
+ publicKey: publicKey,
58
+ task: 'schema',
59
+ },
60
+ }),
61
+ });
62
+ const data = await response.json();
63
+ if (isSubscribed) {
64
+ setSchema(data.data.tables);
65
+ }
66
+ }
67
+ if (isSubscribed) {
68
+ getSchema();
69
+ }
70
+ return () => {
71
+ isSubscribed = false;
72
+ };
73
+ }, []);
74
+ useEffect(() => {
75
+ if (onDateFilterChange) {
76
+ onDateFilterChange(dateRange);
77
+ }
78
+ }, [dateRange]);
79
+ useEffect(() => {
80
+ if (onDateFilterChange) {
81
+ onDateFilterChange(defaultDateRange);
82
+ }
83
+ }, []);
84
+ useEffect(() => {
85
+ setColumns([]);
86
+ }, [tableName]);
87
+ const runQuery = async (query) => {
88
+ setLoading(true);
89
+ const hostedBody = {
90
+ metadata: {
91
+ query,
92
+ task: 'query',
93
+ orgId: client.customerId || '*',
94
+ databaseType: client?.databaseType,
95
+ },
96
+ };
97
+ const cloudBody = { query };
98
+ const resp = await getData(client, 'dashquery', 'same-origin', hostedBody, cloudBody);
99
+ if (resp && resp.errorMessage) {
100
+ onError(resp.errorMessage);
101
+ setData([]);
102
+ // onChangeData([]);
103
+ setColumns([]);
104
+ // onChangeColumns([]);
105
+ setFields([]);
106
+ if (onChangeFields) {
107
+ onChangeFields([]);
108
+ }
109
+ setLoading(false);
110
+ return;
111
+ }
112
+ setData(resp.rows);
113
+ setColumns(resp.fields.map((elem) => convertPostgresColumn(elem)));
114
+ if (selectedPivot) {
115
+ const { rows, columns } = generatePivotTable(selectedPivot, resp.rows, dateRange);
116
+ if (onChangePivot) {
117
+ onChangePivot(selectedPivot, columns, rows);
118
+ }
119
+ }
120
+ else {
121
+ if (onChangeData) {
122
+ onChangeData(resp.rows);
123
+ }
124
+ if (onChangeColumns) {
125
+ onChangeColumns(resp.fields.map((elem) => convertPostgresColumn(elem)));
126
+ }
127
+ }
128
+ setFields(resp.fields);
129
+ if (onChangeFields) {
130
+ onChangeFields(resp.fields);
131
+ }
132
+ setLoading(false);
133
+ };
134
+ useEffect(() => {
135
+ if (onChangeLoading) {
136
+ onChangeLoading(loading);
137
+ }
138
+ }, [loading]);
139
+ if (!schema || !schema.length || !tableName) {
140
+ return null;
141
+ }
142
+ return (_jsx(ReportingTool, { containerStyle: containerStyle, destinationDashboard: destinationDashboard, client: client, editSQLEnabled: editSQLEnabled, navigateToSQLEditor: navigateToSQLEditor, theme: theme, data: data, columns: columns, fields: fields, chartBuilderTitle: chartBuilderTitle, chartBuilderButtonLabel: chartBuilderButtonLabel, onChangeData: onChangeData, onChangeColumns: onChangeColumns, onChangePivot: onChangePivot, selectedPivot: selectedPivot, setSelectedPivot: (pivot) => {
143
+ setSelectedPivot(pivot);
144
+ if (onChangePivot) {
145
+ const table = pivot
146
+ ? generatePivotTable(pivot, data, dateRange)
147
+ : { rows: null, columns: null };
148
+ onChangePivot(pivot, table.columns, table.rows);
149
+ }
150
+ }, schema: schema, tableName: tableName, dateColumn: dateColumn, selectedTagBorderColor: selectedTagBorderColor, onChangeQuery: onChangeQuery, runQuery: runQuery, dateRange: dateRange, setDateRange: setDateRange, defaultDateRange: defaultDateRange, chartBuilderEnabled: chartBuilderEnabled, HeaderComponent: Header, LabelComponent: Label, SelectComponent: Select, TextComponent: Text, ButtonComponent: Button, SecondaryButtonComponent: SecondaryButton, ModalComponent: Modal, PopoverComponent: Popover, TextInputComponent: TextInput, tagStyle: tagStyle, showTableFormatOptions: showTableFormatOptions, showDateFieldOptions: showDateFieldOptions, showAccessControlOptions: showAccessControlOptions }));
151
+ }
152
+ export function getPostgresBasicType(column) {
153
+ let format;
154
+ // first check if column.dataTypeID exists
155
+ if (column.dataTypeID) {
156
+ switch (column.dataTypeID) {
157
+ case 20: // int8
158
+ case 21: // int2
159
+ case 23: // int4
160
+ case 700: // float4
161
+ case 701: // float8
162
+ case 1700: // numeric
163
+ format = 'number';
164
+ break;
165
+ case 1082: // date
166
+ case 1083: // time
167
+ case 1184: // timestamptz
168
+ case 1114: // timestamp
169
+ format = 'date';
170
+ break;
171
+ case 1043: // varchar
172
+ default:
173
+ format = 'string';
174
+ }
175
+ }
176
+ else if (column.fieldType) {
177
+ // if column.dataTypeID doesn't exist, check column.fieldType
178
+ switch (column.fieldType) {
179
+ case 'int8':
180
+ case 'int2':
181
+ case 'int4':
182
+ case 'float4':
183
+ case 'float8':
184
+ case 'numeric':
185
+ format = 'number';
186
+ break;
187
+ case 'date':
188
+ case 'time':
189
+ case 'timestamptz':
190
+ case 'timestamp':
191
+ format = 'date';
192
+ break;
193
+ case 'varchar':
194
+ default:
195
+ format = 'string';
196
+ }
197
+ }
198
+ return format;
199
+ }
200
+ const newDateWhereAST = (column, dateRange, databaseType) => {
201
+ // all time means no filter
202
+ if (dateRange[2] === 'at') {
203
+ return null;
204
+ }
205
+ // if using preset
206
+ if (dateRange[2]) {
207
+ const timeInterval = reportBuilderOptions.find((elem) => elem.value === dateRange[2])?.dayInterval;
208
+ switch (databaseType) {
209
+ case 'BigQuery': {
210
+ return {
211
+ type: 'binary_expr',
212
+ operator: 'BETWEEN',
213
+ left: {
214
+ type: 'function',
215
+ name: 'Date',
216
+ args: {
217
+ type: 'expr_list',
218
+ value: [
219
+ {
220
+ type: 'column_ref',
221
+ table: null,
222
+ column: column,
223
+ },
224
+ ],
225
+ },
226
+ over: null,
227
+ },
228
+ right: {
229
+ type: 'expr_list',
230
+ value: [
231
+ {
232
+ type: 'function',
233
+ name: 'DATE_SUB',
234
+ args: {
235
+ type: 'expr_list',
236
+ value: [
237
+ {
238
+ type: 'function',
239
+ name: 'CURRENT_DATE',
240
+ args: {
241
+ type: 'expr_list',
242
+ value: [],
243
+ },
244
+ over: null,
245
+ },
246
+ {
247
+ type: 'interval',
248
+ expr: {
249
+ type: 'number',
250
+ value: timeInterval,
251
+ },
252
+ unit: 'day',
253
+ },
254
+ ],
255
+ },
256
+ over: null,
257
+ },
258
+ {
259
+ type: 'function',
260
+ name: 'CURRENT_DATE',
261
+ args: {
262
+ type: 'expr_list',
263
+ value: [],
264
+ },
265
+ over: null,
266
+ },
267
+ ],
268
+ },
269
+ };
270
+ }
271
+ default: {
272
+ return {
273
+ type: 'binary_expr',
274
+ operator: 'AND',
275
+ left: {
276
+ type: 'binary_expr',
277
+ operator: '>=',
278
+ left: {
279
+ type: 'column_ref',
280
+ table: null,
281
+ column: column,
282
+ },
283
+ right: {
284
+ type: 'binary_expr',
285
+ operator: '-',
286
+ left: {
287
+ type: 'function',
288
+ name: 'now',
289
+ args: {
290
+ type: 'expr_list',
291
+ value: [],
292
+ },
293
+ },
294
+ right: {
295
+ type: 'interval',
296
+ expr: {
297
+ type: 'single_quote_string',
298
+ value: `${timeInterval} day`,
299
+ },
300
+ unit: '',
301
+ },
302
+ },
303
+ },
304
+ right: {
305
+ type: 'binary_expr',
306
+ operator: '<=',
307
+ left: {
308
+ type: 'column_ref',
309
+ table: null,
310
+ column: column,
311
+ },
312
+ right: {
313
+ type: 'function',
314
+ name: 'now',
315
+ args: {
316
+ type: 'expr_list',
317
+ value: [],
318
+ },
319
+ },
320
+ },
321
+ };
322
+ }
323
+ }
324
+ }
325
+ else {
326
+ return {
327
+ type: 'binary_expr',
328
+ operator: 'BETWEEN',
329
+ left: {
330
+ type: 'column_ref',
331
+ table: null,
332
+ column: column,
333
+ },
334
+ right: {
335
+ type: 'expr_list',
336
+ value: [
337
+ {
338
+ type: 'single_quote_string',
339
+ value: format(new Date(dateRange[0]), 'MM/dd/yyyy'),
340
+ },
341
+ {
342
+ type: 'single_quote_string',
343
+ value: format(new Date(dateRange[1]), 'MM/dd/yyyy'),
344
+ },
345
+ ],
346
+ },
347
+ };
348
+ }
349
+ };
350
+ function ReportingTool({ schema, data, columns, runQuery, SelectComponent, ButtonComponent, SecondaryButtonComponent, editSQLEnabled, navigateToSQLEditor, onChangeQuery, onChangePivot, selectedPivot, setSelectedPivot, theme, ModalComponent, HeaderComponent, PopoverComponent, TextComponent, TextInputComponent, LabelComponent, tagStyle, tableName, dateColumn, selectedTagBorderColor, dateRange, setDateRange, defaultDateRange, chartBuilderEnabled, fields, containerStyle, showTableFormatOptions = false, showDateFieldOptions = false, showAccessControlOptions = false, client, destinationDashboard, chartBuilderTitle, chartBuilderButtonLabel, }) {
351
+ const selectedTable = useMemo(() => schema.find((t) => t.displayName === tableName), [schema, tableName]);
352
+ const [selectedColumn, setSelectedColumn] = useState(schema[0].columns.find((elem) => elem.name !== 'id'));
353
+ const parentRef = useRef();
354
+ const [filters, setFilters] = useState([]);
355
+ const [AST, setAST] = useState({
356
+ with: null,
357
+ type: 'select',
358
+ options: null,
359
+ distinct: { type: null },
360
+ columns: '*',
361
+ into: { position: null },
362
+ from: [{ db: null, table: selectedTable.displayName, as: null }],
363
+ // where: newDateWhereAST(dateColumn, defaultDateRange),
364
+ where: null,
365
+ groupby: null,
366
+ having: null,
367
+ orderby: null,
368
+ limit: { seperator: '', value: [] },
369
+ window: null,
370
+ });
371
+ const [ASTNoDateColumn, setASTNoDateColumn] = useState(AST);
372
+ const [numberStart, setNumberStart] = useState(0);
373
+ const [numberEnd, setNumberEnd] = useState(0);
374
+ const [filterDateRange, setFilterDateRange] = useState(getRangeFromPreset('90d'));
375
+ const [computedColumns, setComputedColumns] = useState({});
376
+ const [stringFilterValues, setStringFilterValues] = useState([]);
377
+ const [columnType, setColumnType] = useState(getPostgresBasicType(schema[0].columns[0]));
378
+ const [sqlQuery, setSqlQuery] = useState('');
379
+ const [sqlQueryNoDateColumn, setSqlQueryNoDateColumn] = useState('');
380
+ const [indexBeingEdited, setIndexBeingEdited] = useState(-1);
381
+ const [isAddFilterModalOpen, setIsAddFilterModalOpen] = useState(false);
382
+ const [isEdittingPivot, setIsEdittingPivot] = useState(false);
383
+ const [isPivotModalOpen, setIsPivotModalOpen] = useState(false);
384
+ const [isChartBuilderOpen, setIsChartBuilderOpen] = useState(false);
385
+ const [selectedPivotIndex, setSelectedPivotIndex] = useState(-1);
386
+ const [createdPivots, setCreatedPivots] = useState([]);
387
+ const [recommendedPivots, setRecommendedPivots] = useState([]);
388
+ const [pivotRowField, setPivotRowField] = useState(undefined);
389
+ const [pivotColumnField, setPivotColumnField] = useState(undefined);
390
+ const [pivotValueField, setPivotValueField] = useState(undefined);
391
+ const [pivotAggregation, setPivotAggregation] = useState(undefined);
392
+ const [pivotPopUpTitle, setPivotPopUpTitle] = useState('Add Pivot');
393
+ useEffect(() => {
394
+ setColumnType(getPostgresBasicType(selectedColumn));
395
+ }, [selectedColumn]);
396
+ useEffect(() => {
397
+ removePivot();
398
+ setCreatedPivots([]);
399
+ setRecommendedPivots([]);
400
+ }, [selectedTable]);
401
+ const selectFilter = (index) => {
402
+ const filter = filters[index];
403
+ const matchingColumn = selectedTable.columns.find((column) => column.name === filter.column);
404
+ if (indexBeingEdited === index) {
405
+ setIndexBeingEdited(-1);
406
+ setStringFilterValues([]);
407
+ setNumberStart(0);
408
+ setNumberEnd(0);
409
+ setFilterDateRange(getRangeFromPreset('90d'));
410
+ return;
411
+ }
412
+ setSelectedColumn(matchingColumn);
413
+ if (filter.columnType === 'string') {
414
+ setStringFilterValues(filter.stringFilterValues);
415
+ setIndexBeingEdited(index);
416
+ }
417
+ else if (filter.columnType === 'number') {
418
+ setNumberStart(filter.numberStart);
419
+ setNumberEnd(filter.numberEnd);
420
+ setIndexBeingEdited(index);
421
+ }
422
+ else if (filter.columnType === 'date') {
423
+ setFilterDateRange(filter.filterDateRange);
424
+ setIndexBeingEdited(index);
425
+ }
426
+ };
427
+ const selectedPivotTable = useMemo(() => {
428
+ if (selectedPivot && data) {
429
+ return generatePivotTable(selectedPivot, data, dateRange);
430
+ }
431
+ else {
432
+ return {};
433
+ }
434
+ }, [selectedPivot, data, dateRange]);
435
+ const removePivot = () => {
436
+ setSelectedPivotIndex(-1);
437
+ setSelectedPivot(null);
438
+ if (onChangePivot) {
439
+ onChangePivot(null, null, null);
440
+ }
441
+ };
442
+ const selectPivot = (pivot, index) => {
443
+ setSelectedPivotIndex(index);
444
+ setSelectedPivot(pivot);
445
+ const pivotTable = generatePivotTable(pivot, data, dateRange);
446
+ if (onChangePivot) {
447
+ onChangePivot(pivot, pivotTable.columns, pivotTable.rows);
448
+ }
449
+ };
450
+ const updateFilter = (index) => {
451
+ if (selectedColumn && columnType) {
452
+ if (columnType === 'string') {
453
+ setFilters((filters) => {
454
+ const newFilters = [...filters];
455
+ newFilters[index] = {
456
+ column: selectedColumn.name,
457
+ columnType,
458
+ stringFilterValues,
459
+ tag: `${selectedColumn.name} (${stringFilterValues.join(', ')})`,
460
+ };
461
+ return newFilters;
462
+ });
463
+ }
464
+ else if (columnType === 'number') {
465
+ setFilters((filters) => {
466
+ const newFilters = [...filters];
467
+ newFilters[index] = {
468
+ column: selectedColumn.name,
469
+ columnType,
470
+ numberStart,
471
+ numberEnd,
472
+ tag: `${numberStart} < ${selectedColumn.name} < ${numberEnd}`,
473
+ };
474
+ return newFilters;
475
+ });
476
+ }
477
+ else if (columnType === 'date') {
478
+ const label = filterDateRange[2]
479
+ ? reportBuilderOptions.find((elem) => elem.value === filterDateRange[2])?.text
480
+ : `${format(new Date(filterDateRange[0]), 'MMM dd')} - ${format(new Date(filterDateRange[1]), 'MMM dd')}`;
481
+ setFilters((filters) => {
482
+ const newFilters = [...filters];
483
+ newFilters[index] = {
484
+ column: selectedColumn.name,
485
+ columnType,
486
+ filterDateRange,
487
+ tag: `${selectedColumn.name} (${label})`,
488
+ };
489
+ return newFilters;
490
+ });
491
+ }
492
+ setStringFilterValues([]);
493
+ setNumberStart(0);
494
+ setNumberEnd(0);
495
+ setFilterDateRange(getRangeFromPreset('90d'));
496
+ setIndexBeingEdited(-1);
497
+ return;
498
+ }
499
+ };
500
+ // ADD FILTER TO "FILTERS" ARRAY
501
+ const addFilter = async () => {
502
+ if (selectedColumn && columnType) {
503
+ // const type = getPostgresBasicType(selectedColumn);
504
+ let newCondition;
505
+ if (columnType === 'string') {
506
+ setFilters((filters) => {
507
+ return [
508
+ ...filters,
509
+ {
510
+ column: selectedColumn.name,
511
+ columnType,
512
+ stringFilterValues,
513
+ tag: `${selectedColumn.name} (${stringFilterValues.join(', ')})`,
514
+ },
515
+ ];
516
+ });
517
+ setStringFilterValues([]);
518
+ setNumberStart(0);
519
+ setNumberEnd(0);
520
+ setFilterDateRange(getRangeFromPreset('90d'));
521
+ return;
522
+ }
523
+ else if (columnType === 'number') {
524
+ setFilters((filters) => {
525
+ return [
526
+ ...filters,
527
+ {
528
+ column: selectedColumn.name,
529
+ columnType,
530
+ numberStart,
531
+ numberEnd,
532
+ tag: `${numberStart} < ${selectedColumn.name} < ${numberEnd}`,
533
+ },
534
+ ];
535
+ });
536
+ setStringFilterValues([]);
537
+ setNumberStart(0);
538
+ setNumberEnd(0);
539
+ setFilterDateRange(getRangeFromPreset('90d'));
540
+ return;
541
+ }
542
+ else if (columnType === 'date') {
543
+ const label = filterDateRange[2]
544
+ ? reportBuilderOptions.find((elem) => elem.value === filterDateRange[2])?.text
545
+ : `${format(new Date(filterDateRange[0]), 'MMM dd')} - ${format(new Date(filterDateRange[1]), 'MMM dd')}`;
546
+ setFilters((filters) => {
547
+ return [
548
+ ...filters,
549
+ {
550
+ column: selectedColumn.name,
551
+ columnType,
552
+ filterDateRange,
553
+ tag: `${selectedColumn.name} (${label})`,
554
+ },
555
+ ];
556
+ });
557
+ setStringFilterValues([]);
558
+ setNumberStart(0);
559
+ setNumberEnd(0);
560
+ setFilterDateRange(getRangeFromPreset('90d'));
561
+ }
562
+ }
563
+ };
564
+ const handleRunQuery = (newSqlQuery) => {
565
+ const queryToUse = newSqlQuery || sqlQuery;
566
+ if (queryToUse && queryToUse.length) {
567
+ runQuery(queryToUse);
568
+ }
569
+ };
570
+ useEffect(() => {
571
+ // if selected table changes, clear everything
572
+ if (selectedTable.displayName !== AST.from.table) {
573
+ setSelectedColumn(selectedTable.columns.find((elem) => elem.name !== 'id'));
574
+ setFilters([]);
575
+ removePivot();
576
+ const resetAST = {
577
+ with: null,
578
+ type: 'select',
579
+ options: null,
580
+ distinct: { type: null },
581
+ columns: '*',
582
+ into: { position: null },
583
+ // where: newDateWhereAST(dateColumn, defaultDateRange),
584
+ where: null,
585
+ groupby: null,
586
+ having: null,
587
+ orderby: null,
588
+ limit: { seperator: '', value: [] },
589
+ window: null,
590
+ from: [{ db: null, table: selectedTable.displayName, as: null }],
591
+ };
592
+ setAST(resetAST);
593
+ setASTNoDateColumn(resetAST);
594
+ return;
595
+ }
596
+ }, [selectedTable]);
597
+ const generateNewAST = (includeDateColumn) => {
598
+ if (filters.length || dateRange) {
599
+ const newAST = {
600
+ with: null,
601
+ type: 'select',
602
+ options: null,
603
+ distinct: null,
604
+ columns: '*',
605
+ into: { position: null },
606
+ from: [{ db: null, table: selectedTable.displayName, as: null }],
607
+ // where: newDateWhereAST(dateColumn, dateRange || defaultDateRange),
608
+ where: null,
609
+ groupby: null,
610
+ having: null,
611
+ orderby: null,
612
+ limit: null,
613
+ window: null,
614
+ };
615
+ // FILTERS
616
+ for (let i = 0; i < filters.length; i++) {
617
+ const filter = filters[i];
618
+ const { column, columnType, stringFilterValues, numberStart, numberEnd, filterDateRange, } = filter;
619
+ let newCondition;
620
+ if (column === dateColumn && !includeDateColumn) {
621
+ continue;
622
+ }
623
+ if (columnType === 'string') {
624
+ newCondition = {
625
+ type: 'binary_expr',
626
+ operator: 'IN',
627
+ left: {
628
+ type: 'column_ref',
629
+ table: null,
630
+ column: column,
631
+ },
632
+ right: {
633
+ type: 'expr_list',
634
+ value: stringFilterValues.map((value) => ({
635
+ type: 'single_quote_string',
636
+ value,
637
+ })),
638
+ },
639
+ };
640
+ }
641
+ else if (columnType === 'number') {
642
+ newCondition = {
643
+ type: 'binary_expr',
644
+ operator: 'BETWEEN',
645
+ left: {
646
+ type: 'column_ref',
647
+ table: null,
648
+ column: column,
649
+ },
650
+ right: {
651
+ type: 'expr_list',
652
+ value: [
653
+ { type: 'number', value: numberStart },
654
+ { type: 'number', value: numberEnd },
655
+ ],
656
+ },
657
+ };
658
+ }
659
+ else if (columnType === 'date') {
660
+ newCondition = newDateWhereAST(column, filterDateRange, client.databaseType);
661
+ }
662
+ if (!newAST.where) {
663
+ newAST.where = newCondition;
664
+ }
665
+ else {
666
+ newAST.where = {
667
+ type: 'binary_expr',
668
+ operator: 'AND',
669
+ left: newAST.where,
670
+ right: newCondition,
671
+ };
672
+ }
673
+ }
674
+ return newAST;
675
+ }
676
+ };
677
+ // USE EFFECT HOOK THAT TRANSFORMS "FILTERS ARRAY INTO AST"
678
+ useEffect(() => {
679
+ if (filters.length || dateRange) {
680
+ setAST(generateNewAST(true));
681
+ setASTNoDateColumn(generateNewAST(false));
682
+ }
683
+ }, [filters, dateRange]);
684
+ const removeFilter = index => {
685
+ setFilters(oldFilters => {
686
+ const newFilters = [...oldFilters];
687
+ newFilters.splice(index, 1);
688
+ return newFilters;
689
+ });
690
+ setIndexBeingEdited(-1);
691
+ };
692
+ const computeStats = useCallback(column => {
693
+ if ((!computedColumns[column.name] ||
694
+ computedColumns[column.name].length === 0) &&
695
+ data) {
696
+ const basicType = getPostgresBasicType(column);
697
+ let result;
698
+ if (basicType === 'number') {
699
+ let min = Infinity, max = -Infinity;
700
+ data.forEach(row => {
701
+ const value = row[column.name];
702
+ min = Math.min(min, value);
703
+ max = Math.max(max, value);
704
+ });
705
+ result = { min, max };
706
+ }
707
+ else if (basicType === 'string') {
708
+ const freqMap = {};
709
+ data.forEach(row => {
710
+ const value = row[column.name];
711
+ if (value !== null && value !== undefined) {
712
+ freqMap[value] = (freqMap[value] || 0) + 1;
713
+ }
714
+ });
715
+ result = Object.entries(freqMap)
716
+ .sort((a, b) => b[1] - a[1])
717
+ .slice(0, 6)
718
+ .map(([key]) => key);
719
+ }
720
+ else {
721
+ // Handle other column types if necessary
722
+ }
723
+ setComputedColumns({
724
+ ...computedColumns,
725
+ [column.name]: result,
726
+ });
727
+ }
728
+ }, [data, computedColumns]);
729
+ // Call this function whenever the selected column changes
730
+ useEffect(() => {
731
+ computeStats(selectedColumn);
732
+ }, [selectedColumn, data]);
733
+ // Use the results directly in your component
734
+ const columnStats = computedColumns[selectedColumn.name];
735
+ // useEffect(() => {
736
+ // if (AST && AST.from[0].table) {
737
+ // const parser = new Parser();
738
+ // const sqlQuery = parser.sqlify(AST, { database: "PostgresQL" });
739
+ // if (sqlQuery) {
740
+ // runQuery(sqlQuery);
741
+ // return;
742
+ // }
743
+ // }
744
+ // }, [AST]);
745
+ useEffect(() => {
746
+ const getSqlQueryFromAST = async () => {
747
+ try {
748
+ if (AST && AST.from[0].table) {
749
+ const resp = await getDataFromCloud(client, 'sqlify', {
750
+ ast: AST,
751
+ });
752
+ const newSqlQuery = resp.query; // assuming the response contains the SQL query
753
+ if (newSqlQuery && newSqlQuery !== sqlQuery) {
754
+ onChangeQuery(newSqlQuery);
755
+ setSqlQuery(newSqlQuery);
756
+ handleRunQuery(newSqlQuery);
757
+ }
758
+ }
759
+ }
760
+ catch (err) {
761
+ console.error(err);
762
+ }
763
+ };
764
+ getSqlQueryFromAST();
765
+ }, [AST]);
766
+ useEffect(() => {
767
+ const getSqlQueryFromAST = async () => {
768
+ try {
769
+ if (ASTNoDateColumn && ASTNoDateColumn.from[0].table) {
770
+ const resp = await getDataFromCloud(client, 'sqlify', {
771
+ ast: ASTNoDateColumn,
772
+ });
773
+ const newSqlQuery = resp.query; // assuming the response contains the SQL query
774
+ if (newSqlQuery && newSqlQuery !== sqlQueryNoDateColumn) {
775
+ setSqlQueryNoDateColumn(newSqlQuery);
776
+ }
777
+ }
778
+ }
779
+ catch (err) {
780
+ console.error(err);
781
+ }
782
+ };
783
+ getSqlQueryFromAST();
784
+ }, [ASTNoDateColumn]);
785
+ if (!schema || !schema.length) {
786
+ return null;
787
+ }
788
+ return (_jsxs("div", { style: { fontFamily: theme?.fontFamily, ...containerStyle }, ref: parentRef, children: [_jsx("div", { style: {
789
+ display: 'flex',
790
+ // marginLeft: '25px',
791
+ // marginRight: '25px',
792
+ justifyContent: 'end',
793
+ }, children: _jsxs("div", { style: { display: 'flex', flexDirection: 'row', gap: '12px' }, children: [editSQLEnabled && (_jsx(SecondaryButtonComponent, { onClick: () => {
794
+ if (navigateToSQLEditor) {
795
+ navigateToSQLEditor(sqlQuery);
796
+ }
797
+ }, label: "Edit Query" })), _jsx(AddFilterModal2, { filters: filters, selectedColumn: selectedColumn, numberStart: numberStart, numberEnd: numberEnd, setDateRange: setFilterDateRange, dateRange: filterDateRange, columnStats: columnStats, stringFilterValues: stringFilterValues, setStringFilterValues: setStringFilterValues, addFilter: addFilter, parentRef: parentRef, setSelectedColumn: setSelectedColumn, setNumberStart: setNumberStart, setNumberEnd: setNumberEnd, selectedTable: selectedTable, columnType: columnType, removeFilter: removeFilter, selectFilter: selectFilter, indexBeingEdited: indexBeingEdited, updateFilter: updateFilter, SelectComponent: SelectComponent, ButtonComponent: ButtonComponent, PopoverComponent: PopoverComponent, TextInputComponent: TextInputComponent, LabelComponent: LabelComponent, tagStyle: tagStyle, theme: theme, setIsOpen: setIsAddFilterModalOpen, isOpen: isAddFilterModalOpen, selectedTagBorderColor: selectedTagBorderColor }), _jsx(PivotModal, { pivotRowField: pivotRowField, setPivotRowField: setPivotRowField, pivotColumnField: pivotColumnField, setPivotColumnField: setPivotColumnField, pivotValueField: pivotValueField, setPivotValueField: setPivotValueField, pivotAggregation: pivotAggregation, setPivotAggregation: setPivotAggregation, createdPivots: createdPivots, setCreatedPivots: setCreatedPivots, recommendedPivots: recommendedPivots, setRecommendedPivots: setRecommendedPivots, selectedTable: selectedTable, SelectComponent: SelectComponent, ButtonComponent: ButtonComponent, PopoverComponent: PopoverComponent, LabelComponent: LabelComponent, HeaderComponent: HeaderComponent, TextComponent: TextComponent, popUpTitle: pivotPopUpTitle, setPopUpTitle: setPivotPopUpTitle, theme: theme, data: data, parentRef: parentRef, columns: columns, setIsOpen: setIsPivotModalOpen, isOpen: isPivotModalOpen, showUpdatePivot: isEdittingPivot, setShowUpdatePivot: setIsEdittingPivot, selectedPivotIndex: selectedPivotIndex, setSelectedPivotIndex: setSelectedPivotIndex, removePivot: removePivot, selectPivot: selectPivot, dateRange: dateRange, rightAlign: true })] }) }), chartBuilderEnabled && columns.length > 0 && (_jsxs("div", { children: [_jsx("div", { style: {
798
+ display: 'flex',
799
+ flexDirection: 'row',
800
+ alignItems: 'center',
801
+ justifyContent: 'flex-end',
802
+ width: '100%',
803
+ height: '70px',
804
+ gap: '8px',
805
+ }, children: _jsx(ButtonComponent, { onClick: () => setIsChartBuilderOpen(true), label: "Add to dashboard" }) }), _jsx(ChartBuilder, { rows: data, columns: columns, fields: fields, query: sqlQuery, queryNoDateColumn: sqlQueryNoDateColumn, pivot: selectedPivot, title: chartBuilderTitle, buttonLabel: chartBuilderButtonLabel, isOpen: isChartBuilderOpen, setIsOpen: setIsChartBuilderOpen, showTableFormatOptions: showTableFormatOptions, showDateFieldOptions: showDateFieldOptions, showAccessControlOptions: showAccessControlOptions, dateRange: dateRange, recommendedPivots: recommendedPivots, destinationDashboard: destinationDashboard, dateColumn: dateColumn })] }))] }));
806
+ }
807
+ function FilterTag({ Label, id, label, removeFilter, isSelected, index, setIsOpen, selectFilter, theme, tagStyle, selectedTagBorderColor, }) {
808
+ const handleRemoveFilter = () => {
809
+ removeFilter(index);
810
+ };
811
+ const handleSelectFilter = () => {
812
+ selectFilter(index);
813
+ setIsOpen(true);
814
+ };
815
+ const styles = tagStyle || {
816
+ cursor: 'pointer',
817
+ borderRadius: 8,
818
+ border: '1px solid',
819
+ backgroundColor: '#EFF0FC',
820
+ paddingLeft: '12px',
821
+ paddingRight: '8px',
822
+ height: 30,
823
+ display: 'flex',
824
+ alignItems: 'center',
825
+ fontSize: 13,
826
+ fontWeight: 'medium',
827
+ color: theme?.primaryTextColor,
828
+ fontFamily: theme?.fontFamily,
829
+ whiteSpace: 'nowrap',
830
+ textOverflow: 'ellipsis',
831
+ outline: 'none',
832
+ maxWidth: 120,
833
+ };
834
+ const borderColor = {
835
+ borderColor: isSelected
836
+ ? selectedTagBorderColor || '#B3B4BD'
837
+ : styles.borderColor || '#EFF0FC',
838
+ };
839
+ return (_jsxs("div", { id: id, onClick: handleSelectFilter, style: { ...styles, ...borderColor }, children: [_jsx("div", { style: {
840
+ textOverflow: 'ellipsis',
841
+ whiteSpace: 'nowrap',
842
+ overflow: 'hidden',
843
+ }, children: label }), _jsx("div", {
844
+ // onClick={handleRemoveFilter}
845
+ onClick: e => {
846
+ e.stopPropagation(); // Prevents the event from bubbling up to the parent
847
+ handleRemoveFilter();
848
+ }, style: {
849
+ display: 'flex',
850
+ flexDirection: 'row',
851
+ alignItems: 'center',
852
+ cursor: 'pointer',
853
+ paddingLeft: '6px',
854
+ }, children: _jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: tagStyle?.color || theme?.primaryTextColor, height: "20", width: "20", children: _jsx("path", { fillRule: "evenodd", d: "M5.47 5.47a.75.75 0 011.06 0L12 10.94l5.47-5.47a.75.75 0 111.06 1.06L13.06 12l5.47 5.47a.75.75 0 11-1.06 1.06L12 13.06l-5.47 5.47a.75.75 0 01-1.06-1.06L10.94 12 5.47 6.53a.75.75 0 010-1.06z", clipRule: "evenodd" }) }) })] }));
855
+ }
856
+ const AddFilterModal2 = ({ filters, selectedColumn, numberStart, numberEnd, setDateRange, dateRange, columnStats, stringFilterValues, setStringFilterValues, addFilter, setSelectedColumn, setNumberStart, setNumberEnd, selectedTable, columnType, removeFilter, selectFilter, indexBeingEdited, updateFilter, SelectComponent, ButtonComponent, PopoverComponent, LabelComponent, theme, TextInputComponent, tagStyle, selectedTagBorderColor, parentRef, }) => {
857
+ const [isOpen, setIsOpen] = useState(false);
858
+ return (_jsxs("div", { style: { display: 'flex', flexDirection: 'column' }, children: [_jsxs("div", { style: {
859
+ position: 'relative',
860
+ display: 'inline-block',
861
+ textAlign: 'left',
862
+ }, children: [_jsx("div", { style: {
863
+ display: 'flex',
864
+ flexDirection: 'row',
865
+ alignItems: 'center',
866
+ }, children: filters.length > 0 && (_jsx("span", { style: {
867
+ height: 10,
868
+ width: 10,
869
+ backgroundColor: theme.primaryButtonColor,
870
+ borderRadius: '50%',
871
+ position: 'absolute',
872
+ top: -2,
873
+ right: -2,
874
+ } })) }), _jsx(PopoverComponent, { parentRef: parentRef, label: "Add filter", style: { right: 0, minWidth: 400, overflow: 'visible' }, isOpen: isOpen, onClose: () => setIsOpen(false), title: "Add filter", setIsOpen: setIsOpen, children: _jsxs("div", { style: {
875
+ backgroundColor: 'rgb(255, 255, 255)',
876
+ display: 'flex',
877
+ flexDirection: 'column',
878
+ }, children: [filters.length > 0 && (_jsx("div", { style: { paddingBottom: 20 }, children: _jsx("div", { style: {
879
+ overflowY: 'scroll',
880
+ maxHeight: '300px',
881
+ display: 'flex',
882
+ gap: '5px',
883
+ flexDirection: 'row',
884
+ flexWrap: 'wrap',
885
+ alignItems: 'center',
886
+ }, children: filters.map((elem, index) => (_jsx(FilterTag, { id: "filter-tag", Label: LabelComponent, label: elem.tag, removeFilter: removeFilter, selectFilter: selectFilter, isSelected: index === indexBeingEdited, index: index, theme: theme, setIsOpen: setIsOpen, tagStyle: tagStyle, selectedTagBorderColor: selectedTagBorderColor }, 'filter' + index))) }) })), _jsx(LabelComponent, { children: "Column" }), _jsx(SelectComponent, { label: 'Column', id: "custom-select", value: selectedColumn.name, onChange: e => {
887
+ const column = selectedTable.columns.find(c => c.name === e);
888
+ setSelectedColumn(column);
889
+ }, options: selectedTable.columns
890
+ .filter(elem => !(elem.name === 'id' || elem.name.endsWith('_id')))
891
+ .map(elem => {
892
+ return { label: elem.name, value: elem.name };
893
+ }) }), columnType === 'number' && (_jsx("div", { children: _jsxs("div", { style: {
894
+ display: 'flex',
895
+ flexDirection: 'row',
896
+ alignItems: 'center',
897
+ justifyContent: 'space-between',
898
+ }, children: [_jsxs("div", { style: {
899
+ display: 'flex',
900
+ flexDirection: 'column',
901
+ marginTop: '20px',
902
+ }, children: [_jsx(LabelComponent, { children: "Minimum" }), _jsx(TextInputComponent, { id: "min-input", value: numberStart, placeholder: "Minimum", onChange: value => setNumberStart(value) })] }), _jsx("div", { style: { width: 16 } }), _jsxs("div", { style: {
903
+ display: 'flex',
904
+ flexDirection: 'column',
905
+ marginTop: '20px',
906
+ }, children: [_jsx(LabelComponent, { children: "Maximum" }), _jsx(TextInputComponent, { id: "max-input", placeholder: "Maximum", value: numberEnd, onChange: value => setNumberEnd(value) })] })] }) })), columnType === 'date' && (_jsx("div", { style: {
907
+ display: 'flex',
908
+ flexDirection: 'row',
909
+ justifyContent: 'space-between',
910
+ marginTop: 20,
911
+ }, children: _jsx(QuillDateRangePicker, { dateRange: dateRange ? [dateRange[0], dateRange[1]] : [null, null], label: '', onChangeDateRange: dateRange => {
912
+ setDateRange([dateRange[0], dateRange[1], null]);
913
+ }, preset: dateRange && dateRange.length === 3 && dateRange[2] !== null
914
+ ? dateRange[2]
915
+ : '', onChangePreset: preset => {
916
+ if (typeof preset === 'string') {
917
+ setDateRange(getRangeFromPreset(preset));
918
+ return;
919
+ }
920
+ setDateRange([
921
+ preset?.startDate || null,
922
+ new Date(),
923
+ preset?.value || '',
924
+ ]);
925
+ }, presetOptions: reportBuilderOptions }) })), columnType === 'string' &&
926
+ columnStats &&
927
+ columnStats.length > 0 && (_jsx("div", { style: {
928
+ flex: 'flex',
929
+ flexDirection: 'column',
930
+ marginTop: '14px',
931
+ overflow: 'hidden',
932
+ }, children: columnStats.map(value => (_jsx("div", { style: {
933
+ display: 'flex',
934
+ flexDirection: 'row',
935
+ alignItems: 'center',
936
+ }, children: _jsxs("div", { style: {
937
+ display: 'flex',
938
+ flexDirection: 'row',
939
+ alignItems: 'center',
940
+ paddingTop: 6,
941
+ paddingBottom: 6,
942
+ }, children: [_jsx(DivCheckbox, { theme: theme, checked: stringFilterValues.includes(value), onChange: () => {
943
+ setStringFilterValues(prev => prev.includes(value)
944
+ ? prev.filter(v => v !== value)
945
+ : [...prev, value]);
946
+ } }), _jsx("div", { style: {
947
+ marginLeft: 6,
948
+ display: 'block',
949
+ overflow: 'hidden',
950
+ textOverflow: 'ellipsis',
951
+ whiteSpace: 'nowrap',
952
+ color: theme?.primaryTextColor,
953
+ fontFamily: theme?.fontFamily,
954
+ }, children: value })] }, value) }, value))) })), _jsx("div", { style: { height: 20 } }), _jsx("div", { children: _jsx(ButtonComponent, { id: "custom-button", onClick: () => {
955
+ if (columnType === 'date' && !dateRange) {
956
+ return;
957
+ }
958
+ if (indexBeingEdited > -1) {
959
+ updateFilter(indexBeingEdited);
960
+ return;
961
+ }
962
+ addFilter();
963
+ }, label: indexBeingEdited > -1 ? 'Edit filter' : 'Add filter' }) })] }) })] }), _jsx("div", { style: { height: '12px' } })] }));
964
+ };
965
+ const DivCheckbox = ({ onChange, checked, theme }) => {
966
+ const toggleCheckbox = () => {
967
+ if (onChange) {
968
+ onChange(!checked);
969
+ }
970
+ };
971
+ const style = {
972
+ // display: 'inline-block',
973
+ width: '18px',
974
+ height: '18px',
975
+ background: checked ? '#384151' : '#fff',
976
+ border: checked ? '1px solid #384151' : '1px solid #E7E7E7',
977
+ borderRadius: '4px',
978
+ position: 'relative',
979
+ cursor: 'pointer',
980
+ boxShadow: '0 1px 2px 0 rgba(0, 0, 0, 0.05)',
981
+ fontFamily: theme?.fontFamily,
982
+ display: 'flex',
983
+ flexDirection: 'column',
984
+ alignItems: 'center',
985
+ justifyContent: 'center',
986
+ };
987
+ return (_jsx("div", { style: style, onClick: toggleCheckbox, "aria-checked": checked,
988
+ // className="shadow-sm"
989
+ role: "checkbox", children: checked && (
990
+ // <CheckIcon
991
+ // style={{ color: theme?.backgroundColor, height: 16, width: 16 }}
992
+ // className="text-white"
993
+ // aria-hidden="true"
994
+ // />
995
+ _jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: theme?.backgroundColor, height: "16", width: "16", children: _jsx("path", { fillRule: "evenodd", d: "M19.916 4.626a.75.75 0 01.208 1.04l-9 13.5a.75.75 0 01-1.154.114l-6-6a.75.75 0 011.06-1.06l5.353 5.353 8.493-12.739a.75.75 0 011.04-.208z", clipRule: "evenodd" }) })) }));
996
+ };