@quillsql/react 2.11.20 → 2.11.23

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 (141) hide show
  1. package/dist/cjs/Chart.d.ts +6 -0
  2. package/dist/cjs/Chart.d.ts.map +1 -1
  3. package/dist/cjs/Chart.js +13 -13
  4. package/dist/cjs/ChartBuilder.d.ts +16 -6
  5. package/dist/cjs/ChartBuilder.d.ts.map +1 -1
  6. package/dist/cjs/ChartBuilder.js +109 -44
  7. package/dist/cjs/ChartEditor.d.ts.map +1 -1
  8. package/dist/cjs/ChartEditor.js +8 -2
  9. package/dist/cjs/Dashboard.d.ts +3 -2
  10. package/dist/cjs/Dashboard.d.ts.map +1 -1
  11. package/dist/cjs/DateRangePicker/QuillDateRangePicker.d.ts.map +1 -1
  12. package/dist/cjs/DateRangePicker/QuillDateRangePicker.js +1 -1
  13. package/dist/cjs/ReportBuilder.d.ts +11 -1
  14. package/dist/cjs/ReportBuilder.d.ts.map +1 -1
  15. package/dist/cjs/ReportBuilder.js +75 -50
  16. package/dist/cjs/SQLEditor.d.ts +7 -1
  17. package/dist/cjs/SQLEditor.d.ts.map +1 -1
  18. package/dist/cjs/SQLEditor.js +3 -6
  19. package/dist/cjs/Table.d.ts +6 -0
  20. package/dist/cjs/Table.d.ts.map +1 -1
  21. package/dist/cjs/Table.js +4 -4
  22. package/dist/cjs/components/Chart/BarChart.d.ts +2 -1
  23. package/dist/cjs/components/Chart/BarChart.d.ts.map +1 -1
  24. package/dist/cjs/components/Chart/BarChart.js +6 -4
  25. package/dist/cjs/components/Chart/BarList.d.ts +3 -2
  26. package/dist/cjs/components/Chart/BarList.d.ts.map +1 -1
  27. package/dist/cjs/components/Chart/BarList.js +3 -3
  28. package/dist/cjs/components/Chart/ChartError.d.ts +1 -1
  29. package/dist/cjs/components/Chart/ChartError.d.ts.map +1 -1
  30. package/dist/cjs/components/Chart/ChartError.js +2 -2
  31. package/dist/cjs/components/Chart/ChartSkeleton.d.ts +2 -1
  32. package/dist/cjs/components/Chart/ChartSkeleton.d.ts.map +1 -1
  33. package/dist/cjs/components/Chart/ChartSkeleton.js +2 -2
  34. package/dist/cjs/components/Chart/LineChart.d.ts +2 -1
  35. package/dist/cjs/components/Chart/LineChart.d.ts.map +1 -1
  36. package/dist/cjs/components/Chart/LineChart.js +3 -3
  37. package/dist/cjs/components/Chart/PieChart.d.ts +1 -0
  38. package/dist/cjs/components/Chart/PieChart.d.ts.map +1 -1
  39. package/dist/cjs/components/Chart/PieChart.js +4 -100
  40. package/dist/cjs/components/Dashboard/DashboardFilter.d.ts +2 -1
  41. package/dist/cjs/components/Dashboard/DashboardFilter.d.ts.map +1 -1
  42. package/dist/cjs/components/Dashboard/DashboardFilter.js +2 -2
  43. package/dist/cjs/components/QuillCard.d.ts +1 -1
  44. package/dist/cjs/components/QuillCard.d.ts.map +1 -1
  45. package/dist/cjs/components/QuillCard.js +1 -1
  46. package/dist/cjs/components/QuillSelect.d.ts +1 -1
  47. package/dist/cjs/components/QuillSelect.d.ts.map +1 -1
  48. package/dist/cjs/components/QuillSelect.js +5 -3
  49. package/dist/cjs/components/QuillTable.d.ts +2 -1
  50. package/dist/cjs/components/QuillTable.d.ts.map +1 -1
  51. package/dist/cjs/components/QuillTable.js +5 -5
  52. package/dist/cjs/components/ReportBuilder/AddColumnPopover.d.ts.map +1 -1
  53. package/dist/cjs/components/ReportBuilder/AddColumnPopover.js +2 -9
  54. package/dist/cjs/components/ReportBuilder/AddSortPopover.d.ts.map +1 -1
  55. package/dist/cjs/components/ReportBuilder/AddSortPopover.js +2 -2
  56. package/dist/cjs/components/ReportBuilder/ui.d.ts.map +1 -1
  57. package/dist/cjs/components/ReportBuilder/ui.js +4 -16
  58. package/dist/cjs/components/UiComponents.d.ts +9 -9
  59. package/dist/cjs/components/UiComponents.d.ts.map +1 -1
  60. package/dist/cjs/components/UiComponents.js +32 -17
  61. package/dist/cjs/internals/ReportBuilder/PivotList.d.ts +1 -1
  62. package/dist/cjs/internals/ReportBuilder/PivotList.d.ts.map +1 -1
  63. package/dist/cjs/internals/ReportBuilder/PivotList.js +3 -3
  64. package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
  65. package/dist/cjs/internals/ReportBuilder/PivotModal.js +25 -24
  66. package/dist/cjs/utils/color.d.ts +6 -0
  67. package/dist/cjs/utils/color.d.ts.map +1 -1
  68. package/dist/cjs/utils/color.js +98 -1
  69. package/dist/cjs/utils/valueFormatter.d.ts.map +1 -1
  70. package/dist/cjs/utils/valueFormatter.js +32 -2
  71. package/dist/esm/Chart.d.ts +6 -0
  72. package/dist/esm/Chart.d.ts.map +1 -1
  73. package/dist/esm/Chart.js +13 -13
  74. package/dist/esm/ChartBuilder.d.ts +16 -6
  75. package/dist/esm/ChartBuilder.d.ts.map +1 -1
  76. package/dist/esm/ChartBuilder.js +109 -44
  77. package/dist/esm/ChartEditor.d.ts.map +1 -1
  78. package/dist/esm/ChartEditor.js +8 -2
  79. package/dist/esm/Dashboard.d.ts +3 -2
  80. package/dist/esm/Dashboard.d.ts.map +1 -1
  81. package/dist/esm/DateRangePicker/QuillDateRangePicker.d.ts.map +1 -1
  82. package/dist/esm/DateRangePicker/QuillDateRangePicker.js +1 -1
  83. package/dist/esm/ReportBuilder.d.ts +11 -1
  84. package/dist/esm/ReportBuilder.d.ts.map +1 -1
  85. package/dist/esm/ReportBuilder.js +75 -50
  86. package/dist/esm/SQLEditor.d.ts +7 -1
  87. package/dist/esm/SQLEditor.d.ts.map +1 -1
  88. package/dist/esm/SQLEditor.js +3 -6
  89. package/dist/esm/Table.d.ts +6 -0
  90. package/dist/esm/Table.d.ts.map +1 -1
  91. package/dist/esm/Table.js +4 -4
  92. package/dist/esm/components/Chart/BarChart.d.ts +2 -1
  93. package/dist/esm/components/Chart/BarChart.d.ts.map +1 -1
  94. package/dist/esm/components/Chart/BarChart.js +7 -5
  95. package/dist/esm/components/Chart/BarList.d.ts +3 -2
  96. package/dist/esm/components/Chart/BarList.d.ts.map +1 -1
  97. package/dist/esm/components/Chart/BarList.js +3 -3
  98. package/dist/esm/components/Chart/ChartError.d.ts +1 -1
  99. package/dist/esm/components/Chart/ChartError.d.ts.map +1 -1
  100. package/dist/esm/components/Chart/ChartError.js +2 -2
  101. package/dist/esm/components/Chart/ChartSkeleton.d.ts +2 -1
  102. package/dist/esm/components/Chart/ChartSkeleton.d.ts.map +1 -1
  103. package/dist/esm/components/Chart/ChartSkeleton.js +2 -2
  104. package/dist/esm/components/Chart/LineChart.d.ts +2 -1
  105. package/dist/esm/components/Chart/LineChart.d.ts.map +1 -1
  106. package/dist/esm/components/Chart/LineChart.js +3 -3
  107. package/dist/esm/components/Chart/PieChart.d.ts +1 -0
  108. package/dist/esm/components/Chart/PieChart.d.ts.map +1 -1
  109. package/dist/esm/components/Chart/PieChart.js +3 -99
  110. package/dist/esm/components/Dashboard/DashboardFilter.d.ts +2 -1
  111. package/dist/esm/components/Dashboard/DashboardFilter.d.ts.map +1 -1
  112. package/dist/esm/components/Dashboard/DashboardFilter.js +2 -2
  113. package/dist/esm/components/QuillCard.d.ts +1 -1
  114. package/dist/esm/components/QuillCard.d.ts.map +1 -1
  115. package/dist/esm/components/QuillCard.js +1 -1
  116. package/dist/esm/components/QuillSelect.d.ts +1 -1
  117. package/dist/esm/components/QuillSelect.d.ts.map +1 -1
  118. package/dist/esm/components/QuillSelect.js +5 -3
  119. package/dist/esm/components/QuillTable.d.ts +2 -1
  120. package/dist/esm/components/QuillTable.d.ts.map +1 -1
  121. package/dist/esm/components/QuillTable.js +5 -5
  122. package/dist/esm/components/ReportBuilder/AddColumnPopover.d.ts.map +1 -1
  123. package/dist/esm/components/ReportBuilder/AddColumnPopover.js +2 -9
  124. package/dist/esm/components/ReportBuilder/AddSortPopover.d.ts.map +1 -1
  125. package/dist/esm/components/ReportBuilder/AddSortPopover.js +2 -2
  126. package/dist/esm/components/ReportBuilder/ui.d.ts.map +1 -1
  127. package/dist/esm/components/ReportBuilder/ui.js +4 -16
  128. package/dist/esm/components/UiComponents.d.ts +9 -9
  129. package/dist/esm/components/UiComponents.d.ts.map +1 -1
  130. package/dist/esm/components/UiComponents.js +32 -17
  131. package/dist/esm/internals/ReportBuilder/PivotList.d.ts +1 -1
  132. package/dist/esm/internals/ReportBuilder/PivotList.d.ts.map +1 -1
  133. package/dist/esm/internals/ReportBuilder/PivotList.js +3 -3
  134. package/dist/esm/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
  135. package/dist/esm/internals/ReportBuilder/PivotModal.js +25 -24
  136. package/dist/esm/utils/color.d.ts +6 -0
  137. package/dist/esm/utils/color.d.ts.map +1 -1
  138. package/dist/esm/utils/color.js +96 -0
  139. package/dist/esm/utils/valueFormatter.d.ts.map +1 -1
  140. package/dist/esm/utils/valueFormatter.js +32 -2
  141. package/package.json +1 -1
