@quillsql/react 2.11.15 → 2.11.17
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 +117 -42
- package/dist/cjs/Chart.d.ts.map +1 -1
- package/dist/cjs/Chart.js +44 -18
- package/dist/cjs/ChartBuilder.d.ts +195 -28
- package/dist/cjs/ChartBuilder.d.ts.map +1 -1
- package/dist/cjs/ChartBuilder.js +124 -63
- package/dist/cjs/ChartEditor.d.ts +114 -18
- package/dist/cjs/ChartEditor.d.ts.map +1 -1
- package/dist/cjs/ChartEditor.js +47 -15
- package/dist/cjs/Dashboard.d.ts +148 -90
- package/dist/cjs/Dashboard.d.ts.map +1 -1
- package/dist/cjs/Dashboard.js +46 -152
- package/dist/cjs/DateRangePicker/QuillDateRangePicker.d.ts +21 -1
- package/dist/cjs/DateRangePicker/QuillDateRangePicker.d.ts.map +1 -1
- package/dist/cjs/DateRangePicker/QuillDateRangePicker.js +5 -2
- package/dist/cjs/DateRangePicker/dateRangePickerUtils.js +1 -1
- package/dist/cjs/QuillProvider.d.ts +105 -2
- package/dist/cjs/QuillProvider.d.ts.map +1 -1
- package/dist/cjs/QuillProvider.js +59 -0
- package/dist/cjs/ReportBuilder.d.ts +188 -34
- package/dist/cjs/ReportBuilder.d.ts.map +1 -1
- package/dist/cjs/ReportBuilder.js +551 -426
- package/dist/cjs/SQLEditor.d.ts +158 -29
- package/dist/cjs/SQLEditor.d.ts.map +1 -1
- package/dist/cjs/SQLEditor.js +52 -32
- package/dist/cjs/Table.d.ts +119 -15
- package/dist/cjs/Table.d.ts.map +1 -1
- package/dist/cjs/Table.js +37 -6
- package/dist/cjs/TableChart.d.ts.map +1 -1
- package/dist/cjs/TableChart.js +0 -194
- package/dist/cjs/{BarList.d.ts → components/Chart/BarList.d.ts} +1 -1
- package/dist/cjs/components/Chart/BarList.d.ts.map +1 -0
- package/dist/cjs/{BarList.js → components/Chart/BarList.js} +1 -1
- package/dist/cjs/components/Chart/LineChart.d.ts +2 -3
- 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.map +1 -0
- package/dist/cjs/{PieChart.js → components/Chart/PieChart.js} +1 -1
- package/dist/cjs/components/Dashboard/ChartComponent.d.ts +2 -1
- package/dist/cjs/components/Dashboard/ChartComponent.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/ChartComponent.js +6 -7
- package/dist/cjs/components/Dashboard/DashboardFilter.d.ts +22 -0
- package/dist/cjs/components/Dashboard/DashboardFilter.d.ts.map +1 -0
- package/dist/cjs/components/Dashboard/DashboardFilter.js +75 -0
- package/dist/cjs/components/Dashboard/DataLoader.d.ts +1 -1
- package/dist/cjs/components/Dashboard/DataLoader.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/DataLoader.js +1 -1
- package/dist/cjs/components/Dashboard/MetricComponent.d.ts +2 -12
- package/dist/cjs/components/Dashboard/MetricComponent.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/MetricComponent.js +39 -17
- package/dist/cjs/components/Dashboard/TableComponent.d.ts +2 -1
- package/dist/cjs/components/Dashboard/TableComponent.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/TableComponent.js +6 -9
- package/dist/cjs/components/QuillSelect.d.ts +4 -1
- package/dist/cjs/components/QuillSelect.d.ts.map +1 -1
- package/dist/cjs/components/QuillSelect.js +13 -8
- package/dist/cjs/components/QuillTable.d.ts +16 -2
- package/dist/cjs/components/QuillTable.d.ts.map +1 -1
- package/dist/cjs/components/QuillTable.js +4 -4
- package/dist/cjs/components/ReportBuilder/AddColumnPopover.d.ts +30 -1
- package/dist/cjs/components/ReportBuilder/AddColumnPopover.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/AddColumnPopover.js +33 -14
- package/dist/cjs/components/ReportBuilder/AddLimitPopover.d.ts +25 -2
- package/dist/cjs/components/ReportBuilder/AddLimitPopover.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/AddLimitPopover.js +19 -19
- package/dist/cjs/components/ReportBuilder/AddSortPopover.d.ts +22 -2
- package/dist/cjs/components/ReportBuilder/AddSortPopover.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/AddSortPopover.js +18 -20
- package/dist/cjs/components/ReportBuilder/bigDateMap.js +1 -1
- package/dist/cjs/components/ReportBuilder/convert.d.ts +2 -1
- package/dist/cjs/components/ReportBuilder/convert.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/convert.js +40 -20
- package/dist/cjs/components/ReportBuilder/pivot.d.ts +2 -1
- package/dist/cjs/components/ReportBuilder/pivot.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/ui.d.ts +83 -19
- package/dist/cjs/components/ReportBuilder/ui.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/ui.js +68 -121
- package/dist/cjs/components/ReportBuilder/util.d.ts +3 -1
- package/dist/cjs/components/ReportBuilder/util.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/util.js +34 -8
- package/dist/cjs/components/UiComponents.d.ts +98 -97
- package/dist/cjs/components/UiComponents.d.ts.map +1 -1
- package/dist/cjs/components/UiComponents.js +132 -112
- package/dist/cjs/hooks/index.d.ts +1 -0
- package/dist/cjs/hooks/index.d.ts.map +1 -1
- package/dist/cjs/hooks/index.js +3 -1
- package/dist/cjs/hooks/useTheme.d.ts +7 -0
- package/dist/cjs/hooks/useTheme.d.ts.map +1 -0
- package/dist/cjs/hooks/useTheme.js +12 -0
- package/dist/cjs/index.d.ts +10 -2
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/internals/ReportBuilder/PivotList.d.ts.map +1 -1
- package/dist/cjs/internals/ReportBuilder/PivotList.js +10 -10
- package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts +29 -14
- package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
- package/dist/cjs/internals/ReportBuilder/PivotModal.js +73 -49
- package/dist/cjs/utils/dataFetcher.d.ts.map +1 -1
- package/dist/cjs/utils/dataFetcher.js +2 -0
- package/dist/cjs/utils/width.d.ts +12 -0
- package/dist/cjs/utils/width.d.ts.map +1 -0
- package/dist/cjs/utils/width.js +25 -0
- package/dist/esm/Chart.d.ts +117 -42
- package/dist/esm/Chart.d.ts.map +1 -1
- package/dist/esm/Chart.js +45 -19
- package/dist/esm/ChartBuilder.d.ts +195 -28
- package/dist/esm/ChartBuilder.d.ts.map +1 -1
- package/dist/esm/ChartBuilder.js +124 -63
- package/dist/esm/ChartEditor.d.ts +114 -18
- package/dist/esm/ChartEditor.d.ts.map +1 -1
- package/dist/esm/ChartEditor.js +51 -19
- package/dist/esm/Dashboard.d.ts +148 -90
- package/dist/esm/Dashboard.d.ts.map +1 -1
- package/dist/esm/Dashboard.js +49 -153
- package/dist/esm/DateRangePicker/QuillDateRangePicker.d.ts +21 -1
- package/dist/esm/DateRangePicker/QuillDateRangePicker.d.ts.map +1 -1
- package/dist/esm/DateRangePicker/QuillDateRangePicker.js +6 -3
- package/dist/esm/DateRangePicker/dateRangePickerUtils.js +1 -1
- package/dist/esm/QuillProvider.d.ts +105 -2
- package/dist/esm/QuillProvider.d.ts.map +1 -1
- package/dist/esm/QuillProvider.js +59 -0
- package/dist/esm/ReportBuilder.d.ts +188 -34
- package/dist/esm/ReportBuilder.d.ts.map +1 -1
- package/dist/esm/ReportBuilder.js +553 -428
- package/dist/esm/SQLEditor.d.ts +158 -29
- package/dist/esm/SQLEditor.d.ts.map +1 -1
- package/dist/esm/SQLEditor.js +53 -33
- package/dist/esm/Table.d.ts +119 -15
- package/dist/esm/Table.d.ts.map +1 -1
- package/dist/esm/Table.js +38 -7
- package/dist/esm/TableChart.d.ts.map +1 -1
- package/dist/esm/TableChart.js +0 -194
- package/dist/esm/{BarList.d.ts → components/Chart/BarList.d.ts} +1 -1
- package/dist/esm/components/Chart/BarList.d.ts.map +1 -0
- package/dist/esm/{BarList.js → components/Chart/BarList.js} +1 -1
- package/dist/esm/components/Chart/LineChart.d.ts +2 -3
- 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.map +1 -0
- package/dist/esm/{PieChart.js → components/Chart/PieChart.js} +1 -1
- package/dist/esm/components/Dashboard/ChartComponent.d.ts +2 -1
- package/dist/esm/components/Dashboard/ChartComponent.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/ChartComponent.js +5 -6
- package/dist/esm/components/Dashboard/DashboardFilter.d.ts +22 -0
- package/dist/esm/components/Dashboard/DashboardFilter.d.ts.map +1 -0
- package/dist/esm/components/Dashboard/DashboardFilter.js +71 -0
- package/dist/esm/components/Dashboard/DataLoader.d.ts +1 -1
- package/dist/esm/components/Dashboard/DataLoader.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/DataLoader.js +1 -1
- package/dist/esm/components/Dashboard/MetricComponent.d.ts +2 -12
- package/dist/esm/components/Dashboard/MetricComponent.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/MetricComponent.js +39 -17
- package/dist/esm/components/Dashboard/TableComponent.d.ts +2 -1
- package/dist/esm/components/Dashboard/TableComponent.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/TableComponent.js +6 -9
- package/dist/esm/components/QuillSelect.d.ts +4 -1
- package/dist/esm/components/QuillSelect.d.ts.map +1 -1
- package/dist/esm/components/QuillSelect.js +14 -9
- package/dist/esm/components/QuillTable.d.ts +16 -2
- package/dist/esm/components/QuillTable.d.ts.map +1 -1
- package/dist/esm/components/QuillTable.js +4 -4
- package/dist/esm/components/ReportBuilder/AddColumnPopover.d.ts +30 -1
- package/dist/esm/components/ReportBuilder/AddColumnPopover.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/AddColumnPopover.js +34 -15
- package/dist/esm/components/ReportBuilder/AddLimitPopover.d.ts +25 -2
- package/dist/esm/components/ReportBuilder/AddLimitPopover.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/AddLimitPopover.js +20 -20
- package/dist/esm/components/ReportBuilder/AddSortPopover.d.ts +22 -2
- package/dist/esm/components/ReportBuilder/AddSortPopover.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/AddSortPopover.js +20 -22
- package/dist/esm/components/ReportBuilder/bigDateMap.js +1 -1
- package/dist/esm/components/ReportBuilder/convert.d.ts +2 -1
- package/dist/esm/components/ReportBuilder/convert.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/convert.js +33 -13
- package/dist/esm/components/ReportBuilder/pivot.d.ts +2 -1
- package/dist/esm/components/ReportBuilder/pivot.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/ui.d.ts +83 -19
- package/dist/esm/components/ReportBuilder/ui.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/ui.js +67 -119
- package/dist/esm/components/ReportBuilder/util.d.ts +3 -1
- package/dist/esm/components/ReportBuilder/util.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/util.js +31 -7
- package/dist/esm/components/UiComponents.d.ts +98 -97
- package/dist/esm/components/UiComponents.d.ts.map +1 -1
- package/dist/esm/components/UiComponents.js +125 -110
- package/dist/esm/hooks/index.d.ts +1 -0
- package/dist/esm/hooks/index.d.ts.map +1 -1
- package/dist/esm/hooks/index.js +1 -0
- package/dist/esm/hooks/useTheme.d.ts +7 -0
- package/dist/esm/hooks/useTheme.d.ts.map +1 -0
- package/dist/esm/hooks/useTheme.js +10 -0
- package/dist/esm/index.d.ts +10 -2
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/internals/ReportBuilder/PivotList.d.ts.map +1 -1
- package/dist/esm/internals/ReportBuilder/PivotList.js +10 -10
- package/dist/esm/internals/ReportBuilder/PivotModal.d.ts +29 -14
- package/dist/esm/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
- package/dist/esm/internals/ReportBuilder/PivotModal.js +73 -49
- package/dist/esm/utils/dataFetcher.d.ts.map +1 -1
- package/dist/esm/utils/dataFetcher.js +2 -0
- package/dist/esm/utils/width.d.ts +12 -0
- package/dist/esm/utils/width.d.ts.map +1 -0
- package/dist/esm/utils/width.js +21 -0
- package/package.json +1 -1
- package/dist/cjs/BarList.d.ts.map +0 -1
- package/dist/cjs/PieChart.d.ts.map +0 -1
- package/dist/esm/BarList.d.ts.map +0 -1
- package/dist/esm/PieChart.d.ts.map +0 -1
- /package/dist/cjs/{PieChart.d.ts → components/Chart/PieChart.d.ts} +0 -0
- /package/dist/esm/{PieChart.d.ts → components/Chart/PieChart.d.ts} +0 -0
package/dist/esm/SQLEditor.d.ts
CHANGED
|
@@ -1,50 +1,180 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import {
|
|
1
|
+
import React, { ReactNode } from 'react';
|
|
2
|
+
import { DashboardItem } from './Dashboard';
|
|
3
3
|
export declare function convertPostgresColumn(column: any): {
|
|
4
4
|
label: any;
|
|
5
5
|
field: any;
|
|
6
6
|
format: string;
|
|
7
7
|
fieldType: string;
|
|
8
8
|
};
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
9
|
+
/**
|
|
10
|
+
* Props for the Quill SQLEditor component.
|
|
11
|
+
*/
|
|
12
|
+
export interface SQLEditorProps {
|
|
13
|
+
/**
|
|
14
|
+
* A primary button component.
|
|
15
|
+
*/
|
|
16
|
+
ButtonComponent?: (props: {
|
|
17
|
+
onClick: () => void;
|
|
18
|
+
label: string;
|
|
19
|
+
}) => JSX.Element;
|
|
20
|
+
/**
|
|
21
|
+
* A secondary button component.
|
|
22
|
+
*/
|
|
23
|
+
SecondaryButtonComponent?: (props: {
|
|
24
|
+
onClick: () => void;
|
|
25
|
+
label: string;
|
|
26
|
+
}) => JSX.Element;
|
|
27
|
+
/**
|
|
28
|
+
* A input element for getting text from the user.
|
|
29
|
+
*/
|
|
30
|
+
TextInputComponent?: (props: {
|
|
31
|
+
id: string;
|
|
32
|
+
width: number;
|
|
33
|
+
value: string;
|
|
34
|
+
placeholder?: string;
|
|
35
|
+
onChange: (event: React.ChangeEvent<HTMLInputElement>) => void;
|
|
36
|
+
}) => JSX.Element;
|
|
37
|
+
/**
|
|
38
|
+
* A table component to show the results of the SQL query.
|
|
39
|
+
*/
|
|
40
|
+
TableComponent?: (props: {
|
|
41
|
+
rows: {
|
|
42
|
+
[key: string]: any;
|
|
43
|
+
}[];
|
|
44
|
+
columns: {
|
|
45
|
+
field: string;
|
|
46
|
+
label: string;
|
|
47
|
+
}[];
|
|
48
|
+
isLoading?: boolean;
|
|
49
|
+
}) => JSX.Element;
|
|
50
|
+
/**
|
|
51
|
+
* A component to show while the query results are loading.
|
|
52
|
+
*/
|
|
19
53
|
LoadingComponent?: () => JSX.Element;
|
|
20
|
-
|
|
54
|
+
/**
|
|
55
|
+
* A modal component to use to open the add to dashboard dialog.
|
|
56
|
+
*/
|
|
57
|
+
ModalComponent?: (props: {
|
|
58
|
+
isOpen: boolean;
|
|
59
|
+
setIsOpen: (isOpen: boolean) => void;
|
|
60
|
+
title?: string;
|
|
61
|
+
children: ReactNode;
|
|
62
|
+
width?: number;
|
|
63
|
+
height?: number;
|
|
64
|
+
}) => JSX.Element;
|
|
65
|
+
/**
|
|
66
|
+
* A callback that is fired when the query changes.
|
|
67
|
+
*/
|
|
21
68
|
onChangeQuery?: (query: string) => void;
|
|
69
|
+
/**
|
|
70
|
+
* A callback that is fired when the data changes.
|
|
71
|
+
*/
|
|
22
72
|
onChangeData?: (data: object[]) => void;
|
|
23
|
-
|
|
73
|
+
/**
|
|
74
|
+
* A callback that is fired when the data fields change.
|
|
75
|
+
*/
|
|
24
76
|
onChangeFields?: (fields: object[]) => void;
|
|
25
|
-
|
|
26
|
-
|
|
77
|
+
/**
|
|
78
|
+
* A callback that is fired when the data columns change.
|
|
79
|
+
*/
|
|
80
|
+
onChangeColumns?: (columns: object[]) => void;
|
|
81
|
+
/**
|
|
82
|
+
* A callback that is fired when a dashboard item has been added to a dashboard.
|
|
83
|
+
*/
|
|
84
|
+
onAddToDashboardComplete?: () => void;
|
|
85
|
+
/**
|
|
86
|
+
* Whether the chart builder is in horizontal view mode.
|
|
87
|
+
*
|
|
88
|
+
* Horizontal view mode is where the chart and table are displayed on the left
|
|
89
|
+
* and the editing form is displayed on the right, rather than being stacked
|
|
90
|
+
* vertically.
|
|
91
|
+
*/
|
|
92
|
+
isChartBuilderHorizontalView?: boolean;
|
|
93
|
+
/**
|
|
94
|
+
* A callback that is fired when the data columns change.
|
|
95
|
+
*/
|
|
96
|
+
isChartBuilderEnabled?: boolean;
|
|
97
|
+
/**
|
|
98
|
+
* Whether the "new query" button is enabled.
|
|
99
|
+
*/
|
|
100
|
+
isNewQueryEnabled?: boolean;
|
|
101
|
+
/**
|
|
102
|
+
* Whether the SQLEditor is in edit mode.
|
|
103
|
+
*/
|
|
104
|
+
isEditMode?: boolean;
|
|
105
|
+
/**
|
|
106
|
+
* Whether to show table format options.
|
|
107
|
+
*/
|
|
27
108
|
showTableFormatOptions?: boolean;
|
|
109
|
+
/**
|
|
110
|
+
* Whether to show date field options.
|
|
111
|
+
*/
|
|
28
112
|
showDateFieldOptions?: boolean;
|
|
113
|
+
/**
|
|
114
|
+
* Whether to show access control options.
|
|
115
|
+
*/
|
|
29
116
|
showAccessControlOptions?: boolean;
|
|
117
|
+
/**
|
|
118
|
+
* A dashboard item.
|
|
119
|
+
*/
|
|
120
|
+
dashboardItem?: DashboardItem | any;
|
|
121
|
+
/**
|
|
122
|
+
* The default query to use as a placeholder.
|
|
123
|
+
*/
|
|
124
|
+
defaultQuery?: string;
|
|
125
|
+
/**
|
|
126
|
+
* The default dashboard to dashboard items to.
|
|
127
|
+
*/
|
|
30
128
|
destinationDashboard?: string;
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
129
|
+
/**
|
|
130
|
+
* The title of the ChartBuilder dialog.
|
|
131
|
+
*/
|
|
34
132
|
chartBuilderTitle?: string;
|
|
133
|
+
/**
|
|
134
|
+
* The label of the button to open the ChartBuilder dialog.
|
|
135
|
+
*/
|
|
35
136
|
chartBuilderButtonLabel?: string;
|
|
137
|
+
/**
|
|
138
|
+
* The label of the button to add the current query to a dashboard.
|
|
139
|
+
*
|
|
140
|
+
* @default "Add to dashboard"
|
|
141
|
+
*/
|
|
36
142
|
addToDashboardButtonLabel?: string;
|
|
37
|
-
|
|
143
|
+
/**
|
|
144
|
+
* The name of the current organization.
|
|
145
|
+
*/
|
|
38
146
|
organizationName?: string;
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
value: string;
|
|
44
|
-
id: string;
|
|
45
|
-
placeholder?: string;
|
|
147
|
+
/**
|
|
148
|
+
* Styles the top-level container of the SQLEditor.
|
|
149
|
+
*/
|
|
150
|
+
containerStyle?: React.CSSProperties;
|
|
46
151
|
}
|
|
47
|
-
|
|
152
|
+
/**
|
|
153
|
+
* ### Quill SQLEditor
|
|
154
|
+
*
|
|
155
|
+
* Allows your users to build and write custom SQL queries and then add those
|
|
156
|
+
* queries into their dashboard as a metric, chart, or table.
|
|
157
|
+
*
|
|
158
|
+
* @example
|
|
159
|
+
* ```js
|
|
160
|
+
* // Usage without custom components
|
|
161
|
+
* <SQLEditor />
|
|
162
|
+
* ```
|
|
163
|
+
*
|
|
164
|
+
* @example
|
|
165
|
+
* ```js
|
|
166
|
+
* // You can also pass your own components and default values.
|
|
167
|
+
* <SQLEditor
|
|
168
|
+
* defaultQuery="SELECT SUM(amount) FROM TRANSACTIONS"
|
|
169
|
+
* ButtonComponen={MyButton}
|
|
170
|
+
* SecondaryButtonComponen={MySecondaryButton}
|
|
171
|
+
* />
|
|
172
|
+
* ```
|
|
173
|
+
*
|
|
174
|
+
* ### SQLEditor API
|
|
175
|
+
* @see https://docs.quillsql.com/components/sql-editor
|
|
176
|
+
*/
|
|
177
|
+
export default function SQLEditor({ ButtonComponent, SecondaryButtonComponent, TextInputComponent, TableComponent, isNewQueryEnabled, LoadingComponent, ModalComponent, defaultQuery, onChangeQuery, onChangeData, onChangeColumns, onChangeFields, isEditMode, isChartBuilderEnabled, showTableFormatOptions, showDateFieldOptions, showAccessControlOptions, destinationDashboard, chartBuilderTitle, chartBuilderButtonLabel, onAddToDashboardComplete, addToDashboardButtonLabel, dashboardItem, organizationName, isChartBuilderHorizontalView, containerStyle, }: SQLEditorProps): import("react/jsx-runtime").JSX.Element;
|
|
48
178
|
export declare const SchemaListComponent: ({ schema, theme, loading, LoadingComponent, width, onClick, }: {
|
|
49
179
|
schema: any;
|
|
50
180
|
theme: any;
|
|
@@ -53,5 +183,4 @@ export declare const SchemaListComponent: ({ schema, theme, loading, LoadingComp
|
|
|
53
183
|
width: any;
|
|
54
184
|
onClick?: (() => void) | undefined;
|
|
55
185
|
}) => import("react/jsx-runtime").JSX.Element;
|
|
56
|
-
export {};
|
|
57
186
|
//# sourceMappingURL=SQLEditor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SQLEditor.d.ts","sourceRoot":"","sources":["../../src/SQLEditor.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SQLEditor.d.ts","sourceRoot":"","sources":["../../src/SQLEditor.tsx"],"names":[],"mappings":"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"}
|
package/dist/esm/SQLEditor.js
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/* eslint-disable no-unused-vars */
|
|
2
3
|
// @ts-nocheck
|
|
3
4
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
4
|
-
import { useState, useContext, useEffect, } from 'react';
|
|
5
|
+
import { useState, useContext, useEffect, useRef, } from 'react';
|
|
5
6
|
import MonacoEditor from '@monaco-editor/react';
|
|
6
|
-
// import './nightOwlLight.css';
|
|
7
7
|
import { ClientContext, SchemaContext, ThemeContext } from './Context';
|
|
8
|
-
import QuillTable from './components/QuillTable';
|
|
9
8
|
import { getData, getDataFromCloud } from './utils/dataFetcher';
|
|
10
9
|
import { ChartBuilderWithModal } from './ChartBuilder';
|
|
11
|
-
import { MemoizedButton, MemoizedSecondaryButton, } from './components/UiComponents';
|
|
12
|
-
import { QuillTextInput } from './components/
|
|
10
|
+
import { MemoizedButton, MemoizedModal, MemoizedSecondaryButton, QuillTableComponent, } from './components/UiComponents';
|
|
11
|
+
import { QuillTextInput } from './components/UiComponents';
|
|
12
|
+
import { updateFirstChildWidth } from './utils/width';
|
|
13
13
|
export function convertPostgresColumn(column) {
|
|
14
14
|
let format;
|
|
15
15
|
let fieldType;
|
|
@@ -105,26 +105,32 @@ function setEditorTheme(editor, monaco) {
|
|
|
105
105
|
console.log('ERROR: ', e);
|
|
106
106
|
}
|
|
107
107
|
}
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
108
|
+
/**
|
|
109
|
+
* ### Quill SQLEditor
|
|
110
|
+
*
|
|
111
|
+
* Allows your users to build and write custom SQL queries and then add those
|
|
112
|
+
* queries into their dashboard as a metric, chart, or table.
|
|
113
|
+
*
|
|
114
|
+
* @example
|
|
115
|
+
* ```js
|
|
116
|
+
* // Usage without custom components
|
|
117
|
+
* <SQLEditor />
|
|
118
|
+
* ```
|
|
119
|
+
*
|
|
120
|
+
* @example
|
|
121
|
+
* ```js
|
|
122
|
+
* // You can also pass your own components and default values.
|
|
123
|
+
* <SQLEditor
|
|
124
|
+
* defaultQuery="SELECT SUM(amount) FROM TRANSACTIONS"
|
|
125
|
+
* ButtonComponen={MyButton}
|
|
126
|
+
* SecondaryButtonComponen={MySecondaryButton}
|
|
127
|
+
* />
|
|
128
|
+
* ```
|
|
129
|
+
*
|
|
130
|
+
* ### SQLEditor API
|
|
131
|
+
* @see https://docs.quillsql.com/components/sql-editor
|
|
132
|
+
*/
|
|
133
|
+
export default function SQLEditor({ ButtonComponent = MemoizedButton, SecondaryButtonComponent = MemoizedSecondaryButton, TextInputComponent = QuillTextInput, TableComponent = QuillTableComponent, isNewQueryEnabled = false, LoadingComponent, ModalComponent = MemoizedModal, defaultQuery, onChangeQuery, onChangeData, onChangeColumns, onChangeFields, isEditMode = false, 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' }, }) {
|
|
128
134
|
const [sqlPrompt, setSqlPrompt] = useState('');
|
|
129
135
|
const [client] = useContext(ClientContext);
|
|
130
136
|
const [theme] = useContext(ThemeContext);
|
|
@@ -139,6 +145,20 @@ export default function QueryEditor({ containerStyle = { height: '100vh' }, Butt
|
|
|
139
145
|
const [schemaLoading, setSchemaLoading] = useState(false);
|
|
140
146
|
const [isChartBuilderOpen, setIsChartBuilderOpen] = useState(false);
|
|
141
147
|
const [displayTable, setDisplayTable] = useState(false);
|
|
148
|
+
const formRef = useRef(null);
|
|
149
|
+
const [searchBarWidth, setSearchBarWidth] = useState(200);
|
|
150
|
+
useEffect(() => {
|
|
151
|
+
// Since the TextInput component takes a required numeric width parameter,
|
|
152
|
+
// we dynamically calculate the width of this component here.
|
|
153
|
+
function handleResize() {
|
|
154
|
+
updateFirstChildWidth(formRef, setSearchBarWidth, { gap: 12 });
|
|
155
|
+
}
|
|
156
|
+
handleResize();
|
|
157
|
+
window.addEventListener('resize', handleResize);
|
|
158
|
+
return () => {
|
|
159
|
+
window.removeEventListener('resize', handleResize);
|
|
160
|
+
};
|
|
161
|
+
}, []);
|
|
142
162
|
const getSchema = async (isSubscribed) => {
|
|
143
163
|
setSchemaLoading(true);
|
|
144
164
|
const { queryEndpoint, queryHeaders, publicKey } = client;
|
|
@@ -269,8 +289,8 @@ export default function QueryEditor({ containerStyle = { height: '100vh' }, Butt
|
|
|
269
289
|
onChangeQuery(query);
|
|
270
290
|
}
|
|
271
291
|
}, [query]);
|
|
272
|
-
return (_jsxs("div", { style: containerStyle, children: [(!
|
|
273
|
-
(
|
|
292
|
+
return (_jsxs("div", { style: containerStyle, children: [(!isChartBuilderHorizontalView ||
|
|
293
|
+
(isChartBuilderHorizontalView && !isChartBuilderOpen)) && (_jsx("div", { style: {
|
|
274
294
|
height: '100%',
|
|
275
295
|
display: 'flex',
|
|
276
296
|
flexDirection: 'column',
|
|
@@ -288,7 +308,7 @@ export default function QueryEditor({ containerStyle = { height: '100vh' }, Butt
|
|
|
288
308
|
width: 'calc(100% - 290px)',
|
|
289
309
|
height: '100%',
|
|
290
310
|
overflowX: 'hidden',
|
|
291
|
-
}, children: [_jsxs("form", { onSubmit: (e) => {
|
|
311
|
+
}, children: [_jsxs("form", { ref: formRef, onSubmit: (e) => {
|
|
292
312
|
e.preventDefault();
|
|
293
313
|
handleRunSqlPrompt();
|
|
294
314
|
}, style: {
|
|
@@ -297,7 +317,7 @@ export default function QueryEditor({ containerStyle = { height: '100vh' }, Butt
|
|
|
297
317
|
gap: 12,
|
|
298
318
|
paddingTop: 16,
|
|
299
319
|
paddingBottom: 16,
|
|
300
|
-
}, children: [_jsx(TextInputComponent, { id: "ai-search", value: sqlPrompt,
|
|
320
|
+
}, children: [_jsx(TextInputComponent, { id: "ai-search", value: sqlPrompt, width: searchBarWidth, onChange: (e) => setSqlPrompt(e.target.value), placeholder: "Ask a question..." }), _jsx(ButtonComponent, { onClick: handleRunSqlPrompt, label: "Ask AI" })] }), _jsx("div", { style: { height: 'calc(50% - 40px)' }, children: _jsx(SQLEditorComponent, { query: query, setQuery: setQuery, handleRunQuery: handleRunQuery, handleFixWithAI: handleFixWithAI, isNewQueryEnabled: isNewQueryEnabled, handleClearQuery: handleClearQuery, theme: theme, defineEditorTheme: defineEditorTheme, setEditorTheme: setEditorTheme, ButtonComponent: ButtonComponent, SecondaryButtonComponent: SecondaryButtonComponent, loading: sqlResponseLoading, LoadingComponent: LoadingComponent }) }), _jsxs("div", { style: {
|
|
301
321
|
display: 'flex',
|
|
302
322
|
flexDirection: 'column',
|
|
303
323
|
height: 'calc(50% - 108px)',
|
|
@@ -322,16 +342,16 @@ export default function QueryEditor({ containerStyle = { height: '100vh' }, Butt
|
|
|
322
342
|
borderRadius: 6,
|
|
323
343
|
padding: 20,
|
|
324
344
|
width: '100%',
|
|
325
|
-
}, children: [errorMessage,
|
|
345
|
+
}, children: [errorMessage, _jsx(SecondaryButtonComponent, { onClick: handleFixWithAI, label: "Fix with AI" })] }) })), errorMessage || !displayTable ? null : (_jsx(TableComponent, { isLoading: sqlQueryLoading, rows: rows, columns: columns }))] }), isChartBuilderEnabled && rows.length > 0 && (_jsx("div", { style: {
|
|
326
346
|
display: 'flex',
|
|
327
347
|
flexDirection: 'row',
|
|
328
348
|
alignItems: 'center',
|
|
329
349
|
justifyContent: 'flex-end',
|
|
330
350
|
width: '100%',
|
|
331
351
|
height: '70px',
|
|
332
|
-
}, children:
|
|
352
|
+
}, children: _jsx(ButtonComponent, { onClick: () => setIsChartBuilderOpen(true), label: addToDashboardButtonLabel }) }))] })] }) }) })), _jsx(ChartBuilderWithModal, { rows: rows, columns: columns, fields: fields, query: query, horizontalView: isChartBuilderHorizontalView, isEditMode: isEditMode, isOpen: isChartBuilderOpen, setIsOpen: setIsChartBuilderOpen, onAddToDashboardComplete: onAddToDashboardComplete, showTableFormatOptions: showTableFormatOptions, showDateFieldOptions: showDateFieldOptions, showAccessControlOptions: showAccessControlOptions, destinationDashboard: destinationDashboard, title: chartBuilderTitle, button: chartBuilderButtonLabel, buttonLabel: addToDashboardButtonLabel, dashboardItem: dashboardItem, organizationName: organizationName, Modal: ModalComponent, Button: ButtonComponent })] }));
|
|
333
353
|
}
|
|
334
|
-
const SQLEditorComponent = ({ query, setQuery, handleRunQuery, handleFixWithAI, handleClearQuery, defineEditorTheme, setEditorTheme, ButtonComponent, SecondaryButtonComponent,
|
|
354
|
+
const SQLEditorComponent = ({ query, setQuery, handleRunQuery, handleFixWithAI, handleClearQuery, defineEditorTheme, setEditorTheme, ButtonComponent, SecondaryButtonComponent, isNewQueryEnabled, theme, loading, LoadingComponent, }) => {
|
|
335
355
|
return (_jsxs("div", { style: {
|
|
336
356
|
background: theme.backgroundColor,
|
|
337
357
|
// maxHeight: 700,
|
|
@@ -366,7 +386,7 @@ const SQLEditorComponent = ({ query, setQuery, handleRunQuery, handleFixWithAI,
|
|
|
366
386
|
flexDirection: 'row',
|
|
367
387
|
alignItems: 'center',
|
|
368
388
|
height: 70,
|
|
369
|
-
}, children: _jsxs("div", { style: { display: 'flex', gap: 12 }, children: [
|
|
389
|
+
}, children: _jsxs("div", { style: { display: 'flex', gap: 12 }, children: [_jsx(ButtonComponent, { onClick: handleRunQuery, label: "Run query" }), isNewQueryEnabled && (_jsx(SecondaryButtonComponent, { onClick: handleClearQuery, label: "Clear query" }))] }) })] }));
|
|
370
390
|
};
|
|
371
391
|
export const SchemaListComponent = ({ schema, theme, loading, LoadingComponent, width, onClick = () => { }, }) => {
|
|
372
392
|
if (loading) {
|
package/dist/esm/Table.d.ts
CHANGED
|
@@ -3,25 +3,129 @@ export interface TableColumn {
|
|
|
3
3
|
label: string;
|
|
4
4
|
field: string;
|
|
5
5
|
}
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
/**
|
|
7
|
+
* Props for the Quill Table component.
|
|
8
|
+
*/
|
|
9
|
+
export interface TableProps {
|
|
10
|
+
/**
|
|
11
|
+
* The id of the table to render, if any.
|
|
12
|
+
*
|
|
13
|
+
* When a `chartId` is passed, the table will first fetch the data necessary
|
|
14
|
+
* to render this table, and then it will render the rows and columns that it
|
|
15
|
+
* receives from the server.
|
|
16
|
+
*
|
|
17
|
+
* NOTE: A `chartId` must be passed if `rows` and `columns` are not present.
|
|
18
|
+
*/
|
|
19
|
+
chartId?: string;
|
|
20
|
+
/**
|
|
21
|
+
* The rows of the table to show, if any.
|
|
22
|
+
*
|
|
23
|
+
* When `rows` and `columns` are passed, the table will not refetch the given
|
|
24
|
+
* dashboard item and will instead simply render the rows and columns it was
|
|
25
|
+
* given.
|
|
26
|
+
*
|
|
27
|
+
* NOTE: Both `rows` and `columns` must be passed if `chartId` is not present.
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* ```js
|
|
31
|
+
* let rows = {[
|
|
32
|
+
* { x: 1, y: 1, z: 0 },
|
|
33
|
+
* { x: 2, y: 2, z: 0 },
|
|
34
|
+
* { x: 3, y: 3, z: 0 },
|
|
35
|
+
* { x: 4, y: 4, z: 0 }
|
|
36
|
+
* ]};
|
|
37
|
+
* let columns = {[
|
|
38
|
+
* { label: "My X-Axis", field: "x" },
|
|
39
|
+
* { label: "My Y-Axis", field: "y" }
|
|
40
|
+
* ]}'
|
|
41
|
+
* ```
|
|
42
|
+
*/
|
|
43
|
+
rows: {
|
|
44
|
+
[key: string]: any;
|
|
45
|
+
}[];
|
|
46
|
+
/**
|
|
47
|
+
* The columns of the table to show, if any.
|
|
48
|
+
*
|
|
49
|
+
* When `rows` and `columns` are passed, the table will not refetch the given
|
|
50
|
+
* dashboard item and will instead simply render the rows and columns it was
|
|
51
|
+
* given.
|
|
52
|
+
*
|
|
53
|
+
* NOTE: Both `rows` and `columns` must be passed if `chartId` is not present.
|
|
54
|
+
*
|
|
55
|
+
* @example
|
|
56
|
+
* ```js
|
|
57
|
+
* let rows = {[
|
|
58
|
+
* { x: 1, y: 1, z: 0 },
|
|
59
|
+
* { x: 2, y: 2, z: 0 },
|
|
60
|
+
* { x: 3, y: 3, z: 0 },
|
|
61
|
+
* { x: 4, y: 4, z: 0 }
|
|
62
|
+
* ]};
|
|
63
|
+
* let columns = {[
|
|
64
|
+
* { label: "My X-Axis", field: "x" },
|
|
65
|
+
* { label: "My Y-Axis", field: "y" }
|
|
66
|
+
* ]}'
|
|
67
|
+
* ```
|
|
68
|
+
*/
|
|
69
|
+
columns: {
|
|
70
|
+
label: string;
|
|
71
|
+
field: string;
|
|
72
|
+
}[];
|
|
73
|
+
/**
|
|
74
|
+
* The placeholder filename to use when downloading this table as a csv file.
|
|
75
|
+
*/
|
|
9
76
|
csvFilename?: string;
|
|
77
|
+
/**
|
|
78
|
+
* Whether to show the download csv button.
|
|
79
|
+
*/
|
|
10
80
|
showDownloadCSVButton?: boolean;
|
|
81
|
+
/**
|
|
82
|
+
* Whether this table component is loading.
|
|
83
|
+
*/
|
|
84
|
+
isLoading?: boolean;
|
|
85
|
+
/**
|
|
86
|
+
* A callback that is fired when the user clicks download csv.
|
|
87
|
+
*/
|
|
88
|
+
downloadCSV?: () => void;
|
|
89
|
+
/**
|
|
90
|
+
* A loading component to show when the table is loading.
|
|
91
|
+
*/
|
|
11
92
|
LoadingComponent?: () => JSX.Element;
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
rows: object[];
|
|
93
|
+
/**
|
|
94
|
+
* Styles the top-level container of the Table.
|
|
95
|
+
*/
|
|
16
96
|
containerStyle?: React.CSSProperties;
|
|
17
|
-
csvFilename?: string;
|
|
18
|
-
showDownloadCSVButton?: boolean;
|
|
19
|
-
LoadingComponent?: () => JSX.Element;
|
|
20
|
-
loading?: boolean;
|
|
21
|
-
height?: string;
|
|
22
|
-
downloadCSV?: () => void;
|
|
23
97
|
}
|
|
24
|
-
|
|
25
|
-
|
|
98
|
+
/**
|
|
99
|
+
* ### Quill Table
|
|
100
|
+
*
|
|
101
|
+
* A simple component that displays the given data as a table.
|
|
102
|
+
*
|
|
103
|
+
* @example
|
|
104
|
+
* ```js
|
|
105
|
+
* // Usage with chart id (will auto-fetch data)
|
|
106
|
+
* <Table chartId="12345" />
|
|
107
|
+
* ```
|
|
108
|
+
*
|
|
109
|
+
* @example
|
|
110
|
+
* ```js
|
|
111
|
+
* // Usage with rows and columns (will not auto-fetch data)
|
|
112
|
+
* <Table
|
|
113
|
+
* rows={[
|
|
114
|
+
* { x: 1, y: 1, z: 0 },
|
|
115
|
+
* { x: 2, y: 2, z: 0 },
|
|
116
|
+
* { x: 3, y: 3, z: 0 },
|
|
117
|
+
* { x: 4, y: 4, z: 0 }
|
|
118
|
+
* ]}
|
|
119
|
+
* columns={[
|
|
120
|
+
* { label: "My X-Axis", field: "x" },
|
|
121
|
+
* { label: "My Y-Axis", field: "y" }
|
|
122
|
+
* ]}
|
|
123
|
+
* />
|
|
124
|
+
* ```
|
|
125
|
+
*
|
|
126
|
+
* ### Table API
|
|
127
|
+
* @see https://docs.quillsql.com/components/table
|
|
128
|
+
*/
|
|
129
|
+
declare const Table: (props: TableProps) => import("react/jsx-runtime").JSX.Element;
|
|
26
130
|
export default Table;
|
|
27
131
|
//# sourceMappingURL=Table.d.ts.map
|
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,
|
|
1
|
+
{"version":3,"file":"Table.d.ts","sourceRoot":"","sources":["../../src/Table.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAgC,MAAM,OAAO,CAAC;AAYrD,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAuBD;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,IAAI,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,EAAE,CAAC;IAE/B;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;KACf,EAAE,CAAC;IAEJ;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAEhC;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IAEzB;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,GAAG,CAAC,OAAO,CAAC;IAErC;;OAEG;IACH,cAAc,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CACtC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,QAAA,MAAM,KAAK,UAAW,UAAU,4CAiC/B,CAAC;AA8FF,eAAe,KAAK,CAAC"}
|
package/dist/esm/Table.js
CHANGED
|
@@ -1,22 +1,53 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { useContext, useEffect } from 'react';
|
|
3
|
-
import { ClientContext, DashboardContext,
|
|
3
|
+
import { ClientContext, DashboardContext, DashboardFiltersContext, } from './Context';
|
|
4
4
|
import { getData } from './utils/dataFetcher';
|
|
5
5
|
import { mergeComparisonRange } from './utils/merge';
|
|
6
6
|
import QuillTable from './components/QuillTable';
|
|
7
7
|
import { useMemoizedRows } from './hooks/useFormat';
|
|
8
8
|
import { useExport } from './hooks/useExport';
|
|
9
|
-
|
|
9
|
+
/**
|
|
10
|
+
* ### Quill Table
|
|
11
|
+
*
|
|
12
|
+
* A simple component that displays the given data as a table.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```js
|
|
16
|
+
* // Usage with chart id (will auto-fetch data)
|
|
17
|
+
* <Table chartId="12345" />
|
|
18
|
+
* ```
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* ```js
|
|
22
|
+
* // Usage with rows and columns (will not auto-fetch data)
|
|
23
|
+
* <Table
|
|
24
|
+
* rows={[
|
|
25
|
+
* { x: 1, y: 1, z: 0 },
|
|
26
|
+
* { x: 2, y: 2, z: 0 },
|
|
27
|
+
* { x: 3, y: 3, z: 0 },
|
|
28
|
+
* { x: 4, y: 4, z: 0 }
|
|
29
|
+
* ]}
|
|
30
|
+
* columns={[
|
|
31
|
+
* { label: "My X-Axis", field: "x" },
|
|
32
|
+
* { label: "My Y-Axis", field: "y" }
|
|
33
|
+
* ]}
|
|
34
|
+
* />
|
|
35
|
+
* ```
|
|
36
|
+
*
|
|
37
|
+
* ### Table API
|
|
38
|
+
* @see https://docs.quillsql.com/components/table
|
|
39
|
+
*/
|
|
40
|
+
const Table = (props) => {
|
|
41
|
+
let data = props;
|
|
10
42
|
const { dispatch, dashboard } = useContext(DashboardContext);
|
|
11
43
|
const { dashboardFilters } = useContext(DashboardFiltersContext);
|
|
12
44
|
const [client, _] = useContext(ClientContext);
|
|
13
|
-
const [theme] = useContext(ThemeContext);
|
|
14
45
|
if ('rows' in data && 'columns' in data) {
|
|
15
|
-
return (_jsx(QuillTable, { showDownloadCSVButton: data.showDownloadCSVButton, downloadFileName: data.csvFilename, columns: data.columns, rows: data.rows, containerStyle: data.containerStyle, LoadingComponent: data.LoadingComponent,
|
|
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 }));
|
|
16
47
|
}
|
|
17
|
-
return (_jsx(ChartUpdater, { showDownloadCSVButton: data.showDownloadCSVButton, dispatch: dispatch, dashboard: dashboard, chartId: data.chartId, containerStyle: data.containerStyle, dashboardFilters: dashboardFilters, client: client,
|
|
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 }));
|
|
18
49
|
};
|
|
19
|
-
const ChartUpdater = ({ chartId, containerStyle, dashboard, dispatch, client, dashboardFilters,
|
|
50
|
+
const ChartUpdater = ({ chartId, containerStyle, dashboard, dispatch, client, dashboardFilters, csvFilename, showDownloadCSVButton = true, LoadingComponent, }) => {
|
|
20
51
|
const { rows, loading } = useMemoizedRows(chartId);
|
|
21
52
|
const { downloadCSV } = useExport(chartId);
|
|
22
53
|
useEffect(() => {
|
|
@@ -69,6 +100,6 @@ const ChartUpdater = ({ chartId, containerStyle, dashboard, dispatch, client, da
|
|
|
69
100
|
// @ts-ignore
|
|
70
101
|
columns: dashboard[chartId]?.columns || [],
|
|
71
102
|
// @ts-ignore
|
|
72
|
-
rows: rows || dashboard[chartId]?.rows || [], containerStyle: containerStyle, LoadingComponent: LoadingComponent,
|
|
103
|
+
rows: rows || dashboard[chartId]?.rows || [], containerStyle: containerStyle, LoadingComponent: LoadingComponent, isLoading: loading, downloadCSV: downloadCSV }));
|
|
73
104
|
};
|
|
74
105
|
export default Table;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableChart.d.ts","sourceRoot":"","sources":["../../src/TableChart.tsx"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"TableChart.d.ts","sourceRoot":"","sources":["../../src/TableChart.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAGvC,UAAU,UAAU;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,YAAa,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IACxE,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,wBAAgB,2BAA2B,CAAC,GAAG,KAAA,UAW9C;AAoED,QAAA,MAAM,UAAU,qFAsEf,CAAC;AAEF,eAAe,UAAU,CAAC"}
|