@quillsql/react 2.14.13 → 2.14.14

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 (241) hide show
  1. package/dist/cjs/Chart.d.ts.map +1 -1
  2. package/dist/cjs/Chart.js +12 -0
  3. package/dist/cjs/ChartBuilder.d.ts +3 -2
  4. package/dist/cjs/ChartBuilder.d.ts.map +1 -1
  5. package/dist/cjs/ChartBuilder.js +105 -16
  6. package/dist/cjs/ChartEditor.d.ts.map +1 -1
  7. package/dist/cjs/ChartEditor.js +2 -0
  8. package/dist/cjs/Context.d.ts +6 -2
  9. package/dist/cjs/Context.d.ts.map +1 -1
  10. package/dist/cjs/Context.js +163 -35
  11. package/dist/cjs/Dashboard.d.ts.map +1 -1
  12. package/dist/cjs/Dashboard.js +93 -16
  13. package/dist/cjs/QuillProvider.d.ts +40 -1
  14. package/dist/cjs/QuillProvider.d.ts.map +1 -1
  15. package/dist/cjs/QuillProvider.js +2 -2
  16. package/dist/cjs/ReportBuilder.d.ts +4 -1
  17. package/dist/cjs/ReportBuilder.d.ts.map +1 -1
  18. package/dist/cjs/ReportBuilder.js +103 -1262
  19. package/dist/cjs/SQLEditor.d.ts.map +1 -1
  20. package/dist/cjs/SQLEditor.js +50 -6
  21. package/dist/cjs/Table.d.ts.map +1 -1
  22. package/dist/cjs/Table.js +12 -0
  23. package/dist/cjs/components/Chart/BarChart.d.ts.map +1 -1
  24. package/dist/cjs/components/Chart/BarChart.js +14 -9
  25. package/dist/cjs/components/Chart/CustomBar.d.ts +18 -0
  26. package/dist/cjs/components/Chart/CustomBar.d.ts.map +1 -0
  27. package/dist/cjs/components/Chart/CustomBar.js +70 -0
  28. package/dist/cjs/components/Chart/InternalChart.d.ts.map +1 -1
  29. package/dist/cjs/components/Chart/InternalChart.js +24 -1
  30. package/dist/cjs/components/Dashboard/DashboardTemplate.d.ts.map +1 -1
  31. package/dist/cjs/components/Dashboard/DashboardTemplate.js +2 -1
  32. package/dist/cjs/components/Dashboard/DataLoader.d.ts.map +1 -1
  33. package/dist/cjs/components/Dashboard/DataLoader.js +73 -2
  34. package/dist/cjs/components/Dashboard/util.d.ts +2 -1
  35. package/dist/cjs/components/Dashboard/util.d.ts.map +1 -1
  36. package/dist/cjs/components/Dashboard/util.js +12 -1
  37. package/dist/cjs/components/QuillTable.d.ts +2 -1
  38. package/dist/cjs/components/QuillTable.d.ts.map +1 -1
  39. package/dist/cjs/components/QuillTable.js +2 -2
  40. package/dist/cjs/components/ReportBuilder/AddColumnModal.d.ts.map +1 -1
  41. package/dist/cjs/components/ReportBuilder/AddColumnModal.js +7 -1
  42. package/dist/cjs/components/ReportBuilder/ColumnComponent.d.ts +48 -0
  43. package/dist/cjs/components/ReportBuilder/ColumnComponent.d.ts.map +1 -0
  44. package/dist/cjs/components/ReportBuilder/ColumnComponent.js +46 -0
  45. package/dist/cjs/components/ReportBuilder/FilterComponent.d.ts +65 -0
  46. package/dist/cjs/components/ReportBuilder/FilterComponent.d.ts.map +1 -0
  47. package/dist/cjs/components/ReportBuilder/FilterComponent.js +51 -0
  48. package/dist/cjs/components/ReportBuilder/LimitComponent.d.ts +42 -0
  49. package/dist/cjs/components/ReportBuilder/LimitComponent.d.ts.map +1 -0
  50. package/dist/cjs/components/ReportBuilder/LimitComponent.js +50 -0
  51. package/dist/cjs/components/ReportBuilder/PivotComponent.d.ts +66 -0
  52. package/dist/cjs/components/ReportBuilder/PivotComponent.d.ts.map +1 -0
  53. package/dist/cjs/components/ReportBuilder/PivotComponent.js +47 -0
  54. package/dist/cjs/components/ReportBuilder/SaveReport.d.ts +162 -0
  55. package/dist/cjs/components/ReportBuilder/SaveReport.d.ts.map +1 -0
  56. package/dist/cjs/components/ReportBuilder/SaveReport.js +31 -0
  57. package/dist/cjs/components/ReportBuilder/SortComponent.d.ts +42 -0
  58. package/dist/cjs/components/ReportBuilder/SortComponent.d.ts.map +1 -0
  59. package/dist/cjs/components/ReportBuilder/SortComponent.js +50 -0
  60. package/dist/cjs/components/ReportBuilder/TableComponent.d.ts +28 -0
  61. package/dist/cjs/components/ReportBuilder/TableComponent.d.ts.map +1 -0
  62. package/dist/cjs/components/ReportBuilder/TableComponent.js +24 -0
  63. package/dist/cjs/components/ReportBuilder/ui.d.ts.map +1 -1
  64. package/dist/cjs/components/ReportBuilder/ui.js +3 -1
  65. package/dist/cjs/components/UiComponents.d.ts +5 -2
  66. package/dist/cjs/components/UiComponents.d.ts.map +1 -1
  67. package/dist/cjs/components/UiComponents.js +6 -5
  68. package/dist/cjs/hooks/useAskQuill.d.ts.map +1 -1
  69. package/dist/cjs/hooks/useAskQuill.js +38 -0
  70. package/dist/cjs/hooks/useDashboard.d.ts +3 -1
  71. package/dist/cjs/hooks/useDashboard.d.ts.map +1 -1
  72. package/dist/cjs/hooks/useDashboard.js +91 -6
  73. package/dist/cjs/hooks/useExport.d.ts.map +1 -1
  74. package/dist/cjs/hooks/useExport.js +17 -9
  75. package/dist/cjs/hooks/useLongLoading.d.ts +13 -0
  76. package/dist/cjs/hooks/useLongLoading.d.ts.map +1 -0
  77. package/dist/cjs/hooks/useLongLoading.js +67 -0
  78. package/dist/cjs/hooks/useQuill.d.ts.map +1 -1
  79. package/dist/cjs/hooks/useQuill.js +25 -1
  80. package/dist/cjs/hooks/useReportBuilder.d.ts +178 -0
  81. package/dist/cjs/hooks/useReportBuilder.d.ts.map +1 -0
  82. package/dist/cjs/hooks/useReportBuilder.js +1476 -0
  83. package/dist/cjs/hooks/useVirtualTables.d.ts.map +1 -1
  84. package/dist/cjs/hooks/useVirtualTables.js +27 -2
  85. package/dist/cjs/index.d.ts +11 -0
  86. package/dist/cjs/index.d.ts.map +1 -1
  87. package/dist/cjs/index.js +17 -1
  88. package/dist/cjs/internals/ReportBuilder/PivotForm.d.ts +14 -1
  89. package/dist/cjs/internals/ReportBuilder/PivotForm.d.ts.map +1 -1
  90. package/dist/cjs/internals/ReportBuilder/PivotForm.js +86 -3
  91. package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts +19 -2
  92. package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
  93. package/dist/cjs/internals/ReportBuilder/PivotModal.js +421 -141
  94. package/dist/cjs/models/Client.d.ts +6 -2
  95. package/dist/cjs/models/Client.d.ts.map +1 -1
  96. package/dist/cjs/utils/astProcessing.d.ts +4 -2
  97. package/dist/cjs/utils/astProcessing.d.ts.map +1 -1
  98. package/dist/cjs/utils/astProcessing.js +25 -2
  99. package/dist/cjs/utils/client.d.ts +2 -1
  100. package/dist/cjs/utils/client.d.ts.map +1 -1
  101. package/dist/cjs/utils/client.js +13 -2
  102. package/dist/cjs/utils/dashboard.d.ts +3 -1
  103. package/dist/cjs/utils/dashboard.d.ts.map +1 -1
  104. package/dist/cjs/utils/dashboard.js +44 -3
  105. package/dist/cjs/utils/filterProcessing.d.ts +2 -1
  106. package/dist/cjs/utils/filterProcessing.d.ts.map +1 -1
  107. package/dist/cjs/utils/filterProcessing.js +12 -1
  108. package/dist/cjs/utils/pivotConstructor.d.ts.map +1 -1
  109. package/dist/cjs/utils/pivotConstructor.js +11 -9
  110. package/dist/cjs/utils/report.d.ts +11 -5
  111. package/dist/cjs/utils/report.d.ts.map +1 -1
  112. package/dist/cjs/utils/report.js +55 -8
  113. package/dist/cjs/utils/reportBuilder.d.ts.map +1 -1
  114. package/dist/cjs/utils/reportBuilder.js +5 -2
  115. package/dist/cjs/utils/schema.d.ts +5 -2
  116. package/dist/cjs/utils/schema.d.ts.map +1 -1
  117. package/dist/cjs/utils/schema.js +14 -2
  118. package/dist/cjs/utils/tableProcessing.d.ts +17 -10
  119. package/dist/cjs/utils/tableProcessing.d.ts.map +1 -1
  120. package/dist/cjs/utils/tableProcessing.js +99 -17
  121. package/dist/esm/Chart.d.ts.map +1 -1
  122. package/dist/esm/Chart.js +13 -1
  123. package/dist/esm/ChartBuilder.d.ts +3 -2
  124. package/dist/esm/ChartBuilder.d.ts.map +1 -1
  125. package/dist/esm/ChartBuilder.js +107 -18
  126. package/dist/esm/ChartEditor.d.ts.map +1 -1
  127. package/dist/esm/ChartEditor.js +3 -1
  128. package/dist/esm/Context.d.ts +6 -2
  129. package/dist/esm/Context.d.ts.map +1 -1
  130. package/dist/esm/Context.js +162 -34
  131. package/dist/esm/Dashboard.d.ts.map +1 -1
  132. package/dist/esm/Dashboard.js +94 -17
  133. package/dist/esm/QuillProvider.d.ts +40 -1
  134. package/dist/esm/QuillProvider.d.ts.map +1 -1
  135. package/dist/esm/QuillProvider.js +2 -2
  136. package/dist/esm/ReportBuilder.d.ts +4 -1
  137. package/dist/esm/ReportBuilder.d.ts.map +1 -1
  138. package/dist/esm/ReportBuilder.js +106 -1262
  139. package/dist/esm/SQLEditor.d.ts.map +1 -1
  140. package/dist/esm/SQLEditor.js +51 -7
  141. package/dist/esm/Table.d.ts.map +1 -1
  142. package/dist/esm/Table.js +13 -1
  143. package/dist/esm/components/Chart/BarChart.d.ts.map +1 -1
  144. package/dist/esm/components/Chart/BarChart.js +15 -10
  145. package/dist/esm/components/Chart/CustomBar.d.ts +18 -0
  146. package/dist/esm/components/Chart/CustomBar.d.ts.map +1 -0
  147. package/dist/esm/components/Chart/CustomBar.js +68 -0
  148. package/dist/esm/components/Chart/InternalChart.d.ts.map +1 -1
  149. package/dist/esm/components/Chart/InternalChart.js +25 -2
  150. package/dist/esm/components/Dashboard/DashboardTemplate.d.ts.map +1 -1
  151. package/dist/esm/components/Dashboard/DashboardTemplate.js +3 -2
  152. package/dist/esm/components/Dashboard/DataLoader.d.ts.map +1 -1
  153. package/dist/esm/components/Dashboard/DataLoader.js +74 -3
  154. package/dist/esm/components/Dashboard/util.d.ts +2 -1
  155. package/dist/esm/components/Dashboard/util.d.ts.map +1 -1
  156. package/dist/esm/components/Dashboard/util.js +12 -1
  157. package/dist/esm/components/QuillTable.d.ts +2 -1
  158. package/dist/esm/components/QuillTable.d.ts.map +1 -1
  159. package/dist/esm/components/QuillTable.js +2 -2
  160. package/dist/esm/components/ReportBuilder/AddColumnModal.d.ts.map +1 -1
  161. package/dist/esm/components/ReportBuilder/AddColumnModal.js +7 -1
  162. package/dist/esm/components/ReportBuilder/ColumnComponent.d.ts +48 -0
  163. package/dist/esm/components/ReportBuilder/ColumnComponent.d.ts.map +1 -0
  164. package/dist/esm/components/ReportBuilder/ColumnComponent.js +39 -0
  165. package/dist/esm/components/ReportBuilder/FilterComponent.d.ts +65 -0
  166. package/dist/esm/components/ReportBuilder/FilterComponent.d.ts.map +1 -0
  167. package/dist/esm/components/ReportBuilder/FilterComponent.js +44 -0
  168. package/dist/esm/components/ReportBuilder/LimitComponent.d.ts +42 -0
  169. package/dist/esm/components/ReportBuilder/LimitComponent.d.ts.map +1 -0
  170. package/dist/esm/components/ReportBuilder/LimitComponent.js +46 -0
  171. package/dist/esm/components/ReportBuilder/PivotComponent.d.ts +66 -0
  172. package/dist/esm/components/ReportBuilder/PivotComponent.d.ts.map +1 -0
  173. package/dist/esm/components/ReportBuilder/PivotComponent.js +40 -0
  174. package/dist/esm/components/ReportBuilder/SaveReport.d.ts +162 -0
  175. package/dist/esm/components/ReportBuilder/SaveReport.d.ts.map +1 -0
  176. package/dist/esm/components/ReportBuilder/SaveReport.js +31 -0
  177. package/dist/esm/components/ReportBuilder/SortComponent.d.ts +42 -0
  178. package/dist/esm/components/ReportBuilder/SortComponent.d.ts.map +1 -0
  179. package/dist/esm/components/ReportBuilder/SortComponent.js +46 -0
  180. package/dist/esm/components/ReportBuilder/TableComponent.d.ts +28 -0
  181. package/dist/esm/components/ReportBuilder/TableComponent.d.ts.map +1 -0
  182. package/dist/esm/components/ReportBuilder/TableComponent.js +20 -0
  183. package/dist/esm/components/ReportBuilder/ui.d.ts.map +1 -1
  184. package/dist/esm/components/ReportBuilder/ui.js +4 -2
  185. package/dist/esm/components/UiComponents.d.ts +5 -2
  186. package/dist/esm/components/UiComponents.d.ts.map +1 -1
  187. package/dist/esm/components/UiComponents.js +6 -5
  188. package/dist/esm/hooks/useAskQuill.d.ts.map +1 -1
  189. package/dist/esm/hooks/useAskQuill.js +39 -1
  190. package/dist/esm/hooks/useDashboard.d.ts +3 -1
  191. package/dist/esm/hooks/useDashboard.d.ts.map +1 -1
  192. package/dist/esm/hooks/useDashboard.js +92 -7
  193. package/dist/esm/hooks/useExport.d.ts.map +1 -1
  194. package/dist/esm/hooks/useExport.js +18 -10
  195. package/dist/esm/hooks/useLongLoading.d.ts +13 -0
  196. package/dist/esm/hooks/useLongLoading.d.ts.map +1 -0
  197. package/dist/esm/hooks/useLongLoading.js +64 -0
  198. package/dist/esm/hooks/useQuill.d.ts.map +1 -1
  199. package/dist/esm/hooks/useQuill.js +26 -2
  200. package/dist/esm/hooks/useReportBuilder.d.ts +178 -0
  201. package/dist/esm/hooks/useReportBuilder.d.ts.map +1 -0
  202. package/dist/esm/hooks/useReportBuilder.js +1471 -0
  203. package/dist/esm/hooks/useVirtualTables.d.ts.map +1 -1
  204. package/dist/esm/hooks/useVirtualTables.js +28 -3
  205. package/dist/esm/index.d.ts +11 -0
  206. package/dist/esm/index.d.ts.map +1 -1
  207. package/dist/esm/index.js +8 -0
  208. package/dist/esm/internals/ReportBuilder/PivotForm.d.ts +14 -1
  209. package/dist/esm/internals/ReportBuilder/PivotForm.d.ts.map +1 -1
  210. package/dist/esm/internals/ReportBuilder/PivotForm.js +87 -4
  211. package/dist/esm/internals/ReportBuilder/PivotModal.d.ts +19 -2
  212. package/dist/esm/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
  213. package/dist/esm/internals/ReportBuilder/PivotModal.js +423 -143
  214. package/dist/esm/models/Client.d.ts +6 -2
  215. package/dist/esm/models/Client.d.ts.map +1 -1
  216. package/dist/esm/utils/astProcessing.d.ts +4 -2
  217. package/dist/esm/utils/astProcessing.d.ts.map +1 -1
  218. package/dist/esm/utils/astProcessing.js +25 -2
  219. package/dist/esm/utils/client.d.ts +2 -1
  220. package/dist/esm/utils/client.d.ts.map +1 -1
  221. package/dist/esm/utils/client.js +13 -2
  222. package/dist/esm/utils/dashboard.d.ts +3 -1
  223. package/dist/esm/utils/dashboard.d.ts.map +1 -1
  224. package/dist/esm/utils/dashboard.js +44 -3
  225. package/dist/esm/utils/filterProcessing.d.ts +2 -1
  226. package/dist/esm/utils/filterProcessing.d.ts.map +1 -1
  227. package/dist/esm/utils/filterProcessing.js +12 -1
  228. package/dist/esm/utils/pivotConstructor.d.ts.map +1 -1
  229. package/dist/esm/utils/pivotConstructor.js +11 -9
  230. package/dist/esm/utils/report.d.ts +11 -5
  231. package/dist/esm/utils/report.d.ts.map +1 -1
  232. package/dist/esm/utils/report.js +55 -8
  233. package/dist/esm/utils/reportBuilder.d.ts.map +1 -1
  234. package/dist/esm/utils/reportBuilder.js +5 -2
  235. package/dist/esm/utils/schema.d.ts +5 -2
  236. package/dist/esm/utils/schema.d.ts.map +1 -1
  237. package/dist/esm/utils/schema.js +14 -2
  238. package/dist/esm/utils/tableProcessing.d.ts +17 -10
  239. package/dist/esm/utils/tableProcessing.d.ts.map +1 -1
  240. package/dist/esm/utils/tableProcessing.js +99 -17
  241. package/package.json +1 -1