@@ -26,6 +26,7 @@ import { AddLimitPopover, LimitSentence, } from './components/ReportBuilder/AddL
26
26
  import { updateFirstChildWidth } from './utils/width';
27
27
  import { QuillSelectComponent } from './components/QuillSelect';
28
28
  import { QuillCard } from './components/QuillCard';
29
+ import { convertPostgresColumn } from './SQLEditor';
29
30
  /**
30
31
  * Quill Report Builder
31
32
  *
@@ -57,7 +58,7 @@ import { QuillCard } from './components/QuillCard';
57
58
  * ### Report Builder API
58
59
  * @see https://docs.quillsql.com/components/report-builder
59
60
  */
60
- export default function ReportBuilder({ initialTableName = '', onSubmitChartBuilder = () => void null, destinationDashboard = undefined, organizationName = '', ButtonComponent = MemoizedButton, SecondaryButtonComponent = MemoizedSecondaryButton, DeleteButtonComponent = MemoizedDeleteButton, ModalComponent = MemoizedModal, TextInputComponent = QuillTextInput, SelectComponent = QuillSelectComponent, TableComponent = QuillTableComponent, PopoverComponent = MemoizedPopover, TabsComponent = QuillTabs, CheckboxComponent = MemoizedCheckbox, SidebarComponent = QuillSidebar, ContainerComponent = CustomContainer, SelectColumnComponent = QuillSelectColumn, DraggableColumnComponent = QuillDraggableColumn, SidebarHeadingComponent = QuillSidebarHeading, FilterPopoverComponent = QuillFilterPopover, SortPopoverComponent = QuillSortPopover, LimitPopoverComponent = QuillLimitPopover, CardComponent = QuillCard, LabelComponent = MemoizedLabel, HeaderComponent = MemoizedHeader, TextComponent = MemoizedText, isAdminEnabled = false, isAIEnabled = true, containerStyle, }) {
61
+ export default function ReportBuilder({ initialTableName = '', onSubmitChartBuilder = () => void null, destinationDashboard = undefined, organizationName = '', ButtonComponent = MemoizedButton, SecondaryButtonComponent = MemoizedSecondaryButton, DeleteButtonComponent = MemoizedDeleteButton, ModalComponent = MemoizedModal, TextInputComponent = QuillTextInput, SelectComponent = QuillSelectComponent, TableComponent = QuillTableComponent, PopoverComponent = MemoizedPopover, TabsComponent = QuillTabs, CheckboxComponent = MemoizedCheckbox, SidebarComponent = QuillSidebar, ContainerComponent = CustomContainer, SelectColumnComponent = QuillSelectColumn, DraggableColumnComponent = QuillDraggableColumn, SidebarHeadingComponent = QuillSidebarHeading, FilterPopoverComponent = QuillFilterPopover, SortPopoverComponent = QuillSortPopover, LimitPopoverComponent = QuillLimitPopover, CardComponent = QuillCard, LabelComponent = MemoizedLabel, HeaderComponent = MemoizedHeader, TextComponent = MemoizedText, isAdminEnabled = false, isAIEnabled = true, showChartBuilderTableFormatOptions = true, containerStyle, className, }) {
61
62
  const [aiPrompt, setAiPrompt] = useState('');
62
63
  const [errorMessage, setErrorMessage] = useState('');
63
64
  const [baseAst, setBaseAst] = useState(null);
@@ -70,11 +71,12 @@ export default function ReportBuilder({ initialTableName = '', onSubmitChartBuil
70
71
  const [activeEditItem, setActiveEditItem] = useState(null);
71
72
  const [activePath, setActivePath] = useState(null);
72
73
  const [openPopover, setOpenPopover] = useState(null);
73
- const [loading, setLoading] = useState(false);
74
+ const [loading, setLoading] = useState(!!initialTableName);
74
75
  const [loadingSchema, setLoadingSchema] = useState(false);
75
76
  const [isChartBuilderOpen, setIsChartBuilderOpen] = useState(false);
76
77
  const [isPending, setIsPending] = useState(false);
77
78
  const [isCopying, setIsCopying] = useState(false);
79
+ const [dataDisplayed, setDataDisplayed] = useState(false);
78
80
  const [rows, setRows] = useState([]);
79
81
  const [fields, setFields] = useState([]);
80
82
  const [topLevelBinaryOperator, setTopLevelBinaryOperator] = useState('AND');
@@ -88,7 +90,7 @@ export default function ReportBuilder({ initialTableName = '', onSubmitChartBuil
88
90
  const [showPivotPopover, setShowPivotPopover] = useState(false);
89
91
  const [isEdittingPivot, setIsEdittingPivot] = useState(false);
90
92
  const [selectedPivotIndex, setSelectedPivotIndex] = useState(-1);
91
- const [initialLoad, setInitialLoad] = useState(true);
93
+ const [initialLoad, setInitialLoad] = useState(!!initialTableName);
92
94
  const [currentTable, setCurrentTable] = useState(initialTableName || '');
93
95
  const parentRef = useRef(null);
94
96
  const askAIContainerRef = useRef(null);
@@ -132,7 +134,7 @@ export default function ReportBuilder({ initialTableName = '', onSubmitChartBuil
132
134
  * Transforms an array of column names into an array of columnInfo objects
133
135
  * with label, field, format, and fieldType keys.
134
136
  */
135
- const processColumnsForChartBuilder = (columns) => {
137
+ const processColumnsForPivotModal = (columns) => {
136
138
  return columns.map((col) => ({
137
139
  label: col,
138
140
  name: col,
@@ -144,6 +146,23 @@ export default function ReportBuilder({ initialTableName = '', onSubmitChartBuil
144
146
  .find((c) => c.name === col)?.fieldType || 'text',
145
147
  }));
146
148
  };
149
+ /**
150
+ * Transforms an array of column names into an array of columnInfo objects
151
+ * with label, field, format, and fieldType keys.
152
+ */
153
+ const processColumnsForChartBuilder = (columns) => {
154
+ return columns.map((col) => ({
155
+ label: col,
156
+ name: col,
157
+ displayName: snakeCaseToTitleCase(col),
158
+ field: col,
159
+ format: convertPostgresColumn(fields.find((f) => f.name === col)).format ||
160
+ 'string',
161
+ fieldType: schemaTables
162
+ .flatMap((t) => t.columns)
163
+ .find((c) => c.name === col)?.fieldType || 'text',
164
+ }));
165
+ };
147
166
  const clearAllState = () => {
148
167
  // We're trying to not block the main thread while resetting all the state.
149
168
  // This shouldn't be an issue since the dispatches shouldn't block, but
@@ -161,6 +180,7 @@ export default function ReportBuilder({ initialTableName = '', onSubmitChartBuil
161
180
  setOpenPopover(null);
162
181
  setLoading(false);
163
182
  setIsPending(false);
183
+ setDataDisplayed(false);
164
184
  setRows([]);
165
185
  setFields([]);
166
186
  setTopLevelBinaryOperator('AND');
@@ -173,8 +193,10 @@ export default function ReportBuilder({ initialTableName = '', onSubmitChartBuil
173
193
  }, 0);
174
194
  };
175
195
  useEffect(() => {
176
- clearAllState();
177
- }, [client]);
196
+ if (!initialLoad && client.publicKey) {
197
+ clearAllState();
198
+ }
199
+ }, [client.publicKey]);
178
200
  useEffect(() => {
179
201
  if (activePath !== null) {
180
202
  // update the modal with the new subtree
@@ -379,6 +401,7 @@ export default function ReportBuilder({ initialTableName = '', onSubmitChartBuil
379
401
  await loadTable(tables);
380
402
  }
381
403
  setLoadingSchema(false);
404
+ setInitialLoad(false);
382
405
  }
383
406
  catch (error) {
384
407
  console.error(error);
@@ -386,7 +409,6 @@ export default function ReportBuilder({ initialTableName = '', onSubmitChartBuil
386
409
  };
387
410
  if (schemaTables.length === 0) {
388
411
  fetchSchema();
389
- setInitialLoad(false);
390
412
  }
391
413
  }, [schemaTables, initialTableName]);
392
414
  const updateFormData = (updates, { isDeletion = false, isInsertion = false, isReplaceSubtree = false, isAddVariant = false, isDeleteVariant = false, topLevelBinOp = 'OR', isCondition = undefined, }) => {
@@ -826,7 +848,7 @@ export default function ReportBuilder({ initialTableName = '', onSubmitChartBuil
826
848
  }, options: getAllPossibleColumns().map((column) => ({
827
849
  label: snakeCaseToTitleCase(column.displayName),
828
850
  value: column.name,
829
- })) }), _jsx(SelectComponent, { value: dateFilterType, onChange: (event) => {
851
+ })), width: 200 }), _jsx(SelectComponent, { value: dateFilterType, onChange: (event) => {
830
852
  if (event.target.value === dateFilterType)
831
853
  return null;
832
854
  let newSubtree = {};
@@ -864,7 +886,7 @@ export default function ReportBuilder({ initialTableName = '', onSubmitChartBuil
864
886
  { label: 'in the previous', value: 'in the previous' },
865
887
  { label: 'in the current', value: 'in the current' },
866
888
  { label: 'equals', value: 'equals' },
867
- ] }), !['in the current', 'equals'].includes(dateFilterType) && (_jsx(TextInputComponent, { id: "date_filter_interval_count", value: intervalCount?.toString() ?? '', width: 70, onChange: (e) => {
889
+ ], width: 200 }), !['in the current', 'equals'].includes(dateFilterType) && (_jsx(TextInputComponent, { id: "date_filter_interval_count", value: intervalCount?.toString() ?? '', width: 70, onChange: (e) => {
868
890
  if (Number.isNaN(parseFloat(e.target.value || '0'))) {
869
891
  alert('Please input a number.');
870
892
  return;
@@ -910,7 +932,7 @@ export default function ReportBuilder({ initialTableName = '', onSubmitChartBuil
910
932
  { label: `week${isPlural}`, value: 'week' },
911
933
  { label: `day${isPlural}`, value: 'day' },
912
934
  { label: `hour${isPlural}`, value: 'hour' },
913
- ] }), dateFilterType === 'equals' && (_jsx(TextInputComponent, { id: "date_filter_equals_raw_date", value: rawDateStringEquals, width: 120, onChange: (e) => {
935
+ ], width: 200 }), dateFilterType === 'equals' && (_jsx(TextInputComponent, { id: "date_filter_equals_raw_date", value: rawDateStringEquals, width: 120, onChange: (e) => {
914
936
  handleChangeText([
915
937
  {
916
938
  value: e.target.value,
@@ -947,7 +969,7 @@ export default function ReportBuilder({ initialTableName = '', onSubmitChartBuil
947
969
  newSubtree.left.args.value[0].column = event.target.value;
948
970
  handleReplaceSubtree(keyPrefix, newSubtree);
949
971
  }
950
- }, options: options }), _jsx(SelectComponent, { value: 'IN_THE_LAST', onChange: (event) => {
972
+ }, options: options, width: 200 }), _jsx(SelectComponent, { value: 'IN_THE_LAST', onChange: (event) => {
951
973
  handleOperatorChange(event.target.value, node, keyPrefix, dateColumn);
952
974
  }, options: [
953
975
  { label: 'in the last', value: 'IN_THE_LAST' },
@@ -957,7 +979,7 @@ export default function ReportBuilder({ initialTableName = '', onSubmitChartBuil
957
979
  { label: 'is not null', value: 'IS NOT' },
958
980
  { label: 'is null', value: 'IS' },
959
981
  // { label: 'equals', value: 'equals' },
960
- ] }), _jsx(TextInputComponent, { id: 'date_window_interval_count', value: node.right.args.value[1].expr.value, width: 120, onChange: (e) => {
982
+ ], width: 200 }), _jsx(TextInputComponent, { id: 'date_window_interval_count', value: node.right.args.value[1].expr.value, width: 120, onChange: (e) => {
961
983
  handleChange([
962
984
  {
963
985
  value: e.target.value,
@@ -974,7 +996,7 @@ export default function ReportBuilder({ initialTableName = '', onSubmitChartBuil
974
996
  { label: `month${plural}`, value: '* 30 DAY' },
975
997
  { label: `week${plural}`, value: '* 7 DAY' },
976
998
  { label: `day${plural}`, value: 'DAY' },
977
- ] }) })] }));
999
+ ], width: 200 }) })] }));
978
1000
  }
979
1001
  else if (isTheCurrentInterval(node, client.databaseType)) {
980
1002
  const { dateFilterType } = getDateFilterInfo(node);
@@ -1003,7 +1025,7 @@ export default function ReportBuilder({ initialTableName = '', onSubmitChartBuil
1003
1025
  newSubtree.left.args.value[0].column = event.target.value;
1004
1026
  handleReplaceSubtree(keyPrefix, newSubtree);
1005
1027
  }
1006
- }, options: options }), _jsx(SelectComponent, { value: 'IN_THE_CURRENT', onChange: (event) => {
1028
+ }, options: options, width: 200 }), _jsx(SelectComponent, { value: 'IN_THE_CURRENT', onChange: (event) => {
1007
1029
  handleOperatorChange(event.target.value, node, keyPrefix, node.left.column);
1008
1030
  }, options: [
1009
1031
  { label: 'in the last', value: 'IN_THE_LAST' },
@@ -1013,7 +1035,7 @@ export default function ReportBuilder({ initialTableName = '', onSubmitChartBuil
1013
1035
  { label: 'is not null', value: 'IS NOT' },
1014
1036
  { label: 'is null', value: 'IS' },
1015
1037
  // { label: 'equals', value: 'equals' },
1016
- ] }), _jsx(SelectComponent, { value: node.left.args.value[1].column, onChange: (event) => {
1038
+ ], width: 200 }), _jsx(SelectComponent, { value: node.left.args.value[1].column, onChange: (event) => {
1017
1039
  handleChange([
1018
1040
  {
1019
1041
  value: event.target.value,
@@ -1029,7 +1051,7 @@ export default function ReportBuilder({ initialTableName = '', onSubmitChartBuil
1029
1051
  { label: `quarter`, value: 'QUARTER' },
1030
1052
  { label: `month`, value: 'MONTH' },
1031
1053
  { label: `week`, value: 'WEEK' },
1032
- ] })] }));
1054
+ ], width: 200 })] }));
1033
1055
  }
1034
1056
  else if (isThePreviousInterval(node, client.databaseType)) {
1035
1057
  const options = getAllPossibleColumns().map((column) => ({
@@ -1057,7 +1079,7 @@ export default function ReportBuilder({ initialTableName = '', onSubmitChartBuil
1057
1079
  newSubtree.left.args.value[0].column = event.target.value;
1058
1080
  handleReplaceSubtree(keyPrefix, newSubtree);
1059
1081
  }
1060
- }, options: options }), _jsx(SelectComponent, { value: 'IN_THE_PREVIOUS', onChange: (event) => {
1082
+ }, options: options, width: 200 }), _jsx(SelectComponent, { value: 'IN_THE_PREVIOUS', onChange: (event) => {
1061
1083
  handleOperatorChange(event.target.value, node, keyPrefix, node.left.column);
1062
1084
  }, options: [
1063
1085
  { label: 'in the last', value: 'IN_THE_LAST' },
@@ -1067,7 +1089,7 @@ export default function ReportBuilder({ initialTableName = '', onSubmitChartBuil
1067
1089
  { label: 'is not null', value: 'IS NOT' },
1068
1090
  { label: 'is null', value: 'IS' },
1069
1091
  // { label: 'equals', value: 'equals' },
1070
- ] }), _jsx(SelectComponent, { value: node.left.args.value[1].column, onChange: (event) => {
1092
+ ], width: 200 }), _jsx(SelectComponent, { value: node.left.args.value[1].column, onChange: (event) => {
1071
1093
  const dayConversion = {
1072
1094
  YEAR: 365,
1073
1095
  QUARTER: 90,
@@ -1093,7 +1115,7 @@ export default function ReportBuilder({ initialTableName = '', onSubmitChartBuil
1093
1115
  { label: `quarter`, value: 'QUARTER' },
1094
1116
  { label: `month`, value: 'MONTH' },
1095
1117
  { label: `week`, value: 'WEEK' },
1096
- ] })] }));
1118
+ ], width: 200 })] }));
1097
1119
  }
1098
1120
  else if (isEquals(node, client.databaseType)) {
1099
1121
  const options = getAllPossibleColumns().map((column) => ({
@@ -1121,7 +1143,7 @@ export default function ReportBuilder({ initialTableName = '', onSubmitChartBuil
1121
1143
  newSubtree.left.args.value[0].column = event.target.value;
1122
1144
  handleReplaceSubtree(keyPrefix, newSubtree);
1123
1145
  }
1124
- }, options: options }), _jsx(SelectComponent, { value: 'EQUALS', onChange: (event) => {
1146
+ }, options: options, width: 200 }), _jsx(SelectComponent, { value: 'EQUALS', onChange: (event) => {
1125
1147
  handleOperatorChange(event.target.value, node, keyPrefix, node.left.column);
1126
1148
  }, options: [
1127
1149
  { label: 'in the last', value: 'IN_THE_LAST' },
@@ -1131,7 +1153,7 @@ export default function ReportBuilder({ initialTableName = '', onSubmitChartBuil
1131
1153
  { label: 'is not null', value: 'IS NOT' },
1132
1154
  { label: 'is null', value: 'IS' },
1133
1155
  // { label: 'equals', value: 'equals' },
1134
- ] }), _jsx(SelectComponent, { value: node.right.args.value[1].column, onChange: (event) => {
1156
+ ], width: 200 }), _jsx(SelectComponent, { value: node.right.args.value[1].column, onChange: (event) => {
1135
1157
  handleChange([
1136
1158
  {
1137
1159
  value: event.target.value,
@@ -1147,7 +1169,7 @@ export default function ReportBuilder({ initialTableName = '', onSubmitChartBuil
1147
1169
  { label: `quarter`, value: 'QUARTER' },
1148
1170
  { label: `month`, value: 'MONTH' },
1149
1171
  { label: `week`, value: 'WEEK' },
1150
- ] }), _jsx(TextInputComponent, { id: 'quoted_string', value: node.right.args.value[0].value, width: 120, onChange: (e) => handleChange([
1172
+ ], width: 200 }), _jsx(TextInputComponent, { id: 'quoted_string', value: node.right.args.value[0].value, width: 120, onChange: (e) => handleChange([
1151
1173
  {
1152
1174
  value: e.target.value,
1153
1175
  path: 'right.args.value||0.value',
@@ -1233,30 +1255,27 @@ export default function ReportBuilder({ initialTableName = '', onSubmitChartBuil
1233
1255
  newSubtree.left.args.value[0].column = event.target.value;
1234
1256
  handleReplaceSubtree(keyPrefix, newSubtree);
1235
1257
  }
1236
- }, options: options }), operatorOptions.length > 0 && (_jsx(SelectComponent, { value: node.operator, onChange: (event) => {
1258
+ }, options: options, width: 200 }), operatorOptions.length > 0 && (_jsx(SelectComponent, { value: node.operator, onChange: (event) => {
1237
1259
  handleOperatorChange(event.target.value, node, keyPrefix, leftChildValue);
1238
- }, options: operatorOptions })), node.right &&
1260
+ }, options: operatorOptions, width: 200 })), node.right &&
1239
1261
  node.right.type !== 'expr_list' &&
1240
1262
  renderNode(node.right, keyPrefix + 'right.')] }, keyPrefix), node.right && node.right.type === 'expr_list' && (_jsx("div", { style: {
1241
1263
  display: 'grid',
1242
1264
  gridTemplateColumns: 'repeat(2, 1fr)',
1243
1265
  gap: 12,
1244
1266
  }, children: uniqueValues[table] &&
1245
- Object.keys(uniqueValues[table][leftChildValue] ?? {}).map((key) => (_jsxs("label", { style: { display: 'flex', gap: 4 }, children: [_jsx(CheckboxComponent, { isChecked: uniqueValues[table][leftChildValue][key], onChange: (event) => {
1246
- const newValues = deepCopy(uniqueValues);
1247
- newValues[table][leftChildValue][key] =
1248
- event.target.checked;
1249
- setUniqueValues(newValues);
1250
- if (event.target.checked) {
1251
- handleInsertVariant(keyPrefix + 'right.' + 'value', key);
1252
- }
1253
- else {
1254
- handleDeleteVariant(keyPrefix + 'right.' + 'value', key);
1255
- }
1256
- } }), _jsx("span", { style: {
1257
- fontFamily: theme.fontFamily,
1258
- margin: 'auto 0',
1259
- }, children: key })] }, key))) }, keyPrefix + 'right.'))] }));
1267
+ Object.keys(uniqueValues[table][leftChildValue] ?? {}).map((key) => (_jsx(CheckboxComponent, { label: key, isChecked: uniqueValues[table][leftChildValue][key], onChange: (event) => {
1268
+ const newValues = deepCopy(uniqueValues);
1269
+ newValues[table][leftChildValue][key] =
1270
+ event.target.checked;
1271
+ setUniqueValues(newValues);
1272
+ if (event.target.checked) {
1273
+ handleInsertVariant(keyPrefix + 'right.' + 'value', key);
1274
+ }
1275
+ else {
1276
+ handleDeleteVariant(keyPrefix + 'right.' + 'value', key);
1277
+ }
1278
+ } }))) }, keyPrefix + 'right.'))] }));
1260
1279
  }
