@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.
- package/dist/cjs/Chart.d.ts +6 -0
- package/dist/cjs/Chart.d.ts.map +1 -1
- package/dist/cjs/Chart.js +13 -13
- package/dist/cjs/ChartBuilder.d.ts +16 -6
- package/dist/cjs/ChartBuilder.d.ts.map +1 -1
- package/dist/cjs/ChartBuilder.js +109 -44
- package/dist/cjs/ChartEditor.d.ts.map +1 -1
- package/dist/cjs/ChartEditor.js +8 -2
- package/dist/cjs/Dashboard.d.ts +3 -2
- package/dist/cjs/Dashboard.d.ts.map +1 -1
- package/dist/cjs/DateRangePicker/QuillDateRangePicker.d.ts.map +1 -1
- package/dist/cjs/DateRangePicker/QuillDateRangePicker.js +1 -1
- package/dist/cjs/ReportBuilder.d.ts +11 -1
- package/dist/cjs/ReportBuilder.d.ts.map +1 -1
- package/dist/cjs/ReportBuilder.js +75 -50
- package/dist/cjs/SQLEditor.d.ts +7 -1
- package/dist/cjs/SQLEditor.d.ts.map +1 -1
- package/dist/cjs/SQLEditor.js +3 -6
- package/dist/cjs/Table.d.ts +6 -0
- package/dist/cjs/Table.d.ts.map +1 -1
- package/dist/cjs/Table.js +4 -4
- package/dist/cjs/components/Chart/BarChart.d.ts +2 -1
- package/dist/cjs/components/Chart/BarChart.d.ts.map +1 -1
- package/dist/cjs/components/Chart/BarChart.js +6 -4
- package/dist/cjs/components/Chart/BarList.d.ts +3 -2
- package/dist/cjs/components/Chart/BarList.d.ts.map +1 -1
- package/dist/cjs/components/Chart/BarList.js +3 -3
- package/dist/cjs/components/Chart/ChartError.d.ts +1 -1
- package/dist/cjs/components/Chart/ChartError.d.ts.map +1 -1
- package/dist/cjs/components/Chart/ChartError.js +2 -2
- package/dist/cjs/components/Chart/ChartSkeleton.d.ts +2 -1
- package/dist/cjs/components/Chart/ChartSkeleton.d.ts.map +1 -1
- package/dist/cjs/components/Chart/ChartSkeleton.js +2 -2
- package/dist/cjs/components/Chart/LineChart.d.ts +2 -1
- package/dist/cjs/components/Chart/LineChart.d.ts.map +1 -1
- package/dist/cjs/components/Chart/LineChart.js +3 -3
- package/dist/cjs/components/Chart/PieChart.d.ts +1 -0
- package/dist/cjs/components/Chart/PieChart.d.ts.map +1 -1
- package/dist/cjs/components/Chart/PieChart.js +4 -100
- package/dist/cjs/components/Dashboard/DashboardFilter.d.ts +2 -1
- package/dist/cjs/components/Dashboard/DashboardFilter.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/DashboardFilter.js +2 -2
- package/dist/cjs/components/QuillCard.d.ts +1 -1
- package/dist/cjs/components/QuillCard.d.ts.map +1 -1
- package/dist/cjs/components/QuillCard.js +1 -1
- package/dist/cjs/components/QuillSelect.d.ts +1 -1
- package/dist/cjs/components/QuillSelect.d.ts.map +1 -1
- package/dist/cjs/components/QuillSelect.js +5 -3
- package/dist/cjs/components/QuillTable.d.ts +2 -1
- package/dist/cjs/components/QuillTable.d.ts.map +1 -1
- package/dist/cjs/components/QuillTable.js +5 -5
- package/dist/cjs/components/ReportBuilder/AddColumnPopover.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/AddColumnPopover.js +2 -9
- package/dist/cjs/components/ReportBuilder/AddSortPopover.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/AddSortPopover.js +2 -2
- package/dist/cjs/components/ReportBuilder/ui.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/ui.js +4 -16
- package/dist/cjs/components/UiComponents.d.ts +9 -9
- package/dist/cjs/components/UiComponents.d.ts.map +1 -1
- package/dist/cjs/components/UiComponents.js +32 -17
- package/dist/cjs/internals/ReportBuilder/PivotList.d.ts +1 -1
- package/dist/cjs/internals/ReportBuilder/PivotList.d.ts.map +1 -1
- package/dist/cjs/internals/ReportBuilder/PivotList.js +3 -3
- package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
- package/dist/cjs/internals/ReportBuilder/PivotModal.js +25 -24
- package/dist/cjs/utils/color.d.ts +6 -0
- package/dist/cjs/utils/color.d.ts.map +1 -1
- package/dist/cjs/utils/color.js +98 -1
- package/dist/cjs/utils/valueFormatter.d.ts.map +1 -1
- package/dist/cjs/utils/valueFormatter.js +32 -2
- package/dist/esm/Chart.d.ts +6 -0
- package/dist/esm/Chart.d.ts.map +1 -1
- package/dist/esm/Chart.js +13 -13
- package/dist/esm/ChartBuilder.d.ts +16 -6
- package/dist/esm/ChartBuilder.d.ts.map +1 -1
- package/dist/esm/ChartBuilder.js +109 -44
- package/dist/esm/ChartEditor.d.ts.map +1 -1
- package/dist/esm/ChartEditor.js +8 -2
- package/dist/esm/Dashboard.d.ts +3 -2
- package/dist/esm/Dashboard.d.ts.map +1 -1
- package/dist/esm/DateRangePicker/QuillDateRangePicker.d.ts.map +1 -1
- package/dist/esm/DateRangePicker/QuillDateRangePicker.js +1 -1
- package/dist/esm/ReportBuilder.d.ts +11 -1
- package/dist/esm/ReportBuilder.d.ts.map +1 -1
- package/dist/esm/ReportBuilder.js +75 -50
- package/dist/esm/SQLEditor.d.ts +7 -1
- package/dist/esm/SQLEditor.d.ts.map +1 -1
- package/dist/esm/SQLEditor.js +3 -6
- package/dist/esm/Table.d.ts +6 -0
- package/dist/esm/Table.d.ts.map +1 -1
- package/dist/esm/Table.js +4 -4
- package/dist/esm/components/Chart/BarChart.d.ts +2 -1
- package/dist/esm/components/Chart/BarChart.d.ts.map +1 -1
- package/dist/esm/components/Chart/BarChart.js +7 -5
- package/dist/esm/components/Chart/BarList.d.ts +3 -2
- package/dist/esm/components/Chart/BarList.d.ts.map +1 -1
- package/dist/esm/components/Chart/BarList.js +3 -3
- package/dist/esm/components/Chart/ChartError.d.ts +1 -1
- package/dist/esm/components/Chart/ChartError.d.ts.map +1 -1
- package/dist/esm/components/Chart/ChartError.js +2 -2
- package/dist/esm/components/Chart/ChartSkeleton.d.ts +2 -1
- package/dist/esm/components/Chart/ChartSkeleton.d.ts.map +1 -1
- package/dist/esm/components/Chart/ChartSkeleton.js +2 -2
- package/dist/esm/components/Chart/LineChart.d.ts +2 -1
- package/dist/esm/components/Chart/LineChart.d.ts.map +1 -1
- package/dist/esm/components/Chart/LineChart.js +3 -3
- package/dist/esm/components/Chart/PieChart.d.ts +1 -0
- package/dist/esm/components/Chart/PieChart.d.ts.map +1 -1
- package/dist/esm/components/Chart/PieChart.js +3 -99
- package/dist/esm/components/Dashboard/DashboardFilter.d.ts +2 -1
- package/dist/esm/components/Dashboard/DashboardFilter.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/DashboardFilter.js +2 -2
- package/dist/esm/components/QuillCard.d.ts +1 -1
- package/dist/esm/components/QuillCard.d.ts.map +1 -1
- package/dist/esm/components/QuillCard.js +1 -1
- package/dist/esm/components/QuillSelect.d.ts +1 -1
- package/dist/esm/components/QuillSelect.d.ts.map +1 -1
- package/dist/esm/components/QuillSelect.js +5 -3
- package/dist/esm/components/QuillTable.d.ts +2 -1
- package/dist/esm/components/QuillTable.d.ts.map +1 -1
- package/dist/esm/components/QuillTable.js +5 -5
- package/dist/esm/components/ReportBuilder/AddColumnPopover.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/AddColumnPopover.js +2 -9
- package/dist/esm/components/ReportBuilder/AddSortPopover.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/AddSortPopover.js +2 -2
- package/dist/esm/components/ReportBuilder/ui.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/ui.js +4 -16
- package/dist/esm/components/UiComponents.d.ts +9 -9
- package/dist/esm/components/UiComponents.d.ts.map +1 -1
- package/dist/esm/components/UiComponents.js +32 -17
- package/dist/esm/internals/ReportBuilder/PivotList.d.ts +1 -1
- package/dist/esm/internals/ReportBuilder/PivotList.d.ts.map +1 -1
- package/dist/esm/internals/ReportBuilder/PivotList.js +3 -3
- package/dist/esm/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
- package/dist/esm/internals/ReportBuilder/PivotModal.js +25 -24
- package/dist/esm/utils/color.d.ts +6 -0
- package/dist/esm/utils/color.d.ts.map +1 -1
- package/dist/esm/utils/color.js +96 -0
- package/dist/esm/utils/valueFormatter.d.ts.map +1 -1
- package/dist/esm/utils/valueFormatter.js +32 -2
- 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(
|
|
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(
|
|
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
|
|
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
|
-
|
|
177
|
-
|
|
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) => (
|
|
1246
|
-
|
|
1247
|
-
|
|
1248
|
-
|
|
1249
|
-
|
|
1250
|
-
|
|
1251
|
-
|
|
1252
|
-
|
|
1253
|
-
|
|
1254
|
-
|
|
1255
|
-
|
|
1256
|
-
|
|
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:
|
|
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
|
|
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:
|
|
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:
|
|
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
|
}
|
package/dist/esm/SQLEditor.d.ts
CHANGED
|
@@ -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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"}
|
package/dist/esm/SQLEditor.js
CHANGED
|
@@ -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,
|
|
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,
|
package/dist/esm/Table.d.ts
CHANGED
|
@@ -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
|
*/
|
package/dist/esm/Table.d.ts.map
CHANGED
|
@@ -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;
|
|
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,
|
|
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"}
|