@quillsql/react 2.12.29 → 2.12.31

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (530) hide show
  1. package/dist/cjs/Chart.d.ts +29 -46
  2. package/dist/cjs/Chart.d.ts.map +1 -1
  3. package/dist/cjs/Chart.js +187 -468
  4. package/dist/cjs/ChartBuilder.d.ts +30 -61
  5. package/dist/cjs/ChartBuilder.d.ts.map +1 -1
  6. package/dist/cjs/ChartBuilder.js +190 -131
  7. package/dist/cjs/ChartEditor.d.ts +14 -2
  8. package/dist/cjs/ChartEditor.d.ts.map +1 -1
  9. package/dist/cjs/ChartEditor.js +70 -125
  10. package/dist/cjs/Context.d.ts +4 -1
  11. package/dist/cjs/Context.d.ts.map +1 -1
  12. package/dist/cjs/Context.js +52 -6
  13. package/dist/cjs/Dashboard.d.ts +74 -118
  14. package/dist/cjs/Dashboard.d.ts.map +1 -1
  15. package/dist/cjs/Dashboard.js +273 -47
  16. package/dist/cjs/DateRangePicker/Calendar.d.ts.map +1 -1
  17. package/dist/cjs/DateRangePicker/Calendar.js +3 -6
  18. package/dist/cjs/DateRangePicker/DateRangePicker.d.ts.map +1 -1
  19. package/dist/cjs/DateRangePicker/DateRangePicker.js +2 -29
  20. package/dist/cjs/DateRangePicker/DateRangePickerButton.d.ts +1 -2
  21. package/dist/cjs/DateRangePicker/DateRangePickerButton.d.ts.map +1 -1
  22. package/dist/cjs/DateRangePicker/DateRangePickerButton.js +2 -4
  23. package/dist/cjs/DateRangePicker/QuillDateRangePicker.d.ts +2 -1
  24. package/dist/cjs/DateRangePicker/QuillDateRangePicker.d.ts.map +1 -1
  25. package/dist/cjs/DateRangePicker/QuillDateRangePicker.js +4 -4
  26. package/dist/cjs/DateRangePicker/dateRangePickerUtils.d.ts +1 -1
  27. package/dist/cjs/DateRangePicker/dateRangePickerUtils.d.ts.map +1 -1
  28. package/dist/cjs/DateRangePicker/dateRangePickerUtils.js +1 -15
  29. package/dist/cjs/ReportBuilder.d.ts +18 -6
  30. package/dist/cjs/ReportBuilder.d.ts.map +1 -1
  31. package/dist/cjs/ReportBuilder.js +477 -489
  32. package/dist/cjs/SQLEditor.d.ts +4 -11
  33. package/dist/cjs/SQLEditor.d.ts.map +1 -1
  34. package/dist/cjs/SQLEditor.js +76 -88
  35. package/dist/cjs/Table.d.ts +19 -3
  36. package/dist/cjs/Table.d.ts.map +1 -1
  37. package/dist/cjs/Table.js +130 -114
  38. package/dist/cjs/TableChart.d.ts.map +1 -1
  39. package/dist/cjs/TableChart.js +0 -1
  40. package/dist/cjs/assets/ArrowDownHeadIcon.d.ts.map +1 -1
  41. package/dist/cjs/assets/ArrowDownIcon.d.ts.map +1 -1
  42. package/dist/cjs/assets/ArrowDownRightIcon.d.ts.map +1 -1
  43. package/dist/cjs/assets/ArrowLeftHeadIcon.d.ts.map +1 -1
  44. package/dist/cjs/assets/ArrowRightHeadIcon.d.ts.map +1 -1
  45. package/dist/cjs/assets/ArrowRightIcon.d.ts.map +1 -1
  46. package/dist/cjs/assets/ArrowUpHeadIcon.d.ts.map +1 -1
  47. package/dist/cjs/assets/ArrowUpIcon.d.ts.map +1 -1
  48. package/dist/cjs/assets/ArrowUpRightIcon.d.ts.map +1 -1
  49. package/dist/cjs/assets/CalendarIcon.d.ts.map +1 -1
  50. package/dist/cjs/assets/DoubleArrowLeftHeadIcon.d.ts.map +1 -1
  51. package/dist/cjs/assets/DoubleArrowRightHeadIcon.d.ts.map +1 -1
  52. package/dist/cjs/assets/ExclamationFilledIcon.d.ts.map +1 -1
  53. package/dist/cjs/assets/LoadingSpinner.d.ts.map +1 -1
  54. package/dist/cjs/assets/SearchIcon.d.ts.map +1 -1
  55. package/dist/cjs/assets/XCircleIcon.d.ts.map +1 -1
  56. package/dist/cjs/components/Banner/index.d.ts +1 -1
  57. package/dist/cjs/components/Banner/index.d.ts.map +1 -1
  58. package/dist/cjs/components/Banner/index.js +1 -1
  59. package/dist/cjs/components/BigModal/BigModal.d.ts.map +1 -1
  60. package/dist/cjs/components/BigModal/BigModal.js +6 -12
  61. package/dist/cjs/components/Chart/BarChart.d.ts.map +1 -1
  62. package/dist/cjs/components/Chart/BarChart.js +12 -1
  63. package/dist/cjs/components/Chart/BarList.d.ts.map +1 -1
  64. package/dist/cjs/components/Chart/BarList.js +21 -14
  65. package/dist/cjs/components/Chart/ChartError.d.ts +8 -1
  66. package/dist/cjs/components/Chart/ChartError.d.ts.map +1 -1
  67. package/dist/cjs/components/Chart/ChartError.js +40 -5
  68. package/dist/cjs/components/Chart/ChartTooltip.d.ts.map +1 -1
  69. package/dist/cjs/components/Chart/ChartTooltip.js +8 -2
  70. package/dist/cjs/components/Chart/LineChart.d.ts +2 -1
  71. package/dist/cjs/components/Chart/LineChart.d.ts.map +1 -1
  72. package/dist/cjs/components/Chart/LineChart.js +27 -3
  73. package/dist/cjs/components/Chart/PieChart.d.ts.map +1 -1
  74. package/dist/cjs/components/Chart/PieChart.js +1 -3
  75. package/dist/cjs/components/Dashboard/ChartComponent.d.ts +1 -1
  76. package/dist/cjs/components/Dashboard/ChartComponent.d.ts.map +1 -1
  77. package/dist/cjs/components/Dashboard/ChartComponent.js +1 -1
  78. package/dist/cjs/components/Dashboard/DashboardFilter.d.ts +5 -1
  79. package/dist/cjs/components/Dashboard/DashboardFilter.d.ts.map +1 -1
  80. package/dist/cjs/components/Dashboard/DashboardFilter.js +10 -5
  81. package/dist/cjs/components/Dashboard/DataLoader.d.ts +8 -12
  82. package/dist/cjs/components/Dashboard/DataLoader.d.ts.map +1 -1
  83. package/dist/cjs/components/Dashboard/DataLoader.js +137 -194
  84. package/dist/cjs/components/Dashboard/MetricComponent.d.ts.map +1 -1
  85. package/dist/cjs/components/Dashboard/MetricComponent.js +11 -45
  86. package/dist/cjs/components/Dashboard/TableComponent.d.ts +2 -5
  87. package/dist/cjs/components/Dashboard/TableComponent.d.ts.map +1 -1
  88. package/dist/cjs/components/Dashboard/TableComponent.js +3 -32
  89. package/dist/cjs/components/Dropdown/Dropdown.d.ts.map +1 -1
  90. package/dist/cjs/components/Dropdown/Dropdown.js +1 -3
  91. package/dist/cjs/components/Dropdown/DropdownItem.d.ts.map +1 -1
  92. package/dist/cjs/components/Dropdown/DropdownItem.js +3 -8
  93. package/dist/cjs/components/Dropdown/index.d.ts +2 -2
  94. package/dist/cjs/components/Modal/Modal.d.ts.map +1 -1
  95. package/dist/cjs/components/Modal/Modal.js +2 -3
  96. package/dist/cjs/components/Modal/index.d.ts +1 -1
  97. package/dist/cjs/components/QuillMultiSelect.d.ts.map +1 -1
  98. package/dist/cjs/components/QuillMultiSelect.js +18 -3
  99. package/dist/cjs/components/QuillMultiSelectWithCombo.d.ts.map +1 -1
  100. package/dist/cjs/components/QuillMultiSelectWithCombo.js +18 -3
  101. package/dist/cjs/components/QuillSelect.js +1 -1
  102. package/dist/cjs/components/QuillSelectWithCombo.d.ts.map +1 -1
  103. package/dist/cjs/components/QuillSelectWithCombo.js +6 -3
  104. package/dist/cjs/components/QuillTable.d.ts +1 -4
  105. package/dist/cjs/components/QuillTable.d.ts.map +1 -1
  106. package/dist/cjs/components/QuillTable.js +5 -11
  107. package/dist/cjs/components/ReportBuilder/AddColumnModal.d.ts +3 -1
  108. package/dist/cjs/components/ReportBuilder/AddColumnModal.d.ts.map +1 -1
  109. package/dist/cjs/components/ReportBuilder/AddColumnModal.js +5 -8
  110. package/dist/cjs/components/ReportBuilder/AddLimitPopover.d.ts.map +1 -1
  111. package/dist/cjs/components/ReportBuilder/AddLimitPopover.js +1 -3
  112. package/dist/cjs/components/ReportBuilder/AddSortPopover.d.ts.map +1 -1
  113. package/dist/cjs/components/ReportBuilder/AddSortPopover.js +12 -1
  114. package/dist/cjs/components/ReportBuilder/FilterModal.d.ts +30 -0
  115. package/dist/cjs/components/ReportBuilder/FilterModal.d.ts.map +1 -0
  116. package/dist/cjs/components/ReportBuilder/FilterModal.js +579 -0
  117. package/dist/cjs/components/ReportBuilder/ast.d.ts +2 -1
  118. package/dist/cjs/components/ReportBuilder/ast.d.ts.map +1 -1
  119. package/dist/cjs/components/ReportBuilder/ast.js +33 -6
  120. package/dist/cjs/components/ReportBuilder/constants.d.ts +18 -3
  121. package/dist/cjs/components/ReportBuilder/constants.d.ts.map +1 -1
  122. package/dist/cjs/components/ReportBuilder/constants.js +24 -3
  123. package/dist/cjs/components/ReportBuilder/convert.d.ts +18 -16
  124. package/dist/cjs/components/ReportBuilder/convert.d.ts.map +1 -1
  125. package/dist/cjs/components/ReportBuilder/convert.js +378 -494
  126. package/dist/cjs/components/ReportBuilder/operators.d.ts +24 -4
  127. package/dist/cjs/components/ReportBuilder/operators.d.ts.map +1 -1
  128. package/dist/cjs/components/ReportBuilder/operators.js +32 -4
  129. package/dist/cjs/components/ReportBuilder/ui.d.ts +20 -0
  130. package/dist/cjs/components/ReportBuilder/ui.d.ts.map +1 -1
  131. package/dist/cjs/components/ReportBuilder/ui.js +15 -5
  132. package/dist/cjs/components/ReportBuilder/util.d.ts +3 -11
  133. package/dist/cjs/components/ReportBuilder/util.d.ts.map +1 -1
  134. package/dist/cjs/components/ReportBuilder/util.js +15 -18
  135. package/dist/cjs/components/UiComponents.d.ts +36 -8
  136. package/dist/cjs/components/UiComponents.d.ts.map +1 -1
  137. package/dist/cjs/components/UiComponents.js +106 -12
  138. package/dist/cjs/components/selectUtils.d.ts +0 -1
  139. package/dist/cjs/components/selectUtils.d.ts.map +1 -1
  140. package/dist/cjs/components/selectUtils.js +1 -22
  141. package/dist/cjs/hooks/index.d.ts +4 -4
  142. package/dist/cjs/hooks/useAstToFilterTree.d.ts +11 -0
  143. package/dist/cjs/hooks/useAstToFilterTree.d.ts.map +1 -0
  144. package/dist/cjs/hooks/useAstToFilterTree.js +26 -0
  145. package/dist/cjs/hooks/useDashboard.d.ts.map +1 -1
  146. package/dist/cjs/hooks/useDashboard.js +5 -1
  147. package/dist/cjs/hooks/useExport.d.ts.map +1 -1
  148. package/dist/cjs/hooks/useExport.js +3 -1
  149. package/dist/cjs/hooks/useOnClickOutside.js +4 -4
  150. package/dist/cjs/hooks/useOnWindowResize.d.ts.map +1 -1
  151. package/dist/cjs/hooks/useOnWindowResize.js +2 -2
  152. package/dist/cjs/hooks/useQuill.d.ts +10 -27
  153. package/dist/cjs/hooks/useQuill.d.ts.map +1 -1
  154. package/dist/cjs/hooks/useQuill.js +133 -85
  155. package/dist/cjs/hooks/useSelectOnKeyDown.d.ts.map +1 -1
  156. package/dist/cjs/hooks/useSelectOnKeyDown.js +4 -4
  157. package/dist/cjs/hooks/useTheme.js +1 -1
  158. package/dist/cjs/index.d.ts +3 -1
  159. package/dist/cjs/index.d.ts.map +1 -1
  160. package/dist/cjs/index.js +3 -1
  161. package/dist/cjs/internals/ReportBuilder/PivotForm.d.ts.map +1 -1
  162. package/dist/cjs/internals/ReportBuilder/PivotForm.js +8 -1
  163. package/dist/cjs/internals/ReportBuilder/PivotList.d.ts +2 -2
  164. package/dist/cjs/internals/ReportBuilder/PivotList.d.ts.map +1 -1
  165. package/dist/cjs/internals/ReportBuilder/PivotList.js +2 -2
  166. package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts +2 -1
  167. package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
  168. package/dist/cjs/internals/ReportBuilder/PivotModal.js +8 -21
  169. package/dist/cjs/lib/utils.js +2 -2
  170. package/dist/cjs/models/Columns.d.ts +2 -1
  171. package/dist/cjs/models/Columns.d.ts.map +1 -1
  172. package/dist/cjs/models/Filter.d.ts +115 -4
  173. package/dist/cjs/models/Filter.d.ts.map +1 -1
  174. package/dist/cjs/models/Filter.js +99 -0
  175. package/dist/cjs/models/Pagination.d.ts +10 -0
  176. package/dist/cjs/models/Pagination.d.ts.map +1 -0
  177. package/dist/cjs/models/Pagination.js +2 -0
  178. package/dist/cjs/models/Report.d.ts +103 -0
  179. package/dist/cjs/models/Report.d.ts.map +1 -0
  180. package/dist/cjs/models/Report.js +2 -0
  181. package/dist/cjs/utils/aggregate.js +1 -1
  182. package/dist/cjs/utils/astFilterProcessing.d.ts +36 -0
  183. package/dist/cjs/utils/astFilterProcessing.d.ts.map +1 -0
  184. package/dist/cjs/utils/astFilterProcessing.js +8091 -0
  185. package/dist/cjs/utils/astProcessing.d.ts.map +1 -1
  186. package/dist/cjs/utils/astProcessing.js +4 -3
  187. package/dist/cjs/utils/axisFormatter.js +0 -71
  188. package/dist/cjs/utils/color.js +9 -87
  189. package/dist/cjs/utils/columnProcessing.d.ts +2 -0
  190. package/dist/cjs/utils/columnProcessing.d.ts.map +1 -1
  191. package/dist/cjs/utils/columnProcessing.js +54 -1
  192. package/dist/cjs/utils/csv.d.ts.map +1 -1
  193. package/dist/cjs/utils/dashboard.d.ts +1 -1
  194. package/dist/cjs/utils/dashboard.d.ts.map +1 -1
  195. package/dist/cjs/utils/dashboard.js +6 -59
  196. package/dist/cjs/utils/dataFetcher.d.ts.map +1 -1
  197. package/dist/cjs/utils/dataFetcher.js +63 -1
  198. package/dist/cjs/utils/dataProcessing.d.ts +10 -0
  199. package/dist/cjs/utils/dataProcessing.d.ts.map +1 -0
  200. package/dist/cjs/utils/dataProcessing.js +144 -0
  201. package/dist/cjs/utils/dates.d.ts +2 -1
  202. package/dist/cjs/utils/dates.d.ts.map +1 -1
  203. package/dist/cjs/utils/dates.js +23 -1
  204. package/dist/cjs/utils/error.d.ts +5 -0
  205. package/dist/cjs/utils/error.d.ts.map +1 -0
  206. package/dist/cjs/utils/error.js +12 -0
  207. package/dist/cjs/utils/filterConstants.d.ts +34 -0
  208. package/dist/cjs/utils/filterConstants.d.ts.map +1 -0
  209. package/dist/cjs/utils/filterConstants.js +36 -0
  210. package/dist/cjs/utils/filterProcessing.d.ts +7 -1
  211. package/dist/cjs/utils/filterProcessing.d.ts.map +1 -1
  212. package/dist/cjs/utils/filterProcessing.js +104 -17
  213. package/dist/cjs/utils/logging.d.ts.map +1 -1
  214. package/dist/cjs/utils/logging.js +1 -0
  215. package/dist/cjs/utils/merge.js +0 -21
  216. package/dist/cjs/utils/{monacoAutocomplete.d.ts → monacoConfig.d.ts} +3 -2
  217. package/dist/cjs/utils/monacoConfig.d.ts.map +1 -0
  218. package/dist/cjs/utils/monacoConfig.js +324 -0
  219. package/dist/cjs/utils/paginationProcessing.d.ts +5 -0
  220. package/dist/cjs/utils/paginationProcessing.d.ts.map +1 -0
  221. package/dist/cjs/utils/paginationProcessing.js +30 -0
  222. package/dist/cjs/utils/pivotConstructor.d.ts +2 -1
  223. package/dist/cjs/utils/pivotConstructor.d.ts.map +1 -1
  224. package/dist/cjs/utils/pivotConstructor.js +16 -1
  225. package/dist/cjs/utils/pivotProcessing.d.ts.map +1 -1
  226. package/dist/cjs/utils/pivotProcessing.js +12 -6
  227. package/dist/cjs/utils/queryConstructor.d.ts.map +1 -1
  228. package/dist/cjs/utils/queryConstructor.js +4 -3
  229. package/dist/cjs/utils/report.d.ts +10 -0
  230. package/dist/cjs/utils/report.d.ts.map +1 -0
  231. package/dist/cjs/utils/report.js +180 -0
  232. package/dist/cjs/utils/schema.d.ts.map +1 -1
  233. package/dist/cjs/utils/schema.js +35 -6
  234. package/dist/cjs/utils/styles.d.ts +1 -1
  235. package/dist/cjs/utils/styles.d.ts.map +1 -1
  236. package/dist/cjs/utils/tableProcessing.d.ts +22 -8
  237. package/dist/cjs/utils/tableProcessing.d.ts.map +1 -1
  238. package/dist/cjs/utils/tableProcessing.js +116 -35
  239. package/dist/cjs/utils/textProcessing.js +3 -3
  240. package/dist/cjs/utils/validation.d.ts +9 -0
  241. package/dist/cjs/utils/validation.d.ts.map +1 -0
  242. package/dist/cjs/utils/validation.js +24 -0
  243. package/dist/cjs/utils/valueFormatter.d.ts.map +1 -1
  244. package/dist/cjs/utils/valueFormatter.js +8 -4
  245. package/dist/esm/Chart.d.ts +29 -46
  246. package/dist/esm/Chart.d.ts.map +1 -1
  247. package/dist/esm/Chart.js +189 -471
  248. package/dist/esm/ChartBuilder.d.ts +30 -61
  249. package/dist/esm/ChartBuilder.d.ts.map +1 -1
  250. package/dist/esm/ChartBuilder.js +191 -129
  251. package/dist/esm/ChartEditor.d.ts +14 -2
  252. package/dist/esm/ChartEditor.d.ts.map +1 -1
  253. package/dist/esm/ChartEditor.js +71 -126
  254. package/dist/esm/Context.d.ts +4 -1
  255. package/dist/esm/Context.d.ts.map +1 -1
  256. package/dist/esm/Context.js +51 -5
  257. package/dist/esm/Dashboard.d.ts +74 -118
  258. package/dist/esm/Dashboard.d.ts.map +1 -1
  259. package/dist/esm/Dashboard.js +275 -49
  260. package/dist/esm/DateRangePicker/Calendar.d.ts.map +1 -1
  261. package/dist/esm/DateRangePicker/Calendar.js +5 -8
  262. package/dist/esm/DateRangePicker/DateRangePicker.d.ts.map +1 -1
  263. package/dist/esm/DateRangePicker/DateRangePicker.js +2 -29
  264. package/dist/esm/DateRangePicker/DateRangePickerButton.d.ts +1 -2
  265. package/dist/esm/DateRangePicker/DateRangePickerButton.d.ts.map +1 -1
  266. package/dist/esm/DateRangePicker/DateRangePickerButton.js +2 -4
  267. package/dist/esm/DateRangePicker/QuillDateRangePicker.d.ts +2 -1
  268. package/dist/esm/DateRangePicker/QuillDateRangePicker.d.ts.map +1 -1
  269. package/dist/esm/DateRangePicker/QuillDateRangePicker.js +4 -4
  270. package/dist/esm/DateRangePicker/dateRangePickerUtils.d.ts +1 -1
  271. package/dist/esm/DateRangePicker/dateRangePickerUtils.d.ts.map +1 -1
  272. package/dist/esm/DateRangePicker/dateRangePickerUtils.js +1 -15
  273. package/dist/esm/ReportBuilder.d.ts +18 -6
  274. package/dist/esm/ReportBuilder.d.ts.map +1 -1
  275. package/dist/esm/ReportBuilder.js +484 -496
  276. package/dist/esm/SQLEditor.d.ts +4 -11
  277. package/dist/esm/SQLEditor.d.ts.map +1 -1
  278. package/dist/esm/SQLEditor.js +75 -87
  279. package/dist/esm/Table.d.ts +19 -3
  280. package/dist/esm/Table.d.ts.map +1 -1
  281. package/dist/esm/Table.js +132 -116
  282. package/dist/esm/TableChart.d.ts.map +1 -1
  283. package/dist/esm/TableChart.js +0 -1
  284. package/dist/esm/assets/ArrowDownHeadIcon.d.ts.map +1 -1
  285. package/dist/esm/assets/ArrowDownIcon.d.ts.map +1 -1
  286. package/dist/esm/assets/ArrowDownRightIcon.d.ts.map +1 -1
  287. package/dist/esm/assets/ArrowLeftHeadIcon.d.ts.map +1 -1
  288. package/dist/esm/assets/ArrowRightHeadIcon.d.ts.map +1 -1
  289. package/dist/esm/assets/ArrowRightIcon.d.ts.map +1 -1
  290. package/dist/esm/assets/ArrowUpHeadIcon.d.ts.map +1 -1
  291. package/dist/esm/assets/ArrowUpIcon.d.ts.map +1 -1
  292. package/dist/esm/assets/ArrowUpRightIcon.d.ts.map +1 -1
  293. package/dist/esm/assets/CalendarIcon.d.ts.map +1 -1
  294. package/dist/esm/assets/DoubleArrowLeftHeadIcon.d.ts.map +1 -1
  295. package/dist/esm/assets/DoubleArrowRightHeadIcon.d.ts.map +1 -1
  296. package/dist/esm/assets/ExclamationFilledIcon.d.ts.map +1 -1
  297. package/dist/esm/assets/LoadingSpinner.d.ts.map +1 -1
  298. package/dist/esm/assets/SearchIcon.d.ts.map +1 -1
  299. package/dist/esm/assets/XCircleIcon.d.ts.map +1 -1
  300. package/dist/esm/components/Banner/index.d.ts +1 -1
  301. package/dist/esm/components/Banner/index.d.ts.map +1 -1
  302. package/dist/esm/components/Banner/index.js +1 -1
  303. package/dist/esm/components/BigModal/BigModal.d.ts.map +1 -1
  304. package/dist/esm/components/BigModal/BigModal.js +7 -13
  305. package/dist/esm/components/Chart/BarChart.d.ts.map +1 -1
  306. package/dist/esm/components/Chart/BarChart.js +13 -2
  307. package/dist/esm/components/Chart/BarList.d.ts.map +1 -1
  308. package/dist/esm/components/Chart/BarList.js +21 -14
  309. package/dist/esm/components/Chart/ChartError.d.ts +8 -1
  310. package/dist/esm/components/Chart/ChartError.d.ts.map +1 -1
  311. package/dist/esm/components/Chart/ChartError.js +39 -6
  312. package/dist/esm/components/Chart/ChartTooltip.d.ts.map +1 -1
  313. package/dist/esm/components/Chart/ChartTooltip.js +8 -2
  314. package/dist/esm/components/Chart/LineChart.d.ts +2 -1
  315. package/dist/esm/components/Chart/LineChart.d.ts.map +1 -1
  316. package/dist/esm/components/Chart/LineChart.js +28 -4
  317. package/dist/esm/components/Chart/PieChart.d.ts.map +1 -1
  318. package/dist/esm/components/Chart/PieChart.js +1 -3
  319. package/dist/esm/components/Dashboard/ChartComponent.d.ts +1 -1
  320. package/dist/esm/components/Dashboard/ChartComponent.d.ts.map +1 -1
  321. package/dist/esm/components/Dashboard/ChartComponent.js +1 -1
  322. package/dist/esm/components/Dashboard/DashboardFilter.d.ts +5 -1
  323. package/dist/esm/components/Dashboard/DashboardFilter.d.ts.map +1 -1
  324. package/dist/esm/components/Dashboard/DashboardFilter.js +10 -5
  325. package/dist/esm/components/Dashboard/DataLoader.d.ts +8 -12
  326. package/dist/esm/components/Dashboard/DataLoader.d.ts.map +1 -1
  327. package/dist/esm/components/Dashboard/DataLoader.js +137 -194
  328. package/dist/esm/components/Dashboard/MetricComponent.d.ts.map +1 -1
  329. package/dist/esm/components/Dashboard/MetricComponent.js +11 -45
  330. package/dist/esm/components/Dashboard/TableComponent.d.ts +2 -5
  331. package/dist/esm/components/Dashboard/TableComponent.d.ts.map +1 -1
  332. package/dist/esm/components/Dashboard/TableComponent.js +3 -32
  333. package/dist/esm/components/Dropdown/Dropdown.d.ts.map +1 -1
  334. package/dist/esm/components/Dropdown/Dropdown.js +2 -4
  335. package/dist/esm/components/Dropdown/DropdownItem.d.ts.map +1 -1
  336. package/dist/esm/components/Dropdown/DropdownItem.js +4 -9
  337. package/dist/esm/components/Dropdown/index.d.ts +2 -2
  338. package/dist/esm/components/Dropdown/index.js +2 -2
  339. package/dist/esm/components/Modal/Modal.d.ts.map +1 -1
  340. package/dist/esm/components/Modal/Modal.js +2 -3
  341. package/dist/esm/components/Modal/index.d.ts +1 -1
  342. package/dist/esm/components/Modal/index.js +1 -1
  343. package/dist/esm/components/QuillMultiSelect.d.ts.map +1 -1
  344. package/dist/esm/components/QuillMultiSelect.js +18 -3
  345. package/dist/esm/components/QuillMultiSelectWithCombo.d.ts.map +1 -1
  346. package/dist/esm/components/QuillMultiSelectWithCombo.js +18 -3
  347. package/dist/esm/components/QuillSelect.js +1 -1
  348. package/dist/esm/components/QuillSelectWithCombo.d.ts.map +1 -1
  349. package/dist/esm/components/QuillSelectWithCombo.js +7 -4
  350. package/dist/esm/components/QuillTable.d.ts +1 -4
  351. package/dist/esm/components/QuillTable.d.ts.map +1 -1
  352. package/dist/esm/components/QuillTable.js +5 -11
  353. package/dist/esm/components/ReportBuilder/AddColumnModal.d.ts +3 -1
  354. package/dist/esm/components/ReportBuilder/AddColumnModal.d.ts.map +1 -1
  355. package/dist/esm/components/ReportBuilder/AddColumnModal.js +8 -11
  356. package/dist/esm/components/ReportBuilder/AddLimitPopover.d.ts.map +1 -1
  357. package/dist/esm/components/ReportBuilder/AddLimitPopover.js +2 -4
  358. package/dist/esm/components/ReportBuilder/AddSortPopover.d.ts.map +1 -1
  359. package/dist/esm/components/ReportBuilder/AddSortPopover.js +12 -1
  360. package/dist/esm/components/ReportBuilder/FilterModal.d.ts +30 -0
  361. package/dist/esm/components/ReportBuilder/FilterModal.d.ts.map +1 -0
  362. package/dist/esm/components/ReportBuilder/FilterModal.js +576 -0
  363. package/dist/esm/components/ReportBuilder/ast.d.ts +2 -1
  364. package/dist/esm/components/ReportBuilder/ast.d.ts.map +1 -1
  365. package/dist/esm/components/ReportBuilder/ast.js +31 -5
  366. package/dist/esm/components/ReportBuilder/constants.d.ts +18 -3
  367. package/dist/esm/components/ReportBuilder/constants.d.ts.map +1 -1
  368. package/dist/esm/components/ReportBuilder/constants.js +24 -3
  369. package/dist/esm/components/ReportBuilder/convert.d.ts +18 -16
  370. package/dist/esm/components/ReportBuilder/convert.d.ts.map +1 -1
  371. package/dist/esm/components/ReportBuilder/convert.js +375 -493
  372. package/dist/esm/components/ReportBuilder/convert.uspec.d.ts +2 -0
  373. package/dist/esm/components/ReportBuilder/convert.uspec.d.ts.map +1 -0
  374. package/dist/esm/components/ReportBuilder/convert.uspec.js +1419 -0
  375. package/dist/esm/components/ReportBuilder/operators.d.ts +24 -4
  376. package/dist/esm/components/ReportBuilder/operators.d.ts.map +1 -1
  377. package/dist/esm/components/ReportBuilder/operators.js +32 -4
  378. package/dist/esm/components/ReportBuilder/ui.d.ts +20 -0
  379. package/dist/esm/components/ReportBuilder/ui.d.ts.map +1 -1
  380. package/dist/esm/components/ReportBuilder/ui.js +13 -4
  381. package/dist/esm/components/ReportBuilder/util.d.ts +3 -11
  382. package/dist/esm/components/ReportBuilder/util.d.ts.map +1 -1
  383. package/dist/esm/components/ReportBuilder/util.js +16 -19
  384. package/dist/esm/components/UiComponents.d.ts +36 -8
  385. package/dist/esm/components/UiComponents.d.ts.map +1 -1
  386. package/dist/esm/components/UiComponents.js +104 -11
  387. package/dist/esm/components/selectUtils.d.ts +0 -1
  388. package/dist/esm/components/selectUtils.d.ts.map +1 -1
  389. package/dist/esm/components/selectUtils.js +0 -20
  390. package/dist/esm/hooks/index.d.ts +4 -4
  391. package/dist/esm/hooks/index.js +4 -4
  392. package/dist/esm/hooks/useAstToFilterTree.d.ts +11 -0
  393. package/dist/esm/hooks/useAstToFilterTree.d.ts.map +1 -0
  394. package/dist/esm/hooks/useAstToFilterTree.js +24 -0
  395. package/dist/esm/hooks/useDashboard.d.ts.map +1 -1
  396. package/dist/esm/hooks/useDashboard.js +5 -1
  397. package/dist/esm/hooks/useExport.d.ts.map +1 -1
  398. package/dist/esm/hooks/useExport.js +4 -2
  399. package/dist/esm/hooks/useOnClickOutside.js +5 -5
  400. package/dist/esm/hooks/useOnWindowResize.d.ts.map +1 -1
  401. package/dist/esm/hooks/useOnWindowResize.js +3 -3
  402. package/dist/esm/hooks/useQuill.d.ts +10 -27
  403. package/dist/esm/hooks/useQuill.d.ts.map +1 -1
  404. package/dist/esm/hooks/useQuill.js +133 -85
  405. package/dist/esm/hooks/useSelectOnKeyDown.d.ts.map +1 -1
  406. package/dist/esm/hooks/useSelectOnKeyDown.js +5 -5
  407. package/dist/esm/hooks/useTheme.js +1 -1
  408. package/dist/esm/index.d.ts +3 -1
  409. package/dist/esm/index.d.ts.map +1 -1
  410. package/dist/esm/index.js +1 -0
  411. package/dist/esm/internals/ReportBuilder/PivotForm.d.ts.map +1 -1
  412. package/dist/esm/internals/ReportBuilder/PivotForm.js +9 -2
  413. package/dist/esm/internals/ReportBuilder/PivotList.d.ts +2 -2
  414. package/dist/esm/internals/ReportBuilder/PivotList.d.ts.map +1 -1
  415. package/dist/esm/internals/ReportBuilder/PivotList.js +3 -3
  416. package/dist/esm/internals/ReportBuilder/PivotModal.d.ts +2 -1
  417. package/dist/esm/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
  418. package/dist/esm/internals/ReportBuilder/PivotModal.js +11 -24
  419. package/dist/esm/lib/utils.js +2 -2
  420. package/dist/esm/models/Columns.d.ts +2 -1
  421. package/dist/esm/models/Columns.d.ts.map +1 -1
  422. package/dist/esm/models/Filter.d.ts +115 -4
  423. package/dist/esm/models/Filter.d.ts.map +1 -1
  424. package/dist/esm/models/Filter.js +98 -1
  425. package/dist/esm/models/Pagination.d.ts +10 -0
  426. package/dist/esm/models/Pagination.d.ts.map +1 -0
  427. package/dist/esm/models/Pagination.js +1 -0
  428. package/dist/esm/models/Report.d.ts +103 -0
  429. package/dist/esm/models/Report.d.ts.map +1 -0
  430. package/dist/esm/models/Report.js +1 -0
  431. package/dist/esm/test-utils/constants.d.ts +56 -0
  432. package/dist/esm/test-utils/constants.d.ts.map +1 -0
  433. package/dist/esm/test-utils/constants.js +271 -0
  434. package/dist/esm/test-utils/generators.d.ts +4 -0
  435. package/dist/esm/test-utils/generators.d.ts.map +1 -0
  436. package/dist/esm/test-utils/generators.js +37 -0
  437. package/dist/esm/utils/aggregate.js +1 -1
  438. package/dist/esm/utils/astFilterProcessing.d.ts +36 -0
  439. package/dist/esm/utils/astFilterProcessing.d.ts.map +1 -0
  440. package/dist/esm/utils/astFilterProcessing.js +8084 -0
  441. package/dist/esm/utils/astFilterProcessing.uspec.d.ts +2 -0
  442. package/dist/esm/utils/astFilterProcessing.uspec.d.ts.map +1 -0
  443. package/dist/esm/utils/astFilterProcessing.uspec.js +2877 -0
  444. package/dist/esm/utils/astProcessing.d.ts.map +1 -1
  445. package/dist/esm/utils/astProcessing.js +4 -3
  446. package/dist/esm/utils/axisFormatter.js +0 -71
  447. package/dist/esm/utils/color.js +9 -87
  448. package/dist/esm/utils/columnProcessing.d.ts +2 -0
  449. package/dist/esm/utils/columnProcessing.d.ts.map +1 -1
  450. package/dist/esm/utils/columnProcessing.js +52 -0
  451. package/dist/esm/utils/columnProcessing.uspec.d.ts +2 -0
  452. package/dist/esm/utils/columnProcessing.uspec.d.ts.map +1 -0
  453. package/dist/esm/utils/columnProcessing.uspec.js +65 -0
  454. package/dist/esm/utils/csv.d.ts.map +1 -1
  455. package/dist/esm/utils/dashboard.d.ts +1 -1
  456. package/dist/esm/utils/dashboard.d.ts.map +1 -1
  457. package/dist/esm/utils/dashboard.js +6 -59
  458. package/dist/esm/utils/dataFetcher.d.ts.map +1 -1
  459. package/dist/esm/utils/dataFetcher.js +63 -1
  460. package/dist/esm/utils/dataProcessing.d.ts +10 -0
  461. package/dist/esm/utils/dataProcessing.d.ts.map +1 -0
  462. package/dist/esm/utils/dataProcessing.js +138 -0
  463. package/dist/esm/utils/dataProcessing.uspec.d.ts +2 -0
  464. package/dist/esm/utils/dataProcessing.uspec.d.ts.map +1 -0
  465. package/dist/esm/utils/dataProcessing.uspec.js +205 -0
  466. package/dist/esm/utils/dates.d.ts +2 -1
  467. package/dist/esm/utils/dates.d.ts.map +1 -1
  468. package/dist/esm/utils/dates.js +21 -0
  469. package/dist/esm/utils/error.d.ts +5 -0
  470. package/dist/esm/utils/error.d.ts.map +1 -0
  471. package/dist/esm/utils/error.js +8 -0
  472. package/dist/esm/utils/filterConstants.d.ts +34 -0
  473. package/dist/esm/utils/filterConstants.d.ts.map +1 -0
  474. package/dist/esm/utils/filterConstants.js +33 -0
  475. package/dist/esm/utils/filterProcessing.d.ts +7 -1
  476. package/dist/esm/utils/filterProcessing.d.ts.map +1 -1
  477. package/dist/esm/utils/filterProcessing.js +101 -16
  478. package/dist/esm/utils/filterProcessing.uspec.d.ts +2 -0
  479. package/dist/esm/utils/filterProcessing.uspec.d.ts.map +1 -0
  480. package/dist/esm/utils/filterProcessing.uspec.js +245 -0
  481. package/dist/esm/utils/logging.d.ts.map +1 -1
  482. package/dist/esm/utils/logging.js +1 -0
  483. package/dist/esm/utils/merge.js +0 -21
  484. package/dist/esm/utils/{monacoAutocomplete.d.ts → monacoConfig.d.ts} +3 -2
  485. package/dist/esm/utils/monacoConfig.d.ts.map +1 -0
  486. package/dist/esm/utils/monacoConfig.js +319 -0
  487. package/dist/esm/utils/paginationProcessing.d.ts +5 -0
  488. package/dist/esm/utils/paginationProcessing.d.ts.map +1 -0
  489. package/dist/esm/utils/paginationProcessing.js +25 -0
  490. package/dist/esm/utils/pivotConstructor.d.ts +2 -1
  491. package/dist/esm/utils/pivotConstructor.d.ts.map +1 -1
  492. package/dist/esm/utils/pivotConstructor.js +16 -1
  493. package/dist/esm/utils/pivotProcessing.d.ts.map +1 -1
  494. package/dist/esm/utils/pivotProcessing.js +12 -6
  495. package/dist/esm/utils/queryConstructor.d.ts.map +1 -1
  496. package/dist/esm/utils/queryConstructor.js +4 -3
  497. package/dist/esm/utils/queryConstructor.uspec.js +21 -21
  498. package/dist/esm/utils/report.d.ts +10 -0
  499. package/dist/esm/utils/report.d.ts.map +1 -0
  500. package/dist/esm/utils/report.ispec.d.ts +2 -0
  501. package/dist/esm/utils/report.ispec.d.ts.map +1 -0
  502. package/dist/esm/utils/report.ispec.js +46 -0
  503. package/dist/esm/utils/report.js +174 -0
  504. package/dist/esm/utils/report.uspec.d.ts +2 -0
  505. package/dist/esm/utils/report.uspec.d.ts.map +1 -0
  506. package/dist/esm/utils/report.uspec.js +66 -0
  507. package/dist/esm/utils/schema.d.ts.map +1 -1
  508. package/dist/esm/utils/schema.js +35 -6
  509. package/dist/esm/utils/styles.d.ts +1 -1
  510. package/dist/esm/utils/styles.d.ts.map +1 -1
  511. package/dist/esm/utils/tableProcessing.d.ts +22 -8
  512. package/dist/esm/utils/tableProcessing.d.ts.map +1 -1
  513. package/dist/esm/utils/tableProcessing.ispec.d.ts +2 -0
  514. package/dist/esm/utils/tableProcessing.ispec.d.ts.map +1 -0
  515. package/dist/esm/utils/tableProcessing.ispec.js +61 -0
  516. package/dist/esm/utils/tableProcessing.js +112 -33
  517. package/dist/esm/utils/textProcessing.js +3 -3
  518. package/dist/esm/utils/validation.d.ts +9 -0
  519. package/dist/esm/utils/validation.d.ts.map +1 -0
  520. package/dist/esm/utils/validation.js +20 -0
  521. package/dist/esm/utils/valueFormatter.d.ts.map +1 -1
  522. package/dist/esm/utils/valueFormatter.js +8 -4
  523. package/package.json +1 -1
  524. package/dist/cjs/utils/monacoAutocomplete.d.ts.map +0 -1
  525. package/dist/cjs/utils/monacoAutocomplete.js +0 -145
  526. package/dist/cjs/utils/queryConstructor.uspec.d.ts +0 -2
  527. package/dist/cjs/utils/queryConstructor.uspec.d.ts.map +0 -1
  528. package/dist/cjs/utils/queryConstructor.uspec.js +0 -225
  529. package/dist/esm/utils/monacoAutocomplete.d.ts.map +0 -1
  530. package/dist/esm/utils/monacoAutocomplete.js +0 -140