1261
1280
  else {
1262
1281
  const columnName = node.left.column;
@@ -1307,7 +1326,7 @@ export default function ReportBuilder({ initialTableName = '', onSubmitChartBuil
1307
1326
  : []),
1308
1327
  // { label: `minus`, value: "-" },
1309
1328
  // { label: `plus`, value: "+" },
1310
- ] }), node.right && renderNode(node.right, keyPrefix + 'right.')] }, keyPrefix));
1329
+ ], width: 200 }), node.right && renderNode(node.right, keyPrefix + 'right.')] }, keyPrefix));
1311
1330
  }
1312
1331
  case 'column_ref': {
1313
1332
  const options = getAllPossibleColumns().map((column) => ({
@@ -1318,7 +1337,7 @@ export default function ReportBuilder({ initialTableName = '', onSubmitChartBuil
1318
1337
  handleChange([
1319
1338
  { value: event.target.value, path: keyPrefix + 'column' },
1320
1339
  ]);
1321
- }, options: options }));
1340
+ }, options: options, width: 200 }));
1322
1341
  }
1323
1342
  case 'expr_list': {
1324
1343
  const len = node.value.length;
@@ -1631,6 +1650,7 @@ export default function ReportBuilder({ initialTableName = '', onSubmitChartBuil
1631
1650
  }
1632
1651
  finally {
1633
1652
  setLoading(false);
1653
+ setDataDisplayed(true);
1634
1654
  }
1635
1655
  }
1636
1656
  };
