@quillsql/react 2.12.46 → 2.12.47

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 (255) hide show
  1. package/dist/cjs/Chart.d.ts.map +1 -1
  2. package/dist/cjs/Chart.js +16 -7
  3. package/dist/cjs/ChartBuilder.d.ts +10 -11
  4. package/dist/cjs/ChartBuilder.d.ts.map +1 -1
  5. package/dist/cjs/ChartBuilder.js +78 -81
  6. package/dist/cjs/ChartEditor.d.ts +3 -1
  7. package/dist/cjs/ChartEditor.d.ts.map +1 -1
  8. package/dist/cjs/ChartEditor.js +26 -10
  9. package/dist/cjs/Context.d.ts +2 -3
  10. package/dist/cjs/Context.d.ts.map +1 -1
  11. package/dist/cjs/Context.js +42 -28
  12. package/dist/cjs/Dashboard.d.ts +12 -12
  13. package/dist/cjs/Dashboard.d.ts.map +1 -1
  14. package/dist/cjs/Dashboard.js +61 -69
  15. package/dist/cjs/QuillProvider.d.ts +2 -0
  16. package/dist/cjs/QuillProvider.d.ts.map +1 -1
  17. package/dist/cjs/QuillProvider.js +1 -15
  18. package/dist/cjs/ReportBuilder.d.ts +9 -9
  19. package/dist/cjs/ReportBuilder.d.ts.map +1 -1
  20. package/dist/cjs/ReportBuilder.js +116 -179
  21. package/dist/cjs/SQLEditor.d.ts +20 -11
  22. package/dist/cjs/SQLEditor.d.ts.map +1 -1
  23. package/dist/cjs/SQLEditor.js +157 -90
  24. package/dist/cjs/Table.js +3 -3
  25. package/dist/cjs/components/Chart/BarChart.d.ts.map +1 -1
  26. package/dist/cjs/components/Chart/BarChart.js +6 -25
  27. package/dist/cjs/components/Chart/BarList.js +1 -1
  28. package/dist/cjs/components/Chart/ChartError.d.ts +5 -2
  29. package/dist/cjs/components/Chart/ChartError.d.ts.map +1 -1
  30. package/dist/cjs/components/Chart/ChartError.js +7 -10
  31. package/dist/cjs/components/Chart/LineChart.d.ts.map +1 -1
  32. package/dist/cjs/components/Chart/LineChart.js +16 -1
  33. package/dist/cjs/components/Chart/PieChart.js +1 -1
  34. package/dist/cjs/components/Dashboard/ChartComponent.d.ts +1 -1
  35. package/dist/cjs/components/Dashboard/ChartComponent.d.ts.map +1 -1
  36. package/dist/cjs/components/Dashboard/ChartComponent.js +46 -47
  37. package/dist/cjs/components/Dashboard/DashboardFilter.d.ts.map +1 -1
  38. package/dist/cjs/components/Dashboard/DashboardFilter.js +2 -1
  39. package/dist/cjs/components/Dashboard/DataLoader.d.ts +2 -2
  40. package/dist/cjs/components/Dashboard/DataLoader.d.ts.map +1 -1
  41. package/dist/cjs/components/Dashboard/DataLoader.js +19 -13
  42. package/dist/cjs/components/Dashboard/MetricComponent.d.ts.map +1 -1
  43. package/dist/cjs/components/Dashboard/MetricComponent.js +16 -26
  44. package/dist/cjs/components/Dashboard/TableComponent.d.ts.map +1 -1
  45. package/dist/cjs/components/Dashboard/TableComponent.js +16 -25
  46. package/dist/cjs/components/QuillMultiSelectWithCombo.d.ts.map +1 -1
  47. package/dist/cjs/components/QuillMultiSelectWithCombo.js +31 -1
  48. package/dist/cjs/components/QuillSelect.js +1 -1
  49. package/dist/cjs/components/QuillTable.d.ts +1 -1
  50. package/dist/cjs/components/QuillTable.d.ts.map +1 -1
  51. package/dist/cjs/components/QuillTable.js +115 -105
  52. package/dist/cjs/components/ReportBuilder/AddColumnModal.d.ts +3 -3
  53. package/dist/cjs/components/ReportBuilder/AddColumnModal.d.ts.map +1 -1
  54. package/dist/cjs/components/ReportBuilder/AddColumnModal.js +2 -2
  55. package/dist/cjs/components/ReportBuilder/AddLimitPopover.d.ts +2 -2
  56. package/dist/cjs/components/ReportBuilder/AddLimitPopover.d.ts.map +1 -1
  57. package/dist/cjs/components/ReportBuilder/AddLimitPopover.js +28 -9
  58. package/dist/cjs/components/ReportBuilder/FilterModal.d.ts +1 -1
  59. package/dist/cjs/components/ReportBuilder/FilterModal.d.ts.map +1 -1
  60. package/dist/cjs/components/ReportBuilder/FilterModal.js +178 -114
  61. package/dist/cjs/components/ReportBuilder/convert.d.ts.map +1 -1
  62. package/dist/cjs/components/ReportBuilder/convert.js +1 -2
  63. package/dist/cjs/components/ReportBuilder/ui.d.ts +9 -1
  64. package/dist/cjs/components/ReportBuilder/ui.d.ts.map +1 -1
  65. package/dist/cjs/components/ReportBuilder/ui.js +37 -3
  66. package/dist/cjs/components/ReportBuilder/util.d.ts +5 -1
  67. package/dist/cjs/components/ReportBuilder/util.d.ts.map +1 -1
  68. package/dist/cjs/components/ReportBuilder/util.js +26 -12
  69. package/dist/cjs/components/UiComponents.d.ts +17 -3
  70. package/dist/cjs/components/UiComponents.d.ts.map +1 -1
  71. package/dist/cjs/components/UiComponents.js +160 -29
  72. package/dist/cjs/hooks/useAskQuill.d.ts.map +1 -1
  73. package/dist/cjs/hooks/useAskQuill.js +7 -7
  74. package/dist/cjs/hooks/useAstToFilterTree.d.ts +4 -1
  75. package/dist/cjs/hooks/useAstToFilterTree.d.ts.map +1 -1
  76. package/dist/cjs/hooks/useAstToFilterTree.js +4 -1
  77. package/dist/cjs/hooks/useDashboard.d.ts +5 -1
  78. package/dist/cjs/hooks/useDashboard.d.ts.map +1 -1
  79. package/dist/cjs/hooks/useDashboard.js +28 -4
  80. package/dist/cjs/hooks/useOnClickOutside.js +2 -2
  81. package/dist/cjs/hooks/useQuill.js +4 -4
  82. package/dist/cjs/hooks/useVirtualTables.d.ts +10 -0
  83. package/dist/cjs/hooks/useVirtualTables.d.ts.map +1 -0
  84. package/dist/cjs/hooks/useVirtualTables.js +29 -0
  85. package/dist/cjs/index.d.ts +2 -1
  86. package/dist/cjs/index.d.ts.map +1 -1
  87. package/dist/cjs/index.js +4 -1
  88. package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
  89. package/dist/cjs/internals/ReportBuilder/PivotModal.js +45 -21
  90. package/dist/cjs/models/Client.d.ts +3 -0
  91. package/dist/cjs/models/Client.d.ts.map +1 -1
  92. package/dist/cjs/models/Report.d.ts +2 -0
  93. package/dist/cjs/models/Report.d.ts.map +1 -1
  94. package/dist/cjs/models/Schema.d.ts +7 -0
  95. package/dist/cjs/models/Schema.d.ts.map +1 -0
  96. package/dist/cjs/models/Schema.js +2 -0
  97. package/dist/cjs/models/Tables.d.ts +2 -0
  98. package/dist/cjs/models/Tables.d.ts.map +1 -1
  99. package/dist/cjs/utils/astFilterProcessing.d.ts +4 -0
  100. package/dist/cjs/utils/astFilterProcessing.d.ts.map +1 -1
  101. package/dist/cjs/utils/astFilterProcessing.js +47 -44
  102. package/dist/cjs/utils/astProcessing.d.ts.map +1 -1
  103. package/dist/cjs/utils/astProcessing.js +8 -8
  104. package/dist/cjs/utils/client.d.ts.map +1 -1
  105. package/dist/cjs/utils/client.js +1 -0
  106. package/dist/cjs/utils/columnProcessing.d.ts.map +1 -1
  107. package/dist/cjs/utils/columnProcessing.js +88 -5
  108. package/dist/cjs/utils/dataFetcher.d.ts.map +1 -1
  109. package/dist/cjs/utils/dataFetcher.js +7 -3
  110. package/dist/cjs/utils/filterProcessing.d.ts +25 -0
  111. package/dist/cjs/utils/filterProcessing.d.ts.map +1 -1
  112. package/dist/cjs/utils/filterProcessing.js +121 -1
  113. package/dist/cjs/utils/paginationProcessing.js +2 -2
  114. package/dist/cjs/utils/pivotConstructor.d.ts.map +1 -1
  115. package/dist/cjs/utils/pivotConstructor.js +10 -6
  116. package/dist/cjs/utils/queryConstructor.d.ts +1 -0
  117. package/dist/cjs/utils/queryConstructor.d.ts.map +1 -1
  118. package/dist/cjs/utils/queryConstructor.js +37 -11
  119. package/dist/cjs/utils/report.d.ts +5 -0
  120. package/dist/cjs/utils/report.d.ts.map +1 -1
  121. package/dist/cjs/utils/report.js +63 -9
  122. package/dist/cjs/utils/schema.js +22 -20
  123. package/dist/cjs/utils/tableProcessing.d.ts +1 -0
  124. package/dist/cjs/utils/tableProcessing.d.ts.map +1 -1
  125. package/dist/cjs/utils/tableProcessing.js +22 -1
  126. package/dist/cjs/utils/validation.d.ts.map +1 -1
  127. package/dist/cjs/utils/validation.js +4 -0
  128. package/dist/esm/Chart.d.ts.map +1 -1
  129. package/dist/esm/Chart.js +17 -8
  130. package/dist/esm/ChartBuilder.d.ts +10 -11
  131. package/dist/esm/ChartBuilder.d.ts.map +1 -1
  132. package/dist/esm/ChartBuilder.js +81 -84
  133. package/dist/esm/ChartEditor.d.ts +3 -1
  134. package/dist/esm/ChartEditor.d.ts.map +1 -1
  135. package/dist/esm/ChartEditor.js +27 -11
  136. package/dist/esm/Context.d.ts +2 -3
  137. package/dist/esm/Context.d.ts.map +1 -1
  138. package/dist/esm/Context.js +42 -28
  139. package/dist/esm/Dashboard.d.ts +12 -12
  140. package/dist/esm/Dashboard.d.ts.map +1 -1
  141. package/dist/esm/Dashboard.js +63 -71
  142. package/dist/esm/QuillProvider.d.ts +2 -0
  143. package/dist/esm/QuillProvider.d.ts.map +1 -1
  144. package/dist/esm/QuillProvider.js +2 -16
  145. package/dist/esm/ReportBuilder.d.ts +9 -9
  146. package/dist/esm/ReportBuilder.d.ts.map +1 -1
  147. package/dist/esm/ReportBuilder.js +122 -185
  148. package/dist/esm/SQLEditor.d.ts +20 -11
  149. package/dist/esm/SQLEditor.d.ts.map +1 -1
  150. package/dist/esm/SQLEditor.js +160 -93
  151. package/dist/esm/Table.js +4 -4
  152. package/dist/esm/components/Chart/BarChart.d.ts.map +1 -1
  153. package/dist/esm/components/Chart/BarChart.js +7 -26
  154. package/dist/esm/components/Chart/BarList.js +1 -1
  155. package/dist/esm/components/Chart/ChartError.d.ts +5 -2
  156. package/dist/esm/components/Chart/ChartError.d.ts.map +1 -1
  157. package/dist/esm/components/Chart/ChartError.js +7 -10
  158. package/dist/esm/components/Chart/LineChart.d.ts.map +1 -1
  159. package/dist/esm/components/Chart/LineChart.js +16 -1
  160. package/dist/esm/components/Chart/PieChart.js +1 -1
  161. package/dist/esm/components/Dashboard/ChartComponent.d.ts +1 -1
  162. package/dist/esm/components/Dashboard/ChartComponent.d.ts.map +1 -1
  163. package/dist/esm/components/Dashboard/ChartComponent.js +46 -47
  164. package/dist/esm/components/Dashboard/DashboardFilter.d.ts.map +1 -1
  165. package/dist/esm/components/Dashboard/DashboardFilter.js +2 -1
  166. package/dist/esm/components/Dashboard/DataLoader.d.ts +2 -2
  167. package/dist/esm/components/Dashboard/DataLoader.d.ts.map +1 -1
  168. package/dist/esm/components/Dashboard/DataLoader.js +20 -14
  169. package/dist/esm/components/Dashboard/MetricComponent.d.ts.map +1 -1
  170. package/dist/esm/components/Dashboard/MetricComponent.js +16 -26
  171. package/dist/esm/components/Dashboard/TableComponent.d.ts.map +1 -1
  172. package/dist/esm/components/Dashboard/TableComponent.js +16 -25
  173. package/dist/esm/components/QuillMultiSelectWithCombo.d.ts.map +1 -1
  174. package/dist/esm/components/QuillMultiSelectWithCombo.js +31 -1
  175. package/dist/esm/components/QuillSelect.js +1 -1
  176. package/dist/esm/components/QuillTable.d.ts +1 -1
  177. package/dist/esm/components/QuillTable.d.ts.map +1 -1
  178. package/dist/esm/components/QuillTable.js +115 -105
  179. package/dist/esm/components/ReportBuilder/AddColumnModal.d.ts +3 -3
  180. package/dist/esm/components/ReportBuilder/AddColumnModal.d.ts.map +1 -1
  181. package/dist/esm/components/ReportBuilder/AddColumnModal.js +2 -2
  182. package/dist/esm/components/ReportBuilder/AddLimitPopover.d.ts +2 -2
  183. package/dist/esm/components/ReportBuilder/AddLimitPopover.d.ts.map +1 -1
  184. package/dist/esm/components/ReportBuilder/AddLimitPopover.js +28 -9
  185. package/dist/esm/components/ReportBuilder/FilterModal.d.ts +1 -1
  186. package/dist/esm/components/ReportBuilder/FilterModal.d.ts.map +1 -1
  187. package/dist/esm/components/ReportBuilder/FilterModal.js +178 -114
  188. package/dist/esm/components/ReportBuilder/convert.d.ts.map +1 -1
  189. package/dist/esm/components/ReportBuilder/convert.js +1 -2
  190. package/dist/esm/components/ReportBuilder/ui.d.ts +9 -1
  191. package/dist/esm/components/ReportBuilder/ui.d.ts.map +1 -1
  192. package/dist/esm/components/ReportBuilder/ui.js +38 -4
  193. package/dist/esm/components/ReportBuilder/util.d.ts +5 -1
  194. package/dist/esm/components/ReportBuilder/util.d.ts.map +1 -1
  195. package/dist/esm/components/ReportBuilder/util.js +26 -12
  196. package/dist/esm/components/UiComponents.d.ts +17 -3
  197. package/dist/esm/components/UiComponents.d.ts.map +1 -1
  198. package/dist/esm/components/UiComponents.js +158 -28
  199. package/dist/esm/hooks/useAskQuill.d.ts.map +1 -1
  200. package/dist/esm/hooks/useAskQuill.js +8 -8
  201. package/dist/esm/hooks/useAstToFilterTree.d.ts +4 -1
  202. package/dist/esm/hooks/useAstToFilterTree.d.ts.map +1 -1
  203. package/dist/esm/hooks/useAstToFilterTree.js +4 -1
  204. package/dist/esm/hooks/useDashboard.d.ts +5 -1
  205. package/dist/esm/hooks/useDashboard.d.ts.map +1 -1
  206. package/dist/esm/hooks/useDashboard.js +28 -5
  207. package/dist/esm/hooks/useOnClickOutside.js +2 -2
  208. package/dist/esm/hooks/useQuill.js +5 -5
  209. package/dist/esm/hooks/useVirtualTables.d.ts +10 -0
  210. package/dist/esm/hooks/useVirtualTables.d.ts.map +1 -0
  211. package/dist/esm/hooks/useVirtualTables.js +25 -0
  212. package/dist/esm/index.d.ts +2 -1
  213. package/dist/esm/index.d.ts.map +1 -1
  214. package/dist/esm/index.js +2 -1
  215. package/dist/esm/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
  216. package/dist/esm/internals/ReportBuilder/PivotModal.js +44 -23
  217. package/dist/esm/models/Client.d.ts +3 -0
  218. package/dist/esm/models/Client.d.ts.map +1 -1
  219. package/dist/esm/models/Report.d.ts +2 -0
  220. package/dist/esm/models/Report.d.ts.map +1 -1
  221. package/dist/esm/models/Schema.d.ts +7 -0
  222. package/dist/esm/models/Schema.d.ts.map +1 -0
  223. package/dist/esm/models/Schema.js +1 -0
  224. package/dist/esm/models/Tables.d.ts +2 -0
  225. package/dist/esm/models/Tables.d.ts.map +1 -1
  226. package/dist/esm/utils/astFilterProcessing.d.ts +4 -0
  227. package/dist/esm/utils/astFilterProcessing.d.ts.map +1 -1
  228. package/dist/esm/utils/astFilterProcessing.js +45 -43
  229. package/dist/esm/utils/astProcessing.d.ts.map +1 -1
  230. package/dist/esm/utils/astProcessing.js +8 -8
  231. package/dist/esm/utils/client.d.ts.map +1 -1
  232. package/dist/esm/utils/client.js +1 -0
  233. package/dist/esm/utils/columnProcessing.d.ts.map +1 -1
  234. package/dist/esm/utils/columnProcessing.js +88 -5
  235. package/dist/esm/utils/dataFetcher.d.ts.map +1 -1
  236. package/dist/esm/utils/dataFetcher.js +7 -3
  237. package/dist/esm/utils/filterProcessing.d.ts +25 -0
  238. package/dist/esm/utils/filterProcessing.d.ts.map +1 -1
  239. package/dist/esm/utils/filterProcessing.js +116 -0
  240. package/dist/esm/utils/paginationProcessing.js +2 -2
  241. package/dist/esm/utils/pivotConstructor.d.ts.map +1 -1
  242. package/dist/esm/utils/pivotConstructor.js +10 -6
  243. package/dist/esm/utils/queryConstructor.d.ts +1 -0
  244. package/dist/esm/utils/queryConstructor.d.ts.map +1 -1
  245. package/dist/esm/utils/queryConstructor.js +35 -10
  246. package/dist/esm/utils/report.d.ts +5 -0
  247. package/dist/esm/utils/report.d.ts.map +1 -1
  248. package/dist/esm/utils/report.js +61 -8
  249. package/dist/esm/utils/schema.js +22 -20
  250. package/dist/esm/utils/tableProcessing.d.ts +1 -0
  251. package/dist/esm/utils/tableProcessing.d.ts.map +1 -1
  252. package/dist/esm/utils/tableProcessing.js +21 -1
  253. package/dist/esm/utils/validation.d.ts.map +1 -1
  254. package/dist/esm/utils/validation.js +4 -0
  255. package/package.json +3 -1