@@ -297,7 +297,7 @@ exports.MemoizedText = MemoizedText;
297
297
  /**
298
298
  * The one, true Quill popover component.
299
299
  */
300
- const MemoizedPopover = ({ isOpen, setIsOpen, triggerLabel, popoverTitle = undefined, popoverChildren, containerStyle, disabled, ignoredRefs, }) => {
300
+ const MemoizedPopover = ({ isOpen, setIsOpen, triggerLabel, popoverTitle = undefined, popoverChildren, containerStyle, disabled, ignoredRefs, horizontalPadding = 20, titlePaddingLeft = 0, }) => {
301
301
  const [theme] = (0, react_1.useContext)(Context_1.ThemeContext);
302
302
  const [rightAlignment, setRightAlignment] = (0, react_1.useState)('auto');
303
303
  const modalRef = (0, react_1.useRef)(null);
@@ -357,7 +357,7 @@ const MemoizedPopover = ({ isOpen, setIsOpen, triggerLabel, popoverTitle = undef
357
357
  zIndex: 999,
358
358
  // top: 12,
359
359
  borderRadius: 6,
360
- padding: 20,
360
+ padding: `20px ${horizontalPadding}px 20px ${horizontalPadding}px`,
361
361
  right: rightAlignment,
362
362
  }, children: [popoverTitle && ((0, jsx_runtime_1.jsx)("h1", { style: {
363
363
  fontWeight: '600',
@@ -367,6 +367,7 @@ const MemoizedPopover = ({ isOpen, setIsOpen, triggerLabel, popoverTitle = undef
367
367
  marginBottom: 5,
368
368
  color: theme?.primaryTextColor,
369
369
  fontFamily: theme?.fontFamily,
370
+ paddingLeft: titlePaddingLeft,
370
371
  }, children: popoverTitle })), popoverChildren] }) }))] }));