@@ -1908,6 +1928,7 @@ export default function ReportBuilder({ initialTableName = '', onSubmitChartBuil
1908
1928
  }
1909
1929
  finally {
1910
1930
  setLoading(false);
1931
+ setDataDisplayed(true);
1911
1932
  setAiPrompt('');
1912
1933
  }
1913
1934
  };
@@ -2019,7 +2040,7 @@ export default function ReportBuilder({ initialTableName = '', onSubmitChartBuil
2019
2040
  flexDirection: 'row',
2020
2041
  height: '100%',
2021
2042
  ...containerStyle,
2022
- }, ref: parentRef, children: [_jsxs(SidebarComponent, { children: [_jsx(SidebarHeadingComponent, { label: "Columns" }), _jsx("div", { style: { height: 4, width: '100%' } }), _jsx(DraggableColumns, {}), _jsx(SecondaryButtonComponent, { onClick: () => {
2043
+ }, className: className, ref: parentRef, children: [_jsxs(SidebarComponent, { children: [_jsx(SidebarHeadingComponent, { label: "Columns" }), _jsx("div", { style: { height: 4, width: '100%' } }), _jsx(DraggableColumns, {}), _jsx(SecondaryButtonComponent, { onClick: () => {
2023
2044
  if (loadingSchema)
2024
2045
  return;
2025
2046
  if (!openPopover) {
@@ -2142,7 +2163,7 @@ export default function ReportBuilder({ initialTableName = '', onSubmitChartBuil
2142
2163
  setOpenPopover(null);
2143
2164
  clearCheckboxes();
2144
2165
  }
2145
- } }) })] }))] }), _jsx("div", { style: { height: 28, width: '100%' } }), _jsx(SidebarHeadingComponent, { label: "Pivot" }), _jsx("div", { style: { height: 4, width: '100%' } }), _jsx(PivotModal, { pivotRowField: pivotRowField, setPivotRowField: setPivotRowField, pivotColumnField: pivotColumnField, setPivotColumnField: setPivotColumnField, pivotValueField: pivotValueField, setPivotValueField: setPivotValueField, pivotAggregation: pivotAggregation, setPivotAggregation: setPivotAggregation, createdPivots: createdPivots, setCreatedPivots: setCreatedPivots, recommendedPivots: recommendedPivots, setRecommendedPivots: setRecommendedPivots, popUpTitle: pivotPopUpTitle, setPopUpTitle: setPivotPopUpTitle, selectedTable: initialTableName, CardComponent: CardComponent, SelectComponent: SelectComponent, ButtonComponent: ButtonComponent, PopoverComponent: PopoverComponent, TextComponent: TextComponent, isOpen: showPivotPopover, setIsOpen: setShowPivotPopover, showUpdatePivot: isEdittingPivot, setShowUpdatePivot: setIsEdittingPivot, parentRef: parentRef, data: rows, columns: processColumnsForChartBuilder(Object.keys(rows[0] ?? {})), triggerButtonText: 'Add pivot', selectedPivotIndex: selectedPivotIndex, setSelectedPivotIndex: setSelectedPivotIndex, removePivot: () => {
2166
+ } }) })] }))] }), _jsx("div", { style: { height: 28, width: '100%' } }), _jsx(SidebarHeadingComponent, { label: "Pivot" }), _jsx("div", { style: { height: 4, width: '100%' } }), _jsx(PivotModal, { pivotRowField: pivotRowField, setPivotRowField: setPivotRowField, pivotColumnField: pivotColumnField, setPivotColumnField: setPivotColumnField, pivotValueField: pivotValueField, setPivotValueField: setPivotValueField, pivotAggregation: pivotAggregation, setPivotAggregation: setPivotAggregation, createdPivots: createdPivots, setCreatedPivots: setCreatedPivots, recommendedPivots: recommendedPivots, setRecommendedPivots: setRecommendedPivots, popUpTitle: pivotPopUpTitle, setPopUpTitle: setPivotPopUpTitle, selectedTable: initialTableName, CardComponent: CardComponent, SelectComponent: SelectComponent, ButtonComponent: ButtonComponent, PopoverComponent: PopoverComponent, TextComponent: TextComponent, isOpen: showPivotPopover, setIsOpen: setShowPivotPopover, showUpdatePivot: isEdittingPivot, setShowUpdatePivot: setIsEdittingPivot, parentRef: parentRef, data: rows, columns: processColumnsForPivotModal(Object.keys(rows[0] ?? {})), triggerButtonText: 'Add pivot', selectedPivotIndex: selectedPivotIndex, setSelectedPivotIndex: setSelectedPivotIndex, removePivot: () => {
2146
2167
  setPivot(null);
2147
2168
  setPivotData(null);
2148
2169
  },
@@ -2283,11 +2304,13 @@ export default function ReportBuilder({ initialTableName = '', onSubmitChartBuil
2283
2304
  flexDirection: 'row',
2284
2305
  gap: 12,
2285
2306
  padding: 1,
2286
- }, children: [_jsx(TextInputComponent, { id: "ask_ai_loading_bar", placeholder: baseAst ? 'Ask a follow-up question...' : 'Ask a question...', width: askAILoadingContainerWidth, value: aiPrompt, onChange: () => { } }), _jsx(ButtonComponent, { onClick: () => { }, label: "Ask AI" }), baseAst && (_jsx(SecondaryButtonComponent, { onClick: clearAllState, label: "New report" }))] })), _jsxs(_Fragment, { children: [_jsx(TableComponent, { isLoading: true, rows: [], columns: [] }), _jsxs("div", { style: {
2307
+ }, children: [_jsx(TextInputComponent, { id: "ask_ai_loading_bar", placeholder: baseAst || initialLoad
2308
+ ? 'Ask a follow-up question...'
2309
+ : 'Ask a question...', width: askAILoadingContainerWidth, value: aiPrompt, onChange: () => { } }), _jsx(ButtonComponent, { onClick: () => { }, label: "Ask AI" }), ((baseAst && dataDisplayed) || initialLoad) && (_jsx(SecondaryButtonComponent, { onClick: () => { }, label: "New report" }))] })), _jsxs(_Fragment, { children: [_jsx(TableComponent, { isLoading: true, rows: [], columns: [] }), baseAst && dataDisplayed && (_jsxs("div", { style: {
2287
2310
  display: 'flex',
2288
2311
  flexDirection: 'row',
2289
2312
  gap: '12px',
2290
- }, children: [_jsx("div", { style: { width: '100%' } }), _jsx(SecondaryButtonComponent, { onClick: () => copyToClipboard(activeQuery), label: isCopying ? '✅ Copied' : 'Copy SQL' }), _jsx(ButtonComponent, { label: 'Add to dashboard', onClick: () => { } })] })] })] }), _jsx("style", { children: `body{margin:0;}` })] }));
2313
+ }, children: [_jsx("div", { style: { width: '100%' } }), _jsx(SecondaryButtonComponent, { onClick: () => copyToClipboard(activeQuery), label: isCopying ? '✅ Copied' : 'Copy SQL' }), _jsx(ButtonComponent, { label: 'Add to dashboard', onClick: () => { } })] }))] })] }), _jsx("style", { children: `body{margin:0;}` })] }));
2291
2314
  }