@@ -4,6 +4,7 @@ import { DATE_DESCRIPTION_MAP } from './bigDateMap';
4
4
  import { snakeAndCamelCaseToTitleCase } from '../../utils/textProcessing';
5
5
  import { isAfterBigQuery, isBeforeBigQuery, isEqualsBigQuery, isInTheLastIntervalBigQuery, isTheCurrentIntervalBigQuery, } from '../../utils/parserBigQuery';
6
6
  import { isInTheLastIntervalPostgres, isTheCurrentIntervalPostgres, } from '../../utils/parserPostgres';
7
+ import { getFieldFromExpression } from '../../utils/astFilterProcessing';
7
8
  /**
8
9
  * A node that is "in" or "not in" where none of the variants are selected.
9
10
  */
@@ -630,19 +631,32 @@ function getNodeTable(node) {
630
631
  return null;
631
632
  }
632
633
  // Recursively remove filters that don't apply to the given table
633
- function removeNonSelectedTableFilters(node, table, columns) {
634
+ function removeNonSelectedTableFilters(node, table, columns, uniqueValues) {
634
635
  if (!node) {
635
636
  return null;
636
637
  }
637
638
  if (node.left && node.left.type !== 'binary_expr') {
638
639
  const referencedTable = getNodeTable(node.left);
639
- const referencedColumn = node.left.column?.expr?.value ||
640
- node.left.column ||
641
- node.left.value ||
642
- node.left.args?.value?.[0]?.value?.expr?.value ||
643
- node.left.args?.value?.[0]?.column?.expr?.value ||
644
- node.left.args?.value?.[0]?.column ||
645
- node.left.args?.value?.[0]?.value;
640
+ const referencedColumn = getFieldFromExpression(node.left);
641
+ if (!referencedColumn) {
642
+ return null;
643
+ }
644
+ if (uniqueValues &&
645
+ (node.operator === 'IN' ||
646
+ (node.operator === 'NOT IN' &&
647
+ node.right?.type === 'expr_list' &&
648
+ node.right.value))) {
649
+ node.right.value = node.right.value.filter((value) => {
650
+ const field = getFieldFromExpression(value);
651
+ const check = field &&
652
+ uniqueValues[referencedColumn] &&
653
+ Object.keys(uniqueValues[referencedColumn]).includes(field);
654
+ return check;
655
+ });
656
+ if (!node.right.value || !node.right.value.length) {
657
+ return null;
658
+ }
659
+ }
646
660
  if ((referencedTable && referencedTable !== table) ||
647
661
  !columns.includes(referencedColumn)) {
648
662
  return null;
@@ -657,8 +671,8 @@ function removeNonSelectedTableFilters(node, table, columns) {
657
671
  return node;
658
672
  }
659
673
  }
660
- node.left = removeNonSelectedTableFilters(node.left, table, columns);
661
- node.right = removeNonSelectedTableFilters(node.right, table, columns);
674
+ node.left = removeNonSelectedTableFilters(node.left, table, columns, uniqueValues);
675
+ node.right = removeNonSelectedTableFilters(node.right, table, columns, uniqueValues);
662
676
  if (node.left && node.right) {
663
677
  return node;
664
678
  }
@@ -672,13 +686,13 @@ function removeNonSelectedTableFilters(node, table, columns) {
672
686
  return null;
673
687
  }
674
688
  }
675
- export function removeNonSelectedTableReferences(ast, table, columns) {
689
+ export function removeNonSelectedTableReferences(ast, table, columns, uniqueValues) {
676
690
  ast.columns = ast.columns.filter((col) => {
677
691
  return col.table === table || col.expr.table === table || !col.expr.table;
678
692
  });
679
693
  if (!ast.where)
680
694
  return ast;
681
- ast.where = removeNonSelectedTableFilters(ast.where, table, columns);
695
+ ast.where = removeNonSelectedTableFilters(ast.where, table, columns, uniqueValues);
682
696
  return ast;
683
697
  }
684
698
  export function allNumericNodesValidInTree(node) {
@@ -19,6 +19,7 @@ export interface ButtonComponentProps {
19
19
  width?: string;
20
20
  disabled?: boolean;
21
21
  icon?: ReactNode;
22
+ tooltipText?: string;
22
23
  }
23
24
  export interface DeleteButtonComponentProps {
24
25
  onClick: () => void;
@@ -62,12 +63,13 @@ export interface ContainerComponentProps {
62
63
  /**
63
64
  * The fallback TextInput element for Quill.
64
65
  */
65
- export declare const QuillTextInput: ({ id, value, width, label, placeholder, onChange, }: TextInputComponentProps) => import("react/jsx-runtime").JSX.Element;
66
- export declare const MemoizedButton: ({ label, onClick, disabled, icon, }: {
66
+ export declare const QuillTextInput: React.ForwardRefExoticComponent<TextInputComponentProps & React.RefAttributes<HTMLInputElement>>;
67
+ export declare const MemoizedButton: ({ label, onClick, disabled, icon, tooltipText, }: {
67
68
  label: string;
68
69
  onClick: () => void;
69
70
  icon?: ReactNode;
70
71
  disabled?: boolean | undefined;
72
+ tooltipText?: string | undefined;
71
73
  }) => import("react/jsx-runtime").JSX.Element;
72
74
  export declare const MemoizedSecondaryButton: ({ label, onClick, icon, }: {
73
75
  label: string;
@@ -162,8 +164,10 @@ export interface TableComponentProps {
162
164
  direction: string;
163
165
  }) => void;
164
166
  rowCount?: number;
167
+ rowsPerPage?: number;
168
+ containerStyle?: CSSProperties;
165
169
  }
166
- export declare const QuillTableSQLEditorComponent: ({ rows, columns, isLoading, rowCount, onPageChange, onSortChange, }: TableComponentProps) => import("react/jsx-runtime").JSX.Element;
170
+ export declare const QuillTableSQLEditorComponent: ({ rows, columns, isLoading, rowCount, rowsPerPage, onPageChange, onSortChange, containerStyle, }: TableComponentProps) => import("react/jsx-runtime").JSX.Element;
167
171
  export declare const QuillTableComponent: ({ rows, columns, isLoading, rowCount, onPageChange, onSortChange, }: TableComponentProps) => import("react/jsx-runtime").JSX.Element;
168
172
  export declare const QuillEmptyDashboardComponent: () => import("react/jsx-runtime").JSX.Element;
169
173
  export declare const QuillLoadingDashboardComponent: ({ containerStyle, chartContainerStyle, LoadingComponent, }: {
@@ -196,4 +200,14 @@ export declare const QuillErrorMessageComponent: ({ errorMessage, containerStyle
196
200
  }) => import("react/jsx-runtime").JSX.Element;
197
201
  export declare const QuillColumnSearchEmptyState: () => import("react/jsx-runtime").JSX.Element;
198
202
  export declare const QuillLoadingComponent: () => import("react/jsx-runtime").JSX.Element;
203
+ export declare const OverflowContainer: ({ children }: {
204
+ children: ReactNode;
205
+ }) => import("react/jsx-runtime").JSX.Element;
206
+ export declare const QuillToolTip: ({ children, text, enabled, containerStyle, textStyle, }: {
207
+ children: ReactNode;
208
+ text: string;
209
+ enabled: boolean;
210
+ containerStyle?: React.CSSProperties | undefined;
211
+ textStyle?: React.CSSProperties | undefined;
212
+ }) => string | number | boolean | Iterable<React.ReactNode> | import("react/jsx-runtime").JSX.Element | null | undefined;
199
213
  //# sourceMappingURL=UiComponents.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"UiComponents.d.ts","sourceRoot":"","sources":["../../../src/components/UiComponents.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EACZ,WAAW,EACX,aAAa,EACb,SAAS,EAKV,MAAM,OAAO,CAAC;AAMf,MAAM,WAAW,MAAM;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IACrC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,SAAS,CAAC;IAC3B,cAAc,CAAC,EAAE,GAAG,CAAC;CACtB;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAChC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB;AAED,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;CAChE;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,SAAS,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IACrC,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,KAAK,CAAC,EAAE,GAAG,CAAC;CACb;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,wDAOxB,uBAAuB,4CAgDzB,CAAC;AAEF,eAAO,MAAM,cAAc;WAMlB,MAAM;aACJ,MAAM,IAAI;WACZ,SAAS;;6CAuCjB,CAAC;AAEF,eAAO,MAAM,uBAAuB;WAK3B,MAAM;aACJ,MAAM,IAAI;WACZ,SAAS;6CAqCjB,CAAC;AAEF,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;KACf,EAAE,CAAC;IACJ,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;CACjE;AAED,MAAM,WAAW,yBAAyB;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;KACf,EAAE,CAAC;IACJ,QAAQ,EAAE,CACR,KAAK,EACD,KAAK,CAAC,WAAW,CAAC,iBAAiB,CAAC,GACpC;QAAE,MAAM,EAAE;YAAE,KAAK,EAAE,MAAM,EAAE,CAAA;SAAE,CAAA;KAAE,KAChC,IAAI,CAAC;CACX;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,cAAc,cAAe,oBAAoB,4CAiB7D,CAAC;AAEF,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,iBAAiB,cAAe,uBAAuB,4CAkBnE,CAAC;AAEF,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,aAAa,cAAe,mBAAmB,4CAgB3D,CAAC;AAEF,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;CAC1D;AAED,eAAO,MAAM,gBAAgB,oCAI1B,sBAAsB,4CAoCxB,CAAC;AAEF,eAAO,MAAM,mBAAmB;;;GAG/B,CAAC;AAEF,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;KACf,EAAE,CAAC;IACJ,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;CAC3D;AAED,eAAO,MAAM,SAAS,kCAInB,kBAAkB,4CAoDpB,CAAC;AAEF,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,YAAY,cAAe,kBAAkB,4CAmBzD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,wFAOzB,qBAAqB,4CA6FvB,CAAC;AAEF,wBAAgB,aAAa,CAAC,EAC5B,MAAM,EACN,SAAS,EACT,KAAK,EACL,QAAQ,EACR,KAAK,EACL,MAAM,GACP,EAAE;IACD,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,SAAS,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,GAAG,CAAC,OAAO,CA6Fd;AAED,eAAO,MAAM,oBAAoB,iBAE9B,0BAA0B,4CAyB5B,CAAC;AAEF,eAAO,MAAM,cAAc,+CAwD1B,CAAC;AAEF,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,EAAE,CAAC;IAC/B,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC5C,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IACpE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,eAAO,MAAM,4BAA4B,wEAOtC,mBAAmB,4CAsCrB,CAAC;AAEF,eAAO,MAAM,mBAAmB,wEAO7B,mBAAmB,4CA4CrB,CAAC;AAEF,eAAO,MAAM,4BAA4B,+CAAgB,CAAC;AAS1D,eAAO,MAAM,8BAA8B;;;8BAOhB,WAAW;6CAuBrC,CAAC;AAEF,eAAO,MAAM,kCAAkC;cAGnC,SAAS;6CAapB,CAAC;AAEF,eAAO,MAAM,qCAAqC;cAGtC,SAAS;6CAapB,CAAC;AAEF,eAAO,MAAM,sBAAsB;cAGvB,SAAS;6CAapB,CAAC;AAEF,eAAO,MAAM,yBAAyB;cAG1B,SAAS;6CAapB,CAAC;AAEF,eAAO,MAAM,6BAA6B;cAG9B,SAAS;6CAiBpB,CAAC;AAEF,eAAO,MAAM,mBAAmB,0DAM7B,mBAAmB,4CA6JrB,CAAC;AAEF,eAAO,MAAM,8BAA8B;cAG/B,SAAS;6CAepB,CAAC;AAEF,eAAO,MAAM,0BAA0B;kBAIvB,MAAM;;6CAwBrB,CAAC;AAEF,eAAO,MAAM,2BAA2B,+CAGvC,CAAC;AAEF,eAAO,MAAM,qBAAqB,+CA+DjC,CAAC"}
1
+ {"version":3,"file":"UiComponents.d.ts","sourceRoot":"","sources":["../../../src/components/UiComponents.tsx"],"names":[],"mappings":"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"}
@@ -1,13 +1,14 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
- import { useContext, useEffect, useRef, useState, } from 'react';
2
+ import { forwardRef, useContext, useEffect, useRef, useState, } from 'react';
3
3
  import { XIcon } from '../assets';
4
4
  import { ThemeContext } from '../Context';
5
5
  import QuillTable from './QuillTable';
6
6
  import ChartSkeleton, { QuillLoadingSkeleton } from './Chart/ChartSkeleton';
7
+ import { DEFAULT_PAGINATION } from '../utils/paginationProcessing';
7
8
  /**
8
9
  * The fallback TextInput element for Quill.
9
10
  */
10
- export const QuillTextInput = ({ id, value, width, label, placeholder, onChange, }) => {
11
+ export const QuillTextInput = forwardRef(({ id, value, width, label, placeholder, onChange }, ref) => {
11
12
  const [theme] = useContext(ThemeContext);
12
13
  return (_jsxs("label", { style: {
13
14
  position: 'relative',
@@ -20,7 +21,7 @@ export const QuillTextInput = ({ id, value, width, label, placeholder, onChange,
20
21
  fontFamily: theme?.fontFamily,
21
22
  paddingBottom: 5,
22
23
  fontWeight: 600,
23
- }, children: label })), _jsx("input", { style: {
24
+ }, children: label })), _jsx("input", { ref: ref, style: {
24
25
  display: 'flex',
25
26
  height: 40,
26
27
  minHeight: 40,
@@ -36,33 +37,36 @@ export const QuillTextInput = ({ id, value, width, label, placeholder, onChange,
36
37
  width: width,
37
38
  minWidth: width,
38
39
  }, id: id, value: value, placeholder: placeholder, onChange: onChange })] }));
39
- };
40
- export const MemoizedButton = ({ label, onClick, disabled, icon, }) => {
40
+ });
41
+ export const MemoizedButton = ({ label, onClick, disabled, icon, tooltipText, }) => {
41
42
  const [theme] = useContext(ThemeContext);
42
- return (_jsxs("button", { className: "quill-button", onClick: onClick, disabled: disabled, style: {
43
- fontFamily: theme?.fontFamily,
44
- fontSize: '14px',
45
- display: 'flex',
46
- flexDirection: 'row',
47
- whiteSpace: 'nowrap',
48
- alignItems: 'center',
49
- gap: 6,
50
- borderRadius: 6,
51
- color: 'white',
52
- height: 38,
53
- border: '1px solid transparent',
54
- fontWeight: theme?.buttonFontWeight ?? 600,
55
- boxSizing: 'content-box',
56
- paddingLeft: 16,
57
- paddingRight: 16,
58
- cursor: 'pointer',
59
- }, children: [_jsx("style", { children: `
43
+ return (_jsx(QuillToolTip, { enabled: !!tooltipText && tooltipText !== '', text: tooltipText ?? '', children: _jsxs("button", { className: disabled ? 'quill-button-disabled' : 'quill-button', onClick: onClick, disabled: disabled, style: {
44
+ fontFamily: theme?.fontFamily,
45
+ fontSize: '14px',
46
+ display: 'flex',
47
+ flexDirection: 'row',
48
+ whiteSpace: 'nowrap',
49
+ alignItems: 'center',
50
+ gap: 6,
51
+ borderRadius: 6,
52
+ color: 'white',
53
+ height: 38,
54
+ border: '1px solid transparent',
55
+ fontWeight: theme?.buttonFontWeight ?? 600,
56
+ boxSizing: 'content-box',
57
+ paddingLeft: 16,
58
+ paddingRight: 16,
59
+ cursor: disabled ? 'default' : 'pointer',
60
+ }, children: [_jsx("style", { children: `
60
61
  .quill-button {
61
62
  background-color: #212121;
62
63
  }
64
+ .quill-button-disabled {
65
+ background-color: rgba(56, 65, 81, 0.6);
66
+ }
63
67
  .quill-button:hover {
64
68
  background-color: rgba(56, 65, 81, 0.9);
65
- }` }), icon, label] }));
69
+ }` }), icon, label] }) }));
66
70
  };
67
71
  export const MemoizedSecondaryButton = ({ label, onClick, icon, }) => {
68
72
  const [theme] = useContext(ThemeContext);
@@ -358,7 +362,7 @@ export const LoadingSpinner = () => (_jsx("div", { style: {
358
362
  justifyContent: 'center',
359
363
  alignItems: 'center',
360
364
  }, children: _jsxs("svg", { width: "24", height: "24", children: [_jsx("circle", { cx: "12", cy: "12", r: "9.375", strokeWidth: "3.75", strokeDasharray: "calc(2 * 3.14 * 9.375 / 3) calc(2 * 3.14 * 9.375 * 2 / 3)", strokeDashoffset: "calc(2 * 3.14 * 9.375 / 6)", stroke: "#364153", fill: "none", transform: "rotate(-90 12 12)", children: _jsx("animateTransform", { attributeName: "transform", attributeType: "XML", type: "rotate", from: "-180 12 12", to: "180 12 12", dur: "0.8s", repeatCount: "indefinite" }) }), _jsx("circle", { cx: "12", cy: "12", r: "9.375", strokeWidth: "3.75", strokeDasharray: "calc(2 * 3.14 * 9.375 / 3) calc(2 * 3.14 * 9.375 * 1 / 3)", strokeDashoffset: "calc(2 * 3.14 * 9.375 / 3) calc(2 * 3.14 * 9.375 * 2 / 3)", stroke: '#ADB1B9', fill: "none", transform: "rotate(90 12 12)", children: _jsx("animateTransform", { attributeName: "transform", attributeType: "XML", type: "rotate", from: "0 12 12", to: "360 12 12", dur: "0.8s", repeatCount: "indefinite" }) })] }) }));
361
- export const QuillTableSQLEditorComponent = ({ rows, columns, isLoading = false, rowCount, onPageChange, onSortChange, }) => {
365
+ export const QuillTableSQLEditorComponent = ({ rows, columns, isLoading = false, rowCount, rowsPerPage, onPageChange, onSortChange, containerStyle, }) => {
362
366
  const [sort, setSort] = useState({ field: '', direction: '' });
363
367
  const [page, setPage] = useState(0);
364
368
  if (isLoading) {
@@ -370,14 +374,14 @@ export const QuillTableSQLEditorComponent = ({ rows, columns, isLoading = false,
370
374
  height: '100%',
371
375
  }, children: _jsx(LoadingSpinner, {}) }));
372
376
  }
373
- return (_jsx(QuillTable, { rows: rows, columns: columns, rowsPerPage: 20, rowCount: rowCount, onPageChange: (page) => {
377
+ return (_jsx(QuillTable, { rows: rows, columns: columns, rowsPerPage: rowsPerPage || DEFAULT_PAGINATION.rowsPerPage, rowCount: rowCount, onPageChange: (page) => {
374
378
  setPage(page);
375
379
  onPageChange && onPageChange(page);
376
380
  }, onSortChange: (sort) => {
377
381
  setSort(sort);
378
382
  setPage(0);
379
383
  onSortChange && onSortChange(sort);
380
- }, sort: sort, currentPage: page, isLoading: isLoading }));
384
+ }, sort: sort, currentPage: page, isLoading: isLoading, containerStyle: containerStyle }));
381
385
  };
382
386
  export const QuillTableComponent = ({ rows, columns, isLoading = false, rowCount, onPageChange, onSortChange, }) => {
383
387
  const [sort, setSort] = useState({ field: '', direction: '' });
@@ -397,7 +401,7 @@ export const QuillTableComponent = ({ rows, columns, isLoading = false, rowCount
397
401
  height: '100%',
398
402
  }, children: _jsx(ChartSkeleton, {}) }));
399
403
  }
400
- return (_jsx(QuillTable, { rows: rows, columns: columns, rowsPerPage: 20, rowCount: rowCount, onPageChange: (page) => {
404
+ return (_jsx(QuillTable, { rows: rows, columns: columns, rowsPerPage: DEFAULT_PAGINATION.rowsPerPage, rowCount: rowCount, onPageChange: (page) => {
401
405
  setPage(page);
402
406
  onPageChange && onPageChange(page);
403
407
  }, onSortChange: (sort) => {
@@ -610,3 +614,129 @@ export const QuillLoadingComponent = () => {
610
614
  justifyContent: 'center',
611
615
  }, children: [_jsx("div", { style: { height: 100 } }), _jsxs("svg", { width: "24", height: "24", children: [_jsx("circle", { cx: "12", cy: "12", r: "9.375", strokeWidth: "3.75", strokeDasharray: "calc(2 * 3.14 * 9.375 / 3) calc(2 * 3.14 * 9.375 * 2 / 3)", strokeDashoffset: "calc(2 * 3.14 * 9.375 / 6)", stroke: theme?.primaryTextColor || '#364153', fill: "none", transform: "rotate(-90 12 12)", children: _jsx("animateTransform", { attributeName: "transform", attributeType: "XML", type: "rotate", from: "-180 12 12", to: "180 12 12", dur: "0.8s", repeatCount: "indefinite" }) }), _jsx("circle", { cx: "12", cy: "12", r: "9.375", strokeWidth: "3.75", strokeDasharray: "calc(2 * 3.14 * 9.375 / 3) calc(2 * 3.14 * 9.375 * 1 / 3)", strokeDashoffset: "calc(2 * 3.14 * 9.375 / 3) calc(2 * 3.14 * 9.375 * 2 / 3)", stroke: '#ADB1B9', fill: "none", transform: "rotate(90 12 12)", children: _jsx("animateTransform", { attributeName: "transform", attributeType: "XML", type: "rotate", from: "0 12 12", to: "360 12 12", dur: "0.8s", repeatCount: "indefinite" }) })] })] }));
612
616
  };
617
+ export const OverflowContainer = ({ children }) => {
618
+ const containerRef = useRef(null);
619
+ const [showTopShadow, setShowTopShadow] = useState(false);
620
+ const [showBottomShadow, setShowBottomShadow] = useState(false);
621
+ const checkOverflow = () => {
622
+ const container = containerRef.current;
623
+ if (container) {
624
+ const { scrollTop, scrollHeight, clientHeight } = container;
625
+ setShowTopShadow(scrollTop > 0);
626
+ setShowBottomShadow(scrollHeight > clientHeight && scrollTop < scrollHeight - clientHeight);
627
+ }
628
+ };
629
+ useEffect(() => {
630
+ const container = containerRef.current;
631
+ if (container) {
632
+ checkOverflow();
633
+ const topObserver = new IntersectionObserver(([entry]) => setShowTopShadow(!entry?.isIntersecting), { root: container, threshold: 0 });
634
+ const bottomObserver = new IntersectionObserver(([entry]) => setShowBottomShadow(!entry?.isIntersecting), { root: container, threshold: 0 });
635
+ const topSentinel = document.createElement('div');
636
+ const bottomSentinel = document.createElement('div');
637
+ container.insertBefore(topSentinel, container.firstChild);
638
+ container.appendChild(bottomSentinel);
639
+ topObserver.observe(topSentinel);
640
+ bottomObserver.observe(bottomSentinel);
641
+ return () => {
642
+ topObserver.disconnect();
643
+ bottomObserver.disconnect();
644
+ container.removeChild(topSentinel);
645
+ container.removeChild(bottomSentinel);
646
+ };
647
+ }
648
+ }, []);
649
+ const containerStyle = {
650
+ position: 'relative',
651
+ overflowY: 'auto',
652
+ // height: '100%',
653
+ };
654
+ const shadowStyle = {
655
+ position: 'sticky',
656
+ left: 0,
657
+ right: 0,
658
+ height: '8px',
659
+ pointerEvents: 'none',
660
+ zIndex: 1,
661
+ transition: 'opacity 0.3s ease',
662
+ };
663
+ const topShadowStyle = {
664
+ top: 0,
665
+ background: 'linear-gradient(to bottom, rgba(56, 65, 81, 0.08), rgba(0,0,0,0))',
666
+ opacity: showTopShadow ? 1 : 0,
667
+ ...shadowStyle,
668
+ };
669
+ const bottomShadowStyle = {
670
+ bottom: 0,
671
+ background: 'linear-gradient(to top, rgba(56, 65, 81, 0.08), rgba(0,0,0,0))',
672
+ opacity: showBottomShadow ? 1 : 0,
673
+ ...shadowStyle,
674
+ };
675
+ return (_jsxs("div", { style: containerStyle, ref: containerRef, onScroll: checkOverflow, onTouchMove: checkOverflow, onMouseMove: checkOverflow, children: [_jsx("div", { style: topShadowStyle }), children, _jsx("div", { style: bottomShadowStyle })] }));
676
+ };
677
+ export const QuillToolTip = ({ children, text, enabled = true, containerStyle = {}, textStyle = {}, }) => {
678
+ const [theme] = useContext(ThemeContext);
679
+ return enabled ? (_jsxs("div", { className: "tooltip-container", style: { ...containerStyle }, children: [_jsx("style", { children: `
680
+ .tooltip-container {
681
+ position: relative;
682
+ display: inline-block;
683
+ }
684
+
685
+ /* Tooltip text */
686
+ .tooltip-container .tooltip-text {
687
+ visibility: hidden;
688
+ width: auto;
689
+ background-color: #ffffff;
690
+ color: #212121;
691
+ text-align: center;
692
+ border-radius: 5px;
693
+ padding: 5px;
694
+ position: absolute;
695
+ z-index: 10;
696
+ bottom: 125%;
697
+ left: 50%;
698
+ transform: translateX(-50%);
699
+ opacity: 0;
700
+ transition: opacity 0.3s;
701
+ font-family: ${theme?.fontFamily};
702
+ font-size: small;
703
+ white-space: nowrap;
704
+ border-width: 1px;
705
+ border-style: solid;
706
+ border-color: #e7e7e7;
707
+ padding: 10px;
708
+ }
709
+
710
+ /* Tooltip arrow */
711
+ .tooltip-container .tooltip-text::before,
712
+ .tooltip-container .tooltip-text::after {
713
+ content: "";
714
+ position: absolute;
715
+ top: 100%;
716
+ left: 50%;
717
+ border: solid transparent;
718
+ height: 0;
719
+ width: 0;
720
+ pointer-events: none;
721
+ }
722
+
723
+ .tooltip-container .tooltip-text::before {
724
+ border-color: rgba(231, 231, 231, 0);
725
+ border-top-color: #e7e7e7;
726
+ border-width: 6px;
727
+ margin-left: -5.5px;
728
+ }
729
+
730
+ .tooltip-container .tooltip-text::after {
731
+ border-color: rgba(255, 255, 255, 0);
732
+ border-top-color: #ffffff;
733
+ border-width: 5px;
734
+ margin-left: -5px;
735
+ }
736
+
737
+ /* Show the tooltip when hovering over the button */
738
+ .tooltip-container:hover .tooltip-text {
739
+ visibility: visible;
740
+ opacity: 1;
741
+ }` }), children, _jsx("div", { className: "tooltip-text", style: { ...textStyle }, children: text })] })) : (children);
742
+ };
@@ -1 +1 @@
1
- {"version":3,"file":"useAskQuill.d.ts","sourceRoot":"","sources":["../../../src/hooks/useAskQuill.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAEL,cAAc,IAAI,UAAU,EAE7B,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAG9C,UAAU,MAAM;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,UAAU,CAAC;CACvB;AA6BD,eAAO,MAAM,WAAW;UAChB;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;aACQ,OAAO;WACT,MAAM,GAAG,SAAS;iBACZ,MAAM,KAAK,QAAQ,GAAG,GAAG,SAAS,CAAC;2BACzB,KAAK,KAAK,IAAI;qCACJ,UAAU,KAAK,IAAI;CAsMrD,CAAC"}
1
+ {"version":3,"file":"useAskQuill.d.ts","sourceRoot":"","sources":["../../../src/hooks/useAskQuill.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAEL,cAAc,IAAI,UAAU,EAE7B,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAG9C,UAAU,MAAM;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,UAAU,CAAC;CACvB;AA6BD,eAAO,MAAM,WAAW;UAChB;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;aACQ,OAAO;WACT,MAAM,GAAG,SAAS;iBACZ,MAAM,KAAK,QAAQ,GAAG,GAAG,SAAS,CAAC;2BACzB,KAAK,KAAK,IAAI;qCACJ,UAAU,KAAK,IAAI;CA0MrD,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { useContext, useEffect, useState } from 'react';
2
- import { ClientContext, SchemaContext } from '../Context';
2
+ import { ClientContext, SchemaDataContext } from '../Context';
3
3
  import { fetchAndProcessASTFromPrompt } from '../utils/astProcessing';
4
4
  import { fetchReportBuilderDataFromAST, } from '../utils/report';
5
5
  import { astToFilterTree, filterTreeToAst, } from '../utils/astFilterProcessing';
@@ -34,7 +34,7 @@ function convertColumnInternalToAskQuillColumn(columns) {
34
34
  }
35
35
  export const useAskQuill = () => {
36
36
  const [client] = useContext(ClientContext);
37
- const [schema] = useContext(SchemaContext);
37
+ const [schemaData] = useContext(SchemaDataContext);
38
38
  const [astInfo, setAstInfo] = useState(undefined);
39
39
  const [data, setData] = useState({
40
40
  rows: [],
@@ -65,16 +65,16 @@ export const useAskQuill = () => {
65
65
  setLoading(true);
66
66
  try {
67
67
  setLoading(true);
68
- astInfo = await fetchAndProcessASTFromPrompt(query, schema, client);
68
+ astInfo = await fetchAndProcessASTFromPrompt(query, schemaData.schema, client);
69
69
  if (astInfo.error) {
70
70
  throw new Error(astInfo.error);
71
71
  }
72
- reportBuilderInfo = await fetchReportBuilderDataFromAST(astInfo.ast, astInfo.whereAST, schema, client, astInfo.pivot);
72
+ reportBuilderInfo = await fetchReportBuilderDataFromAST(astInfo.ast, astInfo.whereAST, schemaData.schema, client, astInfo.pivot);
73
73
  if (!reportBuilderInfo) {
74
74
  throw new Error('Error fetching report');
75
75
  }
76
76
  const tableName = reportBuilderInfo.table;
77
- const tableInfo = schema.find((table) => table.name === tableName);
77
+ const tableInfo = schemaData.schema.find((table) => table.name === tableName);
78
78
  if (!tableInfo) {
79
79
  throw new Error('Table not found');
80
80
  }
@@ -112,7 +112,7 @@ export const useAskQuill = () => {
112
112
  let reportBuilderInfo = undefined;
113
113
  try {
114
114
  setLoading(true);
115
- reportBuilderInfo = await fetchReportBuilderDataFromAST(astInfo.ast, astInfo.whereAST, schema, client, newPivot);
115
+ reportBuilderInfo = await fetchReportBuilderDataFromAST(astInfo.ast, astInfo.whereAST, schemaData.schema, client, newPivot);
116
116
  setLoading(false);
117
117
  if (!reportBuilderInfo) {
118
118
  throw new Error('Error fetching report builder data');
@@ -148,7 +148,7 @@ export const useAskQuill = () => {
148
148
  try {
149
149
  const filterAst = filterTreeToAst(filterTree, client?.databaseType?.toLowerCase() ?? 'postgresql');
150
150
  setLoading(true);
151
- reportBuilderInfo = await fetchReportBuilderDataFromAST(astInfo.ast, filterAst, schema, client, data.pivot || undefined);
151
+ reportBuilderInfo = await fetchReportBuilderDataFromAST(astInfo.ast, filterAst, schemaData.schema, client, data.pivot || undefined);
152
152
  setLoading(false);
153
153
  }
154
154
  catch (err) {
@@ -169,7 +169,7 @@ export const useAskQuill = () => {
169
169
  };
170
170
  useEffect(() => {
171
171
  setAsk(() => askHelper);
172
- }, [schema]);
172
+ }, [schemaData.schema]);
173
173
  return {
174
174
  data,
175
175
  loading,
@@ -7,6 +7,9 @@ import { Client } from '../models/Client';
7
7
  *
8
8
  * Hook that takes in an ast where node and parses it into a filter tree
9
9
  */
10
- declare const useAstToFilterTree: (ast: any, client: Client) => FilterTreeNode | null;
10
+ declare const useAstToFilterTree: (ast: any, client: Client) => {
11
+ filterTree: FilterTreeNode | null;
12
+ filterStack: FilterTreeNode[];
13
+ };
11
14
  export default useAstToFilterTree;
12
15
  //# sourceMappingURL=useAstToFilterTree.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useAstToFilterTree.d.ts","sourceRoot":"","sources":["../../../src/hooks/useAstToFilterTree.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAmB,MAAM,8BAA8B,CAAC;AAC/E,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C;;;;;;GAMG;AACH,QAAA,MAAM,kBAAkB,QAAS,GAAG,UAAU,MAAM,0BAkBnD,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
1
+ {"version":3,"file":"useAstToFilterTree.d.ts","sourceRoot":"","sources":["../../../src/hooks/useAstToFilterTree.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAmB,MAAM,8BAA8B,CAAC;AAC/E,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAG1C;;;;;;GAMG;AACH,QAAA,MAAM,kBAAkB,QACjB,GAAG,UACA,MAAM;gBACC,cAAc,GAAG,IAAI;iBAAe,cAAc,EAAE;CAoBpE,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { useEffect, useState } from 'react';
2
2
  import { astToFilterTree } from '../utils/astFilterProcessing';
3
+ import { generateFilterStack } from '../utils/filterProcessing';
3
4
  /**
4
5
  * @param ast
5
6
  * @param client
@@ -9,16 +10,18 @@ import { astToFilterTree } from '../utils/astFilterProcessing';
9
10
  */
10
11
  const useAstToFilterTree = (ast, client) => {
11
12
  const [filterTree, setFilterTree] = useState(null);
13
+ const [filterStack, setFilterStack] = useState([]);
12
14
  useEffect(() => {
13
15
  if (!ast || !client) {
14
16
  return setFilterTree(null);
15
17
  }
16
18
  const fetchFilter = () => {
17
19
  const filterPromise = astToFilterTree(ast, client.databaseType?.toLowerCase() || 'postgresql');
20
+ setFilterStack(generateFilterStack(filterPromise));
18
21
  setFilterTree(filterPromise);
19
22
  };
20
23
  fetchFilter();
21
24
  }, [ast, client]);
22
- return filterTree;
25
+ return { filterTree, filterStack };
23
26
  };
24
27
  export default useAstToFilterTree;
@@ -1,6 +1,10 @@
1
+ import { QuillReportInternal } from '../models/Report';
2
+ export declare const useReports: () => {
3
+ reloadFilteredReports: (predicate: (report: QuillReportInternal) => boolean) => void;
4
+ };
1
5
  export declare const useDashboard: (dashboardName: string) => {
2
6
  data: import("../models/Dashboard").DashboardConfig | null | undefined;
3
- isLoading: boolean;
7
+ isLoading: boolean | undefined;
4
8
  error: any;
5
9
  reload: (overrideDashboardName?: string, fetchFromServer?: boolean) => Promise<void>;
6
10
  };
@@ -1 +1 @@
1
- {"version":3,"file":"useDashboard.d.ts","sourceRoot":"","sources":["../../../src/hooks/useDashboard.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,YAAY,kBAAmB,MAAM;;;;qCAYtB,MAAM;CAiFjC,CAAC"}
1
+ {"version":3,"file":"useDashboard.d.ts","sourceRoot":"","sources":["../../../src/hooks/useDashboard.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAEvD,eAAO,MAAM,UAAU;gDAYC,mBAAmB,KAAK,OAAO;CAYtD,CAAC;AAEF,eAAO,MAAM,YAAY,kBAAmB,MAAM;;;;qCAqBtB,MAAM;CAmFjC,CAAC"}
@@ -1,6 +1,26 @@
1
- import { useContext, useEffect, useRef, useState } from 'react';
2
- import { ClientContext, DashboardConfigContext } from '../Context';
1
+ import { useContext, useEffect, useMemo, useRef, useState } from 'react';
2
+ import { ClientContext, DashboardConfigContext, DashboardContext, } from '../Context';
3
3
  import { getData } from '../utils/dataFetcher';
4
+ export const useReports = () => {
5
+ const [dashboard, dispatch] = useContext(DashboardContext);
6
+ const reloadReport = (id) => {
7
+ dispatch({
8
+ type: 'UPDATE_DASHBOARD_ITEM',
9
+ id: id,
10
+ data: { ...dashboard[id], triggerReload: true },
11
+ });
12
+ };
13
+ const reloadFilteredReports = (predicate) => {
14
+ for (const id in dashboard) {
15
+ if (predicate(dashboard[id])) {
16
+ reloadReport(id);
17
+ }
18
+ }
19
+ };
20
+ return {
21
+ reloadFilteredReports,
22
+ };
23
+ };
4
24
  export const useDashboard = (dashboardName) => {
5
25
  const [dashboardConfig, dashboardConfigContext] = useContext(DashboardConfigContext);
6
26
  // if (dashboardName === undefined || dashboardName === null) {
@@ -9,6 +29,10 @@ export const useDashboard = (dashboardName) => {
9
29
  const [isLoading, setIsLoading] = useState(true);
10
30
  const [error, setError] = useState(null);
11
31
  const [client, isClientLoading] = useContext(ClientContext);
32
+ const loading = useMemo(() => isLoading ||
33
+ isClientLoading ||
34
+ (dashboardConfig[dashboardName] &&
35
+ !dashboardConfig[dashboardName]?.sections), [isLoading, isClientLoading, dashboardConfig, dashboardName]);
12
36
  const handleReload = async (overrideDashboardName, fetchFromServer = false) => {
13
37
  await getDashboards(overrideDashboardName ?? dashboardName, fetchFromServer);
14
38
  };
@@ -64,12 +88,11 @@ export const useDashboard = (dashboardName) => {
64
88
  }
65
89
  }
66
90
  useEffectAwaitingLoad(() => {
67
- console.log("triggered by", client);
68
91
  getDashboards(dashboardName, true);
69
92
  }, [dashboardName, client], isClientLoading);
70
93
  return {
71
- data: isLoading ? null : dashboardConfig[dashboardName],
72
- isLoading,
94
+ data: loading ? null : dashboardConfig[dashboardName],
95
+ isLoading: loading,
73
96
  error,
74
97
  reload: handleReload,
75
98
  };
@@ -7,10 +7,10 @@ const useOnClickOutside = (ref, handler) => {
7
7
  }
8
8
  handler(event);
9
9
  };
10
- document.addEventListener('mousedown', listener);
10
+ document.addEventListener('click', listener);
11
11
  document.addEventListener('touchstart', listener);
12
12
  return () => {
13
- document.removeEventListener('mousedown', listener);
13
+ document.removeEventListener('click', listener);
14
14
  document.removeEventListener('touchstart', listener);
15
15
  };
16
16
  }, [ref, handler]);
@@ -1,5 +1,5 @@
1
1
  import { useContext, useEffect, useState } from 'react';
2
- import { ClientContext, CustomFieldContext, DashboardContext, DashboardFiltersContext, } from '../Context';
2
+ import { ClientContext, DashboardContext, DashboardFiltersContext, SchemaDataContext, } from '../Context';
3
3
  import { mergeComparisonRange } from '../utils/merge';
4
4
  import { convertInternalReportToReport, fetchReport } from '../utils/report';
5
5
  import { shouldFetchMore } from '../utils/paginationProcessing';
@@ -8,7 +8,7 @@ import { getPointToPointPercentageChange, getSimplePercentageChange, getSumOfFie
8
8
  export const useQuill = (reportId, pagination) => {
9
9
  const [dashboard, dispatch] = useContext(DashboardContext);
10
10
  const { dashboardFilters } = useContext(DashboardFiltersContext);
11
- const [customFields] = useContext(CustomFieldContext);
11
+ const [schemaData] = useContext(SchemaDataContext);
12
12
  const [client] = useContext(ClientContext);
13
13
  const [data, setData] = useState(null);
14
14
  const [loading, setLoading] = useState(true);
@@ -79,7 +79,7 @@ export const useQuill = (reportId, pagination) => {
79
79
  // @ts-ignore
80
80
  dashboard[reportId].dashboardName === f.dashboardName);
81
81
  const updatedProcessing = { ...additionalProcessing, ...processing };
82
- const paginatedRows = await fetchTableByReport(reportId, client, updatedProcessing, specificDashboardFilter, customFields);
82
+ const paginatedRows = await fetchTableByReport(reportId, client, updatedProcessing, specificDashboardFilter, schemaData.customFields);
83
83
  if (paginatedRows.error) {
84
84
  throw new Error('Error fetching chart');
85
85
  }
@@ -118,9 +118,9 @@ export const useQuill = (reportId, pagination) => {
118
118
  // @ts-ignore
119
119
  dashboard[curReportId].dashboardName === f.dashboardName);
120
120
  setLoading(true);
121
- const { report, error } = await fetchReport(curReportId, client, useReportTask, specificDashboardFilter, additionalProcessing, undefined, customFields);
121
+ const { report, error } = await fetchReport(curReportId, client, useReportTask, specificDashboardFilter, additionalProcessing, undefined, schemaData.customFields);
122
122
  dispatch({
123
- type: 'UPDATE_DASHBOARD_ITEM',
123
+ type: 'ADD_DASHBOARD_ITEM',
124
124
  id: reportId,
125
125
  data: {
126
126
  ...report,