@@ -24,13 +24,16 @@ export async function generatePivotWithSQL(pivot, report, client, dateBucket, da
24
24
  }
25
25
  if (pivot.rowField && !pivot.rowFieldType) {
26
26
  const rowColumn = report.columns.find((column) => column.field === pivot.rowField);
27
- pivot.rowFieldType = rowColumn.format;
27
+ pivot.rowFieldType = rowColumn?.format || 'string';
28
28
  }
29
29
  let distinctStringValues = undefined;
30
30
  if (!distinctStrings && report.rows && pivot.columnField) {
31
31
  const distinctValues = Array.from(new Set(report.rows.map((row) => row[pivot.columnField])));
32
32
  distinctStringValues = distinctValues.map((value) => value.toString());
33
33
  }
34
+ if (!report.itemQuery) {
35
+ return undefined;
36
+ }
34
37
  const sqlQuery = generatePivotQuery(pivot, report.itemQuery, client.databaseType, comparisonInterval, distinctStrings ? distinctStrings : distinctStringValues, dateBucket);
35
38
  if (sqlQuery && report.rows.length > 0) {
36
39
  const hostedBody = {
@@ -45,6 +48,7 @@ export async function generatePivotWithSQL(pivot, report, client, dateBucket, da
45
48
  overridePost: true,
46
49
  convertDatatypes: true,
47
50
  },
51
+ useNewNodeSql: true,
48
52
  },
49
53
  };
