@quillsql/react 2.12.36 → 2.12.37

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 (456) hide show
  1. package/dist/cjs/ChartBuilder.js +2 -2
  2. package/dist/cjs/Dashboard.d.ts.map +1 -1
  3. package/dist/cjs/Dashboard.js +1 -1
  4. package/dist/cjs/components/Chart/ChartError.js +1 -1
  5. package/dist/cjs/utils/dataFetcher.d.ts.map +1 -1
  6. package/dist/cjs/utils/dataFetcher.js +7 -1
  7. package/dist/cjs/utils/report.d.ts.map +1 -1
  8. package/dist/cjs/utils/report.js +6 -3
  9. package/package.json +1 -1
  10. package/dist/esm/Chart.d.ts +0 -204
  11. package/dist/esm/Chart.d.ts.map +0 -1
  12. package/dist/esm/Chart.js +0 -431
  13. package/dist/esm/ChartBuilder.d.ts +0 -339
  14. package/dist/esm/ChartBuilder.d.ts.map +0 -1
  15. package/dist/esm/ChartBuilder.js +0 -1312
  16. package/dist/esm/ChartEditor.d.ts +0 -209
  17. package/dist/esm/ChartEditor.d.ts.map +0 -1
  18. package/dist/esm/ChartEditor.js +0 -182
  19. package/dist/esm/Context.d.ts +0 -14
  20. package/dist/esm/Context.d.ts.map +0 -1
  21. package/dist/esm/Context.js +0 -269
  22. package/dist/esm/Dashboard.d.ts +0 -279
  23. package/dist/esm/Dashboard.d.ts.map +0 -1
  24. package/dist/esm/Dashboard.js +0 -660
  25. package/dist/esm/DateRangePicker/Calendar.d.ts +0 -17
  26. package/dist/esm/DateRangePicker/Calendar.d.ts.map +0 -1
  27. package/dist/esm/DateRangePicker/Calendar.js +0 -164
  28. package/dist/esm/DateRangePicker/DateRangePicker.d.ts +0 -39
  29. package/dist/esm/DateRangePicker/DateRangePicker.d.ts.map +0 -1
  30. package/dist/esm/DateRangePicker/DateRangePicker.js +0 -95
  31. package/dist/esm/DateRangePicker/DateRangePickerButton.d.ts +0 -22
  32. package/dist/esm/DateRangePicker/DateRangePickerButton.d.ts.map +0 -1
  33. package/dist/esm/DateRangePicker/DateRangePickerButton.js +0 -134
  34. package/dist/esm/DateRangePicker/QuillDateRangePicker.d.ts +0 -25
  35. package/dist/esm/DateRangePicker/QuillDateRangePicker.d.ts.map +0 -1
  36. package/dist/esm/DateRangePicker/QuillDateRangePicker.js +0 -260
  37. package/dist/esm/DateRangePicker/dateRangePickerUtils.d.ts +0 -80
  38. package/dist/esm/DateRangePicker/dateRangePickerUtils.d.ts.map +0 -1
  39. package/dist/esm/DateRangePicker/dateRangePickerUtils.js +0 -521
  40. package/dist/esm/DateRangePicker/index.d.ts +0 -3
  41. package/dist/esm/DateRangePicker/index.d.ts.map +0 -1
  42. package/dist/esm/DateRangePicker/index.js +0 -2
  43. package/dist/esm/QuillProvider.d.ts +0 -163
  44. package/dist/esm/QuillProvider.d.ts.map +0 -1
  45. package/dist/esm/QuillProvider.js +0 -104
  46. package/dist/esm/ReportBuilder.d.ts +0 -318
  47. package/dist/esm/ReportBuilder.d.ts.map +0 -1
  48. package/dist/esm/ReportBuilder.js +0 -3279
  49. package/dist/esm/SQLEditor.d.ts +0 -272
  50. package/dist/esm/SQLEditor.d.ts.map +0 -1
  51. package/dist/esm/SQLEditor.js +0 -510
  52. package/dist/esm/Table.d.ts +0 -167
  53. package/dist/esm/Table.d.ts.map +0 -1
  54. package/dist/esm/Table.js +0 -215
  55. package/dist/esm/TableChart.d.ts +0 -15
  56. package/dist/esm/TableChart.d.ts.map +0 -1
  57. package/dist/esm/TableChart.js +0 -95
  58. package/dist/esm/assets/ArrowDownHeadIcon.d.ts +0 -5
  59. package/dist/esm/assets/ArrowDownHeadIcon.d.ts.map +0 -1
  60. package/dist/esm/assets/ArrowDownHeadIcon.js +0 -3
  61. package/dist/esm/assets/ArrowDownIcon.d.ts +0 -5
  62. package/dist/esm/assets/ArrowDownIcon.d.ts.map +0 -1
  63. package/dist/esm/assets/ArrowDownIcon.js +0 -3
  64. package/dist/esm/assets/ArrowDownRightIcon.d.ts +0 -5
  65. package/dist/esm/assets/ArrowDownRightIcon.d.ts.map +0 -1
  66. package/dist/esm/assets/ArrowDownRightIcon.js +0 -3
  67. package/dist/esm/assets/ArrowLeftHeadIcon.d.ts +0 -5
  68. package/dist/esm/assets/ArrowLeftHeadIcon.d.ts.map +0 -1
  69. package/dist/esm/assets/ArrowLeftHeadIcon.js +0 -3
  70. package/dist/esm/assets/ArrowRightHeadIcon.d.ts +0 -5
  71. package/dist/esm/assets/ArrowRightHeadIcon.d.ts.map +0 -1
  72. package/dist/esm/assets/ArrowRightHeadIcon.js +0 -3
  73. package/dist/esm/assets/ArrowRightIcon.d.ts +0 -5
  74. package/dist/esm/assets/ArrowRightIcon.d.ts.map +0 -1
  75. package/dist/esm/assets/ArrowRightIcon.js +0 -3
  76. package/dist/esm/assets/ArrowUpHeadIcon.d.ts +0 -5
  77. package/dist/esm/assets/ArrowUpHeadIcon.d.ts.map +0 -1
  78. package/dist/esm/assets/ArrowUpHeadIcon.js +0 -3
  79. package/dist/esm/assets/ArrowUpIcon.d.ts +0 -5
  80. package/dist/esm/assets/ArrowUpIcon.d.ts.map +0 -1
  81. package/dist/esm/assets/ArrowUpIcon.js +0 -3
  82. package/dist/esm/assets/ArrowUpRightIcon.d.ts +0 -5
  83. package/dist/esm/assets/ArrowUpRightIcon.d.ts.map +0 -1
  84. package/dist/esm/assets/ArrowUpRightIcon.js +0 -3
  85. package/dist/esm/assets/CalendarIcon.d.ts +0 -5
  86. package/dist/esm/assets/CalendarIcon.d.ts.map +0 -1
  87. package/dist/esm/assets/CalendarIcon.js +0 -3
  88. package/dist/esm/assets/CalendarNormalIcon.d.ts +0 -5
  89. package/dist/esm/assets/CalendarNormalIcon.d.ts.map +0 -1
  90. package/dist/esm/assets/CalendarNormalIcon.js +0 -3
  91. package/dist/esm/assets/DoubleArrowLeftHeadIcon.d.ts +0 -5
  92. package/dist/esm/assets/DoubleArrowLeftHeadIcon.d.ts.map +0 -1
  93. package/dist/esm/assets/DoubleArrowLeftHeadIcon.js +0 -3
  94. package/dist/esm/assets/DoubleArrowRightHeadIcon.d.ts +0 -5
  95. package/dist/esm/assets/DoubleArrowRightHeadIcon.d.ts.map +0 -1
  96. package/dist/esm/assets/DoubleArrowRightHeadIcon.js +0 -3
  97. package/dist/esm/assets/ExclamationFilledIcon.d.ts +0 -5
  98. package/dist/esm/assets/ExclamationFilledIcon.d.ts.map +0 -1
  99. package/dist/esm/assets/ExclamationFilledIcon.js +0 -3
  100. package/dist/esm/assets/FilterIcon.d.ts +0 -5
  101. package/dist/esm/assets/FilterIcon.d.ts.map +0 -1
  102. package/dist/esm/assets/FilterIcon.js +0 -3
  103. package/dist/esm/assets/LoadingSpinner.d.ts +0 -5
  104. package/dist/esm/assets/LoadingSpinner.d.ts.map +0 -1
  105. package/dist/esm/assets/LoadingSpinner.js +0 -3
  106. package/dist/esm/assets/RefreshIcon.d.ts +0 -5
  107. package/dist/esm/assets/RefreshIcon.d.ts.map +0 -1
  108. package/dist/esm/assets/RefreshIcon.js +0 -3
  109. package/dist/esm/assets/SearchIcon.d.ts +0 -5
  110. package/dist/esm/assets/SearchIcon.d.ts.map +0 -1
  111. package/dist/esm/assets/SearchIcon.js +0 -3
  112. package/dist/esm/assets/UpLeftArrowsIcon.d.ts +0 -5
  113. package/dist/esm/assets/UpLeftArrowsIcon.d.ts.map +0 -1
  114. package/dist/esm/assets/UpLeftArrowsIcon.js +0 -3
  115. package/dist/esm/assets/XCircleIcon.d.ts +0 -5
  116. package/dist/esm/assets/XCircleIcon.d.ts.map +0 -1
  117. package/dist/esm/assets/XCircleIcon.js +0 -3
  118. package/dist/esm/assets/XIcon.d.ts +0 -5
  119. package/dist/esm/assets/XIcon.d.ts.map +0 -1
  120. package/dist/esm/assets/XIcon.js +0 -3
  121. package/dist/esm/assets/index.d.ts +0 -22
  122. package/dist/esm/assets/index.d.ts.map +0 -1
  123. package/dist/esm/assets/index.js +0 -21
  124. package/dist/esm/components/Banner/index.d.ts +0 -3
  125. package/dist/esm/components/Banner/index.d.ts.map +0 -1
  126. package/dist/esm/components/Banner/index.js +0 -24
  127. package/dist/esm/components/BigModal/BigModal.d.ts +0 -15
  128. package/dist/esm/components/BigModal/BigModal.d.ts.map +0 -1
  129. package/dist/esm/components/BigModal/BigModal.js +0 -56
  130. package/dist/esm/components/Chart/BarChart.d.ts +0 -23
  131. package/dist/esm/components/Chart/BarChart.d.ts.map +0 -1
  132. package/dist/esm/components/Chart/BarChart.js +0 -110
  133. package/dist/esm/components/Chart/BarList.d.ts +0 -27
  134. package/dist/esm/components/Chart/BarList.d.ts.map +0 -1
  135. package/dist/esm/components/Chart/BarList.js +0 -148
  136. package/dist/esm/components/Chart/ChartError.d.ts +0 -10
  137. package/dist/esm/components/Chart/ChartError.d.ts.map +0 -1
  138. package/dist/esm/components/Chart/ChartError.js +0 -65
  139. package/dist/esm/components/Chart/ChartSkeleton.d.ts +0 -8
  140. package/dist/esm/components/Chart/ChartSkeleton.d.ts.map +0 -1
  141. package/dist/esm/components/Chart/ChartSkeleton.js +0 -19
  142. package/dist/esm/components/Chart/ChartTooltip.d.ts +0 -31
  143. package/dist/esm/components/Chart/ChartTooltip.d.ts.map +0 -1
  144. package/dist/esm/components/Chart/ChartTooltip.js +0 -234
  145. package/dist/esm/components/Chart/ChartTooltipFrame.d.ts +0 -6
  146. package/dist/esm/components/Chart/ChartTooltipFrame.d.ts.map +0 -1
  147. package/dist/esm/components/Chart/ChartTooltipFrame.js +0 -14
  148. package/dist/esm/components/Chart/ChartTooltipGroup.d.ts +0 -11
  149. package/dist/esm/components/Chart/ChartTooltipGroup.d.ts.map +0 -1
  150. package/dist/esm/components/Chart/ChartTooltipGroup.js +0 -23
  151. package/dist/esm/components/Chart/ChartTooltipRow.d.ts +0 -8
  152. package/dist/esm/components/Chart/ChartTooltipRow.d.ts.map +0 -1
  153. package/dist/esm/components/Chart/ChartTooltipRow.js +0 -41
  154. package/dist/esm/components/Chart/LineChart.d.ts +0 -29
  155. package/dist/esm/components/Chart/LineChart.d.ts.map +0 -1
  156. package/dist/esm/components/Chart/LineChart.js +0 -163
  157. package/dist/esm/components/Chart/PieChart.d.ts +0 -62
  158. package/dist/esm/components/Chart/PieChart.d.ts.map +0 -1
  159. package/dist/esm/components/Chart/PieChart.js +0 -195
  160. package/dist/esm/components/Dashboard/ChartComponent.d.ts +0 -4
  161. package/dist/esm/components/Dashboard/ChartComponent.d.ts.map +0 -1
  162. package/dist/esm/components/Dashboard/ChartComponent.js +0 -60
  163. package/dist/esm/components/Dashboard/DashboardFilter.d.ts +0 -38
  164. package/dist/esm/components/Dashboard/DashboardFilter.d.ts.map +0 -1
  165. package/dist/esm/components/Dashboard/DashboardFilter.js +0 -89
  166. package/dist/esm/components/Dashboard/DashboardSection.d.ts +0 -7
  167. package/dist/esm/components/Dashboard/DashboardSection.d.ts.map +0 -1
  168. package/dist/esm/components/Dashboard/DashboardSection.js +0 -22
  169. package/dist/esm/components/Dashboard/DashboardSectionContainer.d.ts +0 -3
  170. package/dist/esm/components/Dashboard/DashboardSectionContainer.d.ts.map +0 -1
  171. package/dist/esm/components/Dashboard/DashboardSectionContainer.js +0 -10
  172. package/dist/esm/components/Dashboard/DataLoader.d.ts +0 -44
  173. package/dist/esm/components/Dashboard/DataLoader.d.ts.map +0 -1
  174. package/dist/esm/components/Dashboard/DataLoader.js +0 -190
  175. package/dist/esm/components/Dashboard/MetricComponent.d.ts +0 -4
  176. package/dist/esm/components/Dashboard/MetricComponent.d.ts.map +0 -1
  177. package/dist/esm/components/Dashboard/MetricComponent.js +0 -133
  178. package/dist/esm/components/Dashboard/TableComponent.d.ts +0 -15
  179. package/dist/esm/components/Dashboard/TableComponent.d.ts.map +0 -1
  180. package/dist/esm/components/Dashboard/TableComponent.js +0 -62
  181. package/dist/esm/components/Dropdown/Dropdown.d.ts +0 -14
  182. package/dist/esm/components/Dropdown/Dropdown.d.ts.map +0 -1
  183. package/dist/esm/components/Dropdown/Dropdown.js +0 -69
  184. package/dist/esm/components/Dropdown/DropdownItem.d.ts +0 -11
  185. package/dist/esm/components/Dropdown/DropdownItem.d.ts.map +0 -1
  186. package/dist/esm/components/Dropdown/DropdownItem.js +0 -37
  187. package/dist/esm/components/Dropdown/index.d.ts +0 -3
  188. package/dist/esm/components/Dropdown/index.d.ts.map +0 -1
  189. package/dist/esm/components/Dropdown/index.js +0 -2
  190. package/dist/esm/components/Modal/Modal.d.ts +0 -15
  191. package/dist/esm/components/Modal/Modal.d.ts.map +0 -1
  192. package/dist/esm/components/Modal/Modal.js +0 -64
  193. package/dist/esm/components/Modal/index.d.ts +0 -2
  194. package/dist/esm/components/Modal/index.d.ts.map +0 -1
  195. package/dist/esm/components/Modal/index.js +0 -1
  196. package/dist/esm/components/QuillCard.d.ts +0 -9
  197. package/dist/esm/components/QuillCard.d.ts.map +0 -1
  198. package/dist/esm/components/QuillCard.js +0 -56
  199. package/dist/esm/components/QuillMultiSelect.d.ts +0 -11
  200. package/dist/esm/components/QuillMultiSelect.d.ts.map +0 -1
  201. package/dist/esm/components/QuillMultiSelect.js +0 -193
  202. package/dist/esm/components/QuillMultiSelectWithCombo.d.ts +0 -11
  203. package/dist/esm/components/QuillMultiSelectWithCombo.d.ts.map +0 -1
  204. package/dist/esm/components/QuillMultiSelectWithCombo.js +0 -215
  205. package/dist/esm/components/QuillSelect.d.ts +0 -6
  206. package/dist/esm/components/QuillSelect.d.ts.map +0 -1
  207. package/dist/esm/components/QuillSelect.js +0 -136
  208. package/dist/esm/components/QuillSelectWithCombo.d.ts +0 -6
  209. package/dist/esm/components/QuillSelectWithCombo.d.ts.map +0 -1
  210. package/dist/esm/components/QuillSelectWithCombo.js +0 -163
  211. package/dist/esm/components/QuillTable.d.ts +0 -31
  212. package/dist/esm/components/QuillTable.d.ts.map +0 -1
  213. package/dist/esm/components/QuillTable.js +0 -261
  214. package/dist/esm/components/ReportBuilder/AddColumnModal.d.ts +0 -34
  215. package/dist/esm/components/ReportBuilder/AddColumnModal.d.ts.map +0 -1
  216. package/dist/esm/components/ReportBuilder/AddColumnModal.js +0 -145
  217. package/dist/esm/components/ReportBuilder/AddLimitPopover.d.ts +0 -26
  218. package/dist/esm/components/ReportBuilder/AddLimitPopover.d.ts.map +0 -1
  219. package/dist/esm/components/ReportBuilder/AddLimitPopover.js +0 -36
  220. package/dist/esm/components/ReportBuilder/AddSortPopover.d.ts +0 -23
  221. package/dist/esm/components/ReportBuilder/AddSortPopover.d.ts.map +0 -1
  222. package/dist/esm/components/ReportBuilder/AddSortPopover.js +0 -73
  223. package/dist/esm/components/ReportBuilder/FilterModal.d.ts +0 -30
  224. package/dist/esm/components/ReportBuilder/FilterModal.d.ts.map +0 -1
  225. package/dist/esm/components/ReportBuilder/FilterModal.js +0 -576
  226. package/dist/esm/components/ReportBuilder/ast.d.ts +0 -523
  227. package/dist/esm/components/ReportBuilder/ast.d.ts.map +0 -1
  228. package/dist/esm/components/ReportBuilder/ast.js +0 -230
  229. package/dist/esm/components/ReportBuilder/bigDateMap.d.ts +0 -7
  230. package/dist/esm/components/ReportBuilder/bigDateMap.d.ts.map +0 -1
  231. package/dist/esm/components/ReportBuilder/bigDateMap.js +0 -687
  232. package/dist/esm/components/ReportBuilder/constants.d.ts +0 -117
  233. package/dist/esm/components/ReportBuilder/constants.d.ts.map +0 -1
  234. package/dist/esm/components/ReportBuilder/constants.js +0 -161
  235. package/dist/esm/components/ReportBuilder/convert.d.ts +0 -65
  236. package/dist/esm/components/ReportBuilder/convert.d.ts.map +0 -1
  237. package/dist/esm/components/ReportBuilder/convert.js +0 -717
  238. package/dist/esm/components/ReportBuilder/operators.d.ts +0 -462
  239. package/dist/esm/components/ReportBuilder/operators.d.ts.map +0 -1
  240. package/dist/esm/components/ReportBuilder/operators.js +0 -581
  241. package/dist/esm/components/ReportBuilder/pivot.d.ts +0 -16
  242. package/dist/esm/components/ReportBuilder/pivot.d.ts.map +0 -1
  243. package/dist/esm/components/ReportBuilder/pivot.js +0 -1
  244. package/dist/esm/components/ReportBuilder/postgres.d.ts +0 -150
  245. package/dist/esm/components/ReportBuilder/postgres.d.ts.map +0 -1
  246. package/dist/esm/components/ReportBuilder/postgres.js +0 -355
  247. package/dist/esm/components/ReportBuilder/schema.d.ts +0 -23
  248. package/dist/esm/components/ReportBuilder/schema.d.ts.map +0 -1
  249. package/dist/esm/components/ReportBuilder/schema.js +0 -1
  250. package/dist/esm/components/ReportBuilder/ui.d.ts +0 -119
  251. package/dist/esm/components/ReportBuilder/ui.d.ts.map +0 -1
  252. package/dist/esm/components/ReportBuilder/ui.js +0 -382
  253. package/dist/esm/components/ReportBuilder/util.d.ts +0 -76
  254. package/dist/esm/components/ReportBuilder/util.d.ts.map +0 -1
  255. package/dist/esm/components/ReportBuilder/util.js +0 -729
  256. package/dist/esm/components/UiComponents.d.ts +0 -221
  257. package/dist/esm/components/UiComponents.d.ts.map +0 -1
  258. package/dist/esm/components/UiComponents.js +0 -571
  259. package/dist/esm/components/selectUtils.d.ts +0 -9
  260. package/dist/esm/components/selectUtils.d.ts.map +0 -1
  261. package/dist/esm/components/selectUtils.js +0 -17
  262. package/dist/esm/contexts/BaseColorContext.d.ts +0 -4
  263. package/dist/esm/contexts/BaseColorContext.d.ts.map +0 -1
  264. package/dist/esm/contexts/BaseColorContext.js +0 -3
  265. package/dist/esm/contexts/HoveredValueContext.d.ts +0 -8
  266. package/dist/esm/contexts/HoveredValueContext.d.ts.map +0 -1
  267. package/dist/esm/contexts/HoveredValueContext.js +0 -5
  268. package/dist/esm/contexts/RootStylesContext.d.ts +0 -4
  269. package/dist/esm/contexts/RootStylesContext.d.ts.map +0 -1
  270. package/dist/esm/contexts/RootStylesContext.js +0 -3
  271. package/dist/esm/contexts/SelectedValueContext.d.ts +0 -8
  272. package/dist/esm/contexts/SelectedValueContext.d.ts.map +0 -1
  273. package/dist/esm/contexts/SelectedValueContext.js +0 -6
  274. package/dist/esm/contexts/index.d.ts +0 -5
  275. package/dist/esm/contexts/index.d.ts.map +0 -1
  276. package/dist/esm/contexts/index.js +0 -4
  277. package/dist/esm/hooks/index.d.ts +0 -6
  278. package/dist/esm/hooks/index.d.ts.map +0 -1
  279. package/dist/esm/hooks/index.js +0 -5
  280. package/dist/esm/hooks/useAstToFilterTree.d.ts +0 -11
  281. package/dist/esm/hooks/useAstToFilterTree.d.ts.map +0 -1
  282. package/dist/esm/hooks/useAstToFilterTree.js +0 -24
  283. package/dist/esm/hooks/useDashboard.d.ts +0 -7
  284. package/dist/esm/hooks/useDashboard.d.ts.map +0 -1
  285. package/dist/esm/hooks/useDashboard.js +0 -69
  286. package/dist/esm/hooks/useExport.d.ts +0 -6
  287. package/dist/esm/hooks/useExport.d.ts.map +0 -1
  288. package/dist/esm/hooks/useExport.js +0 -125
  289. package/dist/esm/hooks/useFormat.d.ts +0 -5
  290. package/dist/esm/hooks/useFormat.d.ts.map +0 -1
  291. package/dist/esm/hooks/useFormat.js +0 -25
  292. package/dist/esm/hooks/useInternalState.d.ts +0 -4
  293. package/dist/esm/hooks/useInternalState.d.ts.map +0 -1
  294. package/dist/esm/hooks/useInternalState.js +0 -14
  295. package/dist/esm/hooks/useOnClickOutside.d.ts +0 -3
  296. package/dist/esm/hooks/useOnClickOutside.d.ts.map +0 -1
  297. package/dist/esm/hooks/useOnClickOutside.js +0 -18
  298. package/dist/esm/hooks/useOnWindowResize.d.ts +0 -5
  299. package/dist/esm/hooks/useOnWindowResize.d.ts.map +0 -1
  300. package/dist/esm/hooks/useOnWindowResize.js +0 -14
  301. package/dist/esm/hooks/useQuill.d.ts +0 -37
  302. package/dist/esm/hooks/useQuill.d.ts.map +0 -1
  303. package/dist/esm/hooks/useQuill.js +0 -182
  304. package/dist/esm/hooks/useSelectOnKeyDown.d.ts +0 -3
  305. package/dist/esm/hooks/useSelectOnKeyDown.d.ts.map +0 -1
  306. package/dist/esm/hooks/useSelectOnKeyDown.js +0 -63
  307. package/dist/esm/hooks/useTheme.d.ts +0 -7
  308. package/dist/esm/hooks/useTheme.d.ts.map +0 -1
  309. package/dist/esm/hooks/useTheme.js +0 -10
  310. package/dist/esm/index.d.ts +0 -29
  311. package/dist/esm/index.d.ts.map +0 -1
  312. package/dist/esm/index.js +0 -16
  313. package/dist/esm/internals/ReportBuilder/PivotForm.d.ts +0 -28
  314. package/dist/esm/internals/ReportBuilder/PivotForm.d.ts.map +0 -1
  315. package/dist/esm/internals/ReportBuilder/PivotForm.js +0 -62
  316. package/dist/esm/internals/ReportBuilder/PivotList.d.ts +0 -39
  317. package/dist/esm/internals/ReportBuilder/PivotList.d.ts.map +0 -1
  318. package/dist/esm/internals/ReportBuilder/PivotList.js +0 -89
  319. package/dist/esm/internals/ReportBuilder/PivotModal.d.ts +0 -146
  320. package/dist/esm/internals/ReportBuilder/PivotModal.d.ts.map +0 -1
  321. package/dist/esm/internals/ReportBuilder/PivotModal.js +0 -1210
  322. package/dist/esm/lib/font.d.ts +0 -14
  323. package/dist/esm/lib/font.d.ts.map +0 -1
  324. package/dist/esm/lib/font.js +0 -13
  325. package/dist/esm/lib/index.d.ts +0 -4
  326. package/dist/esm/lib/index.d.ts.map +0 -1
  327. package/dist/esm/lib/index.js +0 -3
  328. package/dist/esm/lib/inputTypes.d.ts +0 -21
  329. package/dist/esm/lib/inputTypes.d.ts.map +0 -1
  330. package/dist/esm/lib/inputTypes.js +0 -55
  331. package/dist/esm/lib/utils.d.ts +0 -10
  332. package/dist/esm/lib/utils.d.ts.map +0 -1
  333. package/dist/esm/lib/utils.js +0 -35
  334. package/dist/esm/models/Columns.d.ts +0 -12
  335. package/dist/esm/models/Columns.d.ts.map +0 -1
  336. package/dist/esm/models/Columns.js +0 -1
  337. package/dist/esm/models/Filter.d.ts +0 -118
  338. package/dist/esm/models/Filter.d.ts.map +0 -1
  339. package/dist/esm/models/Filter.js +0 -98
  340. package/dist/esm/models/Pagination.d.ts +0 -10
  341. package/dist/esm/models/Pagination.d.ts.map +0 -1
  342. package/dist/esm/models/Pagination.js +0 -1
  343. package/dist/esm/models/Pivots.d.ts +0 -2
  344. package/dist/esm/models/Pivots.d.ts.map +0 -1
  345. package/dist/esm/models/Pivots.js +0 -1
  346. package/dist/esm/models/Report.d.ts +0 -103
  347. package/dist/esm/models/Report.d.ts.map +0 -1
  348. package/dist/esm/models/Report.js +0 -1
  349. package/dist/esm/models/Tables.d.ts +0 -8
  350. package/dist/esm/models/Tables.d.ts.map +0 -1
  351. package/dist/esm/models/Tables.js +0 -1
  352. package/dist/esm/utils/aggregate.d.ts +0 -4
  353. package/dist/esm/utils/aggregate.d.ts.map +0 -1
  354. package/dist/esm/utils/aggregate.js +0 -422
  355. package/dist/esm/utils/astFilterProcessing.d.ts +0 -36
  356. package/dist/esm/utils/astFilterProcessing.d.ts.map +0 -1
  357. package/dist/esm/utils/astFilterProcessing.js +0 -8084
  358. package/dist/esm/utils/astProcessing.d.ts +0 -26
  359. package/dist/esm/utils/astProcessing.d.ts.map +0 -1
  360. package/dist/esm/utils/astProcessing.js +0 -254
  361. package/dist/esm/utils/axisFormatter.d.ts +0 -20
  362. package/dist/esm/utils/axisFormatter.d.ts.map +0 -1
  363. package/dist/esm/utils/axisFormatter.js +0 -179
  364. package/dist/esm/utils/color.d.ts +0 -44
  365. package/dist/esm/utils/color.d.ts.map +0 -1
  366. package/dist/esm/utils/color.js +0 -425
  367. package/dist/esm/utils/columnProcessing.d.ts +0 -13
  368. package/dist/esm/utils/columnProcessing.d.ts.map +0 -1
  369. package/dist/esm/utils/columnProcessing.js +0 -260
  370. package/dist/esm/utils/constants.d.ts +0 -2
  371. package/dist/esm/utils/constants.d.ts.map +0 -1
  372. package/dist/esm/utils/constants.js +0 -1
  373. package/dist/esm/utils/crypto.d.ts +0 -2
  374. package/dist/esm/utils/crypto.d.ts.map +0 -1
  375. package/dist/esm/utils/crypto.js +0 -10
  376. package/dist/esm/utils/csv.d.ts +0 -6
  377. package/dist/esm/utils/csv.d.ts.map +0 -1
  378. package/dist/esm/utils/csv.js +0 -78
  379. package/dist/esm/utils/dashboard.d.ts +0 -13
  380. package/dist/esm/utils/dashboard.d.ts.map +0 -1
  381. package/dist/esm/utils/dashboard.js +0 -171
  382. package/dist/esm/utils/dataFetcher.d.ts +0 -3
  383. package/dist/esm/utils/dataFetcher.d.ts.map +0 -1
  384. package/dist/esm/utils/dataFetcher.js +0 -199
  385. package/dist/esm/utils/dataProcessing.d.ts +0 -11
  386. package/dist/esm/utils/dataProcessing.d.ts.map +0 -1
  387. package/dist/esm/utils/dataProcessing.js +0 -162
  388. package/dist/esm/utils/dates.d.ts +0 -20
  389. package/dist/esm/utils/dates.d.ts.map +0 -1
  390. package/dist/esm/utils/dates.js +0 -95
  391. package/dist/esm/utils/error.d.ts +0 -5
  392. package/dist/esm/utils/error.d.ts.map +0 -1
  393. package/dist/esm/utils/error.js +0 -8
  394. package/dist/esm/utils/errorProcessing.d.ts +0 -2
  395. package/dist/esm/utils/errorProcessing.d.ts.map +0 -1
  396. package/dist/esm/utils/errorProcessing.js +0 -5
  397. package/dist/esm/utils/filterConstants.d.ts +0 -34
  398. package/dist/esm/utils/filterConstants.d.ts.map +0 -1
  399. package/dist/esm/utils/filterConstants.js +0 -33
  400. package/dist/esm/utils/filterProcessing.d.ts +0 -10
  401. package/dist/esm/utils/filterProcessing.d.ts.map +0 -1
  402. package/dist/esm/utils/filterProcessing.js +0 -232
  403. package/dist/esm/utils/getDomain.d.ts +0 -8
  404. package/dist/esm/utils/getDomain.d.ts.map +0 -1
  405. package/dist/esm/utils/getDomain.js +0 -52
  406. package/dist/esm/utils/logging.d.ts +0 -2
  407. package/dist/esm/utils/logging.d.ts.map +0 -1
  408. package/dist/esm/utils/logging.js +0 -7
  409. package/dist/esm/utils/merge.d.ts +0 -2
  410. package/dist/esm/utils/merge.d.ts.map +0 -1
  411. package/dist/esm/utils/merge.js +0 -18
  412. package/dist/esm/utils/monacoConfig.d.ts +0 -21
  413. package/dist/esm/utils/monacoConfig.d.ts.map +0 -1
  414. package/dist/esm/utils/monacoConfig.js +0 -319
  415. package/dist/esm/utils/paginationProcessing.d.ts +0 -5
  416. package/dist/esm/utils/paginationProcessing.d.ts.map +0 -1
  417. package/dist/esm/utils/paginationProcessing.js +0 -25
  418. package/dist/esm/utils/parserBigQuery.d.ts +0 -6
  419. package/dist/esm/utils/parserBigQuery.d.ts.map +0 -1
  420. package/dist/esm/utils/parserBigQuery.js +0 -52
  421. package/dist/esm/utils/parserPostgres.d.ts +0 -3
  422. package/dist/esm/utils/parserPostgres.d.ts.map +0 -1
  423. package/dist/esm/utils/parserPostgres.js +0 -37
  424. package/dist/esm/utils/pivotConstructor.d.ts +0 -7
  425. package/dist/esm/utils/pivotConstructor.d.ts.map +0 -1
  426. package/dist/esm/utils/pivotConstructor.js +0 -151
  427. package/dist/esm/utils/pivotProcessing.d.ts +0 -17
  428. package/dist/esm/utils/pivotProcessing.d.ts.map +0 -1
  429. package/dist/esm/utils/pivotProcessing.js +0 -132
  430. package/dist/esm/utils/queryConstructor.d.ts +0 -7
  431. package/dist/esm/utils/queryConstructor.d.ts.map +0 -1
  432. package/dist/esm/utils/queryConstructor.js +0 -226
  433. package/dist/esm/utils/report.d.ts +0 -10
  434. package/dist/esm/utils/report.d.ts.map +0 -1
  435. package/dist/esm/utils/report.js +0 -183
  436. package/dist/esm/utils/schema.d.ts +0 -6
  437. package/dist/esm/utils/schema.d.ts.map +0 -1
  438. package/dist/esm/utils/schema.js +0 -153
  439. package/dist/esm/utils/styles.d.ts +0 -17
  440. package/dist/esm/utils/styles.d.ts.map +0 -1
  441. package/dist/esm/utils/styles.js +0 -16
  442. package/dist/esm/utils/tableProcessing.d.ts +0 -45
  443. package/dist/esm/utils/tableProcessing.d.ts.map +0 -1
  444. package/dist/esm/utils/tableProcessing.js +0 -300
  445. package/dist/esm/utils/textProcessing.d.ts +0 -6
  446. package/dist/esm/utils/textProcessing.d.ts.map +0 -1
  447. package/dist/esm/utils/textProcessing.js +0 -49
  448. package/dist/esm/utils/validation.d.ts +0 -9
  449. package/dist/esm/utils/validation.d.ts.map +0 -1
  450. package/dist/esm/utils/validation.js +0 -20
  451. package/dist/esm/utils/valueFormatter.d.ts +0 -29
  452. package/dist/esm/utils/valueFormatter.d.ts.map +0 -1
  453. package/dist/esm/utils/valueFormatter.js +0 -342
  454. package/dist/esm/utils/width.d.ts +0 -12
  455. package/dist/esm/utils/width.d.ts.map +0 -1
  456. package/dist/esm/utils/width.js +0 -21