2292
2315
  return (_jsxs("div", { ref: parentRef, style: {
2293
2316
  display: 'flex',
@@ -2296,7 +2319,9 @@ export default function ReportBuilder({ initialTableName = '', onSubmitChartBuil
2296
2319
  overflowY: 'auto',
2297
2320
  boxSizing: 'border-box',
2298
2321
  ...containerStyle,
2299
- }, children: [_jsxs(SidebarComponent, { children: [_jsx(SidebarHeadingComponent, { label: "Columns" }), _jsx("div", { style: { height: 4, width: '100%' } }), _jsx(DraggableColumns, {}), _jsx(SecondaryButtonComponent, { onClick: () => {
2322
+ }, className: className, children: [_jsxs(SidebarComponent, { children: [_jsx(SidebarHeadingComponent, { label: "Columns" }), _jsx("div", { style: { height: 4, width: '100%' } }), _jsx(DraggableColumns, {}), _jsx(SecondaryButtonComponent, { onClick: () => {
2323
+ if (loadingSchema)
2324
+ return;
2300
2325
  if (!orderedColumnNames) {
2301
2326
  return;
2302
2327
  }
@@ -2423,7 +2448,7 @@ export default function ReportBuilder({ initialTableName = '', onSubmitChartBuil
2423
2448
  setOpenPopover(null);
2424
2449
  clearCheckboxes();
2425
2450
  }
2426
- } }) })] }))] }), _jsx("div", { style: { height: 28, width: '100%' } }), _jsx(SidebarHeadingComponent, { label: "Pivot" }), _jsx("div", { style: { height: 4, width: '100%' } }), _jsx(PivotModal, { pivotRowField: pivotRowField, setPivotRowField: setPivotRowField, pivotColumnField: pivotColumnField, setPivotColumnField: setPivotColumnField, pivotValueField: pivotValueField, setPivotValueField: setPivotValueField, pivotAggregation: pivotAggregation, setPivotAggregation: setPivotAggregation, createdPivots: createdPivots, setCreatedPivots: setCreatedPivots, recommendedPivots: recommendedPivots, setRecommendedPivots: setRecommendedPivots, popUpTitle: pivotPopUpTitle, setPopUpTitle: setPivotPopUpTitle, selectedTable: initialTableName, SelectComponent: SelectComponent, ButtonComponent: ButtonComponent, CardComponent: CardComponent, SecondaryButtonComponent: SecondaryButtonComponent, PopoverComponent: PopoverComponent, TextComponent: TextComponent, isOpen: showPivotPopover, setIsOpen: setShowPivotPopover, showUpdatePivot: isEdittingPivot, setShowUpdatePivot: setIsEdittingPivot, parentRef: parentRef, data: rows, columns: processColumnsForChartBuilder(Object.keys(rows[0] ?? {})), triggerButtonText: 'Add pivot', selectedPivotIndex: selectedPivotIndex, setSelectedPivotIndex: setSelectedPivotIndex, removePivot: () => {
2451
+ } }) })] }))] }), _jsx("div", { style: { height: 28, width: '100%' } }), _jsx(SidebarHeadingComponent, { label: "Pivot" }), _jsx("div", { style: { height: 4, width: '100%' } }), _jsx(PivotModal, { pivotRowField: pivotRowField, setPivotRowField: setPivotRowField, pivotColumnField: pivotColumnField, setPivotColumnField: setPivotColumnField, pivotValueField: pivotValueField, setPivotValueField: setPivotValueField, pivotAggregation: pivotAggregation, setPivotAggregation: setPivotAggregation, createdPivots: createdPivots, setCreatedPivots: setCreatedPivots, recommendedPivots: recommendedPivots, setRecommendedPivots: setRecommendedPivots, popUpTitle: pivotPopUpTitle, setPopUpTitle: setPivotPopUpTitle, selectedTable: initialTableName, SelectComponent: SelectComponent, ButtonComponent: ButtonComponent, CardComponent: CardComponent, SecondaryButtonComponent: SecondaryButtonComponent, PopoverComponent: PopoverComponent, TextComponent: TextComponent, isOpen: showPivotPopover, setIsOpen: setShowPivotPopover, showUpdatePivot: isEdittingPivot, setShowUpdatePivot: setIsEdittingPivot, parentRef: parentRef, data: rows, columns: processColumnsForPivotModal(Object.keys(rows[0] ?? {})), triggerButtonText: 'Add pivot', selectedPivotIndex: selectedPivotIndex, setSelectedPivotIndex: setSelectedPivotIndex, removePivot: () => {
2427
2452
  setPivot(null);
2428
2453
  setPivotData(null);
2429
2454
  }, selectPivot: (pivot) => {
@@ -2625,7 +2650,7 @@ export default function ReportBuilder({ initialTableName = '', onSubmitChartBuil
2625
2650
  flexDirection: 'row',
2626
2651
  gap: 12,
2627
2652
  padding: 1,
2628
- }, children: [_jsx(TextInputComponent, { id: "ask_ai_input_bar", value: aiPrompt, width: askAIInputWidth, onChange: (e) => setAiPrompt(e.target.value), placeholder: baseAst ? 'Ask a follow-up question...' : 'Ask a question...' }), _jsx(ButtonComponent, { onClick: handleAsk, label: 'Ask AI' }), baseAst && (_jsx(SecondaryButtonComponent, { label: 'New report', onClick: clearAllState }))] })), baseAst && (_jsx(TableComponent, { isLoading: loading && errorMessage.length === 0, rows: applyFormatting({
2653
+ }, children: [_jsx(TextInputComponent, { id: "ask_ai_input_bar", value: aiPrompt, width: askAIInputWidth, onChange: (e) => setAiPrompt(e.target.value), placeholder: baseAst ? 'Ask a follow-up question...' : 'Ask a question...' }), _jsx(ButtonComponent, { onClick: handleAsk, label: 'Ask AI' }), ((baseAst && dataDisplayed) || initialLoad) && (_jsx(SecondaryButtonComponent, { label: 'New report', onClick: clearAllState }))] })), baseAst && (_jsx(TableComponent, { isLoading: loading && errorMessage.length === 0, rows: applyFormatting({
2629
2654
  rows: pivotData?.rows || rows,
2630
2655
  fields: pivotData?.fields || fields,
2631
2656
  }, baseAst?.columns ?? []), columns: pivot
@@ -2641,7 +2666,7 @@ export default function ReportBuilder({ initialTableName = '', onSubmitChartBuil
2641
2666
  fontSize: 14,
2642
2667
  padding: '12px',
2643
2668
  whiteSpace: 'nowrap',
2644
- }, children: errorMessage })), _jsx("div", { style: { width: '100%' } }), baseAst && (_jsxs(_Fragment, { children: [_jsx(SecondaryButtonComponent, { label: isCopying ? '✅ Copied' : 'Copy SQL', onClick: () => copyToClipboard(activeQuery) }), _jsx(ButtonComponent, { onClick: () => {
2669
+ }, children: errorMessage })), _jsx("div", { style: { width: '100%' } }), baseAst && dataDisplayed && (_jsxs(_Fragment, { children: [_jsx(SecondaryButtonComponent, { label: isCopying ? '✅ Copied' : 'Copy SQL', onClick: () => copyToClipboard(activeQuery) }), _jsx(ButtonComponent, { onClick: () => {
2645
2670
  setIsChartBuilderOpen(true);
2646
- }, label: 'Add to dashboard' })] }))] })] }), _jsx("style", { children: `body{margin:0;}` }), _jsx(ChartBuilderWithModal, { rows: rows, columns: processColumnsForChartBuilder(Object.keys(rows[0] ?? {})), fields: fields, pivot: pivot, query: activeQuery, showTableFormatOptions: isAdminEnabled, showDateFieldOptions: isAdminEnabled, showAccessControlOptions: isAdminEnabled, title: "Add to dashboard", isOpen: isChartBuilderOpen, setIsOpen: setIsChartBuilderOpen, onAddToDashboardComplete: onSubmitChartBuilder, destinationDashboard: destinationDashboard, organizationName: organizationName, pivotData: pivotData, SelectComponent: SelectComponent, TextInputComponent: TextInputComponent, ButtonComponent: ButtonComponent, SecondaryButtonComponent: SecondaryButtonComponent, HeaderComponent: HeaderComponent, LabelComponent: LabelComponent, TextComponent: TextComponent, CardComponent: CardComponent, ModalComponent: ModalComponent, PopoverComponent: PopoverComponent, TableComponent: TableComponent, DeleteButtonComponent: DeleteButtonComponent })] }));
2671
+ }, label: 'Add to dashboard' })] }))] })] }), _jsx("style", { children: `body{margin:0;}` }), _jsx(ChartBuilderWithModal, { rows: rows, columns: processColumnsForChartBuilder(Object.keys(rows[0] ?? {})), fields: fields, pivot: pivot, query: activeQuery, showTableFormatOptions: showChartBuilderTableFormatOptions, showDateFieldOptions: isAdminEnabled, showAccessControlOptions: isAdminEnabled, title: "Add to dashboard", isHorizontalView: true, isOpen: isChartBuilderOpen, setIsOpen: setIsChartBuilderOpen, onAddToDashboardComplete: onSubmitChartBuilder, destinationDashboard: destinationDashboard, organizationName: organizationName, pivotData: pivotData, SelectComponent: SelectComponent, TextInputComponent: TextInputComponent, ButtonComponent: ButtonComponent, SecondaryButtonComponent: SecondaryButtonComponent, HeaderComponent: HeaderComponent, LabelComponent: LabelComponent, TextComponent: TextComponent, CardComponent: CardComponent, ModalComponent: ModalComponent, PopoverComponent: PopoverComponent, TableComponent: TableComponent, DeleteButtonComponent: DeleteButtonComponent })] }));
2647
2672
  }
@@ -146,6 +146,12 @@ export interface SQLEditorProps {
146
146
  * The name of the current organization.
147
147
  */
148
148
  organizationName?: string;
149
+ /**
150
+ * Styles the top-level container of the SQLEditor.
151
+ *
152
+ * This can be useful for TailwindCSS-style classname strings.
153
+ */
154
+ className?: string;
149
155
  /**
150
156
  * Styles the top-level container of the SQLEditor.
151
157
  */
@@ -176,7 +182,7 @@ export interface SQLEditorProps {
176
182
  * ### SQLEditor API
177
183
  * @see https://docs.quillsql.com/components/sql-editor
178
184
  */
179
- export default function SQLEditor({ ButtonComponent, SecondaryButtonComponent, TextInputComponent, TableComponent, isNewQueryEnabled, LoadingComponent, ModalComponent, CardComponent, defaultQuery, onChangeQuery, onChangeData, onChangeColumns, onChangeFields, isChartBuilderEnabled, showTableFormatOptions, showDateFieldOptions, showAccessControlOptions, destinationDashboard, chartBuilderTitle, chartBuilderButtonLabel, onAddToDashboardComplete, addToDashboardButtonLabel, dashboardItem, organizationName, isChartBuilderHorizontalView, containerStyle, }: SQLEditorProps): import("react/jsx-runtime").JSX.Element;
185
+ export default function SQLEditor({ ButtonComponent, SecondaryButtonComponent, TextInputComponent, TableComponent, isNewQueryEnabled, LoadingComponent, ModalComponent, CardComponent, defaultQuery, onChangeQuery, onChangeData, onChangeColumns, onChangeFields, isChartBuilderEnabled, showTableFormatOptions, showDateFieldOptions, showAccessControlOptions, destinationDashboard, chartBuilderTitle, chartBuilderButtonLabel, onAddToDashboardComplete, addToDashboardButtonLabel, dashboardItem, organizationName, isChartBuilderHorizontalView, containerStyle, className, }: SQLEditorProps): import("react/jsx-runtime").JSX.Element;
180
186
  export declare const SchemaListComponent: ({ schema, theme, loading, LoadingComponent, width, onClick, }: {
181
187
  schema: any;
182
188
  theme: any;
@@ -1 +1 @@
1
- {"version":3,"file":"SQLEditor.d.ts","sourceRoot":"","sources":["../../src/SQLEditor.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SQLEditor.d.ts","sourceRoot":"","sources":["../../src/SQLEditor.tsx"],"names":[],"mappings":"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"}
@@ -131,7 +131,7 @@ function setEditorTheme(editor, monaco) {
131
131
  * ### SQLEditor API
132
132
  * @see https://docs.quillsql.com/components/sql-editor
133
133
  */
134
- export default function SQLEditor({ ButtonComponent = MemoizedButton, SecondaryButtonComponent = MemoizedSecondaryButton, TextInputComponent = QuillTextInput, TableComponent = QuillTableComponent, isNewQueryEnabled = false, LoadingComponent, ModalComponent = MemoizedModal, CardComponent = QuillCard, defaultQuery, onChangeQuery, onChangeData, onChangeColumns, onChangeFields, isChartBuilderEnabled = false, showTableFormatOptions = false, showDateFieldOptions = false, showAccessControlOptions = false, destinationDashboard, chartBuilderTitle, chartBuilderButtonLabel, onAddToDashboardComplete, addToDashboardButtonLabel = 'Add to dashboard', dashboardItem = undefined, organizationName = undefined, isChartBuilderHorizontalView = true, containerStyle = { height: '100vh' }, }) {
134
+ export default function SQLEditor({ ButtonComponent = MemoizedButton, SecondaryButtonComponent = MemoizedSecondaryButton, TextInputComponent = QuillTextInput, TableComponent = QuillTableComponent, isNewQueryEnabled = false, LoadingComponent, ModalComponent = MemoizedModal, CardComponent = QuillCard, defaultQuery, onChangeQuery, onChangeData, onChangeColumns, onChangeFields, isChartBuilderEnabled = false, showTableFormatOptions = false, showDateFieldOptions = false, showAccessControlOptions = false, destinationDashboard, chartBuilderTitle, chartBuilderButtonLabel, onAddToDashboardComplete, addToDashboardButtonLabel = 'Add to dashboard', dashboardItem = undefined, organizationName = undefined, isChartBuilderHorizontalView = true, containerStyle = { height: '100vh' }, className, }) {
135
135
  const [sqlPrompt, setSqlPrompt] = useState('');
136
136
  const [client] = useContext(ClientContext);
137
137
  const [theme] = useContext(ThemeContext);
@@ -290,7 +290,7 @@ export default function SQLEditor({ ButtonComponent = MemoizedButton, SecondaryB
290
290
  onChangeQuery(query);
291
291
  }
292
292
  }, [query]);
293
- return (_jsxs("div", { style: containerStyle, children: [(!isChartBuilderHorizontalView ||
293
+ return (_jsxs("div", { style: { backgroundColor: theme.backgroundColor, ...containerStyle }, className: className, children: [(!isChartBuilderHorizontalView ||
294
294
  (isChartBuilderHorizontalView && !isChartBuilderOpen)) && (_jsx("div", { style: {
295
295
  height: '100%',
296
296
  display: 'flex',
@@ -350,11 +350,10 @@ export default function SQLEditor({ ButtonComponent = MemoizedButton, SecondaryB
350
350
  justifyContent: 'flex-end',
351
351
  width: '100%',
352
352
  height: '70px',
353
- }, children: _jsx(ButtonComponent, { onClick: () => setIsChartBuilderOpen(true), label: addToDashboardButtonLabel }) }))] })] }) }) })), _jsx(ChartBuilderWithModal, { rows: rows, columns: columns, fields: fields, query: query, horizontalView: isChartBuilderHorizontalView, isOpen: isChartBuilderOpen, setIsOpen: setIsChartBuilderOpen, onAddToDashboardComplete: onAddToDashboardComplete, showTableFormatOptions: showTableFormatOptions, showDateFieldOptions: showDateFieldOptions, showAccessControlOptions: showAccessControlOptions, destinationDashboard: destinationDashboard, title: chartBuilderTitle, button: chartBuilderButtonLabel, buttonLabel: addToDashboardButtonLabel, dashboardItem: dashboardItem, organizationName: organizationName, CardComponent: CardComponent, TableComponent: TableComponent, Modal: ModalComponent, Button: ButtonComponent })] }));
353
+ }, children: _jsx(ButtonComponent, { onClick: () => setIsChartBuilderOpen(true), label: addToDashboardButtonLabel }) }))] })] }) }) })), _jsx(ChartBuilderWithModal, { rows: rows, columns: columns, fields: fields, query: query, isHorizontalView: isChartBuilderHorizontalView, isOpen: isChartBuilderOpen, setIsOpen: setIsChartBuilderOpen, onAddToDashboardComplete: onAddToDashboardComplete, showTableFormatOptions: showTableFormatOptions, showDateFieldOptions: showDateFieldOptions, showAccessControlOptions: showAccessControlOptions, destinationDashboard: destinationDashboard, title: chartBuilderTitle, button: chartBuilderButtonLabel, buttonLabel: addToDashboardButtonLabel, dashboardItem: dashboardItem, organizationName: organizationName, CardComponent: CardComponent, TableComponent: TableComponent, ModalComponent: ModalComponent, ButtonComponent: ButtonComponent, SecondaryButtonComponent: SecondaryButtonComponent })] }));
354
354
  }
355
355
  const SQLEditorComponent = ({ query, setQuery, handleRunQuery, handleFixWithAI, handleClearQuery, defineEditorTheme, setEditorTheme, ButtonComponent, SecondaryButtonComponent, isNewQueryEnabled, theme, loading, LoadingComponent, }) => {
356
356
  return (_jsxs("div", { style: {
357
- background: theme.backgroundColor,
358
357
  // maxHeight: 700,
359
358
  width: '100%',
360
359
  height: '100%',
@@ -392,7 +391,6 @@ const SQLEditorComponent = ({ query, setQuery, handleRunQuery, handleFixWithAI,
392
391
  export const SchemaListComponent = ({ schema, theme, loading, LoadingComponent, width, onClick = () => { }, }) => {
393
392
  if (loading) {
394
393
  return (_jsxs("div", { style: {
395
- background: theme.backgroundColor,
396
394
  // maxHeight: 700,
397
395
  width: width || 250,
398
396
  minWidth: 250,
@@ -408,7 +406,6 @@ export const SchemaListComponent = ({ schema, theme, loading, LoadingComponent,
408
406
  }, children: [_jsx("div", { style: { height: 100 } }), LoadingComponent && _jsx(LoadingComponent, {}), !LoadingComponent && (_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" }) })] }))] }));
409
407
  }
410
408
  return (_jsx("div", { style: {
411
- background: theme.backgroundColor,
412
409
  // maxHeight: 700,
413
410
  width: width || 250,
414
411
  minWidth: 250,
@@ -90,6 +90,12 @@ export interface TableProps {
90
90
  * A loading component to show when the table is loading.
91
91
  */
92
92
  LoadingComponent?: () => JSX.Element;
93
+ /**
94
+ * Styles the top-level container of the Table.
95
+ *
96
+ * This can be useful for TailwindCSS-style classname strings.
97
+ */
98
+ className?: string;
93
99
  /**
94
100
  * Styles the top-level container of the Table.
95
101
  */
@@ -1 +1 @@
1
- {"version":3,"file":"Table.d.ts","sourceRoot":"","sources":["../../src/Table.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAgC,MAAM,OAAO,CAAC;AAYrD,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAuBD;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,IAAI,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,EAAE,CAAC;IAEhC;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,OAAO,CAAC,EAAE;QACR,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;KACf,EAAE,CAAC;IAEJ;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAEhC;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IAEzB;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,GAAG,CAAC,OAAO,CAAC;IAErC;;OAEG;IACH,cAAc,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CACtC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,QAAA,MAAM,KAAK,UAAW,UAAU,4CAiC/B,CAAC;AA8FF,eAAe,KAAK,CAAC"}
1
+ {"version":3,"file":"Table.d.ts","sourceRoot":"","sources":["../../src/Table.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAgC,MAAM,OAAO,CAAC;AAYrD,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAyBD;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,IAAI,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,EAAE,CAAC;IAEhC;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,OAAO,CAAC,EAAE;QACR,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;KACf,EAAE,CAAC;IAEJ;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAEhC;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IAEzB;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,GAAG,CAAC,OAAO,CAAC;IAErC;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,cAAc,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CACtC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,QAAA,MAAM,KAAK,UAAW,UAAU,4CAmC/B,CAAC;AAiGF,eAAe,KAAK,CAAC"}
package/dist/esm/Table.js CHANGED
@@ -43,11 +43,11 @@ const Table = (props) => {
43
43
  const { dashboardFilters } = useContext(DashboardFiltersContext);
44
44
  const [client, _] = useContext(ClientContext);
45
45
  if ('rows' in data && 'columns' in data) {
46
- return (_jsx(QuillTable, { showDownloadCSVButton: data.showDownloadCSVButton, downloadFileName: data.csvFilename, columns: data.columns, rows: data.rows, containerStyle: data.containerStyle, LoadingComponent: data.LoadingComponent, isLoading: data.isLoading, downloadCSV: data.downloadCSV }));
46
+ return (_jsx(QuillTable, { showDownloadCSVButton: data.showDownloadCSVButton, downloadFileName: data.csvFilename, columns: data.columns, rows: data.rows, className: data.className, containerStyle: data.containerStyle, LoadingComponent: data.LoadingComponent, isLoading: data.isLoading, downloadCSV: data.downloadCSV }));
47
47
  }
48
- return (_jsx(ChartUpdater, { showDownloadCSVButton: data.showDownloadCSVButton, dispatch: dispatch, dashboard: dashboard, chartId: data.chartId, containerStyle: data.containerStyle, dashboardFilters: dashboardFilters, client: client, csvFilename: data.csvFilename, LoadingComponent: data.LoadingComponent }));
48
+ return (_jsx(ChartUpdater, { showDownloadCSVButton: data.showDownloadCSVButton, dispatch: dispatch, dashboard: dashboard, chartId: data.chartId, className: data.className, containerStyle: data.containerStyle, dashboardFilters: dashboardFilters, client: client, csvFilename: data.csvFilename, LoadingComponent: data.LoadingComponent }));
49
49
  };
50
- const ChartUpdater = ({ chartId, containerStyle, dashboard, dispatch, client, dashboardFilters, csvFilename, showDownloadCSVButton = true, LoadingComponent, }) => {
50
+ const ChartUpdater = ({ chartId, containerStyle, className, dashboard, dispatch, client, dashboardFilters, csvFilename, showDownloadCSVButton = true, LoadingComponent, }) => {
51
51
  const { rows, loading } = useMemoizedRows(chartId);
52
52
  const { downloadCSV } = useExport(chartId);
53
53
  useEffect(() => {
@@ -100,6 +100,6 @@ const ChartUpdater = ({ chartId, containerStyle, dashboard, dispatch, client, da
100
100
  // @ts-ignore
101
101
  columns: dashboard[chartId]?.columns || [],
102
102
  // @ts-ignore
103
- rows: rows || dashboard[chartId]?.rows || [], containerStyle: containerStyle, LoadingComponent: LoadingComponent, isLoading: loading, downloadCSV: downloadCSV }));
103
+ rows: rows || dashboard[chartId]?.rows || [], containerStyle: containerStyle, className: className, LoadingComponent: LoadingComponent, isLoading: loading, downloadCSV: downloadCSV }));
104
104
  };
105
105
  export default Table;
@@ -1,11 +1,12 @@
1
1
  /// <reference types="react" />
2
2
  import { type ColorMapType } from '../../Chart';
3
- export default function BarChart({ colors, colorMap, yAxisFields, data, containerStyle, xAxisField, xAxisFormat, theme, comparison, isStacked, isAnimationActive, hideXAxis, hideYAxis, hideCartesianGrid, }: {
3
+ export default function BarChart({ colors, colorMap, yAxisFields, data, containerStyle, className, xAxisField, xAxisFormat, theme, comparison, isStacked, isAnimationActive, hideXAxis, hideYAxis, hideCartesianGrid, }: {
4
4
  colors?: string[];
5
5
  colorMap?: ColorMapType;
6
6
  yAxisFields: any[];
7
7
  data: any[];
8
8
  containerStyle?: React.CSSProperties;
9
+ className?: string;
9
10
  xAxisField: string;
10
11
  xAxisLabel: string;
11
12
  xAxisFormat: string;
@@ -1 +1 @@
1
- {"version":3,"file":"BarChart.d.ts","sourceRoot":"","sources":["../../../../src/components/Chart/BarChart.tsx"],"names":[],"mappings":";AAgBA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,EAC/B,MAAM,EACN,QAAQ,EACR,WAAW,EACX,IAAI,EACJ,cAAc,EACd,UAAU,EACV,WAAW,EACX,KAAK,EACL,UAAU,EACV,SAAS,EACT,iBAAwB,EACxB,SAAiB,EACjB,SAAiB,EACjB,iBAAyB,GAC1B,EAAE;IACD,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,WAAW,EAAE,GAAG,EAAE,CAAC;IACnB,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,cAAc,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,GAAG,CAAC;IACX,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,iBAAiB,EAAE,OAAO,CAAC;CAC5B,2CAgLA"}
1
+ {"version":3,"file":"BarChart.d.ts","sourceRoot":"","sources":["../../../../src/components/Chart/BarChart.tsx"],"names":[],"mappings":";AAgBA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,EAC/B,MAAM,EACN,QAAQ,EACR,WAAW,EACX,IAAI,EACJ,cAAc,EACd,SAAS,EACT,UAAU,EACV,WAAW,EACX,KAAK,EACL,UAAU,EACV,SAAS,EACT,iBAAwB,EACxB,SAAiB,EACjB,SAAiB,EACjB,iBAAyB,GAC1B,EAAE;IACD,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,WAAW,EAAE,GAAG,EAAE,CAAC;IACnB,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,cAAc,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,GAAG,CAAC;IACX,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,iBAAiB,EAAE,OAAO,CAAC;CAC5B,2CAuLA"}