50
54
  const cloudBody = { ...hostedBody };
@@ -66,6 +70,9 @@ export async function generatePivotWithSQL(pivot, report, client, dateBucket, da
66
70
  .map((field) => ({
67
71
  field: processColumnName(field.name),
68
72
  label: snakeCaseToTitleCase(processColumnName(field.name.replace('comparison_', 'comparison '))),
73
+ format: field.name === pivot.rowField
74
+ ? 'string'
75
+ : pivot.valueFieldType ?? 'whole_number',
69
76
  }))
70
77
  .filter((field, index) => field.field !== 'comparison_' + pivot.rowField || index === 0)
71
78
  .sort((a, b) => {
@@ -128,6 +135,14 @@ export async function generatePivotWithSQL(pivot, report, client, dateBucket, da
128
135
  }
129
136
  });
130
137
  }
138
+ // for the case of count agg on no value field
139
+ columns.forEach((column) => {
140
+ if (['null', 'undefined'].includes(column.label.toLowerCase()) &&
141
+ !pivot.valueField &&
142
+ pivot.aggregationType === 'count') {
143
+ column.label = 'Count';
144
+ }
145
+ });
131
146
  return {
132
147
  rows: rows,
133
148
  columns: columns,
@@ -1 +1 @@
1
- {"version":3,"file":"pivotProcessing.d.ts","sourceRoot":"","sources":["../../../src/utils/pivotProcessing.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,EAAE,MAAM,uCAAuC,CAAC;AAC9D,OAAO,EAAU,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAG3D,wBAAgB,UAAU,CACxB,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,cAAc,EAAE,GACxB,MAAM,CAsCR;AAkBD,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,WAgBxC;AAED,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,cAAc,EAAE,EACzB,YAAY,EAAE;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE;;;;EAsCvC;AAED,wBAAgB,UAAU,CACxB,KAAK,EAAE,KAAK,EACZ,eAAe,EAAE;IACf,SAAS,EAAE,GAAG,CAAC;IACf,YAAY,EAAE,GAAG,CAAC;IAClB,WAAW,EAAE,GAAG,CAAC;CAClB,GACA,KAAK,CAqCP"}
1
+ {"version":3,"file":"pivotProcessing.d.ts","sourceRoot":"","sources":["../../../src/utils/pivotProcessing.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,uCAAuC,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGnD,wBAAgB,UAAU,CACxB,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,cAAc,EAAE,GACxB,MAAM,CAsCR;AAkBD,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,WA0BxC;AAED,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,cAAc,EAAE,EACzB,YAAY,EAAE;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE;;;;EAsCvC;AAED,wBAAgB,UAAU,CACxB,KAAK,EAAE,KAAK,EACZ,eAAe,EAAE;IACf,SAAS,EAAE,GAAG,CAAC;IACf,YAAY,EAAE,GAAG,CAAC;IAClB,WAAW,EAAE,GAAG,CAAC;CAClB,GACA,KAAK,CAqCP"}
@@ -45,10 +45,16 @@ export function isValidPivot(pivot) {
45
45
  if (pivot.rowField && pivot.aggregationType === 'count') {
46
46
  return true;
47
47
  }
48
- else if (pivot.rowField && pivot.valueField && pivot.aggregationType) {
48
+ else if (pivot.rowField &&
49
+ pivot.valueField &&
50
+ pivot.aggregationType &&
51
+ !pivot.columnField) {
49
52
  return true;
50
53
  }
51
- else if (pivot.valueField && pivot.aggregationType) {
54
+ else if (pivot.valueField &&
55
+ pivot.aggregationType &&
56
+ !pivot.columnField &&
57
+ !pivot.rowField) {
52
58
  return true;
53
59
  }
54
60
  else if (pivot.rowField &&
@@ -60,10 +66,10 @@ export function isValidPivot(pivot) {
60
66
  return false;
61
67
  }
62
68
  export function getPossiblePivotFieldOptions(columns, uniqueValues) {
63
- let rowFields = [];
64
- let columnFields = [];
65
- let valueFields = [];
66
- for (let column of columns) {
69
+ const rowFields = [];
70
+ const columnFields = [];
71
+ const valueFields = [];
72
+ for (const column of columns) {
67
73
  // row fields can be dates or strings
68
74
  if (DATE_FORMAT_TYPES.includes(column.format)) {
69
75
  rowFields.push(column.field);
@@ -1 +1 @@
1
- {"version":3,"file":"queryConstructor.d.ts","sourceRoot":"","sources":["../../../src/utils/queryConstructor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,uCAAuC,CAAC;AAmB9D,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,UAa1E;AA4CD,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,MAAM,EAAE,EAChB,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,MAAM,UAUrB;AAED,wBAAgB,qBAAqB,CACnC,YAAY,EAAE,MAAM,EAAE,EACtB,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,MAAM,UASrB;AAED,wBAAgB,0BAA0B,CACxC,YAAY,EAAE,MAAM,EAAE,EACtB,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,MAAM,UAcrB;AAED,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,MAAM,EAAE,EACrB,YAAY,EAAE,MAAM,EACpB,kBAAkB,CAAC,EAAE,MAAM,EAC3B,eAAe,CAAC,EAAE,MAAM,EAAE,EAC1B,UAAU,CAAC,EAAE,MAAM,GAClB,MAAM,GAAG,SAAS,CAwBpB"}
1
+ {"version":3,"file":"queryConstructor.d.ts","sourceRoot":"","sources":["../../../src/utils/queryConstructor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,uCAAuC,CAAC;AAmB9D,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,UAa1E;AAgDD,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,MAAM,EAAE,EAChB,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,MAAM,UAUrB;AAED,wBAAgB,qBAAqB,CACnC,YAAY,EAAE,MAAM,EAAE,EACtB,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,MAAM,UASrB;AAED,wBAAgB,0BAA0B,CACxC,YAAY,EAAE,MAAM,EAAE,EACtB,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,MAAM,UAcrB;AAED,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,MAAM,EAAE,EACrB,YAAY,EAAE,MAAM,EACpB,kBAAkB,CAAC,EAAE,MAAM,EAC3B,eAAe,CAAC,EAAE,MAAM,EAAE,EAC1B,UAAU,CAAC,EAAE,MAAM,GAClB,MAAM,GAAG,SAAS,CAwBpB"}
@@ -46,7 +46,9 @@ function processDateTrunc(dateBucket, rowField, databaseType, comparisonInterval
46
46
  return `TIMESTAMP_TRUNC(${date}, ${dateBucket})`;
47
47
  }
48
48
  function processValueField(aggType, databaseType, valueField) {
49
- if (aggType === 'min' || aggType === 'max')
49
+ if (aggType === 'min' ||
50
+ aggType === 'max' ||
51
+ aggType?.toLowerCase() === 'average')
50
52
  return `${processColumnReference(valueField, databaseType)} ELSE null`;
51
53
  if (aggType === 'count')
52
54
  return `1 ELSE 0`;
@@ -136,7 +138,6 @@ function create2DDatePivotQuery(pivot, itemQueries, columnFieldValues, databaseT
136
138
  return undefined;
137
139
  }
138
140
  const rowField = pivot.rowField;
139
- const valueField = pivot.valueField;
140
141
  const columnField = pivot.columnField;
141
142
  const caseWhens = columnFieldValues.map((column) => {
142
143
  return `${processAggType(pivot.aggregationType, true)}(CASE WHEN qt.${processColumnReference(columnField, databaseType)} = '${processSingleQuotes(column, databaseType)}' THEN ${processValueField(pivot.aggregationType, databaseType, pivot.valueField)} END) AS ${processColumnReference(column, databaseType)}`;
@@ -204,7 +205,7 @@ function create1DDatePivotQuery(pivot, itemQueries, dateBucket = 'month', databa
204
205
  }
205
206
  function createAggregationValuePivot(pivot, itemQueries, databaseType) {
206
207
  const valueField = pivot.valueField;
207
- let aggregationType = processAggType(pivot.aggregationType);
208
+ const aggregationType = processAggType(pivot.aggregationType);
208
209
  if (!pivot.valueField)
209
210
  return undefined;
210
211
  const compareCTE = itemQueries[1]
@@ -3,7 +3,7 @@ const removeExtraSpacesAndNewLines = (str) => {
3
3
  return str.replace(/\s+/g, ' ').trim();
4
4
  };
5
5
  describe('queryConstructor', () => {
6
- let default2DPivot = {
6
+ const default2DPivot = {
7
7
  rowField: 'merchant',
8
8
  rowFieldType: 'string',
9
9
  columnField: 'user',
@@ -16,7 +16,7 @@ describe('queryConstructor', () => {
16
16
  `select * from transactions where created_at BETWEEN '2024-05-01' AND '2024-06-01'`,
17
17
  ];
18
18
  describe('bigquery - generatePivotQuery', () => {
19
- let databaseType = 'bigquery';
19
+ const databaseType = 'bigquery';
20
20
  it('should return a 2d string pivot query', async () => {
21
21
  const query = generatePivotQuery(default2DPivot, nonComparisonQuery, databaseType, undefined, ['value1', 'value2']);
22
22
  const expected = `WITH quill_qt AS (select * from transactions),
@@ -144,13 +144,13 @@ describe('queryConstructor', () => {
144
144
  });
145
145
  });
146
146
  describe('postgresql - generatePivotQuery', () => {
147
- let databaseType = 'postgresql';
147
+ const databaseType = 'postgresql';
148
148
  it('should return a 2d string pivot query', async () => {
149
149
  const query = generatePivotQuery(default2DPivot, ['select * from transactions'], databaseType, undefined, ['value1', 'value2']);
150
150
  const expected = `WITH quill_qt AS (select * from transactions),
151
151
  quill_qt_cw AS
152
- (SELECT \"merchant\", sum(CASE WHEN \"user\" = 'value1' THEN \"amount\" ELSE 0 END) AS \"value1\",
153
- sum(CASE WHEN \"user\" = 'value2' THEN \"amount\" ELSE 0 END) AS \"value2\" FROM quill_qt GROUP BY \"merchant\")
152
+ (SELECT "merchant", sum(CASE WHEN "user" = 'value1' THEN "amount" ELSE 0 END) AS "value1",
153
+ sum(CASE WHEN "user" = 'value2' THEN "amount" ELSE 0 END) AS "value2" FROM quill_qt GROUP BY "merchant")
154
154
  SELECT * FROM quill_qt_cw qt`;
155
155
  expect(removeExtraSpacesAndNewLines(query)).toEqual(removeExtraSpacesAndNewLines(expected));
156
156
  });
@@ -161,12 +161,12 @@ describe('queryConstructor', () => {
161
161
  rowField: 'created_at',
162
162
  }, ['select * from transactions'], databaseType, undefined, ['value1', 'value2']);
163
163
  const expected = `WITH quill_query_table AS (select * from transactions),
164
- quill_qt_agg as (SELECT date_trunc('month', \"created_at\") as \"created_at\",
165
- sum(CASE WHEN qt.\"user\" = 'value1' THEN \"amount\" ELSE 0 END) AS \"value1\",
166
- sum(CASE WHEN qt.\"user\" = 'value2' THEN \"amount\" ELSE 0 END) AS \"value2\"
164
+ quill_qt_agg as (SELECT date_trunc('month', "created_at") as "created_at",
165
+ sum(CASE WHEN qt."user" = 'value1' THEN "amount" ELSE 0 END) AS "value1",
166
+ sum(CASE WHEN qt."user" = 'value2' THEN "amount" ELSE 0 END) AS "value2"
167
167
  FROM quill_query_table qt
168
- GROUP BY date_trunc('month', \"created_at\"))
169
- SELECT * FROM quill_qt_agg qt ORDER BY qt.\"created_at\"`;
168
+ GROUP BY date_trunc('month', "created_at"))
169
+ SELECT * FROM quill_qt_agg qt ORDER BY qt."created_at"`;
170
170
  expect(removeExtraSpacesAndNewLines(query)).toEqual(removeExtraSpacesAndNewLines(expected));
171
171
  });
172
172
  it('should return a 1d date pivot query', async () => {
@@ -177,10 +177,10 @@ describe('queryConstructor', () => {
177
177
  columnField: undefined,
178
178
  }, ['select * from transactions'], databaseType, undefined);
179
179
  const expected = `WITH quill_qt AS (select * from transactions),
180
- quill_qt_agg AS (SELECT date_trunc('month', \"created_at\") as \"created_at\", sum(\"amount\") as \"amount\"
180
+ quill_qt_agg AS (SELECT date_trunc('month', "created_at") as "created_at", sum("amount") as "amount"
181
181
  FROM quill_qt
182
- GROUP BY date_trunc('month', \"created_at\"))
183
- SELECT * FROM quill_qt_agg qt ORDER BY qt.\"created_at\"`;
182
+ GROUP BY date_trunc('month', "created_at"))
183
+ SELECT * FROM quill_qt_agg qt ORDER BY qt."created_at"`;
184
184
  expect(removeExtraSpacesAndNewLines(query)).toEqual(removeExtraSpacesAndNewLines(expected));
185
185
  });
186
186
  it('should return a 1d string pivot query', async () => {
@@ -208,15 +208,15 @@ describe('queryConstructor', () => {
208
208
  }, comparisonQueries, databaseType, '90 DAY', ['value1', 'value2']);
209
209
  const expected = `WITH quill_query_table AS
210
210
  (select * from transactions where created_at BETWEEN '2024-06-01' AND '2024-07-01'),
211
- quill_qt_agg as (SELECT date_trunc('month', \"created_at\") as \"created_at\",
212
- sum(CASE WHEN qt.\"user\" = 'value1' THEN \"amount\" ELSE 0 END) AS \"value1\",
213
- sum(CASE WHEN qt.\"user\" = 'value2' THEN \"amount\" ELSE 0 END) AS \"value2\" FROM quill_query_table qt GROUP BY date_trunc('month', \"created_at\")) ,
211
+ quill_qt_agg as (SELECT date_trunc('month', "created_at") as "created_at",
212
+ sum(CASE WHEN qt."user" = 'value1' THEN "amount" ELSE 0 END) AS "value1",
213
+ sum(CASE WHEN qt."user" = 'value2' THEN "amount" ELSE 0 END) AS "value2" FROM quill_query_table qt GROUP BY date_trunc('month', "created_at")) ,
214
214
  quill_ct as (select * from transactions where created_at BETWEEN '2024-05-01' AND '2024-06-01') ,
215
- quill_ct_cw as (SELECT date_trunc('month', \"created_at\") as \"comparison_created_at\",
216
- sum(CASE WHEN \"user\" = 'value1' THEN \"amount\" ELSE 0 END) AS \"comparison_value1\",
217
- sum(CASE WHEN \"user\" = 'value2' THEN \"amount\" ELSE 0 END) AS \"comparison_value2\" FROM quill_ct GROUP BY date_trunc('month', \"created_at\"))
218
- SELECT * FROM quill_qt_agg qt LEFT JOIN quill_ct_cw \"ct\" ON qt.\"created_at\" = date_trunc('month', (\"ct\".\"comparison_created_at\" + INTERVAL '90 DAY'))
219
- ORDER BY qt.\"created_at\"`;
215
+ quill_ct_cw as (SELECT date_trunc('month', "created_at") as "comparison_created_at",
216
+ sum(CASE WHEN "user" = 'value1' THEN "amount" ELSE 0 END) AS "comparison_value1",
217
+ sum(CASE WHEN "user" = 'value2' THEN "amount" ELSE 0 END) AS "comparison_value2" FROM quill_ct GROUP BY date_trunc('month', "created_at"))
218
+ SELECT * FROM quill_qt_agg qt LEFT JOIN quill_ct_cw "ct" ON qt."created_at" = date_trunc('month', ("ct"."comparison_created_at" + INTERVAL '90 DAY'))
219
+ ORDER BY qt."created_at"`;
220
220
  expect(removeExtraSpacesAndNewLines(query)).toEqual(removeExtraSpacesAndNewLines(expected));
221
221
  });
222
222
  });
@@ -0,0 +1,10 @@
1
+ import { QuillReport, QuillReportInternal } from '../models/Report';
2
+ import { AdditionalProcessing } from './tableProcessing';
3
+ export declare const EMPTY_REPORT: QuillReport;
4
+ export declare function fetchReport(reportId: string, client: any, useReportTask?: boolean, filters?: any[], additionalProcessing?: AdditionalProcessing, dateBucket?: string, customFields?: any): Promise<{
5
+ report: QuillReportInternal;
6
+ error?: string;
7
+ }>;
8
+ export declare const formatRowsFromReport: (report: any) => any;
9
+ export declare function convertInternalReportToReport(report: QuillReportInternal): QuillReport;
10
+ //# sourceMappingURL=report.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../../../src/utils/report.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AASpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAGzD,eAAO,MAAM,YAAY,EAAE,WAkB1B,CAAC;AAEF,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,GAAG,EACX,aAAa,UAAO,EACpB,OAAO,GAAE,GAAG,EAAO,EACnB,oBAAoB,CAAC,EAAE,oBAAoB,EAC3C,UAAU,CAAC,EAAE,MAAM,EACnB,YAAY,CAAC,EAAE,GAAG,GACjB,OAAO,CAAC;IAAE,MAAM,EAAE,mBAAmB,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CA2F1D;AAED,eAAO,MAAM,oBAAoB,WAAY,GAAG,QAkB/C,CAAC;AAEF,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,mBAAmB,GAC1B,WAAW,CAsDb"}
@@ -0,0 +1,2 @@
1
+ export declare function getClient(publicKey: string): Promise<any>;
2
+ //# sourceMappingURL=report.ispec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"report.ispec.d.ts","sourceRoot":"","sources":["../../../src/utils/report.ispec.ts"],"names":[],"mappings":"AAIA,wBAAsB,SAAS,CAAC,SAAS,EAAE,MAAM,gBAqBhD"}
@@ -0,0 +1,46 @@
1
+ import { fetchReport } from './report';
2
+ const QUERY_ENDPOINT = 'https://quill-344421.uc.r.appspot.com/cloud';
3
+ export async function getClient(publicKey) {
4
+ const response = await fetch(QUERY_ENDPOINT, {
5
+ method: 'POST',
6
+ headers: {
7
+ 'Content-Type': 'application/json',
8
+ },
9
+ body: JSON.stringify({
10
+ metadata: {
11
+ clientId: publicKey,
12
+ publicKey,
13
+ task: 'client',
14
+ },
15
+ }),
16
+ });
17
+ const result = await response.json();
18
+ return {
19
+ ...result.data.client,
20
+ publicKey: result.data.client._id,
21
+ customerId: result.data.client.adminCustomerId,
22
+ queryEndpoint: QUERY_ENDPOINT,
23
+ };
24
+ }
25
+ describe('report', () => {
26
+ let client = undefined;
27
+ beforeAll(async () => {
28
+ const publicKey = '65d65b57cdd8ae70a5648d9c';
29
+ client = await getClient(publicKey);
30
+ });
31
+ describe('fetchReport', () => {
32
+ it('should fetch report', async () => {
33
+ const reportId = '669167e392533d0c68bfe002';
34
+ const report = await fetchReport(reportId, client);
35
+ expect(report.report).toBeDefined();
36
+ expect(report.report.pivot).toBeDefined();
37
+ expect(report.report.rows).toBeDefined();
38
+ });
39
+ it('should fetch the broken report and return an error', async () => {
40
+ const reportId = '66a3d7ef28ca14000c51f498';
41
+ const report = await fetchReport(reportId, client);
42
+ expect(report.report).toBeDefined();
43
+ expect(report.report.error).toBeDefined();
44
+ });
45
+ });
46
+ });
@@ -0,0 +1,174 @@
1
+ import { getYAxisFields } from './columnProcessing';
2
+ import { cleanDashboardItem } from './dashboard';
3
+ import { getData } from './dataFetcher';
4
+ import { DataLoadError } from './error';
5
+ import { processFilterErrorList } from './errorProcessing';
6
+ import { internalLog } from './logging';
7
+ import { mergeComparisonRange } from './merge';
8
+ import { isValidPivot } from './pivotProcessing';
9
+ import { quillFormat } from './valueFormatter';
10
+ export const EMPTY_REPORT = {
11
+ id: '',
12
+ name: '',
13
+ dashboardName: '',
14
+ rows: [],
15
+ columns: [],
16
+ chartType: '',
17
+ dateField: null,
18
+ pivot: null,
19
+ xAxisLabel: '',
20
+ xAxisField: '',
21
+ xAxisFormat: 'string',
22
+ yAxisFields: [],
23
+ order: -1,
24
+ compareRows: [],
25
+ filtersApplied: [],
26
+ queryString: '',
27
+ rowCount: 0,
28
+ };
29
+ export async function fetchReport(reportId, client, useReportTask = true, filters = [], additionalProcessing, dateBucket, customFields) {
30
+ let reportInfo = undefined;
31
+ let errorMessage = undefined;
32
+ try {
33
+ // Remove extra fields on each filter so we don't confuse the backend.
34
+ const hostedBody = {
35
+ metadata: {
36
+ reportId,
37
+ dashboardItemId: reportId,
38
+ orgId: client.customerId || '*',
39
+ clientId: client.publicKey,
40
+ task: useReportTask ? 'report' : 'item',
41
+ databaseType: client.databaseType,
42
+ filters: filters,
43
+ customFields,
44
+ additionalProcessing,
45
+ useNewNodeSql: true,
46
+ },
47
+ };
48
+ const cloudBody = {
49
+ id: reportId,
50
+ filters: filters,
51
+ useNewNodeSql: true,
52
+ };
53
+ const resp = await getData(client, 'itempost', 'omit', hostedBody, cloudBody, 'POST', 'fetch-data');
54
+ processFilterErrorList(resp);
55
+ const dashboardItem = { ...resp, filtersApplied: filters };
56
+ if (resp.errorMessage) {
57
+ throw new DataLoadError(resp?.errorMessage, { ...resp, useReportTask });
58
+ }
59
+ if (resp.compareRows) {
60
+ mergeComparisonRange(resp);
61
+ }
62
+ reportInfo = await cleanDashboardItem(dashboardItem, filters, client, dateBucket);
63
+ if (additionalProcessing) {
64
+ reportInfo.pagination = additionalProcessing.page;
65
+ reportInfo.sort = additionalProcessing.sort;
66
+ }
67
+ }
68
+ catch (error) {
69
+ if (error instanceof DataLoadError) {
70
+ if (error.data.useReportTask) {
71
+ internalLog('USING ITEM AS BACKUP');
72
+ const { report, error } = await fetchReport(reportId, client, false, filters, additionalProcessing, dateBucket, customFields);
73
+ reportInfo = report;
74
+ errorMessage = error;
75
+ }
76
+ else {
77
+ if (!error.data.data) {
78
+ errorMessage = "Couln't find report";
79
+ reportInfo = EMPTY_REPORT;
80
+ }
81
+ else {
82
+ reportInfo = {
83
+ ...error.data.data,
84
+ id: error.data.data._id,
85
+ error: error.message,
86
+ adminError: error.data.adminErrorMessage,
87
+ };
88
+ }
89
+ errorMessage = error.message;
90
+ }
91
+ }
92
+ else {
93
+ reportInfo = {
94
+ id: reportId,
95
+ rows: [],
96
+ columns: [],
97
+ };
98
+ errorMessage = error.message;
99
+ }
100
+ }
101
+ return { report: reportInfo, error: errorMessage };
102
+ }
103
+ export const formatRowsFromReport = (report) => {
104
+ if (!report.rows || !report.columns) {
105
+ return [];
106
+ }
107
+ return report.rows.map((row) => {
108
+ return report.columns.reduce((formattedRow, column) => {
109
+ // Apply the format function to each field in the row
110
+ const formattedValue = quillFormat({
111
+ value: row[column.field],
112
+ format: column.format,
113
+ });
114
+ formattedRow[column.field] = formattedValue;
115
+ return formattedRow;
116
+ }, {});
117
+ });
118
+ };
119
+ export function convertInternalReportToReport(report) {
120
+ try {
121
+ if (!report) {
122
+ return EMPTY_REPORT;
123
+ }
124
+ const formattedReport = {
125
+ ...report,
126
+ };
127
+ if (formattedReport.pivot && isValidPivot(formattedReport.pivot)) {
128
+ let columns = report.pivotColumns ?? report.columns;
129
+ let rows = report.pivotRows ?? report.rows;
130
+ if (report.chartType === 'table') {
131
+ columns =
132
+ report.pivotColumns?.map((col, index) => {
133
+ if (index === 0) {
134
+ return {
135
+ ...col,
136
+ format: col.format || 'string',
137
+ };
138
+ }
139
+ return {
140
+ ...col,
141
+ format: report.pivot?.valueFieldType || 'whole_number',
142
+ };
143
+ }) ?? report.columns;
144
+ rows = formatRowsFromReport({ rows, columns });
145
+ }
146
+ else if (report.chartType === 'metric') {
147
+ columns =
148
+ report.pivotColumns?.map((col) => {
149
+ return { ...col, format: report.xAxisFormat };
150
+ }) ?? report.columns;
151
+ rows = formatRowsFromReport({ rows, columns });
152
+ }
153
+ return {
154
+ ...formattedReport,
155
+ rows: rows,
156
+ yAxisFields: getYAxisFields(report),
157
+ columns: columns,
158
+ rowCount: rows ? rows.length : 0,
159
+ };
160
+ }
161
+ let rows = report.rows;
162
+ if (report.chartType === 'metric' || report.chartType === 'table') {
163
+ rows = formatRowsFromReport(report);
164
+ }
165
+ return {
166
+ ...formattedReport,
167
+ rows: rows,
168
+ yAxisFields: getYAxisFields(report),
169
+ };
170
+ }
171
+ catch (error) {
172
+ return EMPTY_REPORT;
173
+ }
174
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=report.uspec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"report.uspec.d.ts","sourceRoot":"","sources":["../../../src/utils/report.uspec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,66 @@
1
+ import { DEFAULT_COMPARISON_DATE_FILTER, TWO_D_PIVOT, GENERIC_REPORT_INTERNAL, } from '../test-utils/constants';
2
+ import { createComparisonColumnsFromColumns, createRows, } from '../test-utils/generators';
3
+ import { convertInternalReportToReport } from './report';
4
+ describe('report', () => {
5
+ describe('convertInternalReportToReport', () => {
6
+ it('should convert a generic internal report to a generic report', () => {
7
+ const internalReport = {
8
+ ...GENERIC_REPORT_INTERNAL,
9
+ rows: createRows(GENERIC_REPORT_INTERNAL.columns, 10),
10
+ };
11
+ const report = convertInternalReportToReport(internalReport);
12
+ expect(report).toEqual(internalReport);
13
+ });
14
+ it('should convert a comparison internal report to a comparison report', () => {
15
+ const internalReport = {
16
+ ...GENERIC_REPORT_INTERNAL,
17
+ rows: createRows(GENERIC_REPORT_INTERNAL.columns, 10),
18
+ compareRows: createRows(GENERIC_REPORT_INTERNAL.columns, 10),
19
+ filtersApplied: [DEFAULT_COMPARISON_DATE_FILTER],
20
+ };
21
+ const report = convertInternalReportToReport(internalReport);
22
+ expect(report).toBeDefined();
23
+ expect(report.yAxisFields).toBeDefined();
24
+ expect(report.yAxisFields[1]).toEqual({
25
+ field: 'comparison_id',
26
+ format: 'whole_number',
27
+ label: 'comparison ID',
28
+ });
29
+ });
30
+ it('should convert a pivot internal report to a pivot report', () => {
31
+ const pivotRows = createRows(TWO_D_PIVOT.pivotColumns, 6);
32
+ const internalReport = {
33
+ ...GENERIC_REPORT_INTERNAL,
34
+ rows: createRows(GENERIC_REPORT_INTERNAL.columns, 10),
35
+ pivotColumns: TWO_D_PIVOT.pivotColumns,
36
+ pivotRows: pivotRows,
37
+ pivot: TWO_D_PIVOT.pivot,
38
+ };
39
+ const report = convertInternalReportToReport(internalReport);
40
+ expect(report).toBeDefined();
41
+ expect(report.yAxisFields).toBeDefined();
42
+ expect(report.rows).toEqual(pivotRows);
43
+ expect(report.yAxisFields[1]).toEqual({
44
+ field: 'Fuel',
45
+ format: 'whole_number',
46
+ label: 'Fuel',
47
+ });
48
+ });
49
+ it('should convert a comparison pivot internal report to a pivot report', () => {
50
+ const pivotColumns = createComparisonColumnsFromColumns(TWO_D_PIVOT.pivotColumns);
51
+ const pivotRows = createRows(pivotColumns, 6);
52
+ const internalReport = {
53
+ ...GENERIC_REPORT_INTERNAL,
54
+ rows: createRows(GENERIC_REPORT_INTERNAL.columns, 10),
55
+ pivotColumns,
56
+ pivotRows,
57
+ pivot: TWO_D_PIVOT.pivot,
58
+ };
59
+ const report = convertInternalReportToReport(internalReport);
60
+ expect(report).toBeDefined();
61
+ expect(report.yAxisFields).toBeDefined();
62
+ expect(report.rows).toEqual(pivotRows);
63
+ expect(report.yAxisFields.length).toEqual(pivotColumns.length - 1);
64
+ });
65
+ });
66
+ });
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/utils/schema.ts"],"names":[],"mappings":"AAuBA,eAAO,MAAM,kBAAkB,WAAkB,GAAG,oCA6EnD,CAAC;AAEF,eAAO,MAAM,6BAA6B,WAChC,GAAG;;;EA2CZ,CAAC"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/utils/schema.ts"],"names":[],"mappings":"AAkDA,eAAO,MAAM,kBAAkB,WAAkB,GAAG,oCA+EnD,CAAC;AAEF,eAAO,MAAM,6BAA6B,WAChC,GAAG;;;EA6CZ,CAAC"}
@@ -1,3 +1,28 @@
1
+ const triggerSoftUpdate = async (client, tables) => {
2
+ const { queryEndpoint, queryHeaders, publicKey } = client;
3
+ tables.forEach(async (table) => {
4
+ if (table.isSelectStar) {
5
+ fetch(`${queryEndpoint}?update-view`, {
6
+ method: 'POST',
7
+ headers: {
8
+ ...queryHeaders,
9
+ 'Content-Type': 'application/json',
10
+ },
11
+ body: JSON.stringify({
12
+ metadata: {
13
+ preQueries: [table.viewQuery.replace(/;/, '')],
14
+ clientId: publicKey,
15
+ publicKey: publicKey,
16
+ task: 'update-view',
17
+ name: table.name,
18
+ id: table._id,
19
+ runQueryConfig: { getColumns: true },
20
+ },
21
+ }),
22
+ });
23
+ }
24
+ });
25
+ };
1
26
  const parseResponse = (results) => {
2
27
  if (results.data?.data) {
3
28
  if (results.data.data.queries &&
@@ -27,7 +52,7 @@ export const getCustomFieldInfo = async (client, caller = 'se') => {
27
52
  !['65d65b57cdd8ae70a5648d9c', '665610862cf7a3000be66453'].includes(publicKey)) {
28
53
  throw new Error('CUSTOM FIELDS IS ONLY ALLOWED FOR POSTGRESQL DATABASES');
29
54
  }
30
- let response = await fetch(`${queryEndpoint}?cfr-${caller}`, {
55
+ const response = await fetch(`${queryEndpoint}?cfr-${caller}`, {
31
56
  method: 'POST',
32
57
  headers: {
33
58
  ...queryHeaders,
@@ -43,7 +68,7 @@ export const getCustomFieldInfo = async (client, caller = 'se') => {
43
68
  },
44
69
  }),
45
70
  });
46
- let result = await response.json();
71
+ const result = await response.json();
47
72
  const extractedData = parseResponse(result);
48
73
  const customFieldsByTable = [];
49
74
  extractedData.forEach((table) => {
@@ -78,11 +103,13 @@ export const getCustomFieldInfo = async (client, caller = 'se') => {
78
103
  return true;
79
104
  });
80
105
  }
81
- catch (e) { }
106
+ catch (e) {
107
+ return customFieldsByTableUnique;
108
+ }
82
109
  return customFieldsByTableUnique;
83
110
  };
84
111
  export const getSchemaInfoWithCustomFields = async (client, caller = 'se') => {
85
- const { queryEndpoint, queryHeaders, publicKey, databaseType, customerId } = client;
112
+ const { queryEndpoint, queryHeaders, publicKey, customerId } = client;
86
113
  let customFieldsByTableUnique = [];
87
114
  let getCustomFields = true;
88
115
  if (!customerId || customerId !== '*') {
@@ -112,13 +139,15 @@ export const getSchemaInfoWithCustomFields = async (client, caller = 'se') => {
112
139
  : true,
113
140
  orgId: client.customerId || '*',
114
141
  customFieldsByTable: customFieldsByTableUnique,
115
- gatherSchemaData: true,
142
+ gatherSchemaData: '665610862cf7a3000be66453' === publicKey ? true : false,
116
143
  },
117
144
  }),
118
145
  });
119
146
  const result = await response.json();
147
+ const parsedData = parseResponse(result);
148
+ triggerSoftUpdate(client, parsedData);
120
149
  return {
121
- schemaData: parseResponse(result),
150
+ schemaData: parsedData,
122
151
  customFieldsByTable: customFieldsByTableUnique,
123
152
  };
124
153
  };
@@ -4,7 +4,7 @@ export type StyleProps = {
4
4
  className: string;
5
5
  } | {
6
6
  style: CSSProperties;
7
- } | {};
7
+ } | NonNullable<unknown>;
8
8
  /**
9
9
  * Converts the given styles to a props object that can be passed directly into
10
10
  * a jsx/tsx component. Converts to className if styles is a string, otherwise
@@ -1 +1 @@
1
- {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../src/utils/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAEtC,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,aAAa,GAAG,SAAS,CAAC;AAC5D,MAAM,MAAM,UAAU,GAAG;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,aAAa,CAAA;CAAE,GAAG,EAAE,CAAC;AAE/E;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAO3D"}
1
+ {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../src/utils/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAEtC,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,aAAa,GAAG,SAAS,CAAC;AAC5D,MAAM,MAAM,UAAU,GAClB;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,GACrB;IAAE,KAAK,EAAE,aAAa,CAAA;CAAE,GACxB,WAAW,CAAC,OAAO,CAAC,CAAC;AAEzB;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAO3D"}