@@ -1,660 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useContext, useEffect, useState, } from 'react';
3
- import { ChartDisplay } from './Chart';
4
- import { PRIMARY_RANGE, COMPARISON_RANGE, defaultOptionsV2, getRangeFromPresetOptions, } from './DateRangePicker/dateRangePickerUtils';
5
- import { ClientContext, DashboardContext, ThemeContext, DashboardFiltersContext, SchemaContext, } from './Context';
6
- import { useDashboard } from './hooks/useDashboard';
7
- import { hashCode } from './utils/crypto';
8
- import DashboardSectionContainer from './components/Dashboard/DashboardSectionContainer';
9
- import QuillMetricComponent from './components/Dashboard/MetricComponent';
10
- import QuillTableComponent from './components/Dashboard/TableComponent';
11
- import QuillChartComponent from './components/Dashboard/ChartComponent';
12
- import DashboardSection from './components/Dashboard/DashboardSection';
13
- import { styleToProps } from './utils/styles';
14
- import { QuillDateRangePicker } from './DateRangePicker/QuillDateRangePicker';
15
- import DataLoader, { ChartDataLoader, } from './components/Dashboard/DataLoader';
16
- import { QuillEmptyDashboardComponent, QuillFilterContainerComponent, QuillLoadingDashboardComponent, QuillUserFilterModalComponent, MemoizedButton, MemoizedSecondaryButton, QuillTextInput, MemoizedPopover, QuillErrorMessageComponent, } from './components/UiComponents';
17
- import { DashboardFilter } from './components/Dashboard/DashboardFilter';
18
- import { BoolOperator, FieldTypes, NullOperator, NumberOperator, StringOperator, } from './models/Filter';
19
- import { QuillMultiSelectComponentWithCombo } from './components/QuillMultiSelectWithCombo';
20
- import { QuillSelectComponentWithCombo } from './components/QuillSelectWithCombo';
21
- import { getSchemaInfoWithCustomFields } from './utils/schema';
22
- import { isTextColumnType } from './components/ReportBuilder/ast';
23
- import { convertColumnInfoToColumnInternal } from './utils/columnProcessing';
24
- import { getCountsByColumns, getUniqueValuesByColumns, } from './utils/tableProcessing';
25
- import { filterSentence, getType } from './utils/filterProcessing';
26
- import { QuillChartErrorWithAction } from './components/Chart/ChartError';
27
- import { FilterPopoverWrapper, QuillFilterPopover, } from './components/ReportBuilder/ui';
28
- import FilterModal from './components/ReportBuilder/FilterModal';
29
- const defaultChartContainerStyles = {
30
- display: 'flex',
31
- width: '100%',
32
- minHeight: 300,
33
- height: 300,
34
- };
35
- /**
36
- * ### Quill Dashboard
37
- *
38
- * Dynamically displays a filterable grid of charts, metrics, and tables with
39
- * live data from your database. Once implemented, Quill lets you perform
40
- * zero-downtime, zero-code updates to your dashboard views on an org-level as
41
- * well as company-wide.
42
- *
43
- * @example
44
- * ```js
45
- * // Usage without custom components
46
- * <Dashboard />
47
- * ```
48
- *
49
- * @example
50
- * ```js
51
- * // You can also pass your own components
52
- * <Dashboard
53
- * name="saved_reports"
54
- * SelectComponent={MySelect}
55
- * onClickReport={(report) => navigate(`/detail/${report.id}`)}
56
- * MetricComponent={MyMetric}
57
- * ChartComponent={MyChart}
58
- * TableComponent={MyTable}
59
- * containerStyle={{ backgroundColor: 'white', padding: '10px' }}
60
- * />
61
- * ```
62
- *
63
- * ### API Reference
64
- * @see https://docs.quillsql.com/components/dashboard
65
- */
66
- export default function Dashboard({ name, hidden = false, SelectComponent = QuillSelectComponentWithCombo, MultiSelectComponent = QuillMultiSelectComponentWithCombo, UserFilterModalComponent = QuillUserFilterModalComponent, ButtonComponent = MemoizedButton, SecondaryButtonComponent = MemoizedSecondaryButton, FilterTagComponent = QuillFilterPopover, PopoverComponent = MemoizedPopover, TextInputComponent = QuillTextInput, EmptyDashboardComponent = QuillEmptyDashboardComponent, DateRangePickerComponent = QuillDateRangePicker, MetricComponent = QuillMetricComponent, ChartComponent = QuillChartComponent, TableComponent = QuillTableComponent, DashboardSectionComponent = DashboardSection, DashboardSectionContainerComponent = DashboardSectionContainer, FilterContainerComponent = QuillFilterContainerComponent, DashboardLoadingComponent = QuillLoadingDashboardComponent, ErrorComponent = QuillChartErrorWithAction, onClickReport, onChangeLoading, hideFilters, hideXAxis = false, hideYAxis = false, hideCartesianGrid = false, comparisonLineStyle = 'solid', containerStyle, className, chartContainerStyle = defaultChartContainerStyles, filters, onClickChartElement, dateBucket, additionalProcessing, hideAdminErrors = true, }) {
67
- const [dashboard] = useContext(DashboardContext);
68
- const { isLoading: isDataLoading, data, reload, } = useDashboard(name);
69
- const [dashboardSections, setDashboardSections] = useState(null);
70
- const [presetFilters, setPresetFilters] = useState(null);
71
- const [client] = useContext(ClientContext);
72
- const [isLoading, setIsLoading] = useState(isDataLoading);
73
- const [theme] = useContext(ThemeContext);
74
- const [initialLoad, setInitialLoad] = useState(true);
75
- const [appliedFilters, setAppliedFilters] = useState([]);
76
- const { dashboardFilters, dashboardFiltersDispatch } = useContext(DashboardFiltersContext);
77
- const [schema, setSchema] = useContext(SchemaContext);
78
- const [filterSchemaIsLoaded, setFilterSchemaIsLoaded] = useState(false);
79
- const [filterSchema, setFilterSchema] = useState({ columns: [] }); // Schema to be passed into FilterModal
80
- const [schemaLoading, setSchemaLoading] = useState(false);
81
- const [fieldValuesMap, setFieldValuesMap] = useState({}); // Mapping of unique values per field, used in string filter 'in' and 'not in'
82
- const [referencedTables, setReferencedTables] = useState([]); // Intersection of tables referenced in the dashboard
83
- const [fieldValuesIsLoaded, setFieldValuesIsLoaded] = useState(false);
84
- const [addFilterPopoverIsOpen, setAddFilterPopoverIsOpen] = useState(false);
85
- const [filterListIsOpen, setFilterListIsOpen] = useState(false);
86
- const [filterListAddFilterPopoverIsOpen, setFilterListAddFilterPopoverIsOpen,] = useState(false);
87
- const [uniqueCounter, setUniqueCounter] = useState(0);
88
- const [userFilters, setUserFilters] = useState([]);
89
- const [adminFilters, setAdminFilters] = useState([]);
90
- const customOperatorOptions = {
91
- [FieldTypes.Numeric]: [
92
- NumberOperator.EqualTo,
93
- NumberOperator.NotEqualTo,
94
- NumberOperator.GreaterThan,
95
- NumberOperator.LessThan,
96
- NumberOperator.GreaterThanOrEqualTo,
97
- NumberOperator.LessThanOrEqualTo,
98
- NullOperator.IsNotNull,
99
- NullOperator.IsNull,
100
- ],
101
- [FieldTypes.String]: [
102
- StringOperator.IsExactly,
103
- StringOperator.IsNotExactly,
104
- StringOperator.Contains,
105
- StringOperator.Is,
106
- StringOperator.IsNot,
107
- NullOperator.IsNotNull,
108
- NullOperator.IsNull,
109
- ],
110
- [FieldTypes.Boolean]: [
111
- BoolOperator.EqualTo,
112
- BoolOperator.NotEqualTo,
113
- NullOperator.IsNotNull,
114
- NullOperator.IsNull,
115
- ],
116
- };
117
- const getSchema = async () => {
118
- const { schemaData } = await getSchemaInfoWithCustomFields(client);
119
- setSchema(schemaData);
120
- setSchemaLoading(false);
121
- };
122
- useEffect(() => {
123
- if (client && !schemaLoading) {
124
- setSchemaLoading(true);
125
- getSchema();
126
- }
127
- }, [client.publicKey]);
128
- useEffect(() => {
129
- setIsLoading(isDataLoading);
130
- }, [isDataLoading]);
131
- useEffect(() => {
132
- if (!data)
133
- return;
134
- onDashboardDataChange(data, schema);
135
- }, [data, filters, schema]);
136
- useEffect(() => {
137
- setIsLoading(true);
138
- reload(name);
139
- }, [name, client]);
140
- // Go through all columns in the referenced tables and get the unique values to use in fieldValuesMap
141
- useEffect(() => {
142
- const fetchData = async () => {
143
- setFieldValuesIsLoaded(false);
144
- const newFieldValues = {};
145
- await Promise.all(referencedTables.map(async (table) => {
146
- const tableInfo = schema.find((tableInfo) => tableInfo.name === table);
147
- if (tableInfo) {
148
- const uniqueValues = await getUniqueStringValues(tableInfo.columns, table);
149
- if (uniqueValues) {
150
- newFieldValues[table] = {};
151
- Object.keys(uniqueValues).forEach((field) => {
152
- newFieldValues[table][field] = Object.keys(uniqueValues[field] ?? []);
153
- });
154
- }
155
- }
156
- }));
157
- setFieldValuesMap(newFieldValues);
158
- setFieldValuesIsLoaded(true);
159
- };
160
- fetchData();
161
- }, [referencedTables]);
162
- useEffect(() => {
163
- setUserFilters([...appliedFilters.filter((filter) => filter.isUserFilter)]);
164
- setAdminFilters([
165
- ...appliedFilters.filter((filter) => !filter.isUserFilter),
166
- ]);
167
- }, [appliedFilters]);
168
- const getUniqueStringValues = async (columns, tableName) => {
169
- const convertedStringColumns = columns
170
- .filter((column) => {
171
- return isTextColumnType(column.fieldType);
172
- })
173
- .map((column) => convertColumnInfoToColumnInternal(column));
174
- const stringNames = convertedStringColumns.map((column) => column.field);
175
- const smallStringColumns = await getCountsByColumns(convertedStringColumns, `Select ${stringNames.join(', ')} from ${tableName}`, client, []);
176
- const smallStringNames = smallStringColumns.map((column) => column.field);
177
- const newUniqueValues = await getUniqueValuesByColumns(smallStringColumns, `Select ${smallStringNames.join(', ')} from ${tableName}`, [], client, []);
178
- return newUniqueValues;
179
- };
180
- // Get the relevant information from the dashboard and schema to pass to FilterModal
181
- const updateFilterSchema = (sections, schema) => {
182
- if (!sections || !schema || schema.length === 0) {
183
- return;
184
- }
185
- setFilterSchemaIsLoaded(false);
186
- // find intersection of all referenced tables
187
- const tables = Object.keys(sections)
188
- .map((section) => {
189
- return sections[section].map((chart) => {
190
- return chart.referencedTables;
191
- });
192
- })
193
- .reduce((accumulator, currentArray) => {
194
- return accumulator.concat(currentArray);
195
- }, []);
196
- if (tables && tables.length > 0) {
197
- let intersection = new Set(tables[0]);
198
- for (let i = 1; i < tables.length; ++i) {
199
- const currentSet = new Set(tables[i]);
200
- intersection = new Set(Array.from(intersection).filter((value) => currentSet.has(value)));
201
- }
202
- const tablesList = Array.from(intersection);
203
- setReferencedTables(tablesList);
204
- // get all columns from the intersected tables
205
- const columns = tablesList
206
- .map((table) => {
207
- return (schema
208
- .find((t) => {
209
- return t.displayName === table || t.name === table;
210
- })
211
- ?.columns.filter((col) => getType(col.fieldType) !== 'date')
212
- ?.map((col) => {
213
- return { ...col, table: table };
214
- }) ?? []);
215
- })
216
- .reduce((accumulator, currentArray) => {
217
- return accumulator.concat(currentArray);
218
- }, []);
219
- setFilterSchema({ columns });
220
- }
221
- else {
222
- setFilterSchema({ columns: [] });
223
- }
224
- setFilterSchemaIsLoaded(true);
225
- };
226
- const onDashboardDataChange = (resp, schema) => {
227
- setDashboardSections(resp.sections);
228
- updateFilterSchema(resp.sections, schema);
229
- const filterArray = [];
230
- // Add date_range filter to filterArray
231
- if (resp.dateFilter && Object.keys(resp.dateFilter).length) {
232
- let presetsOptions = defaultOptionsV2;
233
- if (resp.dateFilter.presetRanges) {
234
- presetsOptions = resp.dateFilter.presetRanges.map((elem) => {
235
- if (!elem.isStatic) {
236
- return {
237
- label: elem.label,
238
- value: elem.value,
239
- startDate: PRIMARY_RANGE[elem.value].start,
240
- endDate: PRIMARY_RANGE[elem.value].end,
241
- };
242
- }
243
- return {
244
- label: elem.label,
245
- value: elem.value,
246
- startDate: new Date(elem.startDate),
247
- endDate: new Date(elem.endDate),
248
- };
249
- });
250
- }
251
- setPresetFilters(presetsOptions);
252
- const key = resp.dateFilter?.primaryRange?.value || 'LAST_6_MONTHS';
253
- const primaryPreset = presetsOptions.find((option) => {
254
- return option.value === key;
255
- });
256
- const filter = {
257
- startDate: primaryPreset.startDate,
258
- endDate: primaryPreset.endDate,
259
- filterType: 'date_range',
260
- options: presetsOptions.map((elem) => {
261
- return {
262
- label: elem.label,
263
- value: elem.value,
264
- };
265
- }),
266
- field: 'date_range',
267
- label: resp.dateFilter.label,
268
- preset: {
269
- label: primaryPreset.label,
270
- },
271
- dashboardName: name,
272
- };
273
- if (resp.dateFilter.comparison) {
274
- filter.comparison = true;
275
- const compKey = resp.dateFilter.defaultComparisonRange ?? 'PREV_PERIOD';
276
- const range = { start: filter.startDate, end: filter.endDate };
277
- filter.comparisonRange = {
278
- startDate: COMPARISON_RANGE[compKey](range)?.start,
279
- endDate: COMPARISON_RANGE[compKey](range)?.end,
280
- value: compKey,
281
- };
282
- }
283
- else {
284
- filter.comparison = false;
285
- }
286
- filterArray.push(filter);
287
- }
288
- // Add string filters to filterArray
289
- if (resp.filters && resp.filters.length) {
290
- Object.values(resp.filters)
291
- .filter((filter) => filter.filterType !== 'date_range')
292
- .forEach((filter) => {
293
- filterArray.push(processFilter(filter));
294
- });
295
- }
296
- // Add custom filter to filterArray
297
- if (filters) {
298
- filters.forEach((filter) => {
299
- filterArray.push({
300
- ...filter,
301
- dashboardName: name,
302
- isUserFilter: true,
303
- });
304
- });
305
- }
306
- // remove all that are already present in dashboardSpecificFilters
307
- const dashboardSpecificFilters = dashboardFilters.filter((f) => f.dashboardName === name);
308
- if (hashCode(JSON.stringify(dashboardSpecificFilters)) !==
309
- hashCode(JSON.stringify(filterArray))) {
310
- dashboardFiltersDispatch({
311
- type: 'CLEAR_AND_ADD_DASHBOARD_FILTERS',
312
- data: filterArray,
313
- dashboardName: name,
314
- });
315
- }
316
- if (hashCode(JSON.stringify(appliedFilters)) !==
317
- hashCode(JSON.stringify(filterArray))) {
318
- setAppliedFilters(filterArray);
319
- }
320
- setIsLoading(false);
321
- setInitialLoad(false);
322
- };
323
- const handleOnClickDashboardItem = (elem) => {
324
- if (onClickReport) {
325
- onClickReport({ ...elem, _id: elem.id });
326
- }
327
- };
328
- function removeQuotes(str) {
329
- if (str.startsWith('"') && str.endsWith('"')) {
330
- return str.slice(1, -1);
331
- }
332
- else {
333
- return str;
334
- }
335
- }
336
- const processFilter = (filter, value = null) => {
337
- //for dateObjects only, since values are arrays for dateObjects
338
- const { ...filterWithoutSelectedValue } = filter; // _ is a throwaway variable
339
- let selectedValue;
340
- let selectedElem;
341
- if (filter.filterType === 'string') {
342
- if (filter.options) {
343
- selectedElem = filter.options.find((elem) => elem[removeQuotes(filter.field)] === value);
344
- }
345
- if (selectedElem) {
346
- selectedValue = selectedElem[removeQuotes(filter.field)];
347
- }
348
- return {
349
- ...filterWithoutSelectedValue,
350
- ...(selectedValue ? { selectedValue } : {}),
351
- dashboardName: name,
352
- };
353
- }
354
- if (filter.filterType === 'date' || filter.filterType === 'date_range') {
355
- return {
356
- startDate: value ? value[0] : filter.startDate,
357
- endDate: value ? value[1] : filter.endDate,
358
- filterType: 'date_range',
359
- label: 'Date',
360
- field: 'date_range',
361
- options: filter.options,
362
- dashboardName: name,
363
- };
364
- }
365
- };
366
- const updateFilter = (filter, value = null, comparison = null) => {
367
- //for dateObjects only, since values are arrays for dateObjects
368
- const { ...filterWithoutSelectedValue } = filter; // _ is a throwaway variable
369
- if (filter.filterType === 'string') {
370
- let selectedValue = {};
371
- if (value || value === '') {
372
- if (filter.stringFilterType === 'multiselect') {
373
- if (value.length === 0) {
374
- selectedValue = { values: [] };
375
- }
376
- else {
377
- selectedValue = { values: value, operator: 'IN' };
378
- }
379
- }
380
- else {
381
- selectedValue = { selectedValue: value };
382
- }
383
- }
384
- const newFilter = {
385
- ...filterWithoutSelectedValue,
386
- ...selectedValue,
387
- dashboardName: name,
388
- };
389
- dashboardFiltersDispatch({
390
- type: 'UPDATE_DASHBOARD_FILTER',
391
- id: filter.field,
392
- data: newFilter,
393
- });
394
- const index = appliedFilters.findIndex((filter) => filter.field === newFilter.field &&
395
- filter.dashboardName === newFilter.dashboardName);
396
- if (index !== -1) {
397
- setAppliedFilters([
398
- ...appliedFilters.slice(0, index),
399
- newFilter,
400
- ...appliedFilters.slice(index + 1),
401
- ]);
402
- }
403
- return;
404
- }
405
- if (filter.filterType === 'date' || filter.filterType === 'date_range') {
406
- if (comparison ||
407
- (filter.comparison && filter.comparisonRange.value !== 'NO_COMPARISON')) {
408
- let preset = '';
409
- if (comparison) {
410
- preset = filter.preset.label;
411
- }
412
- const key = comparison?.value || filter.comparisonRange.value;
413
- let primaryRange = {
414
- start: value ? value.startDate : filter.startDate,
415
- end: value ? value.endDate : filter.endDate,
416
- };
417
- if (value && value.preset) {
418
- preset = value.preset;
419
- primaryRange = getRangeFromPresetOptions(value.preset, presetFilters);
420
- }
421
- const newFilter = {
422
- startDate: primaryRange.start,
423
- endDate: primaryRange.end,
424
- filterType: 'date_range',
425
- label: 'Date',
426
- field: 'date_range',
427
- preset: { label: preset },
428
- options: filter.options,
429
- comparison: true,
430
- comparisonRange: {
431
- startDate: COMPARISON_RANGE[key](primaryRange)?.start,
432
- endDate: COMPARISON_RANGE[key](primaryRange)?.end,
433
- value: key,
434
- },
435
- dashboardName: name,
436
- };
437
- dashboardFiltersDispatch({
438
- type: 'UPDATE_DASHBOARD_FILTER',
439
- id: 'date_range',
440
- data: newFilter,
441
- });
442
- const index = appliedFilters.findIndex((filter) => filter.field === newFilter.field &&
443
- filter.dashboardName === newFilter.dashboardName);
444
- if (index !== -1) {
445
- setAppliedFilters([
446
- ...appliedFilters.slice(0, index),
447
- newFilter,
448
- ...appliedFilters.slice(index + 1),
449
- ]);
450
- }
451
- }
452
- else {
453
- const primaryRange = value && value.preset
454
- ? getRangeFromPresetOptions(value.preset, presetFilters)
455
- : {
456
- start: value?.startDate || filter.startDate,
457
- end: value?.endDate || filter.endDate,
458
- };
459
- const preset = value?.preset ? value.preset : '';
460
- const newFilter = {
461
- ...filter,
462
- preset: { label: preset },
463
- startDate: primaryRange.start,
464
- endDate: primaryRange.end,
465
- filterType: 'date_range',
466
- field: 'date_range',
467
- options: filter.options,
468
- label: 'Date',
469
- dashboardName: name,
470
- };
471
- dashboardFiltersDispatch({
472
- type: 'UPDATE_DASHBOARD_FILTER',
473
- id: 'date_range',
474
- data: newFilter,
475
- });
476
- const index = appliedFilters.findIndex((filter) => filter.field === newFilter.field &&
477
- filter.dashboardName === newFilter.dashboardName);
478
- if (index !== -1) {
479
- setAppliedFilters([
480
- ...appliedFilters.slice(0, index),
481
- newFilter,
482
- ...appliedFilters.slice(index + 1),
483
- ]);
484
- }
485
- }
486
- }
487
- };
488
- // generate the correct filter structure
489
- const getUserFilter = (filter, id, existingFilter) => {
490
- let userFilter = {};
491
- if (existingFilter) {
492
- userFilter = { ...existingFilter };
493
- }
494
- else {
495
- userFilter = { _id: `userFilter_${id}` };
496
- }
497
- userFilter = {
498
- ...userFilter,
499
- table: filter.table ?? '',
500
- field: filter.field,
501
- name: filter.name,
502
- type: filter.type,
503
- value: filter.value,
504
- operator: filter.operator,
505
- dashboardName: name,
506
- isUserFilter: true,
507
- };
508
- return userFilter;
509
- };
510
- // new update filter function for user added filters
511
- const updateUserFilter = (filter, id) => {
512
- const newFilter = getUserFilter(filter, id);
513
- dashboardFiltersDispatch({
514
- type: 'ADD_DASHBOARD_FILTER',
515
- data: newFilter,
516
- });
517
- setAppliedFilters([...appliedFilters, newFilter]);
518
- };
519
- useEffect(() => {
520
- if (dashboardSections && dashboard) {
521
- const totalNumberOfItems = Object.values(dashboardSections).reduce((count, arr) => count + arr.length, 0);
522
- const itemsLoaded = Object.keys(dashboard).length;
523
- if (totalNumberOfItems === itemsLoaded && isLoading) {
524
- setIsLoading(false);
525
- }
526
- }
527
- }, [dashboard, dashboardSections, isLoading]);
528
- useEffect(() => {
529
- if (onChangeLoading) {
530
- onChangeLoading(initialLoad || isLoading);
531
- }
532
- }, [isLoading, initialLoad, onChangeLoading]);
533
- const sortByOrdering = (a, b) => {
534
- if (a.order === undefined && b.order === undefined)
535
- return 0;
536
- if (a.order === undefined)
537
- return 1;
538
- if (b.order === undefined)
539
- return -1;
540
- return a.order - b.order;
541
- };
542
- const metrics = (section) => dashboardSections[section]
543
- .filter(({ chartType }) => chartType === 'metric')
544
- .sort(sortByOrdering);
545
- const charts = (section) => dashboardSections[section]
546
- .filter(({ chartType }) => !['metric', 'table'].includes(chartType))
547
- .sort(sortByOrdering);
548
- const tables = (section) => dashboardSections[section]
549
- .filter(({ chartType }) => chartType === 'table')
550
- .sort(sortByOrdering);
551
- if (hidden || isLoading) {
552
- return (_jsx(DashboardLoadingComponent, { containerStyle: containerStyle, chartContainerStyle: chartContainerStyle }));
553
- }
554
- if (!dashboardSections || Object.keys(dashboardSections).length == 0) {
555
- if (initialLoad || isLoading)
556
- return null;
557
- return _jsx(EmptyDashboardComponent, {});
558
- }
559
- return (_jsxs("div", { className: className, ...styleToProps(containerStyle), children: [filterSchemaIsLoaded &&
560
- !hideAdminErrors &&
561
- !hideFilters &&
562
- filterSchema &&
563
- filterSchema.columns.length === 0 && (_jsx("div", { style: { marginBottom: 10 }, children: _jsx(QuillErrorMessageComponent, { errorMessage: "Warning: No custom filter options because there are no common views among the charts in the dashboard" }) })), !hideFilters && (_jsxs(FilterContainerComponent, { children: [adminFilters.map((filter, index) => (_jsx(DashboardFilter, { filter: filter, onChangeFilter: updateFilter, theme: theme, SelectComponent: SelectComponent, MultiSelectComponent: MultiSelectComponent, DateRangePickerComponent: DateRangePickerComponent }, index))), _jsxs("div", { style: {
564
- display: 'flex',
565
- flexDirection: 'column',
566
- }, children: [data && data.customFiltersEnabled && (_jsx(SecondaryButtonComponent, { onClick: () => {
567
- if (fieldValuesIsLoaded) {
568
- setAddFilterPopoverIsOpen(true);
569
- setFilterListIsOpen(false);
570
- }
571
- }, label: `Add Filter` })), _jsx(PopoverComponent, { isOpen: addFilterPopoverIsOpen, setIsOpen: setAddFilterPopoverIsOpen, popoverTitle: "Add Filter", popoverChildren: _jsx(FilterModal, { schema: filterSchema, fieldValuesMap: fieldValuesMap, onSubmitFilter: (filter) => {
572
- setAddFilterPopoverIsOpen(false);
573
- updateUserFilter(filter, appliedFilters.length);
574
- }, onDeleteFilter: () => { }, ButtonComponent: ButtonComponent, SelectComponent: SelectComponent, MultiSelectComponent: MultiSelectComponent, TextInputComponent: TextInputComponent }), containerStyle: { position: 'relative', top: 10 } })] }), userFilters.length > 0 && (_jsx(UserFilterModalComponent, { triggerLabel: `Filters${userFilters.length > 0 ? ` (${userFilters.length})` : ''}`, isOpen: filterListIsOpen, setIsOpen: setFilterListIsOpen, title: "Filters", children: _jsxs("div", { style: {
575
- display: 'flex',
576
- flexDirection: 'column',
577
- alignItems: 'start',
578
- }, children: [userFilters.map((filter, index) => (_jsx(FilterPopoverWrapper, { schema: filterSchema, filter: {
579
- name: filter.name,
580
- type: filter.type,
581
- field: filter.field,
582
- operator: filter.operator,
583
- value: filter.value,
584
- }, filterLabel: filter ? filterSentence(filter) : '', index: index, fieldValuesMap: fieldValuesMap, customOperatorOptions: customOperatorOptions, FilterTagComponent: FilterTagComponent, FilterModal: FilterModal, ButtonComponent: ButtonComponent, SecondaryButtonComponent: SecondaryButtonComponent, SelectComponent: SelectComponent, TextInputComponent: TextInputComponent, MultiSelectComponent: MultiSelectComponent, handleFilterSave: (newFilter) => {
585
- const updatedFilter = getUserFilter(newFilter, filter._id, filter);
586
- const updateIndex = appliedFilters.findIndex((val) => {
587
- return val._id === filter._id;
588
- });
589
- dashboardFiltersDispatch({
590
- type: 'UPDATE_DASHBOARD_FILTER',
591
- id: updatedFilter._id,
592
- data: updateFilter,
593
- });
594
- setAppliedFilters([
595
- ...appliedFilters.slice(0, updateIndex),
596
- updatedFilter,
597
- ...appliedFilters.slice(updateIndex + 1),
598
- ]);
599
- }, handleFilterDelete: () => {
600
- const deleteIndex = appliedFilters.findIndex((val) => {
601
- return val._id === filter._id;
602
- });
603
- dashboardFiltersDispatch({
604
- type: 'DELETE_DASHBOARD_FILTER',
605
- id: appliedFilters[deleteIndex]._id,
606
- });
607
- setAppliedFilters([
608
- ...appliedFilters.slice(0, deleteIndex),
609
- ...appliedFilters.slice(deleteIndex + 1),
610
- ]);
611
- }, containerStyle: { width: 300, marginBottom: 10 } }, `userFilter_${index}`))), _jsxs("div", { style: {
612
- display: 'flex',
613
- flexDirection: 'column',
614
- }, children: [_jsx(SecondaryButtonComponent, { onClick: () => {
615
- if (fieldValuesIsLoaded) {
616
- setFilterListAddFilterPopoverIsOpen(true);
617
- }
618
- }, label: `Add Filter` }), _jsx(PopoverComponent, { isOpen: filterListAddFilterPopoverIsOpen, setIsOpen: setFilterListAddFilterPopoverIsOpen, popoverTitle: "Add Filter", popoverChildren: _jsx(FilterModal, { schema: filterSchema, fieldValuesMap: fieldValuesMap, onSubmitFilter: (filter) => {
619
- setFilterListAddFilterPopoverIsOpen(false);
620
- setFilterListIsOpen(false);
621
- const id = uniqueCounter;
622
- setUniqueCounter(uniqueCounter + 1);
623
- updateUserFilter(filter, id);
624
- }, onDeleteFilter: () => { }, ButtonComponent: ButtonComponent, SelectComponent: SelectComponent, MultiSelectComponent: MultiSelectComponent, TextInputComponent: TextInputComponent }), containerStyle: { position: 'relative', top: 10 } })] })] }) }))] })), Object.keys(dashboardSections)
625
- .sort(function (a, b) {
626
- return a.length - b.length;
627
- })
628
- .map((section, sectionIndex) => {
629
- return (_jsxs(DashboardSectionContainerComponent, { children: [section && (_jsxs("div", { style: { display: 'flex', flexDirection: 'column' }, children: [_jsx("div", { style: { height: sectionIndex > 0 ? 25 : 0 } }), _jsx("h1", { style: {
630
- fontSize: 22,
631
- color: theme.primaryTextColor,
632
- fontFamily: theme.fontFamily,
633
- fontWeight: 'bold',
634
- marginBottom: 16,
635
- textAlign: 'left',
636
- marginTop: 12,
637
- }, children: section })] })), metrics(section).length > 0 && (_jsx(DashboardSectionComponent, { section: "metrics", children: metrics(section).map((item, index) => {
638
- return (_jsx(DataLoader, { item: item, filters: appliedFilters, children: ({ isLoading, error, data }) => (_jsx(MetricComponent, { error: error, isLoading: isLoading, report: data, onClick: !isLoading && onClickReport
639
- ? () => handleOnClickDashboardItem({
640
- ...item,
641
- ...data,
642
- })
643
- : () => { } }, item.name + '' + index)) }, `${item._id}${index}`));
644
- }) })), charts(section).length > 0 && (_jsx(DashboardSectionComponent, { section: "charts", children: charts(section).map((item, index) => (_jsx(ChartDataLoader, { item: item, dateBucket: dateBucket, additionalProcessing: additionalProcessing, filters: appliedFilters, children: ({ isLoading, data, error, dateBucket, }) => (_jsx(ChartComponent, { report: data, error: error, onClick: () => {
645
- if (!isLoading && onClickReport) {
646
- handleOnClickDashboardItem({
647
- ...item,
648
- ...data,
649
- });
650
- }
651
- }, onClickChartElement: onClickChartElement, isLoading: isLoading, dateBucket: dateBucket, children: error ? (_jsx(ErrorComponent, { label: error })) : (_jsx(ChartDisplay, { reportId: data.id, config: data, loading: isLoading, containerStyle: chartContainerStyle, colors: theme.chartColors?.length
652
- ? theme.chartColors
653
- : undefined, scrollable: false, hideXAxis: hideXAxis, hideYAxis: hideYAxis, hideCartesianGrid: hideCartesianGrid, comparisonLineStyle: comparisonLineStyle, onClickChartElement: onClickChartElement })) }, item.name + '' + index)) }, `${item._id}${index}`))) })), tables(section).length > 0 && (_jsx(DashboardSectionComponent, { section: "tables", children: tables(section).map((item, index) => (_jsx(DataLoader, { item: item, filters: appliedFilters, children: ({ isLoading, error, onPageChange, onSortChange, data, }) => (_jsx(TableComponent, { report: data, isLoading: isLoading, error: error, onClick: !isLoading && onClickReport
654
- ? () => handleOnClickDashboardItem({
655
- ...item,
656
- ...data,
657
- })
658
- : undefined, rowCount: data?.rowCount ? data?.rowCount : data?.rows.length, onPageChange: (page) => onPageChange(page), onSortChange: (sort) => onSortChange(sort) })) }, `${item._id}${index}`))) }))] }, section + '' + sectionIndex));
659
- })] }));
660
- }