371
372
  };
372
373
  exports.MemoizedPopover = MemoizedPopover;
@@ -495,7 +496,7 @@ const QuillTableReportBuilderComponent = ({ rows, columns, isLoading = false, ro
495
496
  setCurrentPage && setCurrentPage(0);
496
497
  setPage(0);
497
498
  onSortChange && onSortChange(sort);
498
- }, sort: sort, currentPage: currentPage ?? page, isLoading: isLoading, containerStyle: containerStyle, disableSort: disableSort }));
499
+ }, sort: sort, currentPage: currentPage ?? page, isLoading: isLoading, containerStyle: containerStyle, disableSort: disableSort, overrideInMemortSort: true }));
499
500
  };
500
501
  exports.QuillTableReportBuilderComponent = QuillTableReportBuilderComponent;
501
502
  const QuillTableComponent = ({ rows, columns, isLoading = false, rowCount, rowCountIsLoading, onPageChange, onSortChange, currentPage, hideLabels, }) => {
@@ -762,7 +763,7 @@ const QuillLoadingComponent = () => {
762
763
  , 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" }) })] })] }));
763
764
  };
764
765
  exports.QuillLoadingComponent = QuillLoadingComponent;
765
- const OverflowContainer = ({ children }) => {
766
+ const OverflowContainer = ({ children, style, }) => {
766
767
  const containerRef = (0, react_1.useRef)(null);
767
768
  const [showTopShadow, setShowTopShadow] = (0, react_1.useState)(false);
768
769
  const [showBottomShadow, setShowBottomShadow] = (0, react_1.useState)(false);
@@ -797,7 +798,7 @@ const OverflowContainer = ({ children }) => {
797
798
  const containerStyle = {
798
799
  position: 'relative',
799
800
  overflowY: 'auto',
800
- // height: '100%',
801
+ ...style,
801
802
  };
802
803
  const shadowStyle = {
803
804
  position: 'sticky',
@@ -1 +1 @@
1
- {"version":3,"file":"useAskQuill.d.ts","sourceRoot":"","sources":["../../../src/hooks/useAskQuill.tsx"],"names":[],"mappings":"AAYA,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAEL,cAAc,IAAI,UAAU,EAE7B,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAG7C,UAAU,MAAM;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,SAAS,CAAC;CACtB;AA6BD,eAAO,MAAM,WAAW,kBACP,MAAM,KACpB;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,GAAG,EAAE,CAAC;QACZ,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;QACpB,cAAc,EAAE,MAAM,EAAE,CAAC;QACzB,iBAAiB,EAAE,MAAM,EAAE,CAAC;QAC5B,gBAAgB,EAAE,MAAM,EAAE,CAAC;QAC3B,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;KAE/B,CAAC;IACF,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,GAAG,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,GAAG,SAAS,CAAC,CAAC;IACjD,aAAa,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACtC,kBAAkB,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI,CAAC;CAmNtD,CAAC"}
1
+ {"version":3,"file":"useAskQuill.d.ts","sourceRoot":"","sources":["../../../src/hooks/useAskQuill.tsx"],"names":[],"mappings":"AAaA,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAEL,cAAc,IAAI,UAAU,EAE7B,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAG7C,UAAU,MAAM;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,SAAS,CAAC;CACtB;AA6BD,eAAO,MAAM,WAAW,kBACP,MAAM,KACpB;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,GAAG,EAAE,CAAC;QACZ,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;QACpB,cAAc,EAAE,MAAM,EAAE,CAAC;QACzB,iBAAiB,EAAE,MAAM,EAAE,CAAC;QAC5B,gBAAgB,EAAE,MAAM,EAAE,CAAC;QAC3B,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;KAE/B,CAAC;IACF,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,GAAG,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,GAAG,SAAS,CAAC,CAAC;IACjD,aAAa,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACtC,kBAAkB,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI,CAAC;CAyPtD,CAAC"}
@@ -40,6 +40,7 @@ const useAskQuill = (dashboardName) => {
40
40
  const [schemaData] = (0, react_1.useContext)(Context_1.SchemaDataContext);
41
41
  const { tenants } = (0, react_1.useContext)(Context_1.TenantContext);
42
42
  const { getToken } = (0, react_1.useContext)(Context_1.FetchContext);
43
+ const { eventTracking } = (0, react_1.useContext)(Context_1.EventTrackingContext);
43
44
  const [astInfo, setAstInfo] = (0, react_1.useState)(undefined);
44
45
  const [data, setData] = (0, react_1.useState)({
45
46
  rows: [],
@@ -76,6 +77,7 @@ const useAskQuill = (dashboardName) => {
76
77
  dashboardName,
77
78
  tenants,
78
79
  getToken,
80
+ eventTracking,
79
81
  });
80
82
  if (astInfo.error) {
81
83
  throw new Error(astInfo.error);
@@ -88,6 +90,7 @@ const useAskQuill = (dashboardName) => {
88
90
  pivot: astInfo.pivot,
89
91
  dashboardName,
90
92
  getToken,
93
+ eventTracking,
91
94
  });
92
95
  if (!reportBuilderInfo) {
93
96
  throw new Error('Error fetching report');
@@ -105,6 +108,17 @@ const useAskQuill = (dashboardName) => {
105
108
  setError(err.message);
106
109
  setLoading(false);
107
110
  }
111
+ eventTracking?.logError?.({
112
+ type: 'bug', // TODO: determine type
113
+ severity: 'high',
114
+ message: 'Error fetching ask quill',
115
+ errorMessage: err.message,
116
+ errorStack: err.stack,
117
+ errorData: {
118
+ caller: 'useAskQuill',
119
+ function: 'askHelper',
120
+ },
121
+ });
108
122
  return;
109
123
  }
110
124
  const convertedColumns = convertColumnInternalToAskQuillColumn(reportBuilderInfo?.pivotData?.columns || reportBuilderInfo?.columns || []);
@@ -138,6 +152,7 @@ const useAskQuill = (dashboardName) => {
138
152
  pivot: newPivot,
139
153
  dashboardName,
140
154
  getToken,
155
+ eventTracking,
141
156
  });
142
157
  setLoading(false);
143
158
  if (!reportBuilderInfo) {
@@ -145,6 +160,17 @@ const useAskQuill = (dashboardName) => {
145
160
  }
146
161
  }
147
162
  catch (err) {
163
+ eventTracking?.logError?.({
164
+ type: 'bug', // TODO: determine type
165
+ severity: 'high',
166
+ message: 'Error fetching ask quill',
167
+ errorMessage: err.message,
168
+ errorStack: err.stack,
169
+ errorData: {
170
+ caller: 'useAskQuill',
171
+ function: 'onChangePivot',
172
+ },
173
+ });
148
174
  if (err instanceof Error) {
149
175
  setError(err.message);
150
176
  setLoading(false);
@@ -182,10 +208,22 @@ const useAskQuill = (dashboardName) => {
182
208
  pivot: data.pivot || undefined,
183
209
  dashboardName,
184
210
  getToken,
211
+ eventTracking,
185
212
  });
186
213
  setLoading(false);
187
214
  }
188
215
  catch (err) {
216
+ eventTracking?.logError?.({
217
+ type: 'bug', // TODO: determine type
218
+ severity: 'high',
219
+ message: 'Error fetching ask quill',
220
+ errorMessage: err.message,
221
+ errorStack: err.stack,
222
+ errorData: {
223
+ caller: 'useAskQuill',
224
+ function: 'onChangeFilterTree',
225
+ },
226
+ });
189
227
  if (err instanceof Error) {
190
228
  setError(err.message);
191
229
  setLoading(false);
@@ -75,7 +75,9 @@ export declare const useDashboard: (dashboardName: string) => {
75
75
  };
76
76
  } | Filter>) => void;
77
77
  };
78
- export declare const useDashboardReport: (reportId: string) => {
78
+ export declare const useDashboardReport: (reportId: string, config?: {
79
+ initialFilters?: Filter[];
80
+ }) => {
79
81
  report: QuillReport | null;
80
82
  loading: boolean;
81
83
  applyFilters: (filters: Filter[]) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"useDashboard.d.ts","sourceRoot":"","sources":["../../../src/hooks/useDashboard.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,EAGL,uBAAuB,EAGvB,MAAM,EACN,cAAc,EAGd,eAAe,EAGhB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAMtD,eAAO,MAAM,oBAAoB,kBAChB,MAAM,GAAG,IAAI,kBACZ,cAAc,EAAE;;;;2CA0Mc,MAAM;qCAtK1B,MAAM,4CAEf;QACb,MAAM,EAAE,WAAW,GAAG;YAAE,EAAE,EAAE,MAAM,CAAA;SAAE,CAAC;QACrC,MAAM,EAAE,QAAQ,GAAG,QAAQ,CAAC;KAC7B,oBACiB;QAChB,OAAO,EAAE,uBAAuB,EAAE,CAAC;QACnC,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,cAAc,CAAC,EAAE,OAAO,CAAC;KAC1B;oCAmFa;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,EAAE,CAAA;KAAE,EAAE;CAwF3E,CAAC;AAEF,eAAO,MAAM,mBAAmB,mBAAoB,MAAM;;;;yBAK5B,OAAO,CAAC,mBAAmB,CAAC;sBAiB/B,mBAAmB;CAoB7C,CAAC;AAEF,eAAO,MAAM,aAAa;;;;CAqBzB,CAAC;AAEF,eAAO,MAAM,aAAa;;;;;;;;;;;;;;uEAsCrB;QACD,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,uBAAuB,EAAE,CAAC;QACnC,eAAe,EAAE,MAAM,EAAE,CAAC;QAC1B,UAAU,CAAC,EAAE,uBAAuB,CAAC;KACtC;4BAqDO,MAAM,gEAOT;QACD,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,uBAAuB,EAAE,CAAC;QACnC,UAAU,CAAC,EAAE,uBAAuB,CAAC;QACrC,aAAa,CAAC,EAAE,cAAc,EAAE,CAAC;QACjC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;KACvB;4BAyOkC,MAAM;CAwB5C,CAAC;AAGF,eAAO,MAAM,YAAY,kBACR,MAAM,KAEpB;IACD,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC,GAAG,IAAI,CAAC;IAC/C,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,YAAY,EAAE,CACZ,OAAO,EAAE,KAAK,CACV;QACE,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG;YAAE,SAAS,CAAC,EAAE,IAAI,CAAC;YAAC,OAAO,CAAC,EAAE,IAAI,CAAA;SAAE,CAAC;KACjE,GACD,MAAM,CACT,KACE,IAAI,CAAC;CAiOX,CAAC;AAGF,eAAO,MAAM,kBAAkB,aACnB,MAAM,KACf;IACD,MAAM,EAAE,WAAW,GAAG,IAAI,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAC1C,YAAY,EAAE,MAAM,IAAI,CAAC;CAiI1B,CAAC"}
1
+ {"version":3,"file":"useDashboard.d.ts","sourceRoot":"","sources":["../../../src/hooks/useDashboard.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,EAGL,uBAAuB,EAGvB,MAAM,EACN,cAAc,EAGd,eAAe,EAGhB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAMtD,eAAO,MAAM,oBAAoB,kBAChB,MAAM,GAAG,IAAI,kBACZ,cAAc,EAAE;;;;2CAoNc,MAAM;qCAjL1B,MAAM,4CAEf;QACb,MAAM,EAAE,WAAW,GAAG;YAAE,EAAE,EAAE,MAAM,CAAA;SAAE,CAAC;QACrC,MAAM,EAAE,QAAQ,GAAG,QAAQ,CAAC;KAC7B,oBACiB;QAChB,OAAO,EAAE,uBAAuB,EAAE,CAAC;QACnC,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,cAAc,CAAC,EAAE,OAAO,CAAC;KAC1B;oCAmFa;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,EAAE,CAAA;KAAE,EAAE;CAmG3E,CAAC;AAEF,eAAO,MAAM,mBAAmB,mBAAoB,MAAM;;;;yBAK5B,OAAO,CAAC,mBAAmB,CAAC;sBAiB/B,mBAAmB;CAoB7C,CAAC;AAEF,eAAO,MAAM,aAAa;;;;CAqBzB,CAAC;AAEF,eAAO,MAAM,aAAa;;;;;;;;;;;;;;uEAuCrB;QACD,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,uBAAuB,EAAE,CAAC;QACnC,eAAe,EAAE,MAAM,EAAE,CAAC;QAC1B,UAAU,CAAC,EAAE,uBAAuB,CAAC;KACtC;4BA2EO,MAAM,gEAOT;QACD,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,uBAAuB,EAAE,CAAC;QACnC,UAAU,CAAC,EAAE,uBAAuB,CAAC;QACrC,aAAa,CAAC,EAAE,cAAc,EAAE,CAAC;QACjC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;KACvB;4BAiQkC,MAAM;CAwB5C,CAAC;AAGF,eAAO,MAAM,YAAY,kBACR,MAAM,KAEpB;IACD,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC,GAAG,IAAI,CAAC;IAC/C,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,YAAY,EAAE,CACZ,OAAO,EAAE,KAAK,CACV;QACE,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG;YAAE,SAAS,CAAC,EAAE,IAAI,CAAC;YAAC,OAAO,CAAC,EAAE,IAAI,CAAA;SAAE,CAAC;KACjE,GACD,MAAM,CACT,KACE,IAAI,CAAC;CA2PX,CAAC;AAGF,eAAO,MAAM,kBAAkB,aACnB,MAAM,WACP;IACP,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B,KACA;IACD,MAAM,EAAE,WAAW,GAAG,IAAI,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAC1C,YAAY,EAAE,MAAM,IAAI,CAAC;CA+I1B,CAAC"}
@@ -17,13 +17,12 @@ const useDashboardInternal = (dashboardName, customFilters) => {
17
17
  // const [error, setError] = useState<any>(null);
18
18
  const [client, isClientLoading] = (0, react_1.useContext)(Context_1.ClientContext);
19
19
  const { quillFetchWithToken } = (0, react_1.useContext)(Context_1.FetchContext);
20
+ const { eventTracking } = (0, react_1.useContext)(Context_1.EventTrackingContext);
20
21
  const loading = (0, react_1.useMemo)(() => {
21
22
  return (!dashboardName ||
22
23
  isClientLoading ||
23
24
  isDashboardsLoading ||
24
- dashboardConfig[dashboardName]?.loading ||
25
- (dashboardConfig[dashboardName] &&
26
- !dashboardConfig[dashboardName]?.config.sections));
25
+ dashboardConfig[dashboardName]?.loading);
27
26
  }, [isClientLoading, dashboardConfig, dashboardName, isDashboardsLoading]);
28
27
  const populatedDashboardFilters = (0, react_1.useMemo)(() => {
29
28
  return dashboardName && dashboardFilters[dashboardName] !== undefined
@@ -143,6 +142,17 @@ const useDashboardInternal = (dashboardName, customFilters) => {
143
142
  }
144
143
  catch (e) {
145
144
  console.error(e);
145
+ eventTracking?.logError?.({
146
+ type: 'bug', // TODO: determine type
147
+ severity: 'high',
148
+ message: 'Error setting section order',
149
+ errorMessage: e.message,
150
+ errorStack: e.stack,
151
+ errorData: {
152
+ caller: 'useDashboard',
153
+ function: 'setSectionOrder',
154
+ },
155
+ });
146
156
  }
147
157
  }
148
158
  };
@@ -234,6 +244,7 @@ const useDashboards = () => {
234
244
  const { reportFiltersDispatch } = (0, react_1.useContext)(Context_1.ReportFiltersContext);
235
245
  const [client, isLoading] = (0, react_1.useContext)(Context_1.ClientContext);
236
246
  const { quillFetchWithToken } = (0, react_1.useContext)(Context_1.FetchContext);
247
+ const { eventTracking } = (0, react_1.useContext)(Context_1.EventTrackingContext);
237
248
  const dashboards = (0, react_1.useMemo)(() => {
238
249
  return Object.values(dashboardConfig)
239
250
  .map((dashboard) => {
@@ -283,6 +294,15 @@ const useDashboards = () => {
283
294
  task: 'edit-dashboard',
284
295
  metadata: body,
285
296
  });
297
+ eventTracking?.logEvent?.('create-dashboard', {
298
+ dashboardName: name,
299
+ });
300
+ if (filters.length > 0 || dateFilter) {
301
+ eventTracking?.logEvent?.('update-dashboard-filters', {
302
+ dashboardName: name,
303
+ numFilters: filters.length + (dateFilter ? 1 : 0),
304
+ });
305
+ }
286
306
  dashboardConfigDispatch({
287
307
  type: 'UPDATE_DASHBOARD',
288
308
  id: name,
@@ -297,6 +317,17 @@ const useDashboards = () => {
297
317
  }
298
318
  catch (e) {
299
319
  console.error(e);
320
+ eventTracking?.logError?.({
321
+ type: 'bug', // TODO: determine type
322
+ severity: 'high',
323
+ message: 'Error creating dashboard',
324
+ errorMessage: e.message,
325
+ errorStack: e.stack,
326
+ errorData: {
327
+ caller: 'useDashboards',
328
+ function: 'createDashboard',
329
+ },
330
+ });
300
331
  }
301
332
  };
302
333
  const updateDashboard = async (name, { newName, filters, dateFilter, customFilters, tenantKeys, }) => {
@@ -330,6 +361,16 @@ const useDashboards = () => {
330
361
  task: 'edit-dashboard',
331
362
  metadata: body,
332
363
  });
364
+ eventTracking?.logEvent?.('update-dashboard', {
365
+ dashboardName: updated.data.dashboard.name,
366
+ dashboardId: updated.data.dashboard.dashboardId,
367
+ });
368
+ if (filters.length > 0 || dateFilter) {
369
+ eventTracking?.logEvent?.('update-dashboard-filters', {
370
+ dashboardName: name,
371
+ numFilters: filters.length + (dateFilter ? 1 : 0),
372
+ });
373
+ }
333
374
  dashboardConfigDispatch({
334
375
  type: 'UPDATE_DASHBOARD',
335
376
  id: updated.data.dashboard.name,
@@ -481,6 +522,17 @@ const useDashboards = () => {
481
522
  }
482
523
  catch (e) {
483
524
  console.error(e);
525
+ eventTracking?.logError?.({
526
+ type: 'bug', // TODO: determine type
527
+ severity: 'high',
528
+ message: 'Error updating dashboard',
529
+ errorMessage: e.message,
530
+ errorStack: e.stack,
531
+ errorData: {
532
+ caller: 'useDashboards',
533
+ function: 'updateDashboard',
534
+ },
535
+ });
484
536
  }
485
537
  };
486
538
  const deleteDashboard = async (name) => {
@@ -520,6 +572,12 @@ const useDashboard = (dashboardName) => {
520
572
  const { tenants, flags } = (0, react_1.useContext)(Context_1.TenantContext);
521
573
  const { getToken } = (0, react_1.useContext)(Context_1.FetchContext);
522
574
  const { customReportFilters } = (0, react_1.useContext)(Context_1.ReportFiltersContext);
575
+ const { eventTracking } = (0, react_1.useContext)(Context_1.EventTrackingContext);
576
+ const customFiltersRef = (0, react_1.useRef)(customReportFilters);
577
+ // Keep ref updated with latest filters
578
+ (0, react_1.useEffect)(() => {
579
+ customFiltersRef.current = customReportFilters;
580
+ }, [customReportFilters]);
523
581
  // If useDashboard is being used before Dashboard Context is set, we need to
524
582
  // actively load the dashboard
525
583
  (0, react_1.useEffect)(() => {
@@ -642,6 +700,20 @@ const useDashboard = (dashboardName) => {
642
700
  const newDashboardFilters = applyDashboardFilters(dashboardFilters);
643
701
  fetchReports(newCustomFilters, newDashboardFilters);
644
702
  };
703
+ // In case useDashboardReport set initial custom filters
704
+ const waitForCustomFilters = async (reportId) => {
705
+ let attempts = 0;
706
+ const maxAttempts = 10; // Prevent infinite loops
707
+ while (attempts < maxAttempts) {
708
+ const filters = customFiltersRef.current[reportId];
709
+ if (filters && filters.length > 0) {
710
+ return filters;
711
+ }
712
+ await new Promise((resolve) => setTimeout(resolve, 100)); // Wait 100ms between checks
713
+ attempts++;
714
+ }
715
+ return [];
716
+ };
645
717
  const fetchReports = async (customFilters, dashboardFilters) => {
646
718
  if (!client || !sections)
647
719
  return;
@@ -652,7 +724,7 @@ const useDashboard = (dashboardName) => {
652
724
  id: reportId,
653
725
  data: true,
654
726
  });
655
- const customReportFiltersArray = customReportFilters[reportId] ?? [];
727
+ const customReportFiltersArray = await waitForCustomFilters(reportId);
656
728
  const { report, error } = await (0, report_1.fetchReport)({
657
729
  reportId,
658
730
  client,
@@ -662,6 +734,7 @@ const useDashboard = (dashboardName) => {
662
734
  .concat(customFilters)
663
735
  .concat(customReportFiltersArray),
664
736
  getToken,
737
+ eventTracking,
665
738
  });
666
739
  if (error) {
667
740
  console.error(error);
@@ -689,20 +762,31 @@ const useDashboard = (dashboardName) => {
689
762
  };
690
763
  exports.useDashboard = useDashboard;
691
764
  // useDashboard accompanying hook
692
- const useDashboardReport = (reportId) => {
765
+ const useDashboardReport = (reportId, config) => {
693
766
  const { reports, reportsLoadingState, reportsDispatch, reportsLoadingStateDispatch, } = (0, react_1.useContext)(Context_1.ReportsContext);
694
767
  const { dashboardFilters } = (0, react_1.useContext)(Context_1.DashboardFiltersContext);
695
768
  const { tenants, flags } = (0, react_1.useContext)(Context_1.TenantContext);
696
769
  const [client] = (0, react_1.useContext)(Context_1.ClientContext);
697
770
  const { getToken } = (0, react_1.useContext)(Context_1.FetchContext);
771
+ const { eventTracking } = (0, react_1.useContext)(Context_1.EventTrackingContext);
698
772
  const { customReportFiltersDispatch } = (0, react_1.useContext)(Context_1.ReportFiltersContext);
699
773
  const { dashboardCustomFilters } = (0, react_1.useContext)(Context_1.DashboardFiltersContext);
700
774
  const { data: dashboardData, dashboardFilters: dashboardFiltersInternal, reload: reloadDashboard, } = (0, exports.useDashboardInternal)(reports[reportId]?.dashboardName ?? null);
775
+ // Add initial custom filters to context
776
+ (0, react_1.useEffect)(() => {
777
+ if (config?.initialFilters) {
778
+ customReportFiltersDispatch({
779
+ type: 'ADD_CUSTOM_REPORT_FILTERS',
780
+ reportId,
781
+ data: config.initialFilters.map(Filter_1.convertCustomFilter),
782
+ });
783
+ }
784
+ }, []);
701
785
  const processedReport = (0, react_1.useMemo)(() => {
702
786
  if (!reports[reportId])
703
787
  return null;
704
788
  const dashboardName = reports[reportId].dashboardName;
705
- return (0, report_1.convertInternalReportToReport)((0, merge_1.mergeComparisonRange)(reports[reportId]), Object.values(dashboardFilters[dashboardName] ?? {}).map((f) => f.filter), 'useDashboardReport');
789
+ return (0, report_1.convertInternalReportToReport)((0, merge_1.mergeComparisonRange)(reports[reportId]), Object.values(dashboardFilters[dashboardName] ?? {}).map((f) => f.filter), eventTracking, 'useDashboardReport');
706
790
  }, [reports, reportId, dashboardFilters]);
707
791
  const setReportFilters = (filters) => {
708
792
  updateReport(filters);
@@ -733,6 +817,7 @@ const useDashboardReport = (reportId) => {
733
817
  flags,
734
818
  filters: requestFilters,
735
819
  getToken,
820
+ eventTracking,
736
821
  });
737
822
  if (error) {
738
823
  console.error(error);
@@ -1 +1 @@
1
- {"version":3,"file":"useExport.d.ts","sourceRoot":"","sources":["../../../src/hooks/useExport.tsx"],"names":[],"mappings":"AAaA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAkE/C,UAAU,eAAe;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,eAAO,MAAM,SAAS,cACT,MAAM,mEAMd;IACD,uBAAuB,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,GAAG,CAAC,OAAO,CAAC;IAChE,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,KACA;IACD,WAAW,EAAE,CAAC,eAAe,CAAC,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAClE,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,EAAE,CAAC,eAAe,CAAC,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAClE,YAAY,EAAE,OAAO,CAAC;CA2RvB,CAAC;AAEF,UAAU,aAAa;IACrB,MAAM,EAAE,WAAW,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;CAC5B"}
1
+ {"version":3,"file":"useExport.d.ts","sourceRoot":"","sources":["../../../src/hooks/useExport.tsx"],"names":[],"mappings":"AAcA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAqE/C,UAAU,eAAe;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,eAAO,MAAM,SAAS,cACT,MAAM,mEAMd;IACD,uBAAuB,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,GAAG,CAAC,OAAO,CAAC;IAChE,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,KACA;IACD,WAAW,EAAE,CAAC,eAAe,CAAC,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAClE,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,EAAE,CAAC,eAAe,CAAC,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAClE,YAAY,EAAE,OAAO,CAAC;CA+RvB,CAAC;AAEF,UAAU,aAAa;IACrB,MAAM,EAAE,WAAW,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;CAC5B"}
@@ -16,7 +16,7 @@ const report_1 = require("../utils/report");
16
16
  const jspdf_1 = __importDefault(require("jspdf"));
17
17
  const valueFormatter_1 = require("../utils/valueFormatter");
18
18
  const useDashboard_1 = require("./useDashboard");
19
- async function getExportData(client, dashboardFilters, reportId, getToken, tenants, flags, customFields) {
19
+ async function getExportData(client, dashboardFilters, reportId, getToken, eventTracking, tenants, flags, customFields) {
20
20
  const minimalFilters = Object.values(dashboardFilters).length
21
21
  ? Object.values(dashboardFilters).map((filter) => {
22
22
  const newFilter = { ...filter };
@@ -51,6 +51,7 @@ async function getExportData(client, dashboardFilters, reportId, getToken, tenan
51
51
  customFields,
52
52
  getToken,
53
53
  tenants,
54
+ eventTracking,
54
55
  });
55
56
  if (cleanedReport.chartType === 'table' && cleanedReport.pivot) {
56
57
  cleanedReport.columns = cleanedReport.yAxisFields;
@@ -68,6 +69,7 @@ sectionField, } = {}) => {
68
69
  const [schemaData] = (0, react_1.useContext)(Context_1.SchemaDataContext);
69
70
  const { tenants, flags } = (0, react_1.useContext)(Context_1.TenantContext);
70
71
  const { getToken } = (0, react_1.useContext)(Context_1.FetchContext);
72
+ const { eventTracking } = (0, react_1.useContext)(Context_1.EventTrackingContext);
71
73
  const specificDashboardFilters = (0, react_1.useMemo)(() => {
72
74
  if (!reportId) {
73
75
  return [];
@@ -104,12 +106,14 @@ sectionField, } = {}) => {
104
106
  }
105
107
  setIsCSVLoading(true);
106
108
  const resp = await getExportData(client, specificReportFilters.length > 0
107
- ? specificReportFilters.concat(customReportFilters[reportId] ??
108
- dashboardCustomFilters[dashboardReport?.dashboardName ?? ''] ??
109
- [])
110
- : specificDashboardFilters.concat(customReportFilters[reportId] ??
111
- dashboardCustomFilters[dashboardReport?.dashboardName ?? ''] ??
112
- []), reportId, getToken, tenants, flags, schemaData?.customFields);
109
+ ? specificReportFilters.concat([
110
+ ...(customReportFilters[reportId] ?? []),
111
+ ...(dashboardCustomFilters[dashboardReport?.dashboardName ?? ''] ?? []),
112
+ ])
113
+ : specificDashboardFilters.concat([
114
+ ...(customReportFilters[reportId] ?? []),
115
+ ...(dashboardCustomFilters[dashboardReport?.dashboardName ?? ''] ?? []),
116
+ ]), reportId, getToken, eventTracking, tenants, flags, schemaData?.customFields);
113
117
  (0, csv_1.downloadCSV)({
114
118
  rows: resp.pivot && resp.pivotRows && downloadOptions?.usePivotRows
115
119
  ? resp.pivotRows
@@ -132,10 +136,14 @@ sectionField, } = {}) => {
132
136
  tenants,
133
137
  flags,
134
138
  useReportTask: true,
135
- filters: filters.concat((customReportFilters[reportId] ??
136
- dashboardCustomFilters[dashboardReport?.dashboardName ?? ''])),
139
+ filters: filters.concat([
140
+ ...(customReportFilters[reportId] ?? []),
141
+ ...(dashboardCustomFilters[dashboardReport?.dashboardName ?? ''] ??
142
+ []),
143
+ ]),
137
144
  customFields: schemaData?.customFields,
138
145
  getToken,
146
+ eventTracking,
139
147
  });
140
148
  if (error) {
141
149
  console.error(error);
@@ -0,0 +1,13 @@
1
+ type LongLoadingMeta = {
2
+ origin: string;
3
+ loadDescription: string;
4
+ expectedLoadTime?: number;
5
+ abnormalLoadTime?: number;
6
+ };
7
+ type LoadingState = {
8
+ isLongLoading: boolean;
9
+ isAbnormalLoading: boolean;
10
+ };
11
+ export declare function useLongLoading(isLoading: boolean, meta: LongLoadingMeta): LoadingState;
12
+ export {};
13
+ //# sourceMappingURL=useLongLoading.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useLongLoading.d.ts","sourceRoot":"","sources":["../../../src/hooks/useLongLoading.tsx"],"names":[],"mappings":"AAGA,KAAK,eAAe,GAAG;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,KAAK,YAAY,GAAG;IAClB,aAAa,EAAE,OAAO,CAAC;IACvB,iBAAiB,EAAE,OAAO,CAAC;CAC5B,CAAC;AAEF,wBAAgB,cAAc,CAC5B,SAAS,EAAE,OAAO,EAClB,IAAI,EAAE,eAAe,GACpB,YAAY,CAoEd"}
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useLongLoading = useLongLoading;
4
+ const react_1 = require("react");
5
+ const Context_1 = require("../Context");
6
+ function useLongLoading(isLoading, meta) {
7
+ const { origin, expectedLoadTime = 5000, abnormalLoadTime = 15000, loadDescription, } = meta;
8
+ const [isLongLoading, setIsLongLoading] = (0, react_1.useState)(false);
9
+ const [isAbnormalLoading, setIsAbnormalLoading] = (0, react_1.useState)(false);
10
+ const { eventTracking } = (0, react_1.useContext)(Context_1.EventTrackingContext);
11
+ (0, react_1.useEffect)(() => {
12
+ let longTimer = null;
13
+ let abnormalTimer = null;
14
+ if (isLoading) {
15
+ // Set timer for long loading
16
+ longTimer = setTimeout(() => {
17
+ setIsLongLoading(true);
18
+ eventTracking?.logError?.({
19
+ type: 'timeout',
20
+ severity: 'medium',
21
+ message: `${origin} loading is taking longer than expected`,
22
+ errorData: {
23
+ loadDescription,
24
+ expectedLoadTime,
25
+ currentTime: Date.now(),
26
+ },
27
+ });
28
+ // Set timer for abnormal loading
29
+ abnormalTimer = setTimeout(() => {
30
+ setIsAbnormalLoading(true);
31
+ eventTracking?.logError?.({
32
+ type: 'timeout',
33
+ severity: 'high',
34
+ message: `${origin} loading is taking abnormally long`,
35
+ errorData: {
36
+ loadDescription,
37
+ expectedLoadTime,
38
+ abnormalLoadTime,
39
+ currentTime: Date.now(),
40
+ },
41
+ });
42
+ }, abnormalLoadTime - expectedLoadTime);
43
+ }, expectedLoadTime);
44
+ }
45
+ else {
46
+ setIsLongLoading(false);
47
+ setIsAbnormalLoading(false);
48
+ }
49
+ return () => {
50
+ if (longTimer)
51
+ clearTimeout(longTimer);
52
+ if (abnormalTimer)
53
+ clearTimeout(abnormalTimer);
54
+ };
55
+ }, [
56
+ isLoading,
57
+ origin,
58
+ expectedLoadTime,
59
+ abnormalLoadTime,
60
+ loadDescription,
61
+ eventTracking,
62
+ ]);
63
+ return {
64
+ isLongLoading,
65
+ isAbnormalLoading,
66
+ };
67
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"useQuill.d.ts","sourceRoot":"","sources":["../../../src/hooks/useQuill.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EACL,WAAW,EAIZ,MAAM,yBAAyB,CAAC;AAKjC,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,QAAQ,cACR,MAAM,eACJ;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,KAC3D;IACD,IAAI,EAAE,WAAW,GAAG,IAAI,CAAC;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACpD,SAAS,EACL,CAAC,CAAC,QAAQ,EAAE,WAAW,KAAK,MAAM,GAAG,SAAS,CAAC,GAC/C,CAAC,MAAM,SAAS,CAAC,CAAC;IACtB,YAAY,EAAE,MAAM,IAAI,CAAC;CAsO1B,CAAC"}
1
+ {"version":3,"file":"useQuill.d.ts","sourceRoot":"","sources":["../../../src/hooks/useQuill.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EACL,WAAW,EAIZ,MAAM,yBAAyB,CAAC;AAKjC,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,QAAQ,cACR,MAAM,eACJ;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,KAC3D;IACD,IAAI,EAAE,WAAW,GAAG,IAAI,CAAC;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACpD,SAAS,EACL,CAAC,CAAC,QAAQ,EAAE,WAAW,KAAK,MAAM,GAAG,SAAS,CAAC,GAC/C,CAAC,MAAM,SAAS,CAAC,CAAC;IACtB,YAAY,EAAE,MAAM,IAAI,CAAC;CA+P1B,CAAC"}
@@ -26,12 +26,13 @@ const useQuill = (reportId, pagination) => {
26
26
  const [schemaData] = (0, react_1.useContext)(Context_1.SchemaDataContext);
27
27
  const [client, isClientLoading] = (0, react_1.useContext)(Context_1.ClientContext);
28
28
  const { tenants } = (0, react_1.useContext)(Context_1.TenantContext);
29
+ const { eventTracking } = (0, react_1.useContext)(Context_1.EventTrackingContext);
29
30
  const [loading, setLoading] = (0, react_1.useState)(true);
30
31
  const [error, setError] = (0, react_1.useState)(undefined);
31
32
  const [previousPage, setPreviousPage] = (0, react_1.useState)(0);
32
33
  const processedReport = (0, react_1.useMemo)(() => {
33
34
  return reportId && allReportsById[reportId]
34
- ? (0, report_1.convertInternalReportToReport)((0, merge_1.mergeComparisonRange)(allReportsById[reportId]), specificReportFilters ?? [], 'useQuill')
35
+ ? (0, report_1.convertInternalReportToReport)((0, merge_1.mergeComparisonRange)(allReportsById[reportId]), specificReportFilters ?? [], eventTracking, 'useQuill')
35
36
  : undefined;
36
37
  }, [reportId, reportId && allReportsById[reportId], specificReportFilters]);
37
38
  const [additionalProcessing, setAdditionProcessing] = (0, react_1.useState)(pagination
@@ -98,6 +99,7 @@ const useQuill = (reportId, pagination) => {
98
99
  filters: reportFilters[reportId],
99
100
  customFields: schemaData.customFields,
100
101
  getToken,
102
+ eventTracking,
101
103
  });
102
104
  if (paginatedRows.error) {
103
105
  throw new Error('Error fetching chart');
@@ -117,6 +119,17 @@ const useQuill = (reportId, pagination) => {
117
119
  }
118
120
  catch (e) {
119
121
  console.log(e);
122
+ eventTracking?.logError?.({
123
+ type: 'bug', // TODO: determine type
124
+ severity: 'high',
125
+ message: 'Error fetching report',
126
+ errorMessage: e.message,
127
+ errorStack: e.stack,
128
+ errorData: {
129
+ caller: 'useQuill',
130
+ function: 'updateTableRows',
131
+ },
132
+ });
120
133
  }
121
134
  finally {
122
135
  setTimeout(() => {
@@ -159,6 +172,17 @@ const useQuill = (reportId, pagination) => {
159
172
  }
160
173
  catch (error) {
161
174
  setError(error.message ?? 'Error fetching report');
175
+ eventTracking?.logError?.({
176
+ type: 'bug', // TODO: determine type
177
+ severity: 'high',
178
+ message: 'Error fetching report',
179
+ errorMessage: error.message,
180
+ errorStack: error.stack,
181
+ errorData: {
182
+ caller: 'useQuill',
183
+ function: 'fetchReportHelper',
184
+ },
185
+ });
162
186
  }
163
187
  finally {
164
188
  setLoading(false);