@quillsql/react 2.10.29 → 2.10.31

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (601) hide show
  1. package/package.json +1 -1
  2. package/dist/cjs/BarList.d.ts +0 -22
  3. package/dist/cjs/BarList.d.ts.map +0 -1
  4. package/dist/cjs/BarList.js +0 -286
  5. package/dist/cjs/Chart.d.ts +0 -42
  6. package/dist/cjs/Chart.d.ts.map +0 -1
  7. package/dist/cjs/Chart.js +0 -360
  8. package/dist/cjs/ChartBuilder.d.ts +0 -46
  9. package/dist/cjs/ChartBuilder.d.ts.map +0 -1
  10. package/dist/cjs/ChartBuilder.js +0 -703
  11. package/dist/cjs/ChartEditor.d.ts +0 -27
  12. package/dist/cjs/ChartEditor.d.ts.map +0 -1
  13. package/dist/cjs/ChartEditor.js +0 -78
  14. package/dist/cjs/Context.d.ts +0 -36
  15. package/dist/cjs/Context.d.ts.map +0 -1
  16. package/dist/cjs/Context.js +0 -230
  17. package/dist/cjs/Dashboard.d.ts +0 -178
  18. package/dist/cjs/Dashboard.d.ts.map +0 -1
  19. package/dist/cjs/Dashboard.js +0 -498
  20. package/dist/cjs/DateRangePicker/Calendar.d.ts +0 -17
  21. package/dist/cjs/DateRangePicker/Calendar.d.ts.map +0 -1
  22. package/dist/cjs/DateRangePicker/Calendar.js +0 -171
  23. package/dist/cjs/DateRangePicker/DateRangePicker.d.ts +0 -39
  24. package/dist/cjs/DateRangePicker/DateRangePicker.d.ts.map +0 -1
  25. package/dist/cjs/DateRangePicker/DateRangePicker.js +0 -150
  26. package/dist/cjs/DateRangePicker/DateRangePickerButton.d.ts +0 -23
  27. package/dist/cjs/DateRangePicker/DateRangePickerButton.d.ts.map +0 -1
  28. package/dist/cjs/DateRangePicker/DateRangePickerButton.js +0 -138
  29. package/dist/cjs/DateRangePicker/QuillDateRangePicker.d.ts +0 -3
  30. package/dist/cjs/DateRangePicker/QuillDateRangePicker.d.ts.map +0 -1
  31. package/dist/cjs/DateRangePicker/QuillDateRangePicker.js +0 -260
  32. package/dist/cjs/DateRangePicker/dateRangePickerUtils.d.ts +0 -80
  33. package/dist/cjs/DateRangePicker/dateRangePickerUtils.d.ts.map +0 -1
  34. package/dist/cjs/DateRangePicker/dateRangePickerUtils.js +0 -549
  35. package/dist/cjs/DateRangePicker/index.d.ts +0 -3
  36. package/dist/cjs/DateRangePicker/index.d.ts.map +0 -1
  37. package/dist/cjs/DateRangePicker/index.js +0 -9
  38. package/dist/cjs/PieChart.d.ts +0 -59
  39. package/dist/cjs/PieChart.d.ts.map +0 -1
  40. package/dist/cjs/PieChart.js +0 -567
  41. package/dist/cjs/QuillProvider.d.ts +0 -58
  42. package/dist/cjs/QuillProvider.d.ts.map +0 -1
  43. package/dist/cjs/QuillProvider.js +0 -34
  44. package/dist/cjs/ReportBuilder.d.ts +0 -41
  45. package/dist/cjs/ReportBuilder.d.ts.map +0 -1
  46. package/dist/cjs/ReportBuilder.js +0 -1004
  47. package/dist/cjs/SQLEditor.d.ts +0 -54
  48. package/dist/cjs/SQLEditor.d.ts.map +0 -1
  49. package/dist/cjs/SQLEditor.js +0 -503
  50. package/dist/cjs/TableChart.d.ts +0 -15
  51. package/dist/cjs/TableChart.d.ts.map +0 -1
  52. package/dist/cjs/TableChart.js +0 -317
  53. package/dist/cjs/assets/ArrowDownHeadIcon.d.ts +0 -5
  54. package/dist/cjs/assets/ArrowDownHeadIcon.d.ts.map +0 -1
  55. package/dist/cjs/assets/ArrowDownHeadIcon.js +0 -5
  56. package/dist/cjs/assets/ArrowDownIcon.d.ts +0 -5
  57. package/dist/cjs/assets/ArrowDownIcon.d.ts.map +0 -1
  58. package/dist/cjs/assets/ArrowDownIcon.js +0 -5
  59. package/dist/cjs/assets/ArrowDownRightIcon.d.ts +0 -5
  60. package/dist/cjs/assets/ArrowDownRightIcon.d.ts.map +0 -1
  61. package/dist/cjs/assets/ArrowDownRightIcon.js +0 -5
  62. package/dist/cjs/assets/ArrowLeftHeadIcon.d.ts +0 -5
  63. package/dist/cjs/assets/ArrowLeftHeadIcon.d.ts.map +0 -1
  64. package/dist/cjs/assets/ArrowLeftHeadIcon.js +0 -5
  65. package/dist/cjs/assets/ArrowRightHeadIcon.d.ts +0 -5
  66. package/dist/cjs/assets/ArrowRightHeadIcon.d.ts.map +0 -1
  67. package/dist/cjs/assets/ArrowRightHeadIcon.js +0 -5
  68. package/dist/cjs/assets/ArrowRightIcon.d.ts +0 -5
  69. package/dist/cjs/assets/ArrowRightIcon.d.ts.map +0 -1
  70. package/dist/cjs/assets/ArrowRightIcon.js +0 -5
  71. package/dist/cjs/assets/ArrowUpHeadIcon.d.ts +0 -5
  72. package/dist/cjs/assets/ArrowUpHeadIcon.d.ts.map +0 -1
  73. package/dist/cjs/assets/ArrowUpHeadIcon.js +0 -5
  74. package/dist/cjs/assets/ArrowUpIcon.d.ts +0 -5
  75. package/dist/cjs/assets/ArrowUpIcon.d.ts.map +0 -1
  76. package/dist/cjs/assets/ArrowUpIcon.js +0 -5
  77. package/dist/cjs/assets/ArrowUpRightIcon.d.ts +0 -5
  78. package/dist/cjs/assets/ArrowUpRightIcon.d.ts.map +0 -1
  79. package/dist/cjs/assets/ArrowUpRightIcon.js +0 -5
  80. package/dist/cjs/assets/CalendarIcon.d.ts +0 -5
  81. package/dist/cjs/assets/CalendarIcon.d.ts.map +0 -1
  82. package/dist/cjs/assets/CalendarIcon.js +0 -5
  83. package/dist/cjs/assets/CalendarNormalIcon.d.ts +0 -5
  84. package/dist/cjs/assets/CalendarNormalIcon.d.ts.map +0 -1
  85. package/dist/cjs/assets/CalendarNormalIcon.js +0 -5
  86. package/dist/cjs/assets/DoubleArrowLeftHeadIcon.d.ts +0 -5
  87. package/dist/cjs/assets/DoubleArrowLeftHeadIcon.d.ts.map +0 -1
  88. package/dist/cjs/assets/DoubleArrowLeftHeadIcon.js +0 -5
  89. package/dist/cjs/assets/DoubleArrowRightHeadIcon.d.ts +0 -5
  90. package/dist/cjs/assets/DoubleArrowRightHeadIcon.d.ts.map +0 -1
  91. package/dist/cjs/assets/DoubleArrowRightHeadIcon.js +0 -5
  92. package/dist/cjs/assets/ExclamationFilledIcon.d.ts +0 -5
  93. package/dist/cjs/assets/ExclamationFilledIcon.d.ts.map +0 -1
  94. package/dist/cjs/assets/ExclamationFilledIcon.js +0 -5
  95. package/dist/cjs/assets/FilterIcon.d.ts +0 -5
  96. package/dist/cjs/assets/FilterIcon.d.ts.map +0 -1
  97. package/dist/cjs/assets/FilterIcon.js +0 -5
  98. package/dist/cjs/assets/LoadingSpinner.d.ts +0 -5
  99. package/dist/cjs/assets/LoadingSpinner.d.ts.map +0 -1
  100. package/dist/cjs/assets/LoadingSpinner.js +0 -5
  101. package/dist/cjs/assets/RefreshIcon.d.ts +0 -5
  102. package/dist/cjs/assets/RefreshIcon.d.ts.map +0 -1
  103. package/dist/cjs/assets/RefreshIcon.js +0 -5
  104. package/dist/cjs/assets/SearchIcon.d.ts +0 -5
  105. package/dist/cjs/assets/SearchIcon.d.ts.map +0 -1
  106. package/dist/cjs/assets/SearchIcon.js +0 -5
  107. package/dist/cjs/assets/UpLeftArrowsIcon.d.ts +0 -5
  108. package/dist/cjs/assets/UpLeftArrowsIcon.d.ts.map +0 -1
  109. package/dist/cjs/assets/UpLeftArrowsIcon.js +0 -5
  110. package/dist/cjs/assets/XCircleIcon.d.ts +0 -5
  111. package/dist/cjs/assets/XCircleIcon.d.ts.map +0 -1
  112. package/dist/cjs/assets/XCircleIcon.js +0 -5
  113. package/dist/cjs/assets/XIcon.d.ts +0 -5
  114. package/dist/cjs/assets/XIcon.d.ts.map +0 -1
  115. package/dist/cjs/assets/XIcon.js +0 -5
  116. package/dist/cjs/assets/index.d.ts +0 -22
  117. package/dist/cjs/assets/index.d.ts.map +0 -1
  118. package/dist/cjs/assets/index.js +0 -48
  119. package/dist/cjs/components/Banner/index.d.ts +0 -3
  120. package/dist/cjs/components/Banner/index.d.ts.map +0 -1
  121. package/dist/cjs/components/Banner/index.js +0 -27
  122. package/dist/cjs/components/BigModal/BigModal.d.ts +0 -15
  123. package/dist/cjs/components/BigModal/BigModal.d.ts.map +0 -1
  124. package/dist/cjs/components/BigModal/BigModal.js +0 -87
  125. package/dist/cjs/components/Chart/BarChart.d.ts +0 -18
  126. package/dist/cjs/components/Chart/BarChart.d.ts.map +0 -1
  127. package/dist/cjs/components/Chart/BarChart.js +0 -81
  128. package/dist/cjs/components/Chart/ChartError.d.ts +0 -3
  129. package/dist/cjs/components/Chart/ChartError.d.ts.map +0 -1
  130. package/dist/cjs/components/Chart/ChartError.js +0 -29
  131. package/dist/cjs/components/Chart/ChartSkeleton.d.ts +0 -6
  132. package/dist/cjs/components/Chart/ChartSkeleton.d.ts.map +0 -1
  133. package/dist/cjs/components/Chart/ChartSkeleton.js +0 -20
  134. package/dist/cjs/components/Chart/ChartTooltip.d.ts +0 -29
  135. package/dist/cjs/components/Chart/ChartTooltip.d.ts.map +0 -1
  136. package/dist/cjs/components/Chart/ChartTooltip.js +0 -235
  137. package/dist/cjs/components/Chart/ChartTooltipFrame.d.ts +0 -6
  138. package/dist/cjs/components/Chart/ChartTooltipFrame.d.ts.map +0 -1
  139. package/dist/cjs/components/Chart/ChartTooltipFrame.js +0 -16
  140. package/dist/cjs/components/Chart/ChartTooltipGroup.d.ts +0 -11
  141. package/dist/cjs/components/Chart/ChartTooltipGroup.d.ts.map +0 -1
  142. package/dist/cjs/components/Chart/ChartTooltipGroup.js +0 -29
  143. package/dist/cjs/components/Chart/ChartTooltipRow.d.ts +0 -8
  144. package/dist/cjs/components/Chart/ChartTooltipRow.d.ts.map +0 -1
  145. package/dist/cjs/components/Chart/ChartTooltipRow.js +0 -44
  146. package/dist/cjs/components/Chart/LineChart.d.ts +0 -16
  147. package/dist/cjs/components/Chart/LineChart.d.ts.map +0 -1
  148. package/dist/cjs/components/Chart/LineChart.js +0 -97
  149. package/dist/cjs/components/Dashboard/ChartComponent.d.ts +0 -3
  150. package/dist/cjs/components/Dashboard/ChartComponent.d.ts.map +0 -1
  151. package/dist/cjs/components/Dashboard/ChartComponent.js +0 -64
  152. package/dist/cjs/components/Dashboard/DashboardSection.d.ts +0 -3
  153. package/dist/cjs/components/Dashboard/DashboardSection.d.ts.map +0 -1
  154. package/dist/cjs/components/Dashboard/DashboardSection.js +0 -17
  155. package/dist/cjs/components/Dashboard/DashboardSectionContainer.d.ts +0 -3
  156. package/dist/cjs/components/Dashboard/DashboardSectionContainer.d.ts.map +0 -1
  157. package/dist/cjs/components/Dashboard/DashboardSectionContainer.js +0 -13
  158. package/dist/cjs/components/Dashboard/DataLoader.d.ts +0 -3
  159. package/dist/cjs/components/Dashboard/DataLoader.d.ts.map +0 -1
  160. package/dist/cjs/components/Dashboard/DataLoader.js +0 -74
  161. package/dist/cjs/components/Dashboard/MetricComponent.d.ts +0 -3
  162. package/dist/cjs/components/Dashboard/MetricComponent.d.ts.map +0 -1
  163. package/dist/cjs/components/Dashboard/MetricComponent.js +0 -65
  164. package/dist/cjs/components/Dashboard/TableComponent.d.ts +0 -3
  165. package/dist/cjs/components/Dashboard/TableComponent.d.ts.map +0 -1
  166. package/dist/cjs/components/Dashboard/TableComponent.js +0 -35
  167. package/dist/cjs/components/Dropdown/Dropdown.d.ts +0 -14
  168. package/dist/cjs/components/Dropdown/Dropdown.d.ts.map +0 -1
  169. package/dist/cjs/components/Dropdown/Dropdown.js +0 -99
  170. package/dist/cjs/components/Dropdown/DropdownItem.d.ts +0 -11
  171. package/dist/cjs/components/Dropdown/DropdownItem.d.ts.map +0 -1
  172. package/dist/cjs/components/Dropdown/DropdownItem.js +0 -67
  173. package/dist/cjs/components/Dropdown/index.d.ts +0 -3
  174. package/dist/cjs/components/Dropdown/index.d.ts.map +0 -1
  175. package/dist/cjs/components/Dropdown/index.js +0 -10
  176. package/dist/cjs/components/Modal/Modal.d.ts +0 -15
  177. package/dist/cjs/components/Modal/Modal.d.ts.map +0 -1
  178. package/dist/cjs/components/Modal/Modal.js +0 -90
  179. package/dist/cjs/components/Modal/index.d.ts +0 -2
  180. package/dist/cjs/components/Modal/index.d.ts.map +0 -1
  181. package/dist/cjs/components/Modal/index.js +0 -8
  182. package/dist/cjs/components/QuillCard.d.ts +0 -14
  183. package/dist/cjs/components/QuillCard.d.ts.map +0 -1
  184. package/dist/cjs/components/QuillCard.js +0 -56
  185. package/dist/cjs/components/QuillSelect.d.ts +0 -3
  186. package/dist/cjs/components/QuillSelect.d.ts.map +0 -1
  187. package/dist/cjs/components/QuillSelect.js +0 -128
  188. package/dist/cjs/components/QuillTable.d.ts +0 -3
  189. package/dist/cjs/components/QuillTable.d.ts.map +0 -1
  190. package/dist/cjs/components/QuillTable.js +0 -255
  191. package/dist/cjs/components/UiComponents.d.ts +0 -130
  192. package/dist/cjs/components/UiComponents.d.ts.map +0 -1
  193. package/dist/cjs/components/UiComponents.js +0 -262
  194. package/dist/cjs/components/selectUtils.d.ts +0 -10
  195. package/dist/cjs/components/selectUtils.d.ts.map +0 -1
  196. package/dist/cjs/components/selectUtils.js +0 -47
  197. package/dist/cjs/contexts/BaseColorContext.d.ts +0 -4
  198. package/dist/cjs/contexts/BaseColorContext.d.ts.map +0 -1
  199. package/dist/cjs/contexts/BaseColorContext.js +0 -5
  200. package/dist/cjs/contexts/HoveredValueContext.d.ts +0 -8
  201. package/dist/cjs/contexts/HoveredValueContext.d.ts.map +0 -1
  202. package/dist/cjs/contexts/HoveredValueContext.js +0 -7
  203. package/dist/cjs/contexts/RootStylesContext.d.ts +0 -4
  204. package/dist/cjs/contexts/RootStylesContext.d.ts.map +0 -1
  205. package/dist/cjs/contexts/RootStylesContext.js +0 -5
  206. package/dist/cjs/contexts/SelectedValueContext.d.ts +0 -8
  207. package/dist/cjs/contexts/SelectedValueContext.d.ts.map +0 -1
  208. package/dist/cjs/contexts/SelectedValueContext.js +0 -8
  209. package/dist/cjs/contexts/index.d.ts +0 -5
  210. package/dist/cjs/contexts/index.d.ts.map +0 -1
  211. package/dist/cjs/contexts/index.js +0 -14
  212. package/dist/cjs/hooks/index.d.ts +0 -5
  213. package/dist/cjs/hooks/index.d.ts.map +0 -1
  214. package/dist/cjs/hooks/index.js +0 -14
  215. package/dist/cjs/hooks/useDashboard.d.ts +0 -7
  216. package/dist/cjs/hooks/useDashboard.d.ts.map +0 -1
  217. package/dist/cjs/hooks/useDashboard.js +0 -54
  218. package/dist/cjs/hooks/useExport.d.ts +0 -15
  219. package/dist/cjs/hooks/useExport.d.ts.map +0 -1
  220. package/dist/cjs/hooks/useExport.js +0 -31
  221. package/dist/cjs/hooks/useFormat.d.ts +0 -6
  222. package/dist/cjs/hooks/useFormat.d.ts.map +0 -1
  223. package/dist/cjs/hooks/useFormat.js +0 -25
  224. package/dist/cjs/hooks/useInternalState.d.ts +0 -4
  225. package/dist/cjs/hooks/useInternalState.d.ts.map +0 -1
  226. package/dist/cjs/hooks/useInternalState.js +0 -16
  227. package/dist/cjs/hooks/useOnClickOutside.d.ts +0 -3
  228. package/dist/cjs/hooks/useOnClickOutside.d.ts.map +0 -1
  229. package/dist/cjs/hooks/useOnClickOutside.js +0 -20
  230. package/dist/cjs/hooks/useOnWindowResize.d.ts +0 -5
  231. package/dist/cjs/hooks/useOnWindowResize.d.ts.map +0 -1
  232. package/dist/cjs/hooks/useOnWindowResize.js +0 -16
  233. package/dist/cjs/hooks/useQuill.d.ts +0 -46
  234. package/dist/cjs/hooks/useQuill.d.ts.map +0 -1
  235. package/dist/cjs/hooks/useQuill.js +0 -94
  236. package/dist/cjs/hooks/useSelectOnKeyDown.d.ts +0 -3
  237. package/dist/cjs/hooks/useSelectOnKeyDown.d.ts.map +0 -1
  238. package/dist/cjs/hooks/useSelectOnKeyDown.js +0 -65
  239. package/dist/cjs/index.d.ts +0 -19
  240. package/dist/cjs/index.d.ts.map +0 -1
  241. package/dist/cjs/index.js +0 -38
  242. package/dist/cjs/internals/ReportBuilder/PivotList.d.ts +0 -34
  243. package/dist/cjs/internals/ReportBuilder/PivotList.d.ts.map +0 -1
  244. package/dist/cjs/internals/ReportBuilder/PivotList.js +0 -61
  245. package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts +0 -62
  246. package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts.map +0 -1
  247. package/dist/cjs/internals/ReportBuilder/PivotModal.js +0 -916
  248. package/dist/cjs/internals/ReportBuilder/PivotModal.spec.d.ts +0 -2
  249. package/dist/cjs/internals/ReportBuilder/PivotModal.spec.d.ts.map +0 -1
  250. package/dist/cjs/internals/ReportBuilder/PivotModal.spec.js +0 -213
  251. package/dist/cjs/lib/font.d.ts +0 -14
  252. package/dist/cjs/lib/font.d.ts.map +0 -1
  253. package/dist/cjs/lib/font.js +0 -16
  254. package/dist/cjs/lib/index.d.ts +0 -4
  255. package/dist/cjs/lib/index.d.ts.map +0 -1
  256. package/dist/cjs/lib/index.js +0 -19
  257. package/dist/cjs/lib/inputTypes.d.ts +0 -21
  258. package/dist/cjs/lib/inputTypes.d.ts.map +0 -1
  259. package/dist/cjs/lib/inputTypes.js +0 -56
  260. package/dist/cjs/lib/utils.d.ts +0 -10
  261. package/dist/cjs/lib/utils.d.ts.map +0 -1
  262. package/dist/cjs/lib/utils.js +0 -45
  263. package/dist/cjs/utils/aggregate.d.ts +0 -4
  264. package/dist/cjs/utils/aggregate.d.ts.map +0 -1
  265. package/dist/cjs/utils/aggregate.js +0 -429
  266. package/dist/cjs/utils/axisFormatter.d.ts +0 -20
  267. package/dist/cjs/utils/axisFormatter.d.ts.map +0 -1
  268. package/dist/cjs/utils/axisFormatter.js +0 -194
  269. package/dist/cjs/utils/color.d.ts +0 -13
  270. package/dist/cjs/utils/color.d.ts.map +0 -1
  271. package/dist/cjs/utils/color.js +0 -251
  272. package/dist/cjs/utils/crypto.d.ts +0 -2
  273. package/dist/cjs/utils/crypto.d.ts.map +0 -1
  274. package/dist/cjs/utils/crypto.js +0 -10
  275. package/dist/cjs/utils/csv.d.ts +0 -6
  276. package/dist/cjs/utils/csv.d.ts.map +0 -1
  277. package/dist/cjs/utils/csv.js +0 -80
  278. package/dist/cjs/utils/dashboard.d.ts +0 -12
  279. package/dist/cjs/utils/dashboard.d.ts.map +0 -1
  280. package/dist/cjs/utils/dashboard.js +0 -174
  281. package/dist/cjs/utils/dataFetcher.d.ts +0 -3
  282. package/dist/cjs/utils/dataFetcher.d.ts.map +0 -1
  283. package/dist/cjs/utils/dataFetcher.js +0 -71
  284. package/dist/cjs/utils/dates.d.ts +0 -10
  285. package/dist/cjs/utils/dates.d.ts.map +0 -1
  286. package/dist/cjs/utils/dates.js +0 -37
  287. package/dist/cjs/utils/getDomain.d.ts +0 -8
  288. package/dist/cjs/utils/getDomain.d.ts.map +0 -1
  289. package/dist/cjs/utils/getDomain.js +0 -31
  290. package/dist/cjs/utils/merge.d.ts +0 -2
  291. package/dist/cjs/utils/merge.d.ts.map +0 -1
  292. package/dist/cjs/utils/merge.js +0 -49
  293. package/dist/cjs/utils/styles.d.ts +0 -17
  294. package/dist/cjs/utils/styles.d.ts.map +0 -1
  295. package/dist/cjs/utils/styles.js +0 -20
  296. package/dist/cjs/utils/valueFormatter.d.ts +0 -27
  297. package/dist/cjs/utils/valueFormatter.d.ts.map +0 -1
  298. package/dist/cjs/utils/valueFormatter.js +0 -252
  299. package/dist/cjs/utils/valueFormatterCSV.d.ts +0 -17
  300. package/dist/cjs/utils/valueFormatterCSV.d.ts.map +0 -1
  301. package/dist/cjs/utils/valueFormatterCSV.js +0 -99
  302. package/dist/esm/BarList.d.ts +0 -22
  303. package/dist/esm/BarList.d.ts.map +0 -1
  304. package/dist/esm/BarList.js +0 -279
  305. package/dist/esm/Chart.d.ts +0 -42
  306. package/dist/esm/Chart.d.ts.map +0 -1
  307. package/dist/esm/Chart.js +0 -353
  308. package/dist/esm/ChartBuilder.d.ts +0 -46
  309. package/dist/esm/ChartBuilder.d.ts.map +0 -1
  310. package/dist/esm/ChartBuilder.js +0 -695
  311. package/dist/esm/ChartEditor.d.ts +0 -27
  312. package/dist/esm/ChartEditor.d.ts.map +0 -1
  313. package/dist/esm/ChartEditor.js +0 -72
  314. package/dist/esm/Context.d.ts +0 -36
  315. package/dist/esm/Context.d.ts.map +0 -1
  316. package/dist/esm/Context.js +0 -223
  317. package/dist/esm/Dashboard.d.ts +0 -178
  318. package/dist/esm/Dashboard.d.ts.map +0 -1
  319. package/dist/esm/Dashboard.js +0 -490
  320. package/dist/esm/DateRangePicker/Calendar.d.ts +0 -17
  321. package/dist/esm/DateRangePicker/Calendar.d.ts.map +0 -1
  322. package/dist/esm/DateRangePicker/Calendar.js +0 -167
  323. package/dist/esm/DateRangePicker/DateRangePicker.d.ts +0 -39
  324. package/dist/esm/DateRangePicker/DateRangePicker.d.ts.map +0 -1
  325. package/dist/esm/DateRangePicker/DateRangePicker.js +0 -122
  326. package/dist/esm/DateRangePicker/DateRangePickerButton.d.ts +0 -23
  327. package/dist/esm/DateRangePicker/DateRangePickerButton.d.ts.map +0 -1
  328. package/dist/esm/DateRangePicker/DateRangePickerButton.js +0 -136
  329. package/dist/esm/DateRangePicker/QuillDateRangePicker.d.ts +0 -3
  330. package/dist/esm/DateRangePicker/QuillDateRangePicker.d.ts.map +0 -1
  331. package/dist/esm/DateRangePicker/QuillDateRangePicker.js +0 -256
  332. package/dist/esm/DateRangePicker/dateRangePickerUtils.d.ts +0 -80
  333. package/dist/esm/DateRangePicker/dateRangePickerUtils.d.ts.map +0 -1
  334. package/dist/esm/DateRangePicker/dateRangePickerUtils.js +0 -535
  335. package/dist/esm/DateRangePicker/index.d.ts +0 -3
  336. package/dist/esm/DateRangePicker/index.d.ts.map +0 -1
  337. package/dist/esm/DateRangePicker/index.js +0 -2
  338. package/dist/esm/PieChart.d.ts +0 -59
  339. package/dist/esm/PieChart.d.ts.map +0 -1
  340. package/dist/esm/PieChart.js +0 -533
  341. package/dist/esm/QuillProvider.d.ts +0 -58
  342. package/dist/esm/QuillProvider.d.ts.map +0 -1
  343. package/dist/esm/QuillProvider.js +0 -31
  344. package/dist/esm/ReportBuilder.d.ts +0 -41
  345. package/dist/esm/ReportBuilder.d.ts.map +0 -1
  346. package/dist/esm/ReportBuilder.js +0 -996
  347. package/dist/esm/SQLEditor.d.ts +0 -54
  348. package/dist/esm/SQLEditor.d.ts.map +0 -1
  349. package/dist/esm/SQLEditor.js +0 -494
  350. package/dist/esm/TableChart.d.ts +0 -15
  351. package/dist/esm/TableChart.d.ts.map +0 -1
  352. package/dist/esm/TableChart.js +0 -290
  353. package/dist/esm/assets/ArrowDownHeadIcon.d.ts +0 -5
  354. package/dist/esm/assets/ArrowDownHeadIcon.d.ts.map +0 -1
  355. package/dist/esm/assets/ArrowDownHeadIcon.js +0 -3
  356. package/dist/esm/assets/ArrowDownIcon.d.ts +0 -5
  357. package/dist/esm/assets/ArrowDownIcon.d.ts.map +0 -1
  358. package/dist/esm/assets/ArrowDownIcon.js +0 -3
  359. package/dist/esm/assets/ArrowDownRightIcon.d.ts +0 -5
  360. package/dist/esm/assets/ArrowDownRightIcon.d.ts.map +0 -1
  361. package/dist/esm/assets/ArrowDownRightIcon.js +0 -3
  362. package/dist/esm/assets/ArrowLeftHeadIcon.d.ts +0 -5
  363. package/dist/esm/assets/ArrowLeftHeadIcon.d.ts.map +0 -1
  364. package/dist/esm/assets/ArrowLeftHeadIcon.js +0 -3
  365. package/dist/esm/assets/ArrowRightHeadIcon.d.ts +0 -5
  366. package/dist/esm/assets/ArrowRightHeadIcon.d.ts.map +0 -1
  367. package/dist/esm/assets/ArrowRightHeadIcon.js +0 -3
  368. package/dist/esm/assets/ArrowRightIcon.d.ts +0 -5
  369. package/dist/esm/assets/ArrowRightIcon.d.ts.map +0 -1
  370. package/dist/esm/assets/ArrowRightIcon.js +0 -3
  371. package/dist/esm/assets/ArrowUpHeadIcon.d.ts +0 -5
  372. package/dist/esm/assets/ArrowUpHeadIcon.d.ts.map +0 -1
  373. package/dist/esm/assets/ArrowUpHeadIcon.js +0 -3
  374. package/dist/esm/assets/ArrowUpIcon.d.ts +0 -5
  375. package/dist/esm/assets/ArrowUpIcon.d.ts.map +0 -1
  376. package/dist/esm/assets/ArrowUpIcon.js +0 -3
  377. package/dist/esm/assets/ArrowUpRightIcon.d.ts +0 -5
  378. package/dist/esm/assets/ArrowUpRightIcon.d.ts.map +0 -1
  379. package/dist/esm/assets/ArrowUpRightIcon.js +0 -3
  380. package/dist/esm/assets/CalendarIcon.d.ts +0 -5
  381. package/dist/esm/assets/CalendarIcon.d.ts.map +0 -1
  382. package/dist/esm/assets/CalendarIcon.js +0 -3
  383. package/dist/esm/assets/CalendarNormalIcon.d.ts +0 -5
  384. package/dist/esm/assets/CalendarNormalIcon.d.ts.map +0 -1
  385. package/dist/esm/assets/CalendarNormalIcon.js +0 -3
  386. package/dist/esm/assets/DoubleArrowLeftHeadIcon.d.ts +0 -5
  387. package/dist/esm/assets/DoubleArrowLeftHeadIcon.d.ts.map +0 -1
  388. package/dist/esm/assets/DoubleArrowLeftHeadIcon.js +0 -3
  389. package/dist/esm/assets/DoubleArrowRightHeadIcon.d.ts +0 -5
  390. package/dist/esm/assets/DoubleArrowRightHeadIcon.d.ts.map +0 -1
  391. package/dist/esm/assets/DoubleArrowRightHeadIcon.js +0 -3
  392. package/dist/esm/assets/ExclamationFilledIcon.d.ts +0 -5
  393. package/dist/esm/assets/ExclamationFilledIcon.d.ts.map +0 -1
  394. package/dist/esm/assets/ExclamationFilledIcon.js +0 -3
  395. package/dist/esm/assets/FilterIcon.d.ts +0 -5
  396. package/dist/esm/assets/FilterIcon.d.ts.map +0 -1
  397. package/dist/esm/assets/FilterIcon.js +0 -3
  398. package/dist/esm/assets/LoadingSpinner.d.ts +0 -5
  399. package/dist/esm/assets/LoadingSpinner.d.ts.map +0 -1
  400. package/dist/esm/assets/LoadingSpinner.js +0 -3
  401. package/dist/esm/assets/RefreshIcon.d.ts +0 -5
  402. package/dist/esm/assets/RefreshIcon.d.ts.map +0 -1
  403. package/dist/esm/assets/RefreshIcon.js +0 -3
  404. package/dist/esm/assets/SearchIcon.d.ts +0 -5
  405. package/dist/esm/assets/SearchIcon.d.ts.map +0 -1
  406. package/dist/esm/assets/SearchIcon.js +0 -3
  407. package/dist/esm/assets/UpLeftArrowsIcon.d.ts +0 -5
  408. package/dist/esm/assets/UpLeftArrowsIcon.d.ts.map +0 -1
  409. package/dist/esm/assets/UpLeftArrowsIcon.js +0 -3
  410. package/dist/esm/assets/XCircleIcon.d.ts +0 -5
  411. package/dist/esm/assets/XCircleIcon.d.ts.map +0 -1
  412. package/dist/esm/assets/XCircleIcon.js +0 -3
  413. package/dist/esm/assets/XIcon.d.ts +0 -5
  414. package/dist/esm/assets/XIcon.d.ts.map +0 -1
  415. package/dist/esm/assets/XIcon.js +0 -3
  416. package/dist/esm/assets/index.d.ts +0 -22
  417. package/dist/esm/assets/index.d.ts.map +0 -1
  418. package/dist/esm/assets/index.js +0 -21
  419. package/dist/esm/components/Banner/index.d.ts +0 -3
  420. package/dist/esm/components/Banner/index.d.ts.map +0 -1
  421. package/dist/esm/components/Banner/index.js +0 -24
  422. package/dist/esm/components/BigModal/BigModal.d.ts +0 -15
  423. package/dist/esm/components/BigModal/BigModal.d.ts.map +0 -1
  424. package/dist/esm/components/BigModal/BigModal.js +0 -62
  425. package/dist/esm/components/Chart/BarChart.d.ts +0 -18
  426. package/dist/esm/components/Chart/BarChart.d.ts.map +0 -1
  427. package/dist/esm/components/Chart/BarChart.js +0 -75
  428. package/dist/esm/components/Chart/ChartError.d.ts +0 -3
  429. package/dist/esm/components/Chart/ChartError.d.ts.map +0 -1
  430. package/dist/esm/components/Chart/ChartError.js +0 -26
  431. package/dist/esm/components/Chart/ChartSkeleton.d.ts +0 -6
  432. package/dist/esm/components/Chart/ChartSkeleton.d.ts.map +0 -1
  433. package/dist/esm/components/Chart/ChartSkeleton.js +0 -17
  434. package/dist/esm/components/Chart/ChartTooltip.d.ts +0 -29
  435. package/dist/esm/components/Chart/ChartTooltip.d.ts.map +0 -1
  436. package/dist/esm/components/Chart/ChartTooltip.js +0 -229
  437. package/dist/esm/components/Chart/ChartTooltipFrame.d.ts +0 -6
  438. package/dist/esm/components/Chart/ChartTooltipFrame.d.ts.map +0 -1
  439. package/dist/esm/components/Chart/ChartTooltipFrame.js +0 -13
  440. package/dist/esm/components/Chart/ChartTooltipGroup.d.ts +0 -11
  441. package/dist/esm/components/Chart/ChartTooltipGroup.d.ts.map +0 -1
  442. package/dist/esm/components/Chart/ChartTooltipGroup.js +0 -23
  443. package/dist/esm/components/Chart/ChartTooltipRow.d.ts +0 -8
  444. package/dist/esm/components/Chart/ChartTooltipRow.d.ts.map +0 -1
  445. package/dist/esm/components/Chart/ChartTooltipRow.js +0 -41
  446. package/dist/esm/components/Chart/LineChart.d.ts +0 -16
  447. package/dist/esm/components/Chart/LineChart.d.ts.map +0 -1
  448. package/dist/esm/components/Chart/LineChart.js +0 -91
  449. package/dist/esm/components/Dashboard/ChartComponent.d.ts +0 -3
  450. package/dist/esm/components/Dashboard/ChartComponent.d.ts.map +0 -1
  451. package/dist/esm/components/Dashboard/ChartComponent.js +0 -61
  452. package/dist/esm/components/Dashboard/DashboardSection.d.ts +0 -3
  453. package/dist/esm/components/Dashboard/DashboardSection.d.ts.map +0 -1
  454. package/dist/esm/components/Dashboard/DashboardSection.js +0 -14
  455. package/dist/esm/components/Dashboard/DashboardSectionContainer.d.ts +0 -3
  456. package/dist/esm/components/Dashboard/DashboardSectionContainer.d.ts.map +0 -1
  457. package/dist/esm/components/Dashboard/DashboardSectionContainer.js +0 -10
  458. package/dist/esm/components/Dashboard/DataLoader.d.ts +0 -3
  459. package/dist/esm/components/Dashboard/DataLoader.d.ts.map +0 -1
  460. package/dist/esm/components/Dashboard/DataLoader.js +0 -71
  461. package/dist/esm/components/Dashboard/MetricComponent.d.ts +0 -3
  462. package/dist/esm/components/Dashboard/MetricComponent.d.ts.map +0 -1
  463. package/dist/esm/components/Dashboard/MetricComponent.js +0 -62
  464. package/dist/esm/components/Dashboard/TableComponent.d.ts +0 -3
  465. package/dist/esm/components/Dashboard/TableComponent.d.ts.map +0 -1
  466. package/dist/esm/components/Dashboard/TableComponent.js +0 -29
  467. package/dist/esm/components/Dropdown/Dropdown.d.ts +0 -14
  468. package/dist/esm/components/Dropdown/Dropdown.d.ts.map +0 -1
  469. package/dist/esm/components/Dropdown/Dropdown.js +0 -71
  470. package/dist/esm/components/Dropdown/DropdownItem.d.ts +0 -11
  471. package/dist/esm/components/Dropdown/DropdownItem.d.ts.map +0 -1
  472. package/dist/esm/components/Dropdown/DropdownItem.js +0 -42
  473. package/dist/esm/components/Dropdown/index.d.ts +0 -3
  474. package/dist/esm/components/Dropdown/index.d.ts.map +0 -1
  475. package/dist/esm/components/Dropdown/index.js +0 -2
  476. package/dist/esm/components/Modal/Modal.d.ts +0 -15
  477. package/dist/esm/components/Modal/Modal.d.ts.map +0 -1
  478. package/dist/esm/components/Modal/Modal.js +0 -65
  479. package/dist/esm/components/Modal/index.d.ts +0 -2
  480. package/dist/esm/components/Modal/index.d.ts.map +0 -1
  481. package/dist/esm/components/Modal/index.js +0 -1
  482. package/dist/esm/components/QuillCard.d.ts +0 -14
  483. package/dist/esm/components/QuillCard.d.ts.map +0 -1
  484. package/dist/esm/components/QuillCard.js +0 -52
  485. package/dist/esm/components/QuillSelect.d.ts +0 -3
  486. package/dist/esm/components/QuillSelect.d.ts.map +0 -1
  487. package/dist/esm/components/QuillSelect.js +0 -124
  488. package/dist/esm/components/QuillTable.d.ts +0 -3
  489. package/dist/esm/components/QuillTable.d.ts.map +0 -1
  490. package/dist/esm/components/QuillTable.js +0 -252
  491. package/dist/esm/components/UiComponents.d.ts +0 -130
  492. package/dist/esm/components/UiComponents.d.ts.map +0 -1
  493. package/dist/esm/components/UiComponents.js +0 -248
  494. package/dist/esm/components/selectUtils.d.ts +0 -10
  495. package/dist/esm/components/selectUtils.d.ts.map +0 -1
  496. package/dist/esm/components/selectUtils.js +0 -37
  497. package/dist/esm/contexts/BaseColorContext.d.ts +0 -4
  498. package/dist/esm/contexts/BaseColorContext.d.ts.map +0 -1
  499. package/dist/esm/contexts/BaseColorContext.js +0 -3
  500. package/dist/esm/contexts/HoveredValueContext.d.ts +0 -8
  501. package/dist/esm/contexts/HoveredValueContext.d.ts.map +0 -1
  502. package/dist/esm/contexts/HoveredValueContext.js +0 -5
  503. package/dist/esm/contexts/RootStylesContext.d.ts +0 -4
  504. package/dist/esm/contexts/RootStylesContext.d.ts.map +0 -1
  505. package/dist/esm/contexts/RootStylesContext.js +0 -3
  506. package/dist/esm/contexts/SelectedValueContext.d.ts +0 -8
  507. package/dist/esm/contexts/SelectedValueContext.d.ts.map +0 -1
  508. package/dist/esm/contexts/SelectedValueContext.js +0 -6
  509. package/dist/esm/contexts/index.d.ts +0 -5
  510. package/dist/esm/contexts/index.d.ts.map +0 -1
  511. package/dist/esm/contexts/index.js +0 -4
  512. package/dist/esm/hooks/index.d.ts +0 -5
  513. package/dist/esm/hooks/index.d.ts.map +0 -1
  514. package/dist/esm/hooks/index.js +0 -4
  515. package/dist/esm/hooks/useDashboard.d.ts +0 -7
  516. package/dist/esm/hooks/useDashboard.d.ts.map +0 -1
  517. package/dist/esm/hooks/useDashboard.js +0 -50
  518. package/dist/esm/hooks/useExport.d.ts +0 -15
  519. package/dist/esm/hooks/useExport.d.ts.map +0 -1
  520. package/dist/esm/hooks/useExport.js +0 -27
  521. package/dist/esm/hooks/useFormat.d.ts +0 -6
  522. package/dist/esm/hooks/useFormat.d.ts.map +0 -1
  523. package/dist/esm/hooks/useFormat.js +0 -21
  524. package/dist/esm/hooks/useInternalState.d.ts +0 -4
  525. package/dist/esm/hooks/useInternalState.d.ts.map +0 -1
  526. package/dist/esm/hooks/useInternalState.js +0 -14
  527. package/dist/esm/hooks/useOnClickOutside.d.ts +0 -3
  528. package/dist/esm/hooks/useOnClickOutside.d.ts.map +0 -1
  529. package/dist/esm/hooks/useOnClickOutside.js +0 -18
  530. package/dist/esm/hooks/useOnWindowResize.d.ts +0 -5
  531. package/dist/esm/hooks/useOnWindowResize.d.ts.map +0 -1
  532. package/dist/esm/hooks/useOnWindowResize.js +0 -14
  533. package/dist/esm/hooks/useQuill.d.ts +0 -46
  534. package/dist/esm/hooks/useQuill.d.ts.map +0 -1
  535. package/dist/esm/hooks/useQuill.js +0 -90
  536. package/dist/esm/hooks/useSelectOnKeyDown.d.ts +0 -3
  537. package/dist/esm/hooks/useSelectOnKeyDown.d.ts.map +0 -1
  538. package/dist/esm/hooks/useSelectOnKeyDown.js +0 -63
  539. package/dist/esm/index.d.ts +0 -19
  540. package/dist/esm/index.d.ts.map +0 -1
  541. package/dist/esm/index.js +0 -16
  542. package/dist/esm/internals/ReportBuilder/PivotList.d.ts +0 -34
  543. package/dist/esm/internals/ReportBuilder/PivotList.d.ts.map +0 -1
  544. package/dist/esm/internals/ReportBuilder/PivotList.js +0 -56
  545. package/dist/esm/internals/ReportBuilder/PivotModal.d.ts +0 -62
  546. package/dist/esm/internals/ReportBuilder/PivotModal.d.ts.map +0 -1
  547. package/dist/esm/internals/ReportBuilder/PivotModal.js +0 -909
  548. package/dist/esm/internals/ReportBuilder/PivotModal.spec.d.ts +0 -2
  549. package/dist/esm/internals/ReportBuilder/PivotModal.spec.d.ts.map +0 -1
  550. package/dist/esm/internals/ReportBuilder/PivotModal.spec.js +0 -211
  551. package/dist/esm/lib/font.d.ts +0 -14
  552. package/dist/esm/lib/font.d.ts.map +0 -1
  553. package/dist/esm/lib/font.js +0 -13
  554. package/dist/esm/lib/index.d.ts +0 -4
  555. package/dist/esm/lib/index.d.ts.map +0 -1
  556. package/dist/esm/lib/index.js +0 -3
  557. package/dist/esm/lib/inputTypes.d.ts +0 -21
  558. package/dist/esm/lib/inputTypes.d.ts.map +0 -1
  559. package/dist/esm/lib/inputTypes.js +0 -55
  560. package/dist/esm/lib/utils.d.ts +0 -10
  561. package/dist/esm/lib/utils.d.ts.map +0 -1
  562. package/dist/esm/lib/utils.js +0 -35
  563. package/dist/esm/utils/aggregate.d.ts +0 -4
  564. package/dist/esm/utils/aggregate.d.ts.map +0 -1
  565. package/dist/esm/utils/aggregate.js +0 -423
  566. package/dist/esm/utils/axisFormatter.d.ts +0 -20
  567. package/dist/esm/utils/axisFormatter.d.ts.map +0 -1
  568. package/dist/esm/utils/axisFormatter.js +0 -190
  569. package/dist/esm/utils/color.d.ts +0 -13
  570. package/dist/esm/utils/color.d.ts.map +0 -1
  571. package/dist/esm/utils/color.js +0 -247
  572. package/dist/esm/utils/crypto.d.ts +0 -2
  573. package/dist/esm/utils/crypto.d.ts.map +0 -1
  574. package/dist/esm/utils/crypto.js +0 -6
  575. package/dist/esm/utils/csv.d.ts +0 -6
  576. package/dist/esm/utils/csv.d.ts.map +0 -1
  577. package/dist/esm/utils/csv.js +0 -76
  578. package/dist/esm/utils/dashboard.d.ts +0 -12
  579. package/dist/esm/utils/dashboard.d.ts.map +0 -1
  580. package/dist/esm/utils/dashboard.js +0 -170
  581. package/dist/esm/utils/dataFetcher.d.ts +0 -3
  582. package/dist/esm/utils/dataFetcher.d.ts.map +0 -1
  583. package/dist/esm/utils/dataFetcher.js +0 -66
  584. package/dist/esm/utils/dates.d.ts +0 -10
  585. package/dist/esm/utils/dates.d.ts.map +0 -1
  586. package/dist/esm/utils/dates.js +0 -32
  587. package/dist/esm/utils/getDomain.d.ts +0 -8
  588. package/dist/esm/utils/getDomain.d.ts.map +0 -1
  589. package/dist/esm/utils/getDomain.js +0 -28
  590. package/dist/esm/utils/merge.d.ts +0 -2
  591. package/dist/esm/utils/merge.d.ts.map +0 -1
  592. package/dist/esm/utils/merge.js +0 -45
  593. package/dist/esm/utils/styles.d.ts +0 -17
  594. package/dist/esm/utils/styles.d.ts.map +0 -1
  595. package/dist/esm/utils/styles.js +0 -16
  596. package/dist/esm/utils/valueFormatter.d.ts +0 -27
  597. package/dist/esm/utils/valueFormatter.d.ts.map +0 -1
  598. package/dist/esm/utils/valueFormatter.js +0 -246
  599. package/dist/esm/utils/valueFormatterCSV.d.ts +0 -17
  600. package/dist/esm/utils/valueFormatterCSV.d.ts.map +0 -1
  601. package/dist/esm/utils/valueFormatterCSV.js +0 -95
@@ -1,916 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.generatePivotTable = exports.isDateField = exports.generatePivotTableYAxis = exports.PivotModal = void 0;
4
- const jsx_runtime_1 = require("react/jsx-runtime");
5
- // @ts-nocheck
6
- const react_1 = require("react");
7
- const Context_1 = require("../../Context");
8
- const dataFetcher_1 = require("../../utils/dataFetcher");
9
- const assets_1 = require("../../assets");
10
- const PivotList_1 = require("./PivotList");
11
- const date_fns_1 = require("date-fns");
12
- const valueFormatter_1 = require("../../utils/valueFormatter");
13
- const ChartBuilder_1 = require("../../ChartBuilder");
14
- const QuillCard_1 = require("../../components/QuillCard");
15
- const QuillHover = () => {
16
- return ((0, jsx_runtime_1.jsx)("style", { children: `
17
- .quill-hover {
18
- background-color: white;
19
- }
20
- .quill-hover:hover {
21
- background-color: rgba(56, 65, 81, 0.05);
22
- }
23
- .quill-tab:active {
24
- background-color: rgba(56, 65, 81, 0.15);
25
- }
26
- ` }));
27
- };
28
- const PivotModal = ({ pivotRowField, setPivotRowField, pivotColumnField, setPivotColumnField, pivotValueField, setPivotValueField, pivotAggregation, setPivotAggregation, popUpTitle, setPopUpTitle, selectedTable, SelectComponent, ButtonComponent, PopoverComponent, HeaderComponent, LabelComponent, TextComponent, selectedPivotIndex, setSelectedPivotIndex, removePivot, selectPivot, showUpdatePivot, setShowUpdatePivot, data, columns, theme, isOpen, setIsOpen, dateRange, createdPivots, setCreatedPivots, recommendedPivots, setRecommendedPivots, triggerButtonText = 'Pivot', showPivotEditButton = false, showEditOnPivotClick = true, selectPivotOnEdit = false, showTrigger = true, rightAlign = false, parentRef, }) => {
29
- const [isLoading, setIsLoading] = (0, react_1.useState)(false);
30
- // for testing
31
- // const [createdPivots, setCreatedPivots] = useState<Pivot[]>([
32
- // {
33
- // rowField: 'created_at',
34
- // rowFieldType: 'date',
35
- // columnField: undefined,
36
- // columnFieldType: undefined,
37
- // valueField: 'amount',
38
- // aggregationType: 'sum',
39
- // title: 'sum of amount by created_at',
40
- // },
41
- // {
42
- // rowField: 'merchant',
43
- // rowFieldType: 'varchar',
44
- // columnField: 'created_at',
45
- // columnFieldType: 'date',
46
- // valueField: 'amount',
47
- // aggregationType: 'sum',
48
- // title: 'sum of amount by merchant and created_at',
49
- // },
50
- // {
51
- // rowField: 'created_at',
52
- // rowFieldType: 'date',
53
- // columnField: 'merchant',
54
- // columnFieldType: 'varchar',
55
- // valueField: 'amount',
56
- // aggregationType: 'sum',
57
- // title: 'sum of amount by created_at and merchant',
58
- // },
59
- // ]);
60
- const [pivotUpdateIndex, setPivotUpdateIndex] = (0, react_1.useState)(null);
61
- const [selectedPivotType, setSelectedPivotType] = (0, react_1.useState)('recommended');
62
- const [errors, setErrors] = (0, react_1.useState)([]);
63
- const [client] = (0, react_1.useContext)(Context_1.ClientContext);
64
- const [divWidth, setDivWidth] = (0, react_1.useState)(0);
65
- const editModalRef = (0, react_1.useRef)();
66
- const calculateWidth = () => {
67
- return editModalRef.current.offsetWidth;
68
- };
69
- (0, react_1.useEffect)(() => {
70
- // Measure the width of the div and update state
71
- if (editModalRef.current) {
72
- setDivWidth(calculateWidth());
73
- }
74
- // Optional: Handle window resize
75
- const handleResize = () => {
76
- if (editModalRef.current) {
77
- setDivWidth(calculateWidth());
78
- }
79
- };
80
- window.addEventListener('resize', handleResize);
81
- // Cleanup listener
82
- return () => {
83
- window.removeEventListener('resize', handleResize);
84
- };
85
- }, []);
86
- (0, react_1.useEffect)(() => {
87
- // Measure the width of the div and update state
88
- if (editModalRef.current) {
89
- setDivWidth(calculateWidth());
90
- }
91
- }, [editModalRef.current, showUpdatePivot]);
92
- (0, react_1.useEffect)(() => {
93
- setSelectedPivotIndex(-1);
94
- setPivotUpdateIndex(null);
95
- setSelectedPivotType(undefined);
96
- setPivotRowField(undefined);
97
- setPivotColumnField(undefined);
98
- setPivotValueField(undefined);
99
- setPivotAggregation(undefined);
100
- setIsOpen(false);
101
- setErrors([]);
102
- }, [selectedTable]);
103
- const columnsToShow = (0, react_1.useMemo)(() => {
104
- return (columns || []).reduce((map, col) => {
105
- // only use columns shown in the report builder's table
106
- // also filter out id
107
- if (col.field !== 'id' && !col.field.endsWith('_id')) {
108
- map[col.field] = col.fieldType;
109
- }
110
- return map;
111
- }, {});
112
- }, [columns]);
113
- const selectedPivotTable = (0, react_1.useMemo)(() => {
114
- if (selectedPivotIndex === -1) {
115
- return null;
116
- }
117
- const pivot = createdPivots[selectedPivotIndex];
118
- const { rows, columns } = generatePivotTable(pivot, data, dateRange);
119
- return {
120
- pivot: pivot,
121
- rows: rows,
122
- columns: columns,
123
- };
124
- }, [selectedPivotIndex, data, dateRange, createdPivots]);
125
- const columnSelectOptions = (0, react_1.useMemo)(() => {
126
- return [
127
- { label: 'Select', value: '' },
128
- ...Object.keys(columnsToShow).map((key) => {
129
- return { label: key, value: key };
130
- }),
131
- ];
132
- }, [columnsToShow]);
133
- const onSelectRecommendedPivot = (pivot, index) => {
134
- if (showEditOnPivotClick) {
135
- onEditPivot(pivot, index);
136
- return;
137
- }
138
- if (index === selectedPivotIndex && selectedPivotType === 'recommended') {
139
- removePivot();
140
- }
141
- else {
142
- selectPivot(pivot, index);
143
- setSelectedPivotType('recommended');
144
- }
145
- setIsOpen(false);
146
- };
147
- const onSelectCreatedPivot = (pivot, index) => {
148
- selectPivot(pivot, index);
149
- setSelectedPivotType('created');
150
- setIsOpen(false);
151
- setPopUpTitle('Add Pivot');
152
- };
153
- const onEditPivot = (pivot, index) => {
154
- setPivotRowField(pivot.rowField);
155
- setPivotColumnField(pivot.columnField);
156
- setPivotValueField(pivot.valueField);
157
- setPivotAggregation(pivot.aggregationType);
158
- setPivotUpdateIndex(index);
159
- setShowUpdatePivot(true);
160
- };
161
- const onEditRecommendedPivot = (pivot, index) => {
162
- onEditPivot(pivot, null);
163
- };
164
- const refreshPivots = (0, react_1.useCallback)(async () => {
165
- if (isLoading || Object.keys(columnsToShow).length === 0) {
166
- return;
167
- }
168
- setIsLoading(true);
169
- const cloudBody = {
170
- tableSchema: Object.keys(columnsToShow).reduce(function (map, col) {
171
- // stop ai from seeing date fields. this is meant to stop the ai
172
- // pivot tables from extracting month and year from the date
173
- const fieldType = isDateField(columnsToShow[col])
174
- ? 'string'
175
- : columnsToShow[col];
176
- map[col] = fieldType;
177
- return map;
178
- }, {}),
179
- };
180
- try {
181
- const resp = await (0, dataFetcher_1.getDataFromCloud)(client, 'pivotai', cloudBody);
182
- const recommendedPivots = resp?.data?.pivotTables || [];
183
- // for testing if needed
184
- // const recommendedPivots = [
185
- // {
186
- // title: 'Total Amount by Merchant',
187
- // rowField: 'merchant',
188
- // valueField: 'amount',
189
- // aggregationType: 'sum',
190
- // },
191
- // {
192
- // title: 'Average Amount by User and Category',
193
- // rowField: 'user_name',
194
- // columnField: 'category',
195
- // valueField: 'amount',
196
- // aggregationType: 'average',
197
- // },
198
- // {
199
- // title: 'Count of Transactions by User and Merchant',
200
- // rowField: 'user_name',
201
- // columnField: 'merchant',
202
- // valueField: 'id',
203
- // aggregationType: 'count',
204
- // },
205
- // {
206
- // title: 'Total Amount by Merchant and Category',
207
- // rowField: 'merchant',
208
- // columnField: 'category',
209
- // valueField: 'amount',
210
- // aggregationType: 'sum',
211
- // },
212
- // {
213
- // title: 'Average Amount by Category and Date',
214
- // rowField: 'category',
215
- // columnField: 'created_at',
216
- // valueField: 'amount',
217
- // aggregationType: 'average',
218
- // },
219
- // {
220
- // title: 'Count of Transactions by Date and Category',
221
- // rowField: 'created_at',
222
- // columnField: 'category',
223
- // valueField: 'id',
224
- // aggregationType: 'count',
225
- // },
226
- // ];
227
- setRecommendedPivots(recommendedPivots
228
- .filter((pivot) => pivot.rowField != '')
229
- .map((pivot) => {
230
- return {
231
- ...pivot,
232
- rowFieldType: columnsToShow[pivot.rowField],
233
- columnFieldType: columnsToShow[pivot.columnField],
234
- };
235
- }));
236
- // refreshing means the currently selected pivot doesn't exist in the options anymore
237
- setSelectedPivotIndex(-1);
238
- }
239
- catch (e) {
240
- console.error('Failed parsing pivotai response', e);
241
- }
242
- setIsLoading(false);
243
- }, [selectedTable, data, columnsToShow, isLoading]);
244
- (0, react_1.useEffect)(() => {
245
- if (recommendedPivots.length === 0) {
246
- refreshPivots();
247
- }
248
- }, [refreshPivots]);
249
- const recommendedPivotTables = (0, react_1.useMemo)(() => {
250
- const pts = recommendedPivots.map((p) => {
251
- const { rows, columns } = generatePivotTable(p, data, dateRange, 6);
252
- return { pivot: p, rows, columns };
253
- });
254
- return pts;
255
- }, [recommendedPivots, data]);
256
- const createdPivotTables = (0, react_1.useMemo)(() => {
257
- const pts = createdPivots.map((p) => {
258
- const { rows, columns } = generatePivotTable(p, data, dateRange, 6);
259
- return { pivot: p, rows, columns };
260
- });
261
- return pts;
262
- }, [createdPivots, data]);
263
- const samplePivotTable = (0, react_1.useMemo)(() => {
264
- if (!pivotAggregation || !pivotRowField) {
265
- return null;
266
- }
267
- const pivot = {
268
- rowField: pivotRowField || '',
269
- rowFieldType: columnsToShow[pivotRowField || ''],
270
- columnField: pivotColumnField,
271
- columnFieldType: columnsToShow[pivotColumnField || ''],
272
- valueField: pivotValueField || '',
273
- aggregationType: pivotAggregation || '',
274
- };
275
- const { rows, columns } = generatePivotTable(pivot, data, dateRange);
276
- return { pivot: pivot, rows, columns };
277
- }, [
278
- pivotAggregation,
279
- pivotValueField,
280
- pivotRowField,
281
- pivotColumnField,
282
- columnsToShow,
283
- ]);
284
- return ((0, jsx_runtime_1.jsx)("div", { style: { display: 'flex', flexDirection: 'column' }, children: (0, jsx_runtime_1.jsxs)("div", { style: {
285
- position: 'relative',
286
- display: 'inline-block',
287
- textAlign: 'left',
288
- }, children: [(0, jsx_runtime_1.jsx)("div", { style: {
289
- display: 'flex',
290
- flexDirection: 'row',
291
- alignItems: 'center',
292
- }, children: selectedPivotIndex !== -1 && ((0, jsx_runtime_1.jsx)("span", { style: {
293
- height: 10,
294
- width: 10,
295
- backgroundColor: theme.primaryButtonColor,
296
- borderRadius: '50%',
297
- position: 'absolute',
298
- top: -2,
299
- right: -2,
300
- } })) }), (0, jsx_runtime_1.jsx)(PopoverComponent, { onClose: () => {
301
- setShowUpdatePivot(false);
302
- setPopUpTitle('Add Pivot');
303
- }, style: rightAlign ? { right: 0 } : {}, parentRef: parentRef, showTrigger: showTrigger, label: triggerButtonText, isOpen: isOpen, setIsOpen: setIsOpen, onClick: () => {
304
- // table is not loaded yet, so pivot button is not clickable
305
- if (Object.keys(columnsToShow).length === 0) {
306
- return;
307
- }
308
- if (!isOpen && recommendedPivots.length === 0) {
309
- refreshPivots();
310
- }
311
- setShowUpdatePivot(false);
312
- }, children: (0, jsx_runtime_1.jsx)("div", { children: showUpdatePivot ? ((0, jsx_runtime_1.jsxs)("div", { className: "ref-in-use", ref: editModalRef, style: {
313
- backgroundColor: 'rgb(255, 255, 255)',
314
- display: 'flex',
315
- flexDirection: 'column',
316
- }, children: [(0, jsx_runtime_1.jsx)(HeaderComponent, { children: popUpTitle }), (0, jsx_runtime_1.jsx)("div", { style: { height: 12 } }), (0, jsx_runtime_1.jsx)("div", { style: { width: divWidth }, children: samplePivotTable ? ((0, jsx_runtime_1.jsx)("div", { style: {
317
- marginBottom: 20,
318
- minHeight: 160,
319
- }, children: (0, jsx_runtime_1.jsx)(PivotList_1.PivotCard, { pivotTable: samplePivotTable, theme: theme, index: 0, onSelectPivot: () => { }, selectedPivotIndex: -1, onEditPivot: () => { }, ButtonComponent: ButtonComponent, showEdit: false, clickable: false, minHeight: 140, LabelComponent: LabelComponent, TextComponent: TextComponent, HeaderComponent: HeaderComponent }) })) : ((0, jsx_runtime_1.jsx)("div", { style: { marginBottom: 20, maxWidth: 470 }, children: (0, jsx_runtime_1.jsx)(QuillCard_1.QuillCard, { theme: theme, clickable: false, children: (0, jsx_runtime_1.jsx)("div", { style: {
320
- color: theme.secondaryTextColor,
321
- }, children: "Select a row field and aggregation type to see a preview" }) }) })) }), (0, jsx_runtime_1.jsxs)("div", { style: {
322
- display: 'flex',
323
- flexDirection: 'column',
324
- gap: 10,
325
- alignItems: 'center',
326
- justifyContent: 'space-between',
327
- }, children: [(0, jsx_runtime_1.jsxs)("div", { style: {
328
- display: 'flex',
329
- flexDirection: 'row',
330
- gap: 20,
331
- marginBottom: 5,
332
- }, children: [(0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)(LabelComponent, { children: "Row Field" }), (0, jsx_runtime_1.jsx)(SelectComponent, { label: 'Row Field', id: "pivot-row-field", value: pivotRowField, onChange: (e) => {
333
- setPivotRowField(e === '' ? undefined : e);
334
- }, options: columnSelectOptions, theme: theme })] }), (0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)(LabelComponent, { children: "Column Field" }), (0, jsx_runtime_1.jsx)(SelectComponent, { label: 'Column Field', id: "pivot-row-field", value: pivotColumnField, onChange: (e) => {
335
- setPivotColumnField(e === '' ? undefined : e);
336
- }, options: columnSelectOptions, theme: theme })] })] }), (0, jsx_runtime_1.jsxs)("div", { style: {
337
- display: 'flex',
338
- flexDirection: 'row',
339
- gap: 20,
340
- marginBottom: 20,
341
- }, children: [(0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)(LabelComponent, { children: "Value Field" }), (0, jsx_runtime_1.jsx)(SelectComponent, { label: 'Value Field', id: "pivot-row-field", value: pivotValueField, onChange: (e) => {
342
- setPivotValueField(e === '' ? undefined : e);
343
- }, options: pivotAggregation === 'count'
344
- ? columnSelectOptions
345
- : columnSelectOptions.filter((option) => {
346
- return (option.value === '' ||
347
- ChartBuilder_1.numberFormatOptions.includes(columns.find((col) => col.field === option.value)?.format));
348
- }), theme: theme })] }), (0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)(LabelComponent, { children: "Aggregation Type" }), (0, jsx_runtime_1.jsx)(SelectComponent, { label: 'Aggregation Type', id: "pivot-row-field", value: pivotAggregation, theme: theme, onChange: (e) => {
349
- if (e !== 'count' &&
350
- pivotValueField &&
351
- !ChartBuilder_1.numberFormatOptions.includes(columns.find((col) => col.field === pivotValueField)?.format)) {
352
- setPivotValueField(null);
353
- }
354
- setPivotAggregation(e === '' ? undefined : e);
355
- }, options: ['', 'sum', 'average', 'count'].map((option) => {
356
- return { label: option || 'Select', value: option };
357
- }) })] })] })] }), (0, jsx_runtime_1.jsx)("div", { children: (0, jsx_runtime_1.jsx)(ButtonComponent, { id: "custom-button", onClick: () => {
358
- const errors = [];
359
- if (!pivotRowField) {
360
- errors.push('Row field cannot be empty');
361
- }
362
- if (!pivotValueField && pivotAggregation !== 'count') {
363
- errors.push("Value field cannot be empty when aggregation is not 'count'");
364
- }
365
- if (!pivotAggregation) {
366
- errors.push('Aggregation cannot be empty');
367
- }
368
- if (errors.length === 0) {
369
- const pivot = {
370
- rowField: pivotRowField || '',
371
- rowFieldType: columnsToShow[pivotRowField || ''],
372
- columnField: pivotColumnField,
373
- columnFieldType: columnsToShow[pivotColumnField || ''],
374
- valueField: pivotValueField || '',
375
- aggregationType: pivotAggregation || '',
376
- };
377
- pivot.title = generatePivotTitle(pivot);
378
- setIsOpen(false);
379
- setCreatedPivots([pivot]);
380
- onSelectCreatedPivot(pivot, 0);
381
- setPopUpTitle('Add Pivot');
382
- }
383
- setErrors(errors);
384
- }, label: popUpTitle }) }), (0, jsx_runtime_1.jsx)("div", { children: errors.length > 0 && ((0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("div", { style: {
385
- fontSize: 14,
386
- marginBottom: '6px',
387
- marginTop: '12px',
388
- fontWeight: '600',
389
- color: theme.secondaryTextColor,
390
- }, children: "Pivot Errors" }), errors.map((error, index) => ((0, jsx_runtime_1.jsx)("div", { style: {
391
- borderRadius: 8,
392
- backgroundColor: '#FF9494',
393
- paddingLeft: '12px',
394
- paddingRight: '8px',
395
- height: 30,
396
- display: 'flex',
397
- alignItems: 'center',
398
- fontSize: 13,
399
- fontWeight: 'bold',
400
- fontFamily: theme?.fontFamily,
401
- color: 'white',
402
- marginBottom: 5,
403
- }, children: error }, index)))] })) })] })) : ((0, jsx_runtime_1.jsx)("div", { style: {
404
- display: 'flex',
405
- flexDirection: 'column',
406
- fontFamily: theme?.fontFamily,
407
- color: theme?.primaryTextColor,
408
- width: selectedPivotTable ? 500 : 600,
409
- maxHeight: 600,
410
- overflowY: 'scroll',
411
- }, children: selectedPivotIndex >= 0 ? ((0, jsx_runtime_1.jsx)("div", { children: (0, jsx_runtime_1.jsx)("div", { onClick: () => {
412
- setPopUpTitle('Edit Pivot');
413
- onEditPivot(createdPivots[0], 0);
414
- }, children: (0, jsx_runtime_1.jsx)(PivotList_1.PivotCard, { pivotTable: {
415
- pivot: selectedPivotTable?.pivot,
416
- rows: selectedPivotTable?.rows,
417
- columns: selectedPivotTable?.columns,
418
- }, theme: theme, index: 0, onSelectPivot: () => { }, selectedPivotIndex: -1, onEditPivot: () => { }, ButtonComponent: ButtonComponent, showEdit: false, onClose: () => {
419
- removePivot();
420
- }, clickable: true, minHeight: 180, LabelComponent: LabelComponent, TextComponent: TextComponent, HeaderComponent: HeaderComponent }) }) })) : ((0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', flexDirection: 'column' }, children: [(0, jsx_runtime_1.jsx)("div", { style: {
421
- fontWeight: '600',
422
- marginBottom: 5,
423
- fontSize: 18,
424
- }, children: "Recommended Pivots" }), (0, jsx_runtime_1.jsx)("div", { children: (0, jsx_runtime_1.jsxs)("div", { onClick: refreshPivots, style: {
425
- color: theme?.secondaryTextColor,
426
- cursor: 'pointer',
427
- marginTop: 0,
428
- marginBottom: 12,
429
- display: 'flex',
430
- flexDirection: 'row',
431
- alignItems: 'center',
432
- width: 'min-content',
433
- fontSize: 14,
434
- paddingLeft: 8,
435
- paddingRight: 6,
436
- paddingTop: 6,
437
- paddingBottom: 6,
438
- borderRadius: 5,
439
- }, className: "quill-hover", children: [(0, jsx_runtime_1.jsx)(QuillHover, {}), (0, jsx_runtime_1.jsx)(assets_1.RefreshIcon, { style: { marginRight: 5 } }), "Refresh"] }) }), isLoading ? ((0, jsx_runtime_1.jsxs)("div", { style: {
440
- background: theme.backgroundColor,
441
- width: 250,
442
- minWidth: 250,
443
- height: '100%',
444
- paddingLeft: 20,
445
- paddingRight: 30,
446
- paddingTop: 40,
447
- display: 'flex',
448
- margin: '0px auto',
449
- justifyContent: 'center',
450
- }, children: [(0, jsx_runtime_1.jsx)("div", { style: { height: 100 } }), (0, jsx_runtime_1.jsxs)("svg", { width: "24", height: "24", children: [(0, jsx_runtime_1.jsx)("circle", { cx: "12", cy: "12", r: "9.375", strokeWidth: "3.75", strokeDasharray: "calc(2 * 3.14 * 9.375 / 3) calc(2 * 3.14 * 9.375 * 2 / 3)", strokeDashoffset: "calc(2 * 3.14 * 9.375 / 6)", stroke: theme?.primaryTextColor || '#364153', fill: "none", transform: "rotate(-90 12 12)", children: (0, jsx_runtime_1.jsx)("animateTransform", { attributeName: "transform", attributeType: "XML", type: "rotate", from: "-180 12 12", to: "180 12 12", dur: "0.8s", repeatCount: "indefinite" }) }), (0, jsx_runtime_1.jsx)("circle", { cx: "12", cy: "12", r: "9.375", strokeWidth: "3.75", strokeDasharray: "calc(2 * 3.14 * 9.375 / 3) calc(2 * 3.14 * 9.375 * 1 / 3)", strokeDashoffset: "calc(2 * 3.14 * 9.375 / 3) calc(2 * 3.14 * 9.375 * 2 / 3)", stroke: '#ADB1B9', fill: "none", transform: "rotate(90 12 12)", children: (0, jsx_runtime_1.jsx)("animateTransform", { attributeName: "transform", attributeType: "XML", type: "rotate", from: "0 12 12", to: "360 12 12", dur: "0.8s", repeatCount: "indefinite" }) })] })] })) : ((0, jsx_runtime_1.jsxs)("div", { children: [recommendedPivotTables.length == 0 && ((0, jsx_runtime_1.jsx)("div", { style: { marginBottom: 20 }, children: "There are currently no recommended pivots available." })), (0, jsx_runtime_1.jsx)(PivotList_1.PivotList, { recommendedPivotTables: recommendedPivotTables, createdPivotTables: createdPivotTables, theme: theme, onSelectRecommendedPivot: onSelectRecommendedPivot, onSelectCreatedPivot: onSelectCreatedPivot, selectedPivotIndex: selectedPivotIndex, selectedPivotType: selectedPivotType, ButtonComponent: ButtonComponent, HeaderComponent: HeaderComponent, onEditRecommendedPivot: onEditRecommendedPivot, onEditCreatedPivot: onEditPivot, showCreatePivot: true, showPivotEditButton: showPivotEditButton, LabelComponent: LabelComponent, TextComponent: TextComponent })] }))] })) })) }) })] }) }));
451
- };
452
- exports.PivotModal = PivotModal;
453
- function generatePivotTableYAxis(pivot, cols, format) {
454
- // Use the column field for the field and label if there is one
455
- if (pivot.columnField) {
456
- return cols.slice(1).map(({ field, label }) => ({ field, label, format }));
457
- }
458
- // For count aggregations, use 'count' for the label
459
- if (pivot?.aggregationType === 'count') {
460
- return [{ field: pivot.valueField, label: 'count', format: format }];
461
- }
462
- // For average aggregations, use 'average <label>' for the label
463
- if (pivot?.aggregationType === 'average') {
464
- const label = `average ${pivot.valueField}`;
465
- return [{ field: pivot.valueField, label, format: format }];
466
- }
467
- // otherwise use the default (ie. the field label)
468
- return [
469
- {
470
- field: pivot.valueField,
471
- label: '',
472
- format: format,
473
- },
474
- ];
475
- }
476
- exports.generatePivotTableYAxis = generatePivotTableYAxis;
477
- function generatePivotTitle(pivot) {
478
- return (0, ChartBuilder_1.snakeCaseToTitleCase)(`${pivot.aggregationType} of ${pivot.valueField} by ${pivot.rowField}${pivot.columnField ? ` and ${pivot.columnField}` : ''}`);
479
- }
480
- function castValueToDate(value) {
481
- if (!value) {
482
- return null;
483
- }
484
- if (typeof value === 'object' && value.value) {
485
- return new Date(value.value);
486
- }
487
- return new Date(value);
488
- }
489
- function getDateRange(dateRange, column, data) {
490
- if (!dateRange || !dateRange[0]) {
491
- if (data.length == 0 || !data[0][column]) {
492
- return { start: new Date(), end: new Date() };
493
- }
494
- const firstDate = castValueToDate(data[0][column]);
495
- if (data.length == 1) {
496
- return {
497
- start: firstDate || new Date(),
498
- end: firstDate || new Date(),
499
- };
500
- }
501
- let earliestDate = firstDate;
502
- let lastestDate = firstDate;
503
- for (let i = 0; i < data.length; i++) {
504
- if (data[i][column]) {
505
- const value = castValueToDate(data[i][column]);
506
- lastestDate = lastestDate === null ? value : (0, date_fns_1.max)([lastestDate, value]);
507
- earliestDate =
508
- earliestDate === null ? value : (0, date_fns_1.min)([earliestDate, value]);
509
- }
510
- }
511
- return { start: earliestDate, end: lastestDate };
512
- }
513
- else {
514
- return { start: dateRange[0], end: dateRange[1] };
515
- }
516
- }
517
- function getDateBuckets(dateRange, column, data) {
518
- if (!dateRange || !dateRange[0]) {
519
- return (0, date_fns_1.eachMonthOfInterval)(getDateRange(dateRange, column, data));
520
- }
521
- const dayDifference = (0, date_fns_1.differenceInDays)(new Date(dateRange[1]), new Date(dateRange[0]));
522
- return dayDifferenceToInterval(dayDifference, dateRange);
523
- }
524
- function getCompDateBuckets(dateRange, compDateRange, column, data) {
525
- if (!dateRange || !dateRange[0]) {
526
- return (0, date_fns_1.eachMonthOfInterval)(getDateRange(dateRange, column, data));
527
- }
528
- const dayDifference = (0, date_fns_1.differenceInDays)(new Date(dateRange[1]), new Date(dateRange[0]));
529
- return dayDifferenceToInterval(dayDifference, compDateRange);
530
- }
531
- function dayDifferenceToInterval(dayDifference, dateRange) {
532
- if (dayDifference < 14) {
533
- return (0, date_fns_1.eachDayOfInterval)({ start: dateRange[0], end: dateRange[1] });
534
- }
535
- else if (dayDifference < 60) {
536
- return (0, date_fns_1.eachWeekOfInterval)({ start: dateRange[0], end: dateRange[1] }, { weekStartsOn: 1 });
537
- }
538
- else if (dayDifference < 365 * 3) {
539
- return (0, date_fns_1.eachMonthOfInterval)({ start: dateRange[0], end: dateRange[1] });
540
- }
541
- else {
542
- return (0, date_fns_1.eachYearOfInterval)({ start: dateRange[0], end: dateRange[1] });
543
- }
544
- }
545
- function getDateString(value, dateRange) {
546
- let format;
547
- if (!dateRange || !dateRange[0]) {
548
- format = 'MMM_yyyy';
549
- }
550
- else {
551
- const dayDifference = (0, date_fns_1.differenceInDays)(new Date(dateRange[1]), new Date(dateRange[0]));
552
- if (dayDifference < 14) {
553
- format = 'MMM_dd_yyyy';
554
- }
555
- else if (dayDifference < 60) {
556
- format = 'MMM_dd-MMM_dd';
557
- }
558
- else if (dayDifference < 365 * 3) {
559
- format = 'MMM_yyyy';
560
- }
561
- else {
562
- format = 'yyyy';
563
- }
564
- }
565
- return (0, valueFormatter_1.valueFormatter)({
566
- value,
567
- field: 'date',
568
- fields: [{ field: 'date', format }],
569
- });
570
- }
571
- function isDateField(fieldType) {
572
- return (fieldType === 'date' ||
573
- fieldType === 'datetime' ||
574
- fieldType === 'timestamp' ||
575
- fieldType === 'timestamptz');
576
- }
577
- exports.isDateField = isDateField;
578
- const isNullUndefinedOrInvalidDate = (date) => date === null || date === undefined || isNaN(date.getTime());
579
- // If the value is an object with key value (ie. a BigQuery date) we will
580
- // return the inner value, otherwise return passed param as-is.
581
- const handleBigQueryValue = (value) => {
582
- if (Boolean(value) &&
583
- typeof value === 'object' &&
584
- Object.keys(value).length === 1 &&
585
- value['value']) {
586
- return value['value'];
587
- }
588
- return value;
589
- };
590
- // Process out all the BigQuery dates.
591
- const fixBigQueryData = (data) => {
592
- const newData = [];
593
- for (const row of data) {
594
- const newRow = {};
595
- for (const key in row) {
596
- newRow[key] = handleBigQueryValue(row[key]);
597
- }
598
- newData.push(newRow);
599
- }
600
- return newData;
601
- };
602
- function generatePivotTable(pivot, data, dateRange, isComparison, rowLimit = -1, compRange = null) {
603
- // Handle edge-case for BigQuery objects.
604
- data = fixBigQueryData(data);
605
- if (dateRange[0] === null && dateRange[1] === null) {
606
- dateRange = [new Date(0), (0, date_fns_1.add)(new Date(), { years: 5 })];
607
- }
608
- if (!compRange ||
609
- isNullUndefinedOrInvalidDate(compRange[0]) ||
610
- isNullUndefinedOrInvalidDate(compRange[1])) {
611
- compRange = null;
612
- }
613
- const pivotRows = [];
614
- const uniqueRows = (isDateField(pivot.rowFieldType)
615
- ? getDateBuckets(dateRange, pivot.rowField, data)
616
- : [...new Set(data.map((item) => item[pivot.rowField]))]).filter((row) => Boolean(row));
617
- const rowDateRange = pivot.rowField
618
- ? getDateRange(dateRange, pivot.rowField, data)
619
- : null;
620
- const columnDateRange = pivot.columnField
621
- ? getDateRange(dateRange, pivot.columnField, data)
622
- : null;
623
- // If columnField is not provided, we will not be using uniqueColumns
624
- const uniqueColumns = (pivot.columnField && pivot.columnField.trim()
625
- ? isDateField(pivot.columnFieldType)
626
- ? getDateBuckets(dateRange, pivot.columnField, data)
627
- : [...new Set(data.map((item) => item[pivot.columnField || '']))]
628
- : [pivot.valueField]).filter((col) => Boolean(col));
629
- // Map from new dates to their corresponding prior dates
630
- const COL_DATE_MAP = {};
631
- const ROW_DATE_MAP = {};
632
- // add in the comparison columns for all columns in the pivot
633
- let compUniqueRows = [];
634
- let compRowDateRange = [];
635
- if (isComparison) {
636
- if (pivot.columnField) {
637
- const col = pivot.columnField;
638
- const row = pivot.rowField;
639
- const isDateCol = isDateField(pivot.columnFieldType);
640
- const isDateRow = isDateField(pivot.rowFieldType);
641
- data.forEach((item) => {
642
- if (isDateCol) {
643
- const key = getDateString(item[col], dateRange);
644
- const value = getDateString(item[`comparison_${col}`], dateRange);
645
- COL_DATE_MAP[key] = value;
646
- }
647
- if (isDateRow) {
648
- const key = getDateString(item[row], dateRange);
649
- const value = getDateString(item[`comparison_${row}`], dateRange);
650
- ROW_DATE_MAP[key] = value;
651
- }
652
- });
653
- }
654
- else {
655
- const primaryColumns = [...uniqueColumns];
656
- for (const primaryKey of primaryColumns) {
657
- uniqueColumns.push(`comparison_${primaryKey}`);
658
- }
659
- }
660
- compUniqueRows = (isDateField(pivot.rowFieldType)
661
- ? getCompDateBuckets(dateRange, compRange ?? dateRange, pivot.rowField, data)
662
- : [...new Set(data.map((item) => item[pivot.rowField]))]).filter((row) => Boolean(row));
663
- compRowDateRange = pivot.rowField
664
- ? getDateRange(compRange ?? dateRange, pivot.rowField, data)
665
- : null;
666
- }
667
- const rowsToGenerate = rowLimit !== -1 && rowLimit <= uniqueRows.length
668
- ? uniqueRows.slice(0, rowLimit + 1)
669
- : uniqueRows;
670
- rowsToGenerate.forEach((rowValue, rowIndex) => {
671
- const row = {
672
- [pivot.rowField]: isDateField(pivot.rowFieldType)
673
- ? getDateString(rowValue, dateRange)
674
- : rowValue === null
675
- ? 'Null'
676
- : rowValue === false
677
- ? 'False'
678
- : rowValue === true
679
- ? 'True'
680
- : rowValue,
681
- };
682
- uniqueColumns.forEach((colValue, colIndex) => {
683
- let comparisonFilteredData = [];
684
- let filteredData = [];
685
- let comparisonValue;
686
- let value;
687
- const nextRowValue = isDateField(pivot.rowFieldType)
688
- ? uniqueRows[rowIndex + 1] ?? (0, date_fns_1.endOfDay)(rowDateRange.end)
689
- : null;
690
- const compRowValue = compUniqueRows[rowIndex];
691
- const compNextRowValue = isDateField(pivot.rowFieldType)
692
- ? compUniqueRows[rowIndex + 1] ?? (0, date_fns_1.endOfDay)(compRowDateRange.end)
693
- : null;
694
- if (pivot.columnField) {
695
- const nextColumnValue = isDateField(pivot.columnFieldType)
696
- ? uniqueColumns[colIndex + 1] || (0, date_fns_1.endOfDay)(columnDateRange.end)
697
- : null;
698
- // If columnField is provided, filter by both rowField and columnField
699
- if (isDateField(pivot.columnFieldType) &&
700
- isDateField(pivot.rowFieldType)) {
701
- filteredData = data.filter((item) => {
702
- return ((0, date_fns_1.isWithinInterval)(new Date(item[pivot.rowField]), {
703
- start: rowValue,
704
- end: (0, date_fns_1.subMilliseconds)(nextRowValue, 1),
705
- }) &&
706
- (0, date_fns_1.isWithinInterval)(new Date(item[pivot.columnField]), {
707
- start: colValue,
708
- end: (0, date_fns_1.subMilliseconds)(nextColumnValue, 1),
709
- }));
710
- });
711
- if (isComparison) {
712
- comparisonFilteredData = data.filter((item) => {
713
- return ((0, date_fns_1.isWithinInterval)(new Date(item[pivot.rowField]), {
714
- start: rowValue,
715
- end: (0, date_fns_1.subMilliseconds)(nextRowValue, 1),
716
- }) &&
717
- (0, date_fns_1.isWithinInterval)(new Date(item[pivot.columnField]), {
718
- start: colValue,
719
- end: (0, date_fns_1.subMilliseconds)(nextColumnValue, 1),
720
- }));
721
- });
722
- }
723
- }
724
- else if (isDateField(pivot.columnFieldType) &&
725
- !isDateField(pivot.rowFieldType)) {
726
- filteredData = data.filter((item) => {
727
- return (item[pivot.rowField] === rowValue &&
728
- (0, date_fns_1.isWithinInterval)(new Date(item[pivot.columnField]), {
729
- start: colValue,
730
- end: (0, date_fns_1.subMilliseconds)(nextColumnValue, 1),
731
- }));
732
- });
733
- if (isComparison) {
734
- comparisonFilteredData = data.filter((item) => {
735
- return (item[`comparison_${pivot.rowField}`] === rowValue &&
736
- (0, date_fns_1.isWithinInterval)(new Date(item[pivot.columnField]), {
737
- start: colValue,
738
- end: (0, date_fns_1.subMilliseconds)(nextColumnValue, 1),
739
- }));
740
- });
741
- }
742
- }
743
- else if (!isDateField(pivot.columnFieldType) &&
744
- isDateField(pivot.rowFieldType)) {
745
- filteredData = data.filter((item) => {
746
- return ((0, date_fns_1.isWithinInterval)(new Date(item[pivot.rowField]), {
747
- start: rowValue,
748
- end: (0, date_fns_1.subMilliseconds)(nextRowValue, 1),
749
- }) && item[pivot.columnField || ''] === colValue);
750
- });
751
- if (isComparison) {
752
- comparisonFilteredData = data.filter((item) => {
753
- return ((0, date_fns_1.isWithinInterval)(new Date(item[pivot.rowField]), {
754
- start: rowValue,
755
- end: (0, date_fns_1.subMilliseconds)(nextRowValue, 1),
756
- }) &&
757
- item[`comparison_${pivot.columnField}` || ''] === colValue);
758
- });
759
- }
760
- }
761
- else {
762
- filteredData = data.filter((item) => {
763
- return (item[pivot.rowField] === rowValue &&
764
- item[pivot.columnField || ''] === colValue);
765
- });
766
- if (isComparison) {
767
- comparisonFilteredData = data.filter((item) => {
768
- return (item[`comparison_${pivot.rowField}`] === rowValue &&
769
- item[`comparison_${pivot.columnField}`] === colValue);
770
- });
771
- }
772
- }
773
- }
774
- else {
775
- // NOTE: For 1D columns, the comparisons are handled inside the colvalue
776
- // so there is no need to filter for comparisonFilteredData here.
777
- // If columnField is not provided, filter by rowField only
778
- if (colValue.startsWith('comparison_')) {
779
- filteredData = isDateField(pivot.rowFieldType)
780
- ? data.filter((item) => {
781
- return (compRowValue &&
782
- (0, date_fns_1.isWithinInterval)(new Date(item[`comparison_${pivot.rowField}`]), {
783
- start: compRowValue,
784
- end: (0, date_fns_1.subMilliseconds)(compNextRowValue, 1),
785
- }));
786
- })
787
- : data.filter((item) => item[`comparison_${pivot.rowField}`] === compRowValue);
788
- }
789
- else {
790
- filteredData = isDateField(pivot.rowFieldType)
791
- ? data.filter((item) => {
792
- return (0, date_fns_1.isWithinInterval)(new Date(item[pivot.rowField]), {
793
- start: rowValue,
794
- end: (0, date_fns_1.subMilliseconds)(nextRowValue, 1),
795
- });
796
- })
797
- : data.filter((item) => item[pivot.rowField] === rowValue);
798
- }
799
- }
800
- // Aggregation logic remains the same
801
- const key = pivot.columnField && pivot.columnField.trim()
802
- ? pivot.valueField
803
- : colValue;
804
- switch (pivot.aggregationType) {
805
- case 'sum':
806
- value = filteredData.reduce((sum, item) => sum + parseFloat(item[key] ?? 0), 0);
807
- if (isComparison) {
808
- comparisonValue = comparisonFilteredData.reduce((sum, item) => sum + parseFloat(item[key] ?? 0), 0);
809
- }
810
- break;
811
- case 'count':
812
- value = filteredData.length;
813
- if (isComparison) {
814
- comparisonValue = comparisonFilteredData.length;
815
- }
816
- break;
817
- case 'average':
818
- value = filteredData.length
819
- ? filteredData.reduce((sum, item) => sum + parseFloat(item[key] ?? 0), 0) / filteredData.length
820
- : 0;
821
- if (isComparison) {
822
- comparisonValue = comparisonFilteredData.length
823
- ? comparisonFilteredData.reduce((sum, item) => sum + parseFloat(item[key] ?? 0), 0) / comparisonFilteredData.length
824
- : 0;
825
- }
826
- break;
827
- // Implement other aggregation types as needed
828
- default:
829
- throw new Error('Unsupported aggregation type');
830
- }
831
- // Set the value on the row
832
- // If columnField is not provided, colValue will be valueField
833
- row[isDateField(pivot.columnFieldType)
834
- ? getDateString(colValue, dateRange)
835
- : colValue] = pivot.aggregationType === 'count' ? value : value.toFixed(2);
836
- if (isComparison && pivot.columnField) {
837
- if (isDateField(pivot.columnFieldType)) {
838
- row[`comparison_${getDateString(colValue, dateRange)}`] =
839
- pivot.aggregationType === 'count'
840
- ? comparisonValue
841
- : comparisonValue.toFixed(2);
842
- }
843
- else {
844
- row[`comparison_${colValue}`] =
845
- pivot.aggregationType === 'count'
846
- ? comparisonValue
847
- : comparisonValue.toFixed(2);
848
- }
849
- }
850
- });
851
- pivotRows.push(row);
852
- });
853
- const columns = [
854
- {
855
- label: pivot.rowField === null
856
- ? 'Null'
857
- : pivot.rowField === false
858
- ? 'False'
859
- : (0, ChartBuilder_1.snakeCaseToTitleCase)(pivot.rowField),
860
- field: pivot.rowField,
861
- },
862
- ...(!pivot.columnField
863
- ? [
864
- {
865
- label: pivot.rowField === null
866
- ? 'Null'
867
- : pivot.rowField === false
868
- ? 'False'
869
- : `Comparison ${(0, ChartBuilder_1.snakeCaseToTitleCase)(pivot.rowField)}`,
870
- field: `comparison_${pivot.rowField}`,
871
- },
872
- ]
873
- : []),
874
- ...uniqueColumns.map((column, index) => {
875
- const columnName = isDateField(pivot.columnFieldType)
876
- ? getDateString(column, dateRange)
877
- : column;
878
- return {
879
- label: column === null
880
- ? 'Null'
881
- : column === false
882
- ? 'False'
883
- : pivot.aggregationType === 'count' &&
884
- !pivot.columnField &&
885
- index === 1
886
- ? 'Count'
887
- : (0, ChartBuilder_1.snakeCaseToTitleCase)(columnName),
888
- field: columnName,
889
- };
890
- }),
891
- ...(isComparison && pivot.columnField
892
- ? uniqueColumns.map((column, index) => {
893
- const columnName = isDateField(pivot.columnFieldType)
894
- ? getDateString(column, dateRange)
895
- : column;
896
- return {
897
- label: column === null
898
- ? 'Null'
899
- : column === false
900
- ? 'False'
901
- : pivot.aggregationType === 'count' &&
902
- !pivot.columnField &&
903
- index === 1
904
- ? 'Comparison Count'
905
- : isDateField(pivot.columnFieldType)
906
- ? COL_DATE_MAP[getDateString(column, dateRange)] ??
907
- 'Comparison'
908
- : `Comparison ${(0, ChartBuilder_1.snakeCaseToTitleCase)(columnName)}`,
909
- field: `comparison_${columnName}`,
910
- };
911
- })
912
- : []),
913
- ];
914
- return { rows: pivotRows, columns };
915
- }
916
- exports.generatePivotTable = generatePivotTable;