@quillsql/react 2.12.46 → 2.12.48
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.map +1 -1
- package/dist/cjs/Chart.js +16 -7
- package/dist/cjs/ChartBuilder.d.ts +10 -11
- package/dist/cjs/ChartBuilder.d.ts.map +1 -1
- package/dist/cjs/ChartBuilder.js +78 -81
- package/dist/cjs/ChartEditor.d.ts +3 -1
- package/dist/cjs/ChartEditor.d.ts.map +1 -1
- package/dist/cjs/ChartEditor.js +26 -10
- package/dist/cjs/Context.d.ts +2 -3
- package/dist/cjs/Context.d.ts.map +1 -1
- package/dist/cjs/Context.js +42 -28
- package/dist/cjs/Dashboard.d.ts +12 -12
- package/dist/cjs/Dashboard.d.ts.map +1 -1
- package/dist/cjs/Dashboard.js +61 -69
- package/dist/cjs/QuillProvider.d.ts +2 -0
- package/dist/cjs/QuillProvider.d.ts.map +1 -1
- package/dist/cjs/QuillProvider.js +1 -15
- package/dist/cjs/ReportBuilder.d.ts +9 -9
- package/dist/cjs/ReportBuilder.d.ts.map +1 -1
- package/dist/cjs/ReportBuilder.js +116 -179
- package/dist/cjs/SQLEditor.d.ts +20 -11
- package/dist/cjs/SQLEditor.d.ts.map +1 -1
- package/dist/cjs/SQLEditor.js +157 -90
- package/dist/cjs/Table.js +3 -3
- package/dist/cjs/components/Chart/BarChart.d.ts.map +1 -1
- package/dist/cjs/components/Chart/BarChart.js +6 -25
- package/dist/cjs/components/Chart/BarList.js +1 -1
- package/dist/cjs/components/Chart/ChartError.d.ts +5 -2
- package/dist/cjs/components/Chart/ChartError.d.ts.map +1 -1
- package/dist/cjs/components/Chart/ChartError.js +7 -10
- package/dist/cjs/components/Chart/LineChart.d.ts.map +1 -1
- package/dist/cjs/components/Chart/LineChart.js +16 -1
- package/dist/cjs/components/Chart/PieChart.js +1 -1
- package/dist/cjs/components/Dashboard/ChartComponent.d.ts +1 -1
- package/dist/cjs/components/Dashboard/ChartComponent.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/ChartComponent.js +46 -47
- package/dist/cjs/components/Dashboard/DashboardFilter.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/DashboardFilter.js +2 -1
- package/dist/cjs/components/Dashboard/DataLoader.d.ts +2 -2
- package/dist/cjs/components/Dashboard/DataLoader.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/DataLoader.js +19 -13
- package/dist/cjs/components/Dashboard/MetricComponent.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/MetricComponent.js +16 -26
- package/dist/cjs/components/Dashboard/TableComponent.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/TableComponent.js +16 -25
- package/dist/cjs/components/QuillMultiSelectWithCombo.d.ts.map +1 -1
- package/dist/cjs/components/QuillMultiSelectWithCombo.js +31 -1
- package/dist/cjs/components/QuillSelect.js +1 -1
- package/dist/cjs/components/QuillTable.d.ts +1 -1
- package/dist/cjs/components/QuillTable.d.ts.map +1 -1
- package/dist/cjs/components/QuillTable.js +115 -105
- package/dist/cjs/components/ReportBuilder/AddColumnModal.d.ts +3 -3
- package/dist/cjs/components/ReportBuilder/AddColumnModal.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/AddColumnModal.js +2 -2
- package/dist/cjs/components/ReportBuilder/AddLimitPopover.d.ts +2 -2
- package/dist/cjs/components/ReportBuilder/AddLimitPopover.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/AddLimitPopover.js +28 -9
- package/dist/cjs/components/ReportBuilder/FilterModal.d.ts +1 -1
- package/dist/cjs/components/ReportBuilder/FilterModal.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/FilterModal.js +178 -114
- package/dist/cjs/components/ReportBuilder/convert.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/convert.js +1 -2
- package/dist/cjs/components/ReportBuilder/ui.d.ts +9 -1
- package/dist/cjs/components/ReportBuilder/ui.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/ui.js +37 -3
- package/dist/cjs/components/ReportBuilder/util.d.ts +5 -1
- package/dist/cjs/components/ReportBuilder/util.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/util.js +26 -12
- package/dist/cjs/components/UiComponents.d.ts +17 -3
- package/dist/cjs/components/UiComponents.d.ts.map +1 -1
- package/dist/cjs/components/UiComponents.js +160 -29
- package/dist/cjs/hooks/useAskQuill.d.ts.map +1 -1
- package/dist/cjs/hooks/useAskQuill.js +7 -7
- package/dist/cjs/hooks/useAstToFilterTree.d.ts +4 -1
- package/dist/cjs/hooks/useAstToFilterTree.d.ts.map +1 -1
- package/dist/cjs/hooks/useAstToFilterTree.js +4 -1
- package/dist/cjs/hooks/useDashboard.d.ts +5 -1
- package/dist/cjs/hooks/useDashboard.d.ts.map +1 -1
- package/dist/cjs/hooks/useDashboard.js +28 -4
- package/dist/cjs/hooks/useOnClickOutside.js +2 -2
- package/dist/cjs/hooks/useQuill.js +4 -4
- package/dist/cjs/hooks/useVirtualTables.d.ts +10 -0
- package/dist/cjs/hooks/useVirtualTables.d.ts.map +1 -0
- package/dist/cjs/hooks/useVirtualTables.js +29 -0
- package/dist/cjs/index.d.ts +2 -1
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +4 -1
- package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
- package/dist/cjs/internals/ReportBuilder/PivotModal.js +45 -21
- package/dist/cjs/models/Client.d.ts +3 -0
- package/dist/cjs/models/Client.d.ts.map +1 -1
- package/dist/cjs/models/Report.d.ts +2 -0
- package/dist/cjs/models/Report.d.ts.map +1 -1
- package/dist/cjs/models/Schema.d.ts +7 -0
- package/dist/cjs/models/Schema.d.ts.map +1 -0
- package/dist/cjs/models/Schema.js +2 -0
- package/dist/cjs/models/Tables.d.ts +2 -0
- package/dist/cjs/models/Tables.d.ts.map +1 -1
- package/dist/cjs/utils/astFilterProcessing.d.ts +4 -0
- package/dist/cjs/utils/astFilterProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/astFilterProcessing.js +47 -44
- package/dist/cjs/utils/astProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/astProcessing.js +8 -8
- package/dist/cjs/utils/client.d.ts.map +1 -1
- package/dist/cjs/utils/client.js +1 -0
- package/dist/cjs/utils/columnProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/columnProcessing.js +88 -5
- package/dist/cjs/utils/dataFetcher.d.ts.map +1 -1
- package/dist/cjs/utils/dataFetcher.js +7 -3
- package/dist/cjs/utils/filterProcessing.d.ts +25 -0
- package/dist/cjs/utils/filterProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/filterProcessing.js +121 -1
- package/dist/cjs/utils/paginationProcessing.js +2 -2
- package/dist/cjs/utils/pivotConstructor.d.ts.map +1 -1
- package/dist/cjs/utils/pivotConstructor.js +10 -6
- package/dist/cjs/utils/queryConstructor.d.ts +1 -0
- package/dist/cjs/utils/queryConstructor.d.ts.map +1 -1
- package/dist/cjs/utils/queryConstructor.js +37 -11
- package/dist/cjs/utils/report.d.ts +5 -0
- package/dist/cjs/utils/report.d.ts.map +1 -1
- package/dist/cjs/utils/report.js +63 -9
- package/dist/cjs/utils/schema.js +22 -20
- package/dist/cjs/utils/tableProcessing.d.ts +1 -0
- package/dist/cjs/utils/tableProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/tableProcessing.js +22 -1
- package/dist/cjs/utils/validation.d.ts.map +1 -1
- package/dist/cjs/utils/validation.js +4 -0
- package/dist/esm/Chart.d.ts.map +1 -1
- package/dist/esm/Chart.js +17 -8
- package/dist/esm/ChartBuilder.d.ts +10 -11
- package/dist/esm/ChartBuilder.d.ts.map +1 -1
- package/dist/esm/ChartBuilder.js +81 -84
- package/dist/esm/ChartEditor.d.ts +3 -1
- package/dist/esm/ChartEditor.d.ts.map +1 -1
- package/dist/esm/ChartEditor.js +27 -11
- package/dist/esm/Context.d.ts +2 -3
- package/dist/esm/Context.d.ts.map +1 -1
- package/dist/esm/Context.js +42 -28
- package/dist/esm/Dashboard.d.ts +12 -12
- package/dist/esm/Dashboard.d.ts.map +1 -1
- package/dist/esm/Dashboard.js +63 -71
- package/dist/esm/QuillProvider.d.ts +2 -0
- package/dist/esm/QuillProvider.d.ts.map +1 -1
- package/dist/esm/QuillProvider.js +2 -16
- package/dist/esm/ReportBuilder.d.ts +9 -9
- package/dist/esm/ReportBuilder.d.ts.map +1 -1
- package/dist/esm/ReportBuilder.js +122 -185
- package/dist/esm/SQLEditor.d.ts +20 -11
- package/dist/esm/SQLEditor.d.ts.map +1 -1
- package/dist/esm/SQLEditor.js +160 -93
- package/dist/esm/Table.js +4 -4
- package/dist/esm/components/Chart/BarChart.d.ts.map +1 -1
- package/dist/esm/components/Chart/BarChart.js +7 -26
- package/dist/esm/components/Chart/BarList.js +1 -1
- package/dist/esm/components/Chart/ChartError.d.ts +5 -2
- package/dist/esm/components/Chart/ChartError.d.ts.map +1 -1
- package/dist/esm/components/Chart/ChartError.js +7 -10
- package/dist/esm/components/Chart/LineChart.d.ts.map +1 -1
- package/dist/esm/components/Chart/LineChart.js +16 -1
- package/dist/esm/components/Chart/PieChart.js +1 -1
- package/dist/esm/components/Dashboard/ChartComponent.d.ts +1 -1
- package/dist/esm/components/Dashboard/ChartComponent.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/ChartComponent.js +46 -47
- package/dist/esm/components/Dashboard/DashboardFilter.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/DashboardFilter.js +2 -1
- package/dist/esm/components/Dashboard/DataLoader.d.ts +2 -2
- package/dist/esm/components/Dashboard/DataLoader.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/DataLoader.js +20 -14
- package/dist/esm/components/Dashboard/MetricComponent.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/MetricComponent.js +16 -26
- package/dist/esm/components/Dashboard/TableComponent.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/TableComponent.js +16 -25
- package/dist/esm/components/QuillMultiSelectWithCombo.d.ts.map +1 -1
- package/dist/esm/components/QuillMultiSelectWithCombo.js +31 -1
- package/dist/esm/components/QuillSelect.js +1 -1
- package/dist/esm/components/QuillTable.d.ts +1 -1
- package/dist/esm/components/QuillTable.d.ts.map +1 -1
- package/dist/esm/components/QuillTable.js +115 -105
- package/dist/esm/components/ReportBuilder/AddColumnModal.d.ts +3 -3
- package/dist/esm/components/ReportBuilder/AddColumnModal.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/AddColumnModal.js +2 -2
- package/dist/esm/components/ReportBuilder/AddLimitPopover.d.ts +2 -2
- package/dist/esm/components/ReportBuilder/AddLimitPopover.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/AddLimitPopover.js +28 -9
- package/dist/esm/components/ReportBuilder/FilterModal.d.ts +1 -1
- package/dist/esm/components/ReportBuilder/FilterModal.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/FilterModal.js +178 -114
- package/dist/esm/components/ReportBuilder/convert.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/convert.js +1 -2
- package/dist/esm/components/ReportBuilder/ui.d.ts +9 -1
- package/dist/esm/components/ReportBuilder/ui.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/ui.js +38 -4
- package/dist/esm/components/ReportBuilder/util.d.ts +5 -1
- package/dist/esm/components/ReportBuilder/util.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/util.js +26 -12
- package/dist/esm/components/UiComponents.d.ts +17 -3
- package/dist/esm/components/UiComponents.d.ts.map +1 -1
- package/dist/esm/components/UiComponents.js +158 -28
- package/dist/esm/hooks/useAskQuill.d.ts.map +1 -1
- package/dist/esm/hooks/useAskQuill.js +8 -8
- package/dist/esm/hooks/useAstToFilterTree.d.ts +4 -1
- package/dist/esm/hooks/useAstToFilterTree.d.ts.map +1 -1
- package/dist/esm/hooks/useAstToFilterTree.js +4 -1
- package/dist/esm/hooks/useDashboard.d.ts +5 -1
- package/dist/esm/hooks/useDashboard.d.ts.map +1 -1
- package/dist/esm/hooks/useDashboard.js +28 -5
- package/dist/esm/hooks/useOnClickOutside.js +2 -2
- package/dist/esm/hooks/useQuill.js +5 -5
- package/dist/esm/hooks/useVirtualTables.d.ts +10 -0
- package/dist/esm/hooks/useVirtualTables.d.ts.map +1 -0
- package/dist/esm/hooks/useVirtualTables.js +25 -0
- package/dist/esm/index.d.ts +2 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +2 -1
- package/dist/esm/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
- package/dist/esm/internals/ReportBuilder/PivotModal.js +44 -23
- package/dist/esm/models/Client.d.ts +3 -0
- package/dist/esm/models/Client.d.ts.map +1 -1
- package/dist/esm/models/Report.d.ts +2 -0
- package/dist/esm/models/Report.d.ts.map +1 -1
- package/dist/esm/models/Schema.d.ts +7 -0
- package/dist/esm/models/Schema.d.ts.map +1 -0
- package/dist/esm/models/Schema.js +1 -0
- package/dist/esm/models/Tables.d.ts +2 -0
- package/dist/esm/models/Tables.d.ts.map +1 -1
- package/dist/esm/utils/astFilterProcessing.d.ts +4 -0
- package/dist/esm/utils/astFilterProcessing.d.ts.map +1 -1
- package/dist/esm/utils/astFilterProcessing.js +45 -43
- package/dist/esm/utils/astProcessing.d.ts.map +1 -1
- package/dist/esm/utils/astProcessing.js +8 -8
- package/dist/esm/utils/client.d.ts.map +1 -1
- package/dist/esm/utils/client.js +1 -0
- package/dist/esm/utils/columnProcessing.d.ts.map +1 -1
- package/dist/esm/utils/columnProcessing.js +88 -5
- package/dist/esm/utils/dataFetcher.d.ts.map +1 -1
- package/dist/esm/utils/dataFetcher.js +7 -3
- package/dist/esm/utils/filterProcessing.d.ts +25 -0
- package/dist/esm/utils/filterProcessing.d.ts.map +1 -1
- package/dist/esm/utils/filterProcessing.js +116 -0
- package/dist/esm/utils/paginationProcessing.js +2 -2
- package/dist/esm/utils/pivotConstructor.d.ts.map +1 -1
- package/dist/esm/utils/pivotConstructor.js +10 -6
- package/dist/esm/utils/queryConstructor.d.ts +1 -0
- package/dist/esm/utils/queryConstructor.d.ts.map +1 -1
- package/dist/esm/utils/queryConstructor.js +35 -10
- package/dist/esm/utils/report.d.ts +5 -0
- package/dist/esm/utils/report.d.ts.map +1 -1
- package/dist/esm/utils/report.js +61 -8
- package/dist/esm/utils/schema.js +22 -20
- package/dist/esm/utils/tableProcessing.d.ts +1 -0
- package/dist/esm/utils/tableProcessing.d.ts.map +1 -1
- package/dist/esm/utils/tableProcessing.js +21 -1
- package/dist/esm/utils/validation.d.ts.map +1 -1
- package/dist/esm/utils/validation.js +4 -0
- package/package.json +3 -1
package/dist/cjs/SQLEditor.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import React, { ReactNode } from 'react';
|
|
2
|
+
import { TextInputComponentProps } from './components/UiComponents';
|
|
2
3
|
import { QuillReport } from './models/Report';
|
|
3
4
|
/**
|
|
4
5
|
* Props for the Quill SQLEditor component.
|
|
@@ -12,6 +13,7 @@ export interface SQLEditorProps {
|
|
|
12
13
|
label: string;
|
|
13
14
|
disabled?: boolean;
|
|
14
15
|
icon?: ReactNode;
|
|
16
|
+
tooltipText?: string;
|
|
15
17
|
}) => JSX.Element;
|
|
16
18
|
/**
|
|
17
19
|
* A secondary button component.
|
|
@@ -29,14 +31,7 @@ export interface SQLEditorProps {
|
|
|
29
31
|
/**
|
|
30
32
|
* A input element for getting text from the user.
|
|
31
33
|
*/
|
|
32
|
-
TextInputComponent?: (props:
|
|
33
|
-
id: string;
|
|
34
|
-
width: number;
|
|
35
|
-
value: string;
|
|
36
|
-
label?: string;
|
|
37
|
-
placeholder?: string;
|
|
38
|
-
onChange: (event: React.ChangeEvent<HTMLInputElement>) => void;
|
|
39
|
-
}) => JSX.Element;
|
|
34
|
+
TextInputComponent?: ((props: TextInputComponentProps) => JSX.Element) | React.ForwardRefExoticComponent<TextInputComponentProps & React.RefAttributes<HTMLInputElement>>;
|
|
40
35
|
/** A select component. */
|
|
41
36
|
SelectComponent?: (props: {
|
|
42
37
|
value: string;
|
|
@@ -66,6 +61,7 @@ export interface SQLEditorProps {
|
|
|
66
61
|
field: string;
|
|
67
62
|
direction: string;
|
|
68
63
|
}) => void;
|
|
64
|
+
containerStyle?: React.CSSProperties;
|
|
69
65
|
}) => JSX.Element;
|
|
70
66
|
/**
|
|
71
67
|
* A component to show while the query results are loading.
|
|
@@ -164,6 +160,10 @@ export interface SQLEditorProps {
|
|
|
164
160
|
* A callback that is fired when the data columns change.
|
|
165
161
|
*/
|
|
166
162
|
onChangeColumns?: (columns: object[]) => void;
|
|
163
|
+
/** A callback function triggered when changes are discarded. */
|
|
164
|
+
onDiscardChanges?: () => void;
|
|
165
|
+
/** A callback function triggered when changes are saved. */
|
|
166
|
+
onSaveChanges?: () => void;
|
|
167
167
|
/**
|
|
168
168
|
* A callback that is fired when a report has been added to a dashboard.
|
|
169
169
|
*/
|
|
@@ -186,6 +186,10 @@ export interface SQLEditorProps {
|
|
|
186
186
|
* Whether the "new query" button is enabled.
|
|
187
187
|
*/
|
|
188
188
|
isNewQueryEnabled?: boolean;
|
|
189
|
+
/**
|
|
190
|
+
* Whether the user is an admin.
|
|
191
|
+
*/
|
|
192
|
+
isAdminEnabled?: boolean;
|
|
189
193
|
/**
|
|
190
194
|
* Whether to show table format options.
|
|
191
195
|
*/
|
|
@@ -207,13 +211,17 @@ export interface SQLEditorProps {
|
|
|
207
211
|
*/
|
|
208
212
|
defaultQuery?: string;
|
|
209
213
|
/**
|
|
210
|
-
* The default dashboard to
|
|
214
|
+
* The default dashboard to add the query to.
|
|
211
215
|
*/
|
|
212
216
|
destinationDashboard?: string;
|
|
213
217
|
/**
|
|
214
218
|
* The title of the ChartBuilder dialog.
|
|
215
219
|
*/
|
|
216
220
|
chartBuilderTitle?: string;
|
|
221
|
+
/**
|
|
222
|
+
* Whether to automatically run the query when the component mounts.
|
|
223
|
+
*/
|
|
224
|
+
runQueryOnMount?: boolean;
|
|
217
225
|
/**
|
|
218
226
|
* The label of the button to add the current query to a dashboard.
|
|
219
227
|
*
|
|
@@ -260,13 +268,14 @@ export interface SQLEditorProps {
|
|
|
260
268
|
* ### SQLEditor API
|
|
261
269
|
* @see https://docs.quillsql.com/components/sql-editor
|
|
262
270
|
*/
|
|
263
|
-
export default function SQLEditor({ ButtonComponent, SecondaryButtonComponent, DeleteButtonComponent, TextInputComponent, SelectComponent, TableComponent, isNewQueryEnabled, LoadingComponent, ModalComponent, PopoverComponent, CardComponent, LabelComponent, HeaderComponent, SubHeaderComponent, TextComponent, ErrorMessageComponent, ChartBuilderInputRowContainer, ChartBuilderInputColumnContainer, PivotRowContainer, PivotColumnContainer, ChartBuilderFormContainer, defaultQuery, onChangeQuery, onChangeData, onChangeColumns, onChangeFields, isChartBuilderEnabled, showTableFormatOptions, showDateFieldOptions, showAccessControlOptions,
|
|
264
|
-
export declare const SchemaListComponent: ({ schema, theme, loading, LoadingComponent, width, onClick, }: {
|
|
271
|
+
export default function SQLEditor({ ButtonComponent, SecondaryButtonComponent, DeleteButtonComponent, TextInputComponent, SelectComponent, TableComponent, isNewQueryEnabled, LoadingComponent, ModalComponent, PopoverComponent, CardComponent, LabelComponent, HeaderComponent, SubHeaderComponent, TextComponent, ErrorMessageComponent, ChartBuilderInputRowContainer, ChartBuilderInputColumnContainer, PivotRowContainer, PivotColumnContainer, ChartBuilderFormContainer, defaultQuery, destinationDashboard, onChangeQuery, onChangeData, onChangeColumns, onChangeFields, onDiscardChanges, onSaveChanges, isChartBuilderEnabled, showTableFormatOptions, showDateFieldOptions, showAccessControlOptions, isAdminEnabled, chartBuilderTitle, runQueryOnMount, onAddToDashboardComplete, addToDashboardButtonLabel, report, organizationName, isChartBuilderHorizontalView, containerStyle, className, onClickChartElement, }: SQLEditorProps): import("react/jsx-runtime").JSX.Element;
|
|
272
|
+
export declare const SchemaListComponent: ({ schema, theme, loading, LoadingComponent, width, onClick, style, }: {
|
|
265
273
|
schema: any;
|
|
266
274
|
theme: any;
|
|
267
275
|
loading: boolean;
|
|
268
276
|
LoadingComponent?: any;
|
|
269
277
|
width?: any;
|
|
270
278
|
onClick: (event: React.MouseEvent<HTMLDivElement>) => void;
|
|
279
|
+
style?: React.CSSProperties | undefined;
|
|
271
280
|
}) => import("react/jsx-runtime").JSX.Element;
|
|
272
281
|
//# sourceMappingURL=SQLEditor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SQLEditor.d.ts","sourceRoot":"","sources":["../../src/SQLEditor.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAMZ,SAAS,
|
|
1
|
+
{"version":3,"file":"SQLEditor.d.ts","sourceRoot":"","sources":["../../src/SQLEditor.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAMZ,SAAS,EAEV,MAAM,OAAO,CAAC;AAMf,OAAO,EAmBL,uBAAuB,EACxB,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EAAE,WAAW,EAAuB,MAAM,iBAAiB,CAAC;AAoGnE;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE;QACxB,OAAO,EAAE,MAAM,IAAI,CAAC;QACpB,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,IAAI,CAAC,EAAE,SAAS,CAAC;QACjB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,KAAK,GAAG,CAAC,OAAO,CAAC;IAElB;;OAEG;IACH,wBAAwB,CAAC,EAAE,CAAC,KAAK,EAAE;QACjC,OAAO,EAAE,MAAM,IAAI,CAAC;QACpB,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,IAAI,CAAC,EAAE,SAAS,CAAC;KAClB,KAAK,GAAG,CAAC,OAAO,CAAC;IAElB,8EAA8E;IAC9E,qBAAqB,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,IAAI,CAAA;KAAE,KAAK,GAAG,CAAC,OAAO,CAAC;IAExE;;OAEG;IACH,kBAAkB,CAAC,EACf,CAAC,CAAC,KAAK,EAAE,uBAAuB,KAAK,GAAG,CAAC,OAAO,CAAC,GACjD,KAAK,CAAC,yBAAyB,CAC7B,uBAAuB,GAAG,KAAK,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAChE,CAAC;IAEN,0BAA0B;IAC1B,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE;QACxB,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,EAAE;YACP,KAAK,EAAE,MAAM,CAAC;YACd,KAAK,EAAE,MAAM,CAAC;SACf,EAAE,CAAC;QACJ,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;QAChE,KAAK,EAAE,MAAM,CAAC;KACf,KAAK,GAAG,CAAC,OAAO,CAAC;IAElB;;OAEG;IACH,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE;QACvB,IAAI,EAAE;YAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;SAAE,EAAE,CAAC;QAC/B,OAAO,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,EAAE,CAAC;QAC5C,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;QACtC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,MAAM,CAAA;SAAE,KAAK,IAAI,CAAC;QACpE,cAAc,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;KACtC,KAAK,GAAG,CAAC,OAAO,CAAC;IAElB;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,GAAG,CAAC,OAAO,CAAC;IAErC,6EAA6E;IAC7E,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE;QACtB,QAAQ,EAAE,SAAS,CAAC;QACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;QACrB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;KACvB,KAAK,GAAG,CAAC,OAAO,CAAC;IAElB;;OAEG;IACH,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE;QACvB,MAAM,EAAE,OAAO,CAAC;QAChB,SAAS,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;QACrC,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,SAAS,CAAC;QACpB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,KAAK,GAAG,CAAC,OAAO,CAAC;IAElB,2BAA2B;IAC3B,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE;QACzB,MAAM,EAAE,OAAO,CAAC;QAChB,SAAS,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;QACrC,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,eAAe,EAAE,SAAS,CAAC;KAC5B,KAAK,GAAG,CAAC,OAAO,CAAC;IAElB,yBAAyB;IACzB,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,GAAG,CAAC,OAAO,CAAC;IAE3D,0BAA0B;IAC1B,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,GAAG,CAAC,OAAO,CAAC;IAE5D,0DAA0D;IAC1D,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,GAAG,CAAC,OAAO,CAAC;IAE/D,+BAA+B;IAC/B,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,GAAG,CAAC,OAAO,CAAC;IAE1D;;OAEG;IACH,6BAA6B,CAAC,EAAE,CAAC,KAAK,EAAE;QACtC,QAAQ,EAAE,SAAS,CAAC;KACrB,KAAK,GAAG,CAAC,OAAO,CAAC;IAElB;;OAEG;IACH,gCAAgC,CAAC,EAAE,CAAC,KAAK,EAAE;QACzC,QAAQ,EAAE,SAAS,CAAC;KACrB,KAAK,GAAG,CAAC,OAAO,CAAC;IAElB;;OAEG;IACH,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,QAAQ,EAAE,SAAS,CAAA;KAAE,KAAK,GAAG,CAAC,OAAO,CAAC;IAEpE;;OAEG;IACH,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,QAAQ,EAAE,SAAS,CAAA;KAAE,KAAK,GAAG,CAAC,OAAO,CAAC;IAEvE;;OAEG;IACH,yBAAyB,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,QAAQ,EAAE,SAAS,CAAA;KAAE,KAAK,GAAG,CAAC,OAAO,CAAC;IAE5E;;OAEG;IACH,qBAAqB,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,KAAK,GAAG,CAAC,OAAO,CAAC;IAEzE;;OAEG;IACH,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAExC;;OAEG;IACH,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAExC;;OAEG;IACH,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAE5C;;OAEG;IACH,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAE9C,gEAAgE;IAChE,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B,4DAA4D;IAC5D,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAE3B;;OAEG;IACH,wBAAwB,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,CAAC;IAEzD,oEAAoE;IACpE,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IAE3C;;;;;;OAMG;IACH,4BAA4B,CAAC,EAAE,OAAO,CAAC;IAEvC;;OAEG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAEhC;;OAEG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B;;OAEG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB;;OAEG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAC;IAEjC;;OAEG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAE/B;;OAEG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;IAEnC;;OAEG;IACH,MAAM,CAAC,EAAE,WAAW,CAAC;IAErB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAE9B;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B;;;;OAIG;IACH,yBAAyB,CAAC,EAAE,MAAM,CAAC;IAEnC;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,cAAc,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CACtC;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAChC,eAAgC,EAChC,wBAAkD,EAClD,qBAA4C,EAC5C,kBAAmC,EACnC,eAAsC,EACtC,cAA6C,EAC7C,iBAAyB,EACzB,gBAAwC,EACxC,cAA8B,EAC9B,gBAAkC,EAClC,aAAyB,EACzB,cAA8B,EAC9B,eAAgC,EAChC,kBAAsC,EACtC,aAA4B,EAC5B,qBAAkD,EAClD,6BAAkE,EAClE,gCAAwE,EACxE,iBAA0C,EAC1C,oBAAgD,EAChD,yBAA0D,EAC1D,YAAY,EACZ,oBAAoB,EACpB,aAAa,EACb,YAAY,EACZ,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,aAAa,EACb,qBAA6B,EAC7B,sBAA8B,EAC9B,oBAA4B,EAC5B,wBAAgC,EAChC,cAAsB,EACtB,iBAAiB,EACjB,eAAuB,EACvB,wBAAwB,EACxB,yBAA8C,EAC9C,MAAkB,EAClB,gBAA4B,EAC5B,4BAAmC,EACnC,cAAoC,EACpC,SAAS,EACT,mBAAmB,GACpB,EAAE,cAAc,2CA6lBhB;AAoID,eAAO,MAAM,mBAAmB;YAStB,GAAG;WACJ,GAAG;aACD,OAAO;uBACG,GAAG;YACd,GAAG;qBACM,gBAAgB,CAAC,cAAc,CAAC,KAAK,IAAI;;6CAkG3D,CAAC"}
|
package/dist/cjs/SQLEditor.js
CHANGED
|
@@ -17,7 +17,6 @@ const UiComponents_2 = require("./components/UiComponents");
|
|
|
17
17
|
const width_1 = require("./utils/width");
|
|
18
18
|
const QuillCard_1 = require("./components/QuillCard");
|
|
19
19
|
const QuillSelect_1 = require("./components/QuillSelect");
|
|
20
|
-
const schema_1 = require("./utils/schema");
|
|
21
20
|
const tableProcessing_1 = require("./utils/tableProcessing");
|
|
22
21
|
const queryConstructor_1 = require("./utils/queryConstructor");
|
|
23
22
|
const monacoConfig_1 = require("./utils/monacoConfig");
|
|
@@ -88,26 +87,28 @@ function setEditorTheme(_editor, monaco, schema, databaseType, clientName) {
|
|
|
88
87
|
* ### SQLEditor API
|
|
89
88
|
* @see https://docs.quillsql.com/components/sql-editor
|
|
90
89
|
*/
|
|
91
|
-
function SQLEditor({ ButtonComponent = UiComponents_1.MemoizedButton, SecondaryButtonComponent = UiComponents_1.MemoizedSecondaryButton, DeleteButtonComponent = UiComponents_1.MemoizedDeleteButton, TextInputComponent = UiComponents_2.QuillTextInput, SelectComponent = QuillSelect_1.QuillSelectComponent, TableComponent = UiComponents_1.QuillTableSQLEditorComponent, isNewQueryEnabled = false, LoadingComponent = UiComponents_1.QuillLoadingComponent, ModalComponent = UiComponents_1.MemoizedModal, PopoverComponent = UiComponents_1.MemoizedPopover, CardComponent = QuillCard_1.QuillCard, LabelComponent = UiComponents_1.MemoizedLabel, HeaderComponent = UiComponents_1.MemoizedHeader, SubHeaderComponent = UiComponents_1.MemoizedSubHeader, TextComponent = UiComponents_1.MemoizedText, ErrorMessageComponent = UiComponents_1.QuillErrorMessageComponent, ChartBuilderInputRowContainer = UiComponents_1.QuillChartBuilderInputRowContainer, ChartBuilderInputColumnContainer = UiComponents_1.QuillChartBuilderInputColumnContainer, PivotRowContainer = UiComponents_1.QuillPivotRowContainer, PivotColumnContainer = UiComponents_1.QuillPivotColumnContainer, ChartBuilderFormContainer = UiComponents_1.QuillChartBuilderFormContainer, defaultQuery, onChangeQuery, onChangeData, onChangeColumns, onChangeFields, isChartBuilderEnabled = false, showTableFormatOptions = false, showDateFieldOptions = false, showAccessControlOptions = false,
|
|
90
|
+
function SQLEditor({ ButtonComponent = UiComponents_1.MemoizedButton, SecondaryButtonComponent = UiComponents_1.MemoizedSecondaryButton, DeleteButtonComponent = UiComponents_1.MemoizedDeleteButton, TextInputComponent = UiComponents_2.QuillTextInput, SelectComponent = QuillSelect_1.QuillSelectComponent, TableComponent = UiComponents_1.QuillTableSQLEditorComponent, isNewQueryEnabled = false, LoadingComponent = UiComponents_1.QuillLoadingComponent, ModalComponent = UiComponents_1.MemoizedModal, PopoverComponent = UiComponents_1.MemoizedPopover, CardComponent = QuillCard_1.QuillCard, LabelComponent = UiComponents_1.MemoizedLabel, HeaderComponent = UiComponents_1.MemoizedHeader, SubHeaderComponent = UiComponents_1.MemoizedSubHeader, TextComponent = UiComponents_1.MemoizedText, ErrorMessageComponent = UiComponents_1.QuillErrorMessageComponent, ChartBuilderInputRowContainer = UiComponents_1.QuillChartBuilderInputRowContainer, ChartBuilderInputColumnContainer = UiComponents_1.QuillChartBuilderInputColumnContainer, PivotRowContainer = UiComponents_1.QuillPivotRowContainer, PivotColumnContainer = UiComponents_1.QuillPivotColumnContainer, ChartBuilderFormContainer = UiComponents_1.QuillChartBuilderFormContainer, defaultQuery, destinationDashboard, onChangeQuery, onChangeData, onChangeColumns, onChangeFields, onDiscardChanges, onSaveChanges, isChartBuilderEnabled = false, showTableFormatOptions = false, showDateFieldOptions = false, showAccessControlOptions = false, isAdminEnabled = false, chartBuilderTitle, runQueryOnMount = false, onAddToDashboardComplete, addToDashboardButtonLabel = 'Add to dashboard', report = undefined, organizationName = undefined, isChartBuilderHorizontalView = true, containerStyle = { height: '100vh' }, className, onClickChartElement, }) {
|
|
92
91
|
const [sqlPrompt, setSqlPrompt] = (0, react_1.useState)('');
|
|
93
92
|
const [client] = (0, react_1.useContext)(Context_1.ClientContext);
|
|
94
93
|
const [theme] = (0, react_1.useContext)(Context_1.ThemeContext);
|
|
95
94
|
const [query, setQuery] = (0, react_1.useState)(defaultQuery);
|
|
96
95
|
const [rows, setRows] = (0, react_1.useState)([]);
|
|
97
96
|
const [columns, setColumns] = (0, react_1.useState)([]);
|
|
98
|
-
const [
|
|
99
|
-
const [customFields, setCustomFields] = (0, react_1.useContext)(Context_1.CustomFieldContext);
|
|
97
|
+
const [schemaData] = (0, react_1.useContext)(Context_1.SchemaDataContext);
|
|
100
98
|
const [errorMessage, setErrorMessage] = (0, react_1.useState)('');
|
|
101
99
|
const [sqlResponseLoading, setSqlResponseLoading] = (0, react_1.useState)(false);
|
|
102
100
|
const [sqlQueryLoading, setSqlQueryLoading] = (0, react_1.useState)(false);
|
|
103
|
-
const [schemaLoading, setSchemaLoading] = (0, react_1.useState)(false);
|
|
104
101
|
const [isChartBuilderOpen, setIsChartBuilderOpen] = (0, react_1.useState)(false);
|
|
105
102
|
const [displayTable, setDisplayTable] = (0, react_1.useState)(false);
|
|
106
103
|
const formRef = (0, react_1.useRef)(null);
|
|
104
|
+
const sidebarRef = (0, react_1.useRef)(null);
|
|
107
105
|
const [searchBarWidth, setSearchBarWidth] = (0, react_1.useState)(200);
|
|
106
|
+
const [filterBarWidth, setFilterBarWidth] = (0, react_1.useState)(200);
|
|
108
107
|
const [formattedRows, setFormattedRows] = (0, react_1.useState)([]);
|
|
109
108
|
const [rowCount, setRowCount] = (0, react_1.useState)(undefined);
|
|
110
109
|
const [maxPage, setMaxPage] = (0, react_1.useState)(1);
|
|
110
|
+
const [tableSearchQuery, setTableSearchQuery] = (0, react_1.useState)('');
|
|
111
|
+
const [lastSuccessfulQuery, setLastSuccessfulQuery] = (0, react_1.useState)('');
|
|
111
112
|
const [tempReport, setTempReport] = (0, react_1.useState)({
|
|
112
113
|
...report_1.EMPTY_INTERNAL_REPORT,
|
|
113
114
|
...report,
|
|
@@ -115,11 +116,22 @@ function SQLEditor({ ButtonComponent = UiComponents_1.MemoizedButton, SecondaryB
|
|
|
115
116
|
const [currentProcessing, setCurrentProcessing] = (0, react_1.useState)({
|
|
116
117
|
page: paginationProcessing_1.DEFAULT_PAGINATION,
|
|
117
118
|
});
|
|
119
|
+
const displayedTableData = (0, react_1.useMemo)(() => {
|
|
120
|
+
return (schemaData?.schema?.filter((table) => {
|
|
121
|
+
return (table.name
|
|
122
|
+
?.toLowerCase()
|
|
123
|
+
?.includes(tableSearchQuery.toLowerCase().trim()) ||
|
|
124
|
+
table.columns.some((col) => col.field
|
|
125
|
+
?.toLowerCase()
|
|
126
|
+
?.includes(tableSearchQuery.toLowerCase().trim())));
|
|
127
|
+
}) ?? []);
|
|
128
|
+
}, [tableSearchQuery, schemaData.schema]);
|
|
118
129
|
(0, react_1.useEffect)(() => {
|
|
119
130
|
// Since the TextInput component takes a required numeric width parameter,
|
|
120
131
|
// we dynamically calculate the width of this component here.
|
|
121
132
|
function handleResize() {
|
|
122
133
|
(0, width_1.updateFirstChildWidth)(formRef, setSearchBarWidth, { gap: 12 });
|
|
134
|
+
(0, width_1.updateFirstChildWidth)(sidebarRef, setFilterBarWidth, { gap: 12 });
|
|
123
135
|
}
|
|
124
136
|
handleResize();
|
|
125
137
|
window.addEventListener('resize', handleResize);
|
|
@@ -127,20 +139,8 @@ function SQLEditor({ ButtonComponent = UiComponents_1.MemoizedButton, SecondaryB
|
|
|
127
139
|
window.removeEventListener('resize', handleResize);
|
|
128
140
|
};
|
|
129
141
|
}, []);
|
|
130
|
-
const getSchema = async () => {
|
|
131
|
-
if (!client) {
|
|
132
|
-
setSchemaLoading(false);
|
|
133
|
-
return;
|
|
134
|
-
}
|
|
135
|
-
const { schemaData, customFieldsByTable } = await (0, schema_1.getSchemaInfoWithCustomFields)(client);
|
|
136
|
-
setSchema(schemaData);
|
|
137
|
-
setCustomFields(customFieldsByTable);
|
|
138
|
-
setSchemaLoading(false);
|
|
139
|
-
};
|
|
140
142
|
(0, react_1.useEffect)(() => {
|
|
141
|
-
if (client
|
|
142
|
-
setSchemaLoading(true);
|
|
143
|
-
getSchema();
|
|
143
|
+
if (client) {
|
|
144
144
|
setRows([]);
|
|
145
145
|
setColumns([]);
|
|
146
146
|
setDisplayTable(false);
|
|
@@ -192,7 +192,7 @@ function SQLEditor({ ButtonComponent = UiComponents_1.MemoizedButton, SecondaryB
|
|
|
192
192
|
setDisplayTable(true);
|
|
193
193
|
setSqlQueryLoading(true);
|
|
194
194
|
setErrorMessage('');
|
|
195
|
-
const tableInfo = await (0, tableProcessing_1.fetchTableByQuery)(query, client, processing, customFields);
|
|
195
|
+
const tableInfo = await (0, tableProcessing_1.fetchTableByQuery)(query, client, processing, schemaData.customFields);
|
|
196
196
|
if (!!tableInfo.error) {
|
|
197
197
|
throw new Error(tableInfo.error);
|
|
198
198
|
}
|
|
@@ -232,6 +232,7 @@ function SQLEditor({ ButtonComponent = UiComponents_1.MemoizedButton, SecondaryB
|
|
|
232
232
|
rows: tempRows,
|
|
233
233
|
columns: tableInfo.columns,
|
|
234
234
|
});
|
|
235
|
+
setLastSuccessfulQuery(query);
|
|
235
236
|
}
|
|
236
237
|
catch (e) {
|
|
237
238
|
setErrorMessage(e.message);
|
|
@@ -277,88 +278,154 @@ function SQLEditor({ ButtonComponent = UiComponents_1.MemoizedButton, SecondaryB
|
|
|
277
278
|
}
|
|
278
279
|
}, [query]);
|
|
279
280
|
return ((0, jsx_runtime_1.jsxs)("div", { style: { backgroundColor: theme?.backgroundColor, ...containerStyle }, className: className, children: [(!isChartBuilderHorizontalView ||
|
|
280
|
-
(isChartBuilderHorizontalView && !isChartBuilderOpen)) &&
|
|
281
|
+
(isChartBuilderHorizontalView && !isChartBuilderOpen)) &&
|
|
282
|
+
!schemaData.isSchemaLoading && ((0, jsx_runtime_1.jsx)("div", { style: {
|
|
281
283
|
height: '100%',
|
|
282
284
|
display: 'flex',
|
|
283
285
|
flexDirection: 'column',
|
|
284
286
|
padding: 0,
|
|
285
|
-
}, children: (0, jsx_runtime_1.jsx)("div", { style: {
|
|
287
|
+
}, children: (0, jsx_runtime_1.jsx)("div", { style: {
|
|
288
|
+
height: '100%',
|
|
289
|
+
display: 'flex',
|
|
290
|
+
flexDirection: 'column',
|
|
291
|
+
}, children: (0, jsx_runtime_1.jsxs)("div", { style: {
|
|
286
292
|
width: '100%',
|
|
287
293
|
display: 'flex',
|
|
288
294
|
height: '100%',
|
|
289
295
|
flexDirection: 'row',
|
|
290
296
|
gap: 20,
|
|
291
|
-
}, children: [(0, jsx_runtime_1.
|
|
297
|
+
}, children: [(0, jsx_runtime_1.jsxs)("div", { style: {
|
|
298
|
+
display: 'flex',
|
|
299
|
+
flexDirection: 'column',
|
|
300
|
+
gap: 20,
|
|
301
|
+
}, children: [(0, jsx_runtime_1.jsx)("div", { style: {
|
|
302
|
+
paddingTop: 16,
|
|
303
|
+
paddingLeft: '20px',
|
|
304
|
+
paddingRight: '30px',
|
|
305
|
+
}, children: (0, jsx_runtime_1.jsx)(TextInputComponent, { placeholder: "Filter tables...", onChange: (e) => {
|
|
306
|
+
setTableSearchQuery(e.target.value);
|
|
307
|
+
}, value: tableSearchQuery, id: 'edit-name', width: filterBarWidth }) }), (0, jsx_runtime_1.jsx)(exports.SchemaListComponent, { schema: displayedTableData, theme: theme, LoadingComponent: LoadingComponent, loading: schemaData.isSchemaLoading, onClick: handleClickSchemaItem })] }), (0, jsx_runtime_1.jsxs)("div", { style: {
|
|
292
308
|
display: 'flex',
|
|
293
309
|
// gap: 12,
|
|
294
310
|
flexDirection: 'column',
|
|
311
|
+
justifyContent: 'space-between',
|
|
295
312
|
width: 'calc(100% - 290px)',
|
|
296
313
|
height: '100%',
|
|
297
314
|
overflowX: 'hidden',
|
|
298
|
-
}, children: [(0, jsx_runtime_1.
|
|
299
|
-
e.preventDefault();
|
|
300
|
-
handleRunSqlPrompt();
|
|
301
|
-
}, style: {
|
|
302
|
-
display: 'flex',
|
|
303
|
-
flexDirection: 'row',
|
|
304
|
-
gap: 12,
|
|
305
|
-
paddingTop: 16,
|
|
306
|
-
paddingBottom: 16,
|
|
307
|
-
}, children: [(0, jsx_runtime_1.jsx)(TextInputComponent, { id: "ai-search", value: sqlPrompt, width: searchBarWidth, onChange: (e) => setSqlPrompt(e.target.value), placeholder: "Ask a question..." }), (0, jsx_runtime_1.jsx)(ButtonComponent, { onClick: handleRunSqlPrompt, label: "Ask AI" })] }), (0, jsx_runtime_1.jsx)("div", { style: { height: 'calc(50% - 40px)' }, children: (0, jsx_runtime_1.jsx)(SQLEditorComponent, { query: query || '', schema: schema, databaseType: client?.databaseType ?? 'postgresql', clientName: client?.publicKey || '', setQuery: setQuery, handleRunQuery: () => {
|
|
308
|
-
handleRunQuery(currentProcessing, true);
|
|
309
|
-
}, handleFixWithAI: handleFixWithAI, isNewQueryEnabled: isNewQueryEnabled, handleClearQuery: handleClearQuery, theme: theme, defineEditorTheme: defineEditorTheme, setEditorTheme: setEditorTheme, setEditorMounted: () => { }, ButtonComponent: ButtonComponent, SecondaryButtonComponent: SecondaryButtonComponent, loading: sqlResponseLoading, LoadingComponent: LoadingComponent }) }), (0, jsx_runtime_1.jsxs)("div", { style: {
|
|
315
|
+
}, children: [(0, jsx_runtime_1.jsx)("div", { style: {
|
|
310
316
|
display: 'flex',
|
|
311
317
|
flexDirection: 'column',
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
fontFamily: theme?.fontFamily,
|
|
319
|
-
color: theme?.primaryTextColor,
|
|
320
|
-
fontSize: 15,
|
|
321
|
-
fontWeight: '400',
|
|
322
|
-
width: '100%',
|
|
323
|
-
}, children: (0, jsx_runtime_1.jsxs)("div", { style: {
|
|
318
|
+
overflow: 'auto',
|
|
319
|
+
height: '100%',
|
|
320
|
+
}, children: (0, jsx_runtime_1.jsxs)(UiComponents_1.OverflowContainer, { children: [(0, jsx_runtime_1.jsxs)("form", { ref: formRef, onSubmit: (e) => {
|
|
321
|
+
e.preventDefault();
|
|
322
|
+
handleRunSqlPrompt();
|
|
323
|
+
}, style: {
|
|
324
324
|
display: 'flex',
|
|
325
325
|
flexDirection: 'row',
|
|
326
|
-
justifyContent: 'space-between',
|
|
327
326
|
gap: 12,
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
327
|
+
paddingTop: 16,
|
|
328
|
+
paddingBottom: 16,
|
|
329
|
+
}, children: [(0, jsx_runtime_1.jsx)(TextInputComponent, { id: "ai-search", value: sqlPrompt, width: searchBarWidth, onChange: (e) => setSqlPrompt(e.target.value), placeholder: "Ask a question..." }), (0, jsx_runtime_1.jsx)(ButtonComponent, { onClick: handleRunSqlPrompt, label: "Ask AI" })] }), (0, jsx_runtime_1.jsx)("div", { style: {
|
|
330
|
+
minHeight: 210,
|
|
331
|
+
maxHeight: '30vh',
|
|
332
|
+
height: '30%',
|
|
333
|
+
}, children: (0, jsx_runtime_1.jsx)(SQLEditorComponent, { query: query || '', schema: schemaData.schema, databaseType: client?.databaseType ?? 'postgresql', clientName: client?.publicKey || '', setQuery: setQuery, handleRunQuery: () => {
|
|
334
|
+
handleRunQuery(currentProcessing, true);
|
|
335
|
+
}, handleFixWithAI: handleFixWithAI, isNewQueryEnabled: isNewQueryEnabled, runQueryOnMount: runQueryOnMount, handleClearQuery: handleClearQuery, theme: theme, defineEditorTheme: defineEditorTheme, setEditorTheme: setEditorTheme, setEditorMounted: () => { }, ButtonComponent: ButtonComponent, SecondaryButtonComponent: SecondaryButtonComponent, loading: sqlResponseLoading && schemaData.isSchemaLoading, LoadingComponent: LoadingComponent }) }), (0, jsx_runtime_1.jsx)("div", { style: {
|
|
336
|
+
display: 'flex',
|
|
337
|
+
flexDirection: 'row',
|
|
333
338
|
width: '100%',
|
|
334
|
-
|
|
335
|
-
|
|
339
|
+
justifyContent: addToDashboardButtonLabel === 'Add to dashboard'
|
|
340
|
+
? 'flex-end'
|
|
341
|
+
: 'flex-start',
|
|
342
|
+
}, children: (0, jsx_runtime_1.jsx)("div", { style: {
|
|
343
|
+
display: 'flex',
|
|
344
|
+
flexDirection: 'row',
|
|
345
|
+
alignItems: 'center',
|
|
346
|
+
height: 70,
|
|
347
|
+
}, children: (0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', gap: 12 }, children: [addToDashboardButtonLabel ===
|
|
348
|
+
'Add to dashboard' ? ((0, jsx_runtime_1.jsx)(SecondaryButtonComponent, { onClick: () => {
|
|
349
|
+
handleRunQuery(currentProcessing, true);
|
|
350
|
+
}, label: "Run query" })) : ((0, jsx_runtime_1.jsx)(ButtonComponent, { onClick: () => {
|
|
351
|
+
handleRunQuery(currentProcessing, true);
|
|
352
|
+
}, label: "Run query" })), isNewQueryEnabled && ((0, jsx_runtime_1.jsx)(SecondaryButtonComponent, { onClick: handleClearQuery, label: "Clear query" })), addToDashboardButtonLabel ===
|
|
353
|
+
'Add to dashboard' && ((0, jsx_runtime_1.jsx)(ButtonComponent, { onClick: () => {
|
|
354
|
+
onSaveChanges && onSaveChanges();
|
|
355
|
+
setIsChartBuilderOpen(true);
|
|
356
|
+
}, label: addToDashboardButtonLabel, disabled: !!errorMessage ||
|
|
357
|
+
!(rows.length > 0 &&
|
|
358
|
+
lastSuccessfulQuery === query), tooltipText: !!errorMessage ||
|
|
359
|
+
!(rows.length > 0 &&
|
|
360
|
+
lastSuccessfulQuery === query)
|
|
361
|
+
? 'Please run a query'
|
|
362
|
+
: '' }))] }) }) }), (0, jsx_runtime_1.jsxs)("div", { style: {
|
|
363
|
+
display: 'flex',
|
|
364
|
+
flexDirection: 'column',
|
|
365
|
+
// height: '100%',
|
|
366
|
+
padding: 0,
|
|
367
|
+
margin: 0,
|
|
368
|
+
border: 'none',
|
|
369
|
+
outline: 'none',
|
|
370
|
+
}, children: [errorMessage && ((0, jsx_runtime_1.jsx)("div", { style: {
|
|
371
|
+
fontFamily: theme?.fontFamily,
|
|
372
|
+
color: theme?.primaryTextColor,
|
|
373
|
+
fontSize: 15,
|
|
374
|
+
fontWeight: '400',
|
|
375
|
+
width: '100%',
|
|
376
|
+
}, children: (0, jsx_runtime_1.jsxs)("div", { style: {
|
|
377
|
+
display: 'flex',
|
|
378
|
+
flexDirection: 'row',
|
|
379
|
+
justifyContent: 'space-between',
|
|
380
|
+
gap: 12,
|
|
381
|
+
background: 'rgba(0,0,0,0.02)', // TODO: change color
|
|
382
|
+
color: theme?.primaryTextColor,
|
|
383
|
+
fontFamily: theme?.fontFamily,
|
|
384
|
+
borderRadius: 6,
|
|
385
|
+
padding: 20,
|
|
386
|
+
marginBottom: 15,
|
|
387
|
+
width: '100%',
|
|
388
|
+
alignItems: 'center',
|
|
389
|
+
}, children: [errorMessage, errorMessage !== 'No data found' &&
|
|
390
|
+
errorMessage !== 'No query found' && ((0, jsx_runtime_1.jsx)(SecondaryButtonComponent, { onClick: handleFixWithAI, label: "Fix with AI" }))] }) })), errorMessage || !displayTable ? null : ((0, jsx_runtime_1.jsx)(TableComponent, { isLoading: sqlQueryLoading, rows: formattedRows, columns: columns, rowCount: rowCount, onPageChange: onPageChange, onSortChange: onSortChange, containerStyle: {
|
|
391
|
+
maxHeight: Math.max(window.innerHeight * 0.7, 75 +
|
|
392
|
+
Math.min(Math.max(10, rows.length), 10) * 37),
|
|
393
|
+
} }))] })] }) }), isChartBuilderEnabled && ((0, jsx_runtime_1.jsxs)("div", { style: {
|
|
336
394
|
display: 'flex',
|
|
337
395
|
flexDirection: 'row',
|
|
338
396
|
alignItems: 'center',
|
|
339
397
|
justifyContent: 'flex-end',
|
|
340
398
|
width: '100%',
|
|
341
|
-
|
|
342
|
-
|
|
399
|
+
gap: 12,
|
|
400
|
+
marginTop: 15,
|
|
401
|
+
marginBottom: 5,
|
|
402
|
+
}, children: [onDiscardChanges && ((0, jsx_runtime_1.jsx)(SecondaryButtonComponent, { onClick: onDiscardChanges, label: "Discard changes" })), addToDashboardButtonLabel !== 'Add to dashboard' && ((0, jsx_runtime_1.jsx)(ButtonComponent, { onClick: () => {
|
|
403
|
+
onSaveChanges && onSaveChanges();
|
|
404
|
+
setIsChartBuilderOpen(true);
|
|
405
|
+
}, label: addToDashboardButtonLabel, disabled: !!errorMessage ||
|
|
406
|
+
!(rows.length > 0 && lastSuccessfulQuery === query) }))] }))] })] }) }) })), (!isChartBuilderHorizontalView || isChartBuilderOpen) && ((0, jsx_runtime_1.jsx)(ChartBuilder_1.ChartBuilderWithModal, { rows: rows, columns: columns, query: query, isHorizontalView: isChartBuilderHorizontalView, isOpen: isChartBuilderOpen, setIsOpen: setIsChartBuilderOpen, onAddToDashboardComplete: onAddToDashboardComplete, showTableFormatOptions: showTableFormatOptions, showDateFieldOptions: showDateFieldOptions, showAccessControlOptions: showAccessControlOptions, isAdmin: isAdminEnabled, destinationDashboard: destinationDashboard, title: chartBuilderTitle, buttonLabel: addToDashboardButtonLabel, report: tempReport ?? report, pivot: tempReport?.pivot ?? undefined, pivotData: tempReport?.pivotRows && tempReport?.pivotColumns
|
|
343
407
|
? {
|
|
344
408
|
rows: tempReport.pivotRows,
|
|
345
409
|
columns: tempReport.pivotColumns,
|
|
346
410
|
}
|
|
347
|
-
: undefined, organizationName: organizationName, CardComponent: CardComponent, TableComponent: TableComponent, ModalComponent: ModalComponent, ButtonComponent: ButtonComponent, TextInputComponent: TextInputComponent, SelectComponent: SelectComponent, SecondaryButtonComponent: SecondaryButtonComponent, HeaderComponent: HeaderComponent, SubHeaderComponent: SubHeaderComponent, LabelComponent: LabelComponent, TextComponent: TextComponent, PopoverComponent: PopoverComponent, DeleteButtonComponent: DeleteButtonComponent, LoadingComponent: LoadingComponent, ChartBuilderInputRowContainer: ChartBuilderInputRowContainer, ChartBuilderInputColumnContainer: ChartBuilderInputColumnContainer, ErrorMessageComponent: ErrorMessageComponent, PivotRowContainer: PivotRowContainer, PivotColumnContainer: PivotColumnContainer, FormContainer: ChartBuilderFormContainer, hideDateRangeFilter: true, onClickChartElement: onClickChartElement, rowCount: rowCount, onPageChange: onPageChange, onSortChange: onSortChange, isLoading: sqlQueryLoading })] }));
|
|
411
|
+
: undefined, organizationName: organizationName, CardComponent: CardComponent, TableComponent: TableComponent, ModalComponent: ModalComponent, ButtonComponent: ButtonComponent, TextInputComponent: TextInputComponent, SelectComponent: SelectComponent, SecondaryButtonComponent: SecondaryButtonComponent, HeaderComponent: HeaderComponent, SubHeaderComponent: SubHeaderComponent, LabelComponent: LabelComponent, TextComponent: TextComponent, PopoverComponent: PopoverComponent, DeleteButtonComponent: DeleteButtonComponent, LoadingComponent: LoadingComponent, ChartBuilderInputRowContainer: ChartBuilderInputRowContainer, ChartBuilderInputColumnContainer: ChartBuilderInputColumnContainer, ErrorMessageComponent: ErrorMessageComponent, PivotRowContainer: PivotRowContainer, PivotColumnContainer: PivotColumnContainer, FormContainer: ChartBuilderFormContainer, hideDateRangeFilter: true, onClickChartElement: onClickChartElement, rowCount: rowCount, onPageChange: onPageChange, onSortChange: onSortChange, isLoading: sqlQueryLoading, isEditingMode: true }))] }));
|
|
348
412
|
}
|
|
349
413
|
exports.default = SQLEditor;
|
|
350
|
-
const SQLEditorComponent = ({ query, schema, databaseType, clientName, setQuery, setEditorMounted, handleRunQuery,
|
|
414
|
+
const SQLEditorComponent = ({ query, schema, databaseType, clientName, setQuery, setEditorMounted, handleRunQuery, defineEditorTheme, setEditorTheme, runQueryOnMount = false, theme, loading, LoadingComponent = UiComponents_1.QuillLoadingComponent, }) => {
|
|
351
415
|
const [editorKey, setEditorKey] = (0, react_1.useState)(0);
|
|
352
|
-
const
|
|
416
|
+
const currentProvider = (0, react_1.useRef)(null);
|
|
353
417
|
(0, react_1.useEffect)(() => {
|
|
354
|
-
if (currentProvider) {
|
|
355
|
-
currentProvider.dispose();
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
418
|
+
if (currentProvider.current) {
|
|
419
|
+
currentProvider.current.dispose();
|
|
420
|
+
if (schema && schema.length !== 0) {
|
|
421
|
+
setEditorKey((prevKey) => prevKey + 1);
|
|
422
|
+
}
|
|
359
423
|
}
|
|
360
|
-
|
|
361
|
-
|
|
424
|
+
return () => {
|
|
425
|
+
currentProvider.current?.dispose();
|
|
426
|
+
};
|
|
427
|
+
}, [schema, clientName, databaseType]);
|
|
428
|
+
return ((0, jsx_runtime_1.jsx)("div", { style: {
|
|
362
429
|
// maxHeight: 700,
|
|
363
430
|
width: '100%',
|
|
364
431
|
height: '100%',
|
|
@@ -373,31 +440,29 @@ const SQLEditorComponent = ({ query, schema, databaseType, clientName, setQuery,
|
|
|
373
440
|
borderTopRightRadius: 0,
|
|
374
441
|
borderBottomRightRadius: 0,
|
|
375
442
|
overflow: 'hidden',
|
|
376
|
-
}, children:
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
height: 70,
|
|
398
|
-
}, children: (0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', gap: 12 }, children: [(0, jsx_runtime_1.jsx)(ButtonComponent, { onClick: handleRunQuery, label: "Run query" }), isNewQueryEnabled && ((0, jsx_runtime_1.jsx)(SecondaryButtonComponent, { onClick: handleClearQuery, label: "Clear query" }))] }) })] }));
|
|
443
|
+
}, children: loading ? ((0, jsx_runtime_1.jsx)("div", { style: {
|
|
444
|
+
height: '100%',
|
|
445
|
+
width: '100%',
|
|
446
|
+
display: 'flex',
|
|
447
|
+
alignItems: 'center',
|
|
448
|
+
justifyContent: 'center',
|
|
449
|
+
background: '#F9F9F9',
|
|
450
|
+
}, children: (0, jsx_runtime_1.jsx)(LoadingComponent, {}) })) : ((0, jsx_runtime_1.jsx)(react_2.default, { height: "100%", width: "100%", defaultLanguage: clientName, defaultValue: "", language: clientName, value: query, loading: (0, jsx_runtime_1.jsx)("div", {}), options: {
|
|
451
|
+
wordWrap: 'on',
|
|
452
|
+
minimap: {
|
|
453
|
+
enabled: false,
|
|
454
|
+
},
|
|
455
|
+
padding: { top: 16 },
|
|
456
|
+
}, onChange: (query) => setQuery(query || ''), beforeMount: (monaco) => defineEditorTheme(monaco, theme), onMount: (_editor, monaco) => {
|
|
457
|
+
currentProvider.current = setEditorTheme(_editor, monaco, schema, databaseType, clientName);
|
|
458
|
+
setEditorMounted();
|
|
459
|
+
if (runQueryOnMount) {
|
|
460
|
+
handleRunQuery();
|
|
461
|
+
}
|
|
462
|
+
_editor.focus();
|
|
463
|
+
} }, editorKey)) }));
|
|
399
464
|
};
|
|
400
|
-
const SchemaListComponent = ({ schema, theme, loading, LoadingComponent, width, onClick, }) => {
|
|
465
|
+
const SchemaListComponent = ({ schema, theme, loading, LoadingComponent, width, onClick, style, }) => {
|
|
401
466
|
if (loading) {
|
|
402
467
|
return ((0, jsx_runtime_1.jsxs)("div", { style: {
|
|
403
468
|
// maxHeight: 700,
|
|
@@ -412,11 +477,13 @@ const SchemaListComponent = ({ schema, theme, loading, LoadingComponent, width,
|
|
|
412
477
|
display: 'flex',
|
|
413
478
|
// alignItems: 'center',
|
|
414
479
|
justifyContent: 'center',
|
|
480
|
+
...style,
|
|
415
481
|
}, children: [(0, jsx_runtime_1.jsx)("div", { style: { height: 100 } }), LoadingComponent && (0, jsx_runtime_1.jsx)(LoadingComponent, {}), !LoadingComponent && ((0, jsx_runtime_1.jsxs)("svg", { width: "24", height: "24", children: [(0, jsx_runtime_1.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: (0, jsx_runtime_1.jsx)("animateTransform", { attributeName: "transform", attributeType: "XML", type: "rotate", from: "-180 12 12", to: "180 12 12", dur: "0.8s", repeatCount: "indefinite" }) }), (0, jsx_runtime_1.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: (0, jsx_runtime_1.jsx)("animateTransform", { attributeName: "transform", attributeType: "XML", type: "rotate", from: "0 12 12", to: "360 12 12", dur: "0.8s", repeatCount: "indefinite" }) })] }))] }));
|
|
416
482
|
}
|
|
417
483
|
return ((0, jsx_runtime_1.jsx)("div", { style: {
|
|
418
484
|
// maxHeight: 700,
|
|
419
485
|
width: width || 250,
|
|
486
|
+
maxWidth: 350,
|
|
420
487
|
minWidth: 250,
|
|
421
488
|
overflowY: 'auto',
|
|
422
489
|
height: '100%',
|
package/dist/cjs/Table.js
CHANGED
|
@@ -64,7 +64,7 @@ const ChartUpdater = ({ reportId, containerStyle, className, dashboardContext, c
|
|
|
64
64
|
const [loading, setLoading] = (0, react_1.useState)(false);
|
|
65
65
|
const [initialLoad, setInitialLoad] = (0, react_1.useState)(true);
|
|
66
66
|
const { downloadCSV } = (0, useExport_1.useExport)(reportId);
|
|
67
|
-
const [
|
|
67
|
+
const [schemaData] = (0, react_1.useContext)(Context_1.SchemaDataContext);
|
|
68
68
|
const [rows, setRows] = (0, react_1.useState)([]);
|
|
69
69
|
const [columns, setColumns] = (0, react_1.useState)([]);
|
|
70
70
|
const [tableFilters, setTableFilters] = (0, react_1.useState)([]);
|
|
@@ -103,7 +103,7 @@ const ChartUpdater = ({ reportId, containerStyle, className, dashboardContext, c
|
|
|
103
103
|
setLoading(true);
|
|
104
104
|
try {
|
|
105
105
|
const updatedProcessing = { ...currentProcessing, ...processing };
|
|
106
|
-
const paginatedRows = await (0, tableProcessing_1.fetchTableByReport)(reportId, client, updatedProcessing, tableFilters, customFields);
|
|
106
|
+
const paginatedRows = await (0, tableProcessing_1.fetchTableByReport)(reportId, client, updatedProcessing, tableFilters, schemaData.customFields);
|
|
107
107
|
if (paginatedRows.error) {
|
|
108
108
|
throw new Error('Error fetching chart');
|
|
109
109
|
}
|
|
@@ -125,7 +125,7 @@ const ChartUpdater = ({ reportId, containerStyle, className, dashboardContext, c
|
|
|
125
125
|
};
|
|
126
126
|
const fetchReportHelper = async (useReportTask = true, reportFilters, processing) => {
|
|
127
127
|
setLoading(true);
|
|
128
|
-
const { report, error } = await (0, report_1.fetchReport)(reportId, client, useReportTask, reportFilters ? reportFilters.filters : [], processing, undefined, customFields);
|
|
128
|
+
const { report, error } = await (0, report_1.fetchReport)(reportId, client, useReportTask, reportFilters ? reportFilters.filters : [], processing, undefined, schemaData.customFields);
|
|
129
129
|
if (error) {
|
|
130
130
|
setLoading(false);
|
|
131
131
|
setInitialLoad(false);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BarChart.d.ts","sourceRoot":"","sources":["../../../../src/components/Chart/BarChart.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"BarChart.d.ts","sourceRoot":"","sources":["../../../../src/components/Chart/BarChart.tsx"],"names":[],"mappings":";AAcA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAG7C,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,EACzB,mBAAmB,EACnB,UAAU,GACX,EAAE;IACD,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,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,UAAU,CAAC;IACxB,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;IAC3B,mBAAmB,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IACvC,UAAU,CAAC,EAAE,GAAG,CAAC;CAClB,2CAmMA"}
|
|
@@ -10,26 +10,7 @@ const axisFormatter_1 = require("../../utils/axisFormatter");
|
|
|
10
10
|
const color_1 = require("../../utils/color");
|
|
11
11
|
const ChartTooltip_1 = __importDefault(require("../../components/Chart/ChartTooltip"));
|
|
12
12
|
const getDomain_1 = __importDefault(require("../../utils/getDomain"));
|
|
13
|
-
const react_1 = require("react");
|
|
14
13
|
function BarChart({ colors, colorMap, yAxisFields, data, containerStyle, className, xAxisField, xAxisFormat, theme, comparison, isStacked, isAnimationActive = true, hideXAxis = false, hideYAxis = false, hideCartesianGrid = false, onClickChartElement, dateFilter, }) {
|
|
15
|
-
const [formattedData, setFormattedData] = (0, react_1.useState)(data);
|
|
16
|
-
(0, react_1.useEffect)(() => {
|
|
17
|
-
setFormattedData(data);
|
|
18
|
-
if (!data || data.length === 0) {
|
|
19
|
-
let barChartData = [];
|
|
20
|
-
if (dateFilter && (!barChartData || barChartData.length === 0)) {
|
|
21
|
-
const xAxis = xAxisField || '';
|
|
22
|
-
const endDate = (0, valueFormatter_1.quillFormat)({
|
|
23
|
-
value: dateFilter?.endDate,
|
|
24
|
-
format: xAxisFormat,
|
|
25
|
-
});
|
|
26
|
-
const yAxis = yAxisFields[0]?.field;
|
|
27
|
-
barChartData = [{ [xAxis]: endDate, [yAxis]: '0' }];
|
|
28
|
-
}
|
|
29
|
-
setFormattedData(barChartData);
|
|
30
|
-
return;
|
|
31
|
-
}
|
|
32
|
-
}, [data]);
|
|
33
14
|
const getCustomColor = (field) => {
|
|
34
15
|
const key = field.startsWith('comparison_') ? 'comparison' : 'primary';
|
|
35
16
|
field = field.replace('comparison_', '');
|
|
@@ -39,15 +20,15 @@ function BarChart({ colors, colorMap, yAxisFields, data, containerStyle, classNa
|
|
|
39
20
|
return colorMap?.[field]?.[key];
|
|
40
21
|
};
|
|
41
22
|
const sortYAxisFields = (fields) => {
|
|
42
|
-
if (
|
|
23
|
+
if (data?.length > 0) {
|
|
43
24
|
fields = fields
|
|
44
|
-
.sort((a, b) => Object.keys(
|
|
45
|
-
Object.keys(
|
|
25
|
+
.sort((a, b) => Object.keys(data[0]).indexOf(a.field) -
|
|
26
|
+
Object.keys(data[0]).indexOf(b.field))
|
|
46
27
|
.filter((field) => comparison || !field.field.startsWith('comparison_'));
|
|
47
28
|
}
|
|
48
29
|
return fields;
|
|
49
30
|
};
|
|
50
|
-
if (!
|
|
31
|
+
if (!data || data.length === 0) {
|
|
51
32
|
return ((0, jsx_runtime_1.jsx)("div", { style: {
|
|
52
33
|
display: 'flex',
|
|
53
34
|
flex: '1 0 auto',
|
|
@@ -58,12 +39,12 @@ function BarChart({ colors, colorMap, yAxisFields, data, containerStyle, classNa
|
|
|
58
39
|
fontSize: 13,
|
|
59
40
|
color: theme.secondaryTextColor,
|
|
60
41
|
...containerStyle,
|
|
61
|
-
}, className: className, children: "No results
|
|
42
|
+
}, className: className, children: "No results" }));
|
|
62
43
|
}
|
|
63
44
|
return ((0, jsx_runtime_1.jsx)("div", { style: {
|
|
64
45
|
boxSizing: 'content-box',
|
|
65
46
|
...containerStyle,
|
|
66
|
-
}, className: className, children: (0, jsx_runtime_1.jsx)(recharts_1.ResponsiveContainer, { width: "100%", height: '100%', children: (0, jsx_runtime_1.jsxs)(recharts_1.BarChart, { data:
|
|
47
|
+
}, className: className, children: (0, jsx_runtime_1.jsx)(recharts_1.ResponsiveContainer, { width: "100%", height: '100%', children: (0, jsx_runtime_1.jsxs)(recharts_1.BarChart, { data: data ?? [], layout: 'horizontal', children: [!hideCartesianGrid && ((0, jsx_runtime_1.jsx)(recharts_1.CartesianGrid, { horizontal: true, vertical: false, stroke: "#e5e7eb" })), (0, jsx_runtime_1.jsx)(recharts_1.YAxis, { width: 44, hide: hideYAxis, axisLine: false, tickLine: false, type: "number", domain: (0, getDomain_1.default)(data, yAxisFields), tick: { transform: 'translate(-3, 0)' }, tickCount: 5, style: {
|
|
67
48
|
fontSize: '12px',
|
|
68
49
|
fontFamily: theme.chartLabelFontFamily,
|
|
69
50
|
}, tickFormatter: (tick) => {
|