@quillsql/react 2.11.24 → 2.11.26
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 +16 -0
- package/dist/cjs/Chart.d.ts.map +1 -1
- package/dist/cjs/Chart.js +20 -17
- package/dist/cjs/ChartBuilder.d.ts +7 -20
- package/dist/cjs/ChartBuilder.d.ts.map +1 -1
- package/dist/cjs/ChartBuilder.js +37 -34
- package/dist/cjs/ChartEditor.d.ts.map +1 -1
- package/dist/cjs/ChartEditor.js +3 -3
- package/dist/cjs/Dashboard.d.ts +2 -1
- package/dist/cjs/Dashboard.d.ts.map +1 -1
- package/dist/cjs/ReportBuilder.d.ts +6 -4
- package/dist/cjs/ReportBuilder.d.ts.map +1 -1
- package/dist/cjs/ReportBuilder.js +208 -133
- package/dist/cjs/SQLEditor.d.ts +4 -11
- package/dist/cjs/SQLEditor.d.ts.map +1 -1
- package/dist/cjs/SQLEditor.js +31 -97
- package/dist/cjs/components/Chart/LineChart.d.ts +5 -1
- package/dist/cjs/components/Chart/LineChart.d.ts.map +1 -1
- package/dist/cjs/components/Chart/LineChart.js +3 -3
- package/dist/cjs/components/Dashboard/DashboardFilter.js +1 -1
- package/dist/cjs/components/Dashboard/MetricComponent.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/MetricComponent.js +9 -12
- package/dist/cjs/components/Dashboard/TableComponent.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/TableComponent.js +12 -10
- package/dist/cjs/components/QuillTable.d.ts +4 -1
- package/dist/cjs/components/QuillTable.d.ts.map +1 -1
- package/dist/cjs/components/QuillTable.js +1 -1
- package/dist/cjs/components/ReportBuilder/convert.d.ts +2 -2
- package/dist/cjs/internals/ReportBuilder/PivotList.d.ts +27 -24
- package/dist/cjs/internals/ReportBuilder/PivotList.d.ts.map +1 -1
- package/dist/cjs/internals/ReportBuilder/PivotList.js +9 -7
- package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts +9 -2
- package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
- package/dist/cjs/internals/ReportBuilder/PivotModal.js +53 -43
- package/dist/cjs/models/Columns.d.ts +11 -0
- package/dist/cjs/models/Columns.d.ts.map +1 -0
- package/dist/cjs/models/Columns.js +2 -0
- package/dist/cjs/models/Tables.d.ts +0 -8
- package/dist/cjs/models/Tables.d.ts.map +1 -1
- package/dist/cjs/utils/astProcessing.d.ts +3 -0
- package/dist/cjs/utils/astProcessing.d.ts.map +1 -0
- package/dist/cjs/utils/astProcessing.js +20 -0
- package/dist/cjs/utils/columnProcessing.d.ts +9 -0
- package/dist/cjs/utils/columnProcessing.d.ts.map +1 -0
- package/dist/cjs/utils/columnProcessing.js +207 -0
- package/dist/cjs/utils/dashboard.js +9 -9
- package/dist/cjs/utils/pivotProcessing.d.ts +2 -1
- package/dist/cjs/utils/pivotProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/pivotProcessing.js +3 -8
- package/dist/cjs/utils/tableProcessing.d.ts +2 -2
- package/dist/cjs/utils/tableProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/tableProcessing.js +1 -3
- package/dist/cjs/utils/valueFormatter.d.ts +2 -1
- package/dist/cjs/utils/valueFormatter.d.ts.map +1 -1
- package/dist/cjs/utils/valueFormatter.js +12 -1
- package/dist/esm/Chart.d.ts +16 -0
- package/dist/esm/Chart.d.ts.map +1 -1
- package/dist/esm/Chart.js +20 -17
- package/dist/esm/ChartBuilder.d.ts +7 -20
- package/dist/esm/ChartBuilder.d.ts.map +1 -1
- package/dist/esm/ChartBuilder.js +37 -34
- package/dist/esm/ChartEditor.d.ts.map +1 -1
- package/dist/esm/ChartEditor.js +3 -3
- package/dist/esm/Dashboard.d.ts +2 -1
- package/dist/esm/Dashboard.d.ts.map +1 -1
- package/dist/esm/ReportBuilder.d.ts +6 -4
- package/dist/esm/ReportBuilder.d.ts.map +1 -1
- package/dist/esm/ReportBuilder.js +204 -129
- package/dist/esm/SQLEditor.d.ts +4 -11
- package/dist/esm/SQLEditor.d.ts.map +1 -1
- package/dist/esm/SQLEditor.js +30 -95
- package/dist/esm/components/Chart/LineChart.d.ts +5 -1
- package/dist/esm/components/Chart/LineChart.d.ts.map +1 -1
- package/dist/esm/components/Chart/LineChart.js +3 -3
- package/dist/esm/components/Dashboard/DashboardFilter.js +1 -1
- package/dist/esm/components/Dashboard/MetricComponent.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/MetricComponent.js +9 -12
- package/dist/esm/components/Dashboard/TableComponent.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/TableComponent.js +12 -10
- package/dist/esm/components/QuillTable.d.ts +4 -1
- package/dist/esm/components/QuillTable.d.ts.map +1 -1
- package/dist/esm/components/QuillTable.js +1 -1
- package/dist/esm/components/ReportBuilder/convert.d.ts +2 -2
- package/dist/esm/internals/ReportBuilder/PivotList.d.ts +27 -24
- package/dist/esm/internals/ReportBuilder/PivotList.d.ts.map +1 -1
- package/dist/esm/internals/ReportBuilder/PivotList.js +9 -7
- package/dist/esm/internals/ReportBuilder/PivotModal.d.ts +9 -2
- package/dist/esm/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
- package/dist/esm/internals/ReportBuilder/PivotModal.js +55 -45
- package/dist/esm/models/Columns.d.ts +11 -0
- package/dist/esm/models/Columns.d.ts.map +1 -0
- package/dist/esm/models/Columns.js +1 -0
- package/dist/esm/models/Tables.d.ts +0 -8
- package/dist/esm/models/Tables.d.ts.map +1 -1
- package/dist/esm/utils/astProcessing.d.ts +3 -0
- package/dist/esm/utils/astProcessing.d.ts.map +1 -0
- package/dist/esm/utils/astProcessing.js +16 -0
- package/dist/esm/utils/columnProcessing.d.ts +9 -0
- package/dist/esm/utils/columnProcessing.d.ts.map +1 -0
- package/dist/esm/utils/columnProcessing.js +201 -0
- package/dist/esm/utils/dashboard.js +9 -9
- package/dist/esm/utils/pivotProcessing.d.ts +2 -1
- package/dist/esm/utils/pivotProcessing.d.ts.map +1 -1
- package/dist/esm/utils/pivotProcessing.js +3 -8
- package/dist/esm/utils/tableProcessing.d.ts +2 -2
- package/dist/esm/utils/tableProcessing.d.ts.map +1 -1
- package/dist/esm/utils/tableProcessing.js +1 -3
- package/dist/esm/utils/valueFormatter.d.ts +2 -1
- package/dist/esm/utils/valueFormatter.d.ts.map +1 -1
- package/dist/esm/utils/valueFormatter.js +11 -0
- package/package.json +1 -1
- package/dist/cjs/utils/types.d.ts +0 -4
- package/dist/cjs/utils/types.d.ts.map +0 -1
- package/dist/cjs/utils/types.js +0 -52
- package/dist/cjs/utils/valueFormatterCSV.d.ts +0 -17
- package/dist/cjs/utils/valueFormatterCSV.d.ts.map +0 -1
- package/dist/cjs/utils/valueFormatterCSV.js +0 -99
- package/dist/esm/utils/types.d.ts +0 -4
- package/dist/esm/utils/types.d.ts.map +0 -1
- package/dist/esm/utils/types.js +0 -48
- package/dist/esm/utils/valueFormatterCSV.d.ts +0 -17
- package/dist/esm/utils/valueFormatterCSV.d.ts.map +0 -1
- package/dist/esm/utils/valueFormatterCSV.js +0 -95
package/dist/esm/SQLEditor.d.ts
CHANGED
|
@@ -1,12 +1,5 @@
|
|
|
1
1
|
import React, { ReactNode } from 'react';
|
|
2
2
|
import { DashboardItem } from './Dashboard';
|
|
3
|
-
export declare function convertPostgresColumn(column: any): {
|
|
4
|
-
name: any;
|
|
5
|
-
label: any;
|
|
6
|
-
field: any;
|
|
7
|
-
format: string;
|
|
8
|
-
fieldType: string;
|
|
9
|
-
};
|
|
10
3
|
/**
|
|
11
4
|
* Props for the Quill SQLEditor component.
|
|
12
5
|
*/
|
|
@@ -267,9 +260,9 @@ export default function SQLEditor({ ButtonComponent, SecondaryButtonComponent, D
|
|
|
267
260
|
export declare const SchemaListComponent: ({ schema, theme, loading, LoadingComponent, width, onClick, }: {
|
|
268
261
|
schema: any;
|
|
269
262
|
theme: any;
|
|
270
|
-
loading:
|
|
271
|
-
LoadingComponent
|
|
272
|
-
width
|
|
273
|
-
onClick
|
|
263
|
+
loading: boolean;
|
|
264
|
+
LoadingComponent?: any;
|
|
265
|
+
width?: any;
|
|
266
|
+
onClick: (event: React.MouseEvent<HTMLDivElement>) => void;
|
|
274
267
|
}) => import("react/jsx-runtime").JSX.Element;
|
|
275
268
|
//# 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,6 +1,5 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
/* eslint-disable no-unused-vars */
|
|
3
|
-
// @ts-nocheck
|
|
4
3
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
5
4
|
import { useState, useContext, useEffect, useRef, } from 'react';
|
|
6
5
|
import MonacoEditor from '@monaco-editor/react';
|
|
@@ -12,83 +11,8 @@ import { QuillTextInput } from './components/UiComponents';
|
|
|
12
11
|
import { updateFirstChildWidth } from './utils/width';
|
|
13
12
|
import { QuillCard } from './components/QuillCard';
|
|
14
13
|
import { QuillSelectComponent } from './components/QuillSelect';
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
let fieldType;
|
|
18
|
-
switch (column.dataTypeID) {
|
|
19
|
-
case 16: // bool
|
|
20
|
-
format = 'string';
|
|
21
|
-
break;
|
|
22
|
-
case 20: // int8
|
|
23
|
-
case 21: // int2
|
|
24
|
-
case 23: // int4
|
|
25
|
-
format = 'whole_number';
|
|
26
|
-
break;
|
|
27
|
-
case 700: // float4
|
|
28
|
-
case 701: // float8
|
|
29
|
-
case 1700: // numeric
|
|
30
|
-
format = 'two_decimal_places';
|
|
31
|
-
break;
|
|
32
|
-
case 1082: // date
|
|
33
|
-
case 1083: // time
|
|
34
|
-
case 1184: // timestamptz
|
|
35
|
-
case 1114: // timestamp
|
|
36
|
-
format = 'MMM_dd_yyyy';
|
|
37
|
-
break;
|
|
38
|
-
case 1186: // interval
|
|
39
|
-
case 1043: // varchar
|
|
40
|
-
default:
|
|
41
|
-
format = 'string';
|
|
42
|
-
}
|
|
43
|
-
switch (column.dataTypeID) {
|
|
44
|
-
case 16: // boolean
|
|
45
|
-
fieldType = 'bool';
|
|
46
|
-
break;
|
|
47
|
-
case 20: // int8
|
|
48
|
-
fieldType = 'int8';
|
|
49
|
-
break;
|
|
50
|
-
case 21: // int2
|
|
51
|
-
fieldType = 'int2';
|
|
52
|
-
break;
|
|
53
|
-
case 23: // int4
|
|
54
|
-
fieldType = 'int4';
|
|
55
|
-
break;
|
|
56
|
-
case 700: // float4
|
|
57
|
-
fieldType = 'float4';
|
|
58
|
-
break;
|
|
59
|
-
case 701: // float8
|
|
60
|
-
fieldType = 'float8';
|
|
61
|
-
break;
|
|
62
|
-
case 1700: // numeric
|
|
63
|
-
fieldType = 'numeric';
|
|
64
|
-
break;
|
|
65
|
-
case 1082: // date
|
|
66
|
-
fieldType = 'date';
|
|
67
|
-
break;
|
|
68
|
-
case 1083: // time
|
|
69
|
-
fieldType = 'time';
|
|
70
|
-
break;
|
|
71
|
-
case 1184: // timestamptz
|
|
72
|
-
fieldType = 'timestamptz';
|
|
73
|
-
break;
|
|
74
|
-
case 1186: // interval
|
|
75
|
-
fieldType = 'interval';
|
|
76
|
-
break;
|
|
77
|
-
case 1114: // timestamp
|
|
78
|
-
fieldType = 'timestamp';
|
|
79
|
-
break;
|
|
80
|
-
case 1043: // varchar
|
|
81
|
-
default:
|
|
82
|
-
fieldType = 'varchar';
|
|
83
|
-
}
|
|
84
|
-
return {
|
|
85
|
-
name: column.name,
|
|
86
|
-
label: column.name,
|
|
87
|
-
field: column.name,
|
|
88
|
-
format,
|
|
89
|
-
fieldType,
|
|
90
|
-
};
|
|
91
|
-
}
|
|
14
|
+
import { quillFormat } from './utils/valueFormatter';
|
|
15
|
+
import { convertPostgresColumn } from './utils/columnProcessing';
|
|
92
16
|
function defineEditorTheme(monaco, theme) {
|
|
93
17
|
monaco.editor.defineTheme('onedark', {
|
|
94
18
|
base: theme.darkMode ? 'vs-dark' : 'vs',
|
|
@@ -146,7 +70,6 @@ export default function SQLEditor({ ButtonComponent = MemoizedButton, SecondaryB
|
|
|
146
70
|
const [query, setQuery] = useState(defaultQuery);
|
|
147
71
|
const [rows, setRows] = useState([]);
|
|
148
72
|
const [columns, setColumns] = useState([]);
|
|
149
|
-
const [fields, setFields] = useState([]);
|
|
150
73
|
const [schema, setSchema] = useContext(SchemaContext);
|
|
151
74
|
const [errorMessage, setErrorMessage] = useState('');
|
|
152
75
|
const [sqlResponseLoading, setSqlResponseLoading] = useState(false);
|
|
@@ -156,6 +79,7 @@ export default function SQLEditor({ ButtonComponent = MemoizedButton, SecondaryB
|
|
|
156
79
|
const [displayTable, setDisplayTable] = useState(false);
|
|
157
80
|
const formRef = useRef(null);
|
|
158
81
|
const [searchBarWidth, setSearchBarWidth] = useState(200);
|
|
82
|
+
const [formattedRows, setFormattedRows] = useState([]);
|
|
159
83
|
useEffect(() => {
|
|
160
84
|
// Since the TextInput component takes a required numeric width parameter,
|
|
161
85
|
// we dynamically calculate the width of this component here.
|
|
@@ -239,7 +163,6 @@ export default function SQLEditor({ ButtonComponent = MemoizedButton, SecondaryB
|
|
|
239
163
|
setErrorMessage('Failed to run SQL query: ' + resp.errorMessage);
|
|
240
164
|
setRows([]);
|
|
241
165
|
setColumns([]);
|
|
242
|
-
setFields([]);
|
|
243
166
|
return;
|
|
244
167
|
}
|
|
245
168
|
setSqlQueryLoading(false);
|
|
@@ -247,15 +170,27 @@ export default function SQLEditor({ ButtonComponent = MemoizedButton, SecondaryB
|
|
|
247
170
|
if (resp.rows.length === 0) {
|
|
248
171
|
setErrorMessage('No data found');
|
|
249
172
|
}
|
|
250
|
-
|
|
173
|
+
const temp_rows = resp.rows && resp.rows.length ? resp.rows : [];
|
|
174
|
+
const processedFields = resp.fields.map((elem) => convertPostgresColumn(elem));
|
|
175
|
+
setRows(temp_rows);
|
|
176
|
+
setFormattedRows(temp_rows.map((row) => {
|
|
177
|
+
return processedFields.reduce((formattedRow, column) => {
|
|
178
|
+
// Apply the format function to each field in the row
|
|
179
|
+
const formattedValue = quillFormat({
|
|
180
|
+
value: row[column.field],
|
|
181
|
+
format: column.format,
|
|
182
|
+
});
|
|
183
|
+
formattedRow[column.field] = formattedValue;
|
|
184
|
+
return formattedRow;
|
|
185
|
+
}, {});
|
|
186
|
+
}));
|
|
251
187
|
if (onChangeData) {
|
|
252
|
-
onChangeData(
|
|
188
|
+
onChangeData(temp_rows);
|
|
253
189
|
}
|
|
254
|
-
setColumns(
|
|
190
|
+
setColumns(processedFields);
|
|
255
191
|
if (onChangeColumns) {
|
|
256
|
-
onChangeColumns(
|
|
192
|
+
onChangeColumns(processedFields);
|
|
257
193
|
}
|
|
258
|
-
setFields(resp.fields);
|
|
259
194
|
if (onChangeFields) {
|
|
260
195
|
onChangeFields(resp.fields);
|
|
261
196
|
}
|
|
@@ -286,8 +221,8 @@ export default function SQLEditor({ ButtonComponent = MemoizedButton, SecondaryB
|
|
|
286
221
|
};
|
|
287
222
|
const handleClickSchemaItem = async (event) => {
|
|
288
223
|
const name = event.target.textContent;
|
|
289
|
-
if (query.length > 0) {
|
|
290
|
-
await navigator.clipboard.writeText(name);
|
|
224
|
+
if (query && query.length > 0) {
|
|
225
|
+
await navigator.clipboard.writeText(name || '');
|
|
291
226
|
}
|
|
292
227
|
else {
|
|
293
228
|
setQuery(`SELECT * FROM ${name};`);
|
|
@@ -295,7 +230,7 @@ export default function SQLEditor({ ButtonComponent = MemoizedButton, SecondaryB
|
|
|
295
230
|
};
|
|
296
231
|
useEffect(() => {
|
|
297
232
|
if (onChangeQuery) {
|
|
298
|
-
onChangeQuery(query);
|
|
233
|
+
onChangeQuery(query || '');
|
|
299
234
|
}
|
|
300
235
|
}, [query]);
|
|
301
236
|
return (_jsxs("div", { style: { backgroundColor: theme.backgroundColor, ...containerStyle }, className: className, children: [(!isChartBuilderHorizontalView ||
|
|
@@ -326,7 +261,7 @@ export default function SQLEditor({ ButtonComponent = MemoizedButton, SecondaryB
|
|
|
326
261
|
gap: 12,
|
|
327
262
|
paddingTop: 16,
|
|
328
263
|
paddingBottom: 16,
|
|
329
|
-
}, 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: {
|
|
264
|
+
}, 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: {
|
|
330
265
|
display: 'flex',
|
|
331
266
|
flexDirection: 'column',
|
|
332
267
|
height: 'calc(50% - 108px)',
|
|
@@ -351,14 +286,14 @@ export default function SQLEditor({ ButtonComponent = MemoizedButton, SecondaryB
|
|
|
351
286
|
borderRadius: 6,
|
|
352
287
|
padding: 20,
|
|
353
288
|
width: '100%',
|
|
354
|
-
}, children: [errorMessage, _jsx(SecondaryButtonComponent, { onClick: handleFixWithAI, label: "Fix with AI" })] }) })), errorMessage || !displayTable ? null : (_jsx(TableComponent, { isLoading: sqlQueryLoading, rows:
|
|
289
|
+
}, children: [errorMessage, _jsx(SecondaryButtonComponent, { onClick: handleFixWithAI, label: "Fix with AI" })] }) })), errorMessage || !displayTable ? null : (_jsx(TableComponent, { isLoading: sqlQueryLoading, rows: formattedRows, columns: columns }))] }), isChartBuilderEnabled && rows.length > 0 && (_jsx("div", { style: {
|
|
355
290
|
display: 'flex',
|
|
356
291
|
flexDirection: 'row',
|
|
357
292
|
alignItems: 'center',
|
|
358
293
|
justifyContent: 'flex-end',
|
|
359
294
|
width: '100%',
|
|
360
295
|
height: '70px',
|
|
361
|
-
}, children: _jsx(ButtonComponent, { onClick: () => setIsChartBuilderOpen(true), label: addToDashboardButtonLabel }) }))] })] }) }) })), _jsx(ChartBuilderWithModal, { rows: rows, columns: columns,
|
|
296
|
+
}, children: _jsx(ButtonComponent, { onClick: () => setIsChartBuilderOpen(true), label: addToDashboardButtonLabel }) }))] })] }) }) })), _jsx(ChartBuilderWithModal, { rows: rows, columns: columns, query: query, isHorizontalView: isChartBuilderHorizontalView, isOpen: isChartBuilderOpen, setIsOpen: setIsChartBuilderOpen, onAddToDashboardComplete: onAddToDashboardComplete, showTableFormatOptions: showTableFormatOptions, showDateFieldOptions: showDateFieldOptions, showAccessControlOptions: showAccessControlOptions, destinationDashboard: destinationDashboard, title: chartBuilderTitle, buttonLabel: addToDashboardButtonLabel, dashboardItem: dashboardItem, 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, ChartBuilderInputRowContainer: ChartBuilderInputRowContainer, ChartBuilderInputColumnContainer: ChartBuilderInputColumnContainer, ErrorMessageComponent: ErrorMessageComponent, PivotRowContainer: PivotRowContainer, PivotColumnContainer: PivotColumnContainer, FormContainer: ChartBuilderFormContainer, hideDateRangeFilter: true })] }));
|
|
362
297
|
}
|
|
363
298
|
const SQLEditorComponent = ({ query, setQuery, handleRunQuery, handleFixWithAI, handleClearQuery, defineEditorTheme, setEditorTheme, ButtonComponent, SecondaryButtonComponent, isNewQueryEnabled, theme, loading, LoadingComponent, }) => {
|
|
364
299
|
return (_jsxs("div", { style: {
|
|
@@ -389,14 +324,14 @@ const SQLEditorComponent = ({ query, setQuery, handleRunQuery, handleFixWithAI,
|
|
|
389
324
|
enabled: false,
|
|
390
325
|
},
|
|
391
326
|
padding: { top: 16 },
|
|
392
|
-
}, onChange: (query) => setQuery(query), beforeMount: (monaco) => defineEditorTheme(monaco, theme), onMount: setEditorTheme })), _jsx("div", { style: {
|
|
327
|
+
}, onChange: (query) => setQuery(query || ''), beforeMount: (monaco) => defineEditorTheme(monaco, theme), onMount: setEditorTheme })), _jsx("div", { style: {
|
|
393
328
|
display: 'flex',
|
|
394
329
|
flexDirection: 'row',
|
|
395
330
|
alignItems: 'center',
|
|
396
331
|
height: 70,
|
|
397
332
|
}, children: _jsxs("div", { style: { display: 'flex', gap: 12 }, children: [_jsx(ButtonComponent, { onClick: handleRunQuery, label: "Run query" }), isNewQueryEnabled && (_jsx(SecondaryButtonComponent, { onClick: handleClearQuery, label: "Clear query" }))] }) })] }));
|
|
398
333
|
};
|
|
399
|
-
export const SchemaListComponent = ({ schema, theme, loading, LoadingComponent, width, onClick
|
|
334
|
+
export const SchemaListComponent = ({ schema, theme, loading, LoadingComponent, width, onClick, }) => {
|
|
400
335
|
if (loading) {
|
|
401
336
|
return (_jsxs("div", { style: {
|
|
402
337
|
// maxHeight: 700,
|
|
@@ -424,7 +359,7 @@ export const SchemaListComponent = ({ schema, theme, loading, LoadingComponent,
|
|
|
424
359
|
paddingRight: 30,
|
|
425
360
|
}, children: schema.map((elem, index) => (_jsx(SchemaItem, { elem: elem, theme: theme, index: index, onClick: onClick }, elem.displayName + index))) }));
|
|
426
361
|
};
|
|
427
|
-
function SchemaItem({ elem, theme, index, onClick }) {
|
|
362
|
+
function SchemaItem({ elem, theme, index, onClick, }) {
|
|
428
363
|
const [isOpen, setIsOpen] = useState(index === 0);
|
|
429
364
|
const schemaContainerStyle = {
|
|
430
365
|
display: 'flex',
|
|
@@ -505,5 +440,5 @@ function SchemaItem({ elem, theme, index, onClick }) {
|
|
|
505
440
|
padding: 0,
|
|
506
441
|
margin: 0,
|
|
507
442
|
fontFamily: theme?.fontFamily,
|
|
508
|
-
}, children: elem.fieldType })] }, elem.displayName +
|
|
443
|
+
}, children: elem.fieldType })] }, elem.displayName + index))) })) : null] }));
|
|
509
444
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { type ColorMapType } from '../../Chart';
|
|
3
|
-
export default function LineChart({ colors, colorMap, yAxisFields, data, containerStyle, className, xAxisField, xAxisFormat, theme, comparison, isAnimationActive, hideXAxis, hideYAxis, hideCartesianGrid, comparisonLineStyle, }: {
|
|
3
|
+
export default function LineChart({ colors, colorMap, yAxisFields, data, containerStyle, className, xAxisField, xAxisFormat, theme, comparison, isAnimationActive, hideXAxis, hideYAxis, hideCartesianGrid, hideHorizontalCartesianGrid, hideVerticalCartesianGrid, hideSubsequentXAxisTicks, cartesianGridLineStyle, comparisonLineStyle, }: {
|
|
4
4
|
colors?: string[];
|
|
5
5
|
colorMap?: ColorMapType;
|
|
6
6
|
yAxisFields: any[];
|
|
@@ -16,6 +16,10 @@ export default function LineChart({ colors, colorMap, yAxisFields, data, contain
|
|
|
16
16
|
hideXAxis: boolean;
|
|
17
17
|
hideYAxis: boolean;
|
|
18
18
|
hideCartesianGrid: boolean;
|
|
19
|
+
hideHorizontalCartesianGrid: boolean;
|
|
20
|
+
hideVerticalCartesianGrid: boolean;
|
|
21
|
+
hideSubsequentXAxisTicks: boolean;
|
|
22
|
+
cartesianGridLineStyle: 'solid' | 'dashed';
|
|
19
23
|
comparisonLineStyle: 'solid' | 'dashed';
|
|
20
24
|
}): import("react/jsx-runtime").JSX.Element;
|
|
21
25
|
//# sourceMappingURL=LineChart.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LineChart.d.ts","sourceRoot":"","sources":["../../../../src/components/Chart/LineChart.tsx"],"names":[],"mappings":";AAgBA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhD,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAChC,MAAM,EACN,QAAa,EACb,WAAW,EACX,IAAI,EACJ,cAAc,EACd,SAAS,EACT,UAAU,EACV,WAAW,EACX,KAAK,EACL,UAAU,EACV,iBAAwB,EACxB,SAAiB,EACjB,SAAiB,EACjB,iBAAyB,EACzB,mBAA6B,GAC9B,EAAE;IACD,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,WAAW,EAAE,GAAG,EAAE,CAAC;IACnB,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,cAAc,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,GAAG,CAAC;IACX,UAAU,EAAE,GAAG,CAAC;IAChB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,mBAAmB,EAAE,OAAO,GAAG,QAAQ,CAAC;CACzC,
|
|
1
|
+
{"version":3,"file":"LineChart.d.ts","sourceRoot":"","sources":["../../../../src/components/Chart/LineChart.tsx"],"names":[],"mappings":";AAgBA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhD,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAChC,MAAM,EACN,QAAa,EACb,WAAW,EACX,IAAI,EACJ,cAAc,EACd,SAAS,EACT,UAAU,EACV,WAAW,EACX,KAAK,EACL,UAAU,EACV,iBAAwB,EACxB,SAAiB,EACjB,SAAiB,EACjB,iBAAyB,EACzB,2BAAmC,EACnC,yBAAgC,EAChC,wBAAgC,EAChC,sBAAgC,EAChC,mBAA6B,GAC9B,EAAE;IACD,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,WAAW,EAAE,GAAG,EAAE,CAAC;IACnB,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,cAAc,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,GAAG,CAAC;IACX,UAAU,EAAE,GAAG,CAAC;IAChB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,2BAA2B,EAAE,OAAO,CAAC;IACrC,yBAAyB,EAAE,OAAO,CAAC;IACnC,wBAAwB,EAAE,OAAO,CAAC;IAClC,sBAAsB,EAAE,OAAO,GAAG,QAAQ,CAAC;IAC3C,mBAAmB,EAAE,OAAO,GAAG,QAAQ,CAAC;CACzC,2CAwPA"}
|
|
@@ -8,7 +8,7 @@ import ChartTooltip from '../../components/Chart/ChartTooltip';
|
|
|
8
8
|
import getDomain from '../../utils/getDomain';
|
|
9
9
|
import { useEffect, useState } from 'react';
|
|
10
10
|
import { hashCode } from '../../utils/crypto';
|
|
11
|
-
export default function LineChart({ colors, colorMap = {}, yAxisFields, data, containerStyle, className, xAxisField, xAxisFormat, theme, comparison, isAnimationActive = true, hideXAxis = false, hideYAxis = false, hideCartesianGrid = false, comparisonLineStyle = 'solid', }) {
|
|
11
|
+
export default function LineChart({ colors, colorMap = {}, yAxisFields, data, containerStyle, className, xAxisField, xAxisFormat, theme, comparison, isAnimationActive = true, hideXAxis = false, hideYAxis = false, hideCartesianGrid = false, hideHorizontalCartesianGrid = false, hideVerticalCartesianGrid = true, hideSubsequentXAxisTicks = false, cartesianGridLineStyle = 'solid', comparisonLineStyle = 'solid', }) {
|
|
12
12
|
const [formattedData, setFormattedData] = useState([]);
|
|
13
13
|
useEffect(() => {
|
|
14
14
|
if (!data || data.length === 0) {
|
|
@@ -61,13 +61,13 @@ export default function LineChart({ colors, colorMap = {}, yAxisFields, data, co
|
|
|
61
61
|
}
|
|
62
62
|
return undefined; // use the default colors from the theme
|
|
63
63
|
};
|
|
64
|
-
return (_jsx("div", { style: { ...containerStyle }, className: className, children: _jsx(ResponsiveContainer, { width: "100%", height: '100%', children: _jsxs(ReChartsAreaChart, { data: formattedData, children: [!hideCartesianGrid && (_jsx(CartesianGrid, { horizontal:
|
|
64
|
+
return (_jsx("div", { style: { ...containerStyle }, className: className, children: _jsx(ResponsiveContainer, { width: "100%", height: '100%', children: _jsxs(ReChartsAreaChart, { data: formattedData, children: [!hideCartesianGrid && (_jsx(CartesianGrid, { horizontal: !hideHorizontalCartesianGrid, vertical: !hideVerticalCartesianGrid, stroke: "#e5e7eb", strokeDasharray: cartesianGridLineStyle === 'dashed' ? '5 5' : undefined })), _jsx(XAxis, { dataKey: xAxisField, hide: hideXAxis, tick: { transform: 'translate(0, 6)' }, style: {
|
|
65
65
|
fontSize: '12px',
|
|
66
66
|
fontFamily: theme?.chartLabelFontFamily ||
|
|
67
67
|
theme?.fontFamily ||
|
|
68
68
|
'Inter; Helvetica',
|
|
69
69
|
color: theme?.chartLabelColor || '#666666',
|
|
70
|
-
}, interval:
|
|
70
|
+
}, interval: hideSubsequentXAxisTicks ? 999 : 'preserveStartEnd', tickLine: false, axisLine: false, minTickGap: 5, tickFormatter: (tick) => {
|
|
71
71
|
return axisFormatter({
|
|
72
72
|
value: tick,
|
|
73
73
|
field: xAxisField,
|
|
@@ -10,7 +10,7 @@ export function DashboardFilter({ filter, onChangeFilter, SelectComponent, DateR
|
|
|
10
10
|
if (filter.filterType === 'string') {
|
|
11
11
|
setFilterValue(filter.selectedValue);
|
|
12
12
|
}
|
|
13
|
-
if (filter.filterType
|
|
13
|
+
if (filter.filterType === 'date_range') {
|
|
14
14
|
setDateFilter(filter.preset.label);
|
|
15
15
|
if (filter?.comparisonRange?.value) {
|
|
16
16
|
const newComparisonRange = COMPARISON_OPTIONS.find((option) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MetricComponent.d.ts","sourceRoot":"","sources":["../../../../src/components/Dashboard/MetricComponent.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AASrD,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,EAC3C,aAAa,EACb,OAAO,EACP,KAAK,EACL,SAAS,GACV,EAAE,kBAAkB,GAAG,GAAG,CAAC,OAAO,
|
|
1
|
+
{"version":3,"file":"MetricComponent.d.ts","sourceRoot":"","sources":["../../../../src/components/Dashboard/MetricComponent.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AASrD,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,EAC3C,aAAa,EACb,OAAO,EACP,KAAK,EACL,SAAS,GACV,EAAE,kBAAkB,GAAG,GAAG,CAAC,OAAO,CA6QlC"}
|
|
@@ -19,14 +19,14 @@ export default function QuillMetricComponent({ dashboardItem, onClick, error, is
|
|
|
19
19
|
return pivot && data?.rows
|
|
20
20
|
? generatePivotTable(pivot, JSON.parse(JSON.stringify(data.rows)), // deep copy
|
|
21
21
|
dateFilter
|
|
22
|
-
?
|
|
23
|
-
:
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
dateFilter
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
:
|
|
22
|
+
? { start: dateFilter.startDate, end: dateFilter.endDate }
|
|
23
|
+
: undefined, Boolean(dateFilter?.comparisonRange?.startDate), -1, dateFilter?.comparisonRange?.startDate &&
|
|
24
|
+
dateFilter?.comparisonRange?.endDate
|
|
25
|
+
? {
|
|
26
|
+
start: dateFilter.comparisonRange.startDate,
|
|
27
|
+
end: dateFilter.comparisonRange.endDate,
|
|
28
|
+
}
|
|
29
|
+
: undefined)
|
|
30
30
|
: null;
|
|
31
31
|
}, [config?.pivot]);
|
|
32
32
|
const primaryMetricLabel = data?.filtersApplied?.date_range?.preset?.label;
|
|
@@ -96,10 +96,7 @@ export default function QuillMetricComponent({ dashboardItem, onClick, error, is
|
|
|
96
96
|
color: theme.secondaryTextColor,
|
|
97
97
|
maxWidth: '100%',
|
|
98
98
|
width: '100%',
|
|
99
|
-
}, children: "No results" })) :
|
|
100
|
-
maxHeight: '78px',
|
|
101
|
-
height: '100%',
|
|
102
|
-
}, label: "Charts can only display 100 rows. Please add a pivot or modify the query." })) : (_jsx("div", { style: {
|
|
99
|
+
}, children: "No results" })) : (_jsx("div", { style: {
|
|
103
100
|
padding: 0,
|
|
104
101
|
height: '100%',
|
|
105
102
|
width: '100%',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableComponent.d.ts","sourceRoot":"","sources":["../../../../src/components/Dashboard/TableComponent.tsx"],"names":[],"mappings":";AAQA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAGrD,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,EAC1C,aAAa,EACb,OAAO,EACP,SAAS,EACT,KAAK,GACN,EAAE,kBAAkB,GAAG,GAAG,CAAC,OAAO,
|
|
1
|
+
{"version":3,"file":"TableComponent.d.ts","sourceRoot":"","sources":["../../../../src/components/Dashboard/TableComponent.tsx"],"names":[],"mappings":";AAQA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAGrD,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,EAC1C,aAAa,EACb,OAAO,EACP,SAAS,EACT,KAAK,GACN,EAAE,kBAAkB,GAAG,GAAG,CAAC,OAAO,CA+JlC"}
|
|
@@ -20,14 +20,14 @@ export default function QuillTableComponent({ dashboardItem, onClick, isLoading,
|
|
|
20
20
|
return pivot && data?.rows
|
|
21
21
|
? generatePivotTable(pivot, JSON.parse(JSON.stringify(data.rows)), // deep copy
|
|
22
22
|
dateFilter
|
|
23
|
-
?
|
|
24
|
-
:
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
dateFilter
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
:
|
|
23
|
+
? { start: dateFilter.startDate, end: dateFilter.endDate }
|
|
24
|
+
: undefined, Boolean(dateFilter?.comparisonRange?.startDate), -1, dateFilter?.comparisonRange?.startDate &&
|
|
25
|
+
dateFilter?.comparisonRange?.endDate
|
|
26
|
+
? {
|
|
27
|
+
start: dateFilter.comparisonRange.startDate,
|
|
28
|
+
end: dateFilter.comparisonRange.endDate,
|
|
29
|
+
}
|
|
30
|
+
: undefined)
|
|
31
31
|
: null;
|
|
32
32
|
}, [config?.pivot]);
|
|
33
33
|
const columns = pivotTable?.columns ?? data.columns ?? data.yAxisFields;
|
|
@@ -37,8 +37,10 @@ export default function QuillTableComponent({ dashboardItem, onClick, isLoading,
|
|
|
37
37
|
// Walk through data.columns and pick off the labels from yAxisFields
|
|
38
38
|
columns.forEach((col, index) => {
|
|
39
39
|
// ADD THE RIGHT FIELD TYPE FOR THE VALUE COLUMNS
|
|
40
|
-
if (valueFieldType
|
|
41
|
-
|
|
40
|
+
if ((valueFieldType ||
|
|
41
|
+
['min', 'max'].includes(config?.pivot?.aggregationType || '')) &&
|
|
42
|
+
index !== 0) {
|
|
43
|
+
col.format = valueFieldType || 'two_decimal_places';
|
|
42
44
|
}
|
|
43
45
|
if (!data.yAxisFields)
|
|
44
46
|
return;
|
|
@@ -2,7 +2,10 @@ import React from 'react';
|
|
|
2
2
|
import { ButtonComponentProps } from './UiComponents';
|
|
3
3
|
export interface TableComponentProps {
|
|
4
4
|
rows: any[];
|
|
5
|
-
columns:
|
|
5
|
+
columns: {
|
|
6
|
+
label: string;
|
|
7
|
+
field: string;
|
|
8
|
+
}[];
|
|
6
9
|
className?: string;
|
|
7
10
|
containerStyle?: React.CSSProperties;
|
|
8
11
|
isLoading?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QuillTable.d.ts","sourceRoot":"","sources":["../../../src/components/QuillTable.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAKxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"QuillTable.d.ts","sourceRoot":"","sources":["../../../src/components/QuillTable.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAKxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAGtD,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,OAAO,EAAE;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAC,EAAE,CAAC;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IACrC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,GAAG,CAAC,OAAO,CAAC;IACrC,0BAA0B,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,GAAG,CAAC,OAAO,CAAC;IAC1E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EACjC,IAAI,EACJ,OAAO,EACP,SAAS,EACT,qBAAqB,EACrB,gBAAgB,EAChB,cAAc,EACd,SAAS,EACT,gBAA0C,EAC1C,WAAgB,EAChB,eAA8B,EAC9B,WAAW,GACZ,EAAE,mBAAmB,2CAyZrB"}
|
|
@@ -7,7 +7,7 @@ export default function QuillTable({ rows, columns, isLoading, showDownloadCSVBu
|
|
|
7
7
|
const [activeRows, setActiveRows] = useState([]);
|
|
8
8
|
const [page, setPage] = useState(1);
|
|
9
9
|
const [maxPage, setMaxPage] = useState(1);
|
|
10
|
-
const [sortColumn, setSortColumn] = useState(
|
|
10
|
+
const [sortColumn, setSortColumn] = useState('');
|
|
11
11
|
const [sortDirection, setSortDirection] = useState('desc');
|
|
12
12
|
const [theme] = useContext(ThemeContext);
|
|
13
13
|
const [isPaginating, setIsPaginating] = useState(true);
|
|
@@ -21,7 +21,7 @@ export declare function convertGroupBy(ast: AST, prevPivot: Pivot | undefined, s
|
|
|
21
21
|
pivot: Pivot;
|
|
22
22
|
} | {
|
|
23
23
|
pivot: Partial<{
|
|
24
|
-
aggregationType: "
|
|
24
|
+
aggregationType: "min" | "max" | "sum" | "average" | "count" | "avg";
|
|
25
25
|
valueField: string;
|
|
26
26
|
valueFieldType?: string | undefined;
|
|
27
27
|
rowField?: string | undefined;
|
|
@@ -36,7 +36,7 @@ export declare function convertGroupBy(ast: AST, prevPivot: Pivot | undefined, s
|
|
|
36
36
|
} | {
|
|
37
37
|
pivot: {
|
|
38
38
|
title: string;
|
|
39
|
-
aggregationType?: "
|
|
39
|
+
aggregationType?: "min" | "max" | "sum" | "average" | "count" | "avg" | undefined;
|
|
40
40
|
valueField?: string | undefined;
|
|
41
41
|
valueFieldType?: string | undefined;
|
|
42
42
|
rowField?: string | undefined;
|
|
@@ -1,36 +1,39 @@
|
|
|
1
|
-
|
|
2
|
-
export declare const PivotCard: ({ pivotTable, theme, index, onSelectPivot, selectedPivotIndex, onEditPivot, ButtonComponent, showEdit, clickable, onClose, minHeight, CardComponent, LabelComponent, TextComponent, HeaderComponent, }: {
|
|
1
|
+
type PivotCardProps = {
|
|
3
2
|
pivotTable: any;
|
|
4
3
|
theme: any;
|
|
5
|
-
index:
|
|
6
|
-
onSelectPivot: any;
|
|
7
|
-
selectedPivotIndex:
|
|
8
|
-
onEditPivot: any;
|
|
4
|
+
index: number;
|
|
5
|
+
onSelectPivot?: (pivot: any, index: number) => void;
|
|
6
|
+
selectedPivotIndex: number;
|
|
7
|
+
onEditPivot: (pivot: any, index: number) => void;
|
|
9
8
|
ButtonComponent: any;
|
|
10
|
-
showEdit?: boolean
|
|
11
|
-
clickable?: boolean
|
|
12
|
-
onClose
|
|
13
|
-
minHeight?: number
|
|
14
|
-
CardComponent?:
|
|
9
|
+
showEdit?: boolean;
|
|
10
|
+
clickable?: boolean;
|
|
11
|
+
onClose?: () => void;
|
|
12
|
+
minHeight?: number;
|
|
13
|
+
CardComponent?: any;
|
|
15
14
|
LabelComponent: any;
|
|
16
15
|
TextComponent: any;
|
|
17
16
|
HeaderComponent: any;
|
|
18
|
-
}
|
|
19
|
-
export declare const
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
17
|
+
};
|
|
18
|
+
export declare const PivotCard: ({ pivotTable, theme, index, onSelectPivot, selectedPivotIndex, onEditPivot, ButtonComponent, showEdit, clickable, onClose, minHeight, CardComponent, LabelComponent, TextComponent, HeaderComponent, }: PivotCardProps) => import("react/jsx-runtime").JSX.Element;
|
|
19
|
+
type PivotListProps = {
|
|
20
|
+
recommendedPivotTables: any[];
|
|
21
|
+
createdPivotTables: any[];
|
|
22
|
+
onSelectRecommendedPivot: (pivot: any, index: number) => void;
|
|
23
|
+
onSelectCreatedPivot: (pivot: any, index: number) => void;
|
|
24
24
|
theme: any;
|
|
25
|
-
selectedPivotIndex:
|
|
26
|
-
selectedPivotType:
|
|
25
|
+
selectedPivotIndex: number;
|
|
26
|
+
selectedPivotType: string;
|
|
27
27
|
ButtonComponent: any;
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
28
|
+
showCreatePivot?: boolean;
|
|
29
|
+
onEditRecommendedPivot: (pivot: any, index: number | null) => void;
|
|
30
|
+
onEditCreatedPivot: (pivot: any, index: number | null) => void;
|
|
31
|
+
showPivotEditButton?: boolean;
|
|
32
|
+
CardComponent?: any;
|
|
32
33
|
LabelComponent: any;
|
|
33
34
|
TextComponent: any;
|
|
34
35
|
HeaderComponent: any;
|
|
35
|
-
}
|
|
36
|
+
};
|
|
37
|
+
export declare const PivotList: ({ recommendedPivotTables, createdPivotTables, onSelectRecommendedPivot, onSelectCreatedPivot, theme, selectedPivotIndex, selectedPivotType, ButtonComponent, onEditRecommendedPivot, onEditCreatedPivot, showPivotEditButton, CardComponent, LabelComponent, TextComponent, HeaderComponent, }: PivotListProps) => import("react/jsx-runtime").JSX.Element;
|
|
38
|
+
export {};
|
|
36
39
|
//# sourceMappingURL=PivotList.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PivotList.d.ts","sourceRoot":"","sources":["../../../../src/internals/ReportBuilder/PivotList.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PivotList.d.ts","sourceRoot":"","sources":["../../../../src/internals/ReportBuilder/PivotList.tsx"],"names":[],"mappings":"AAKA,KAAK,cAAc,GAAG;IACpB,UAAU,EAAE,GAAG,CAAC;IAChB,KAAK,EAAE,GAAG,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACpD,kBAAkB,EAAE,MAAM,CAAC;IAC3B,WAAW,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACjD,eAAe,EAAE,GAAG,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,GAAG,CAAC;IACpB,cAAc,EAAE,GAAG,CAAC;IACpB,aAAa,EAAE,GAAG,CAAC;IACnB,eAAe,EAAE,GAAG,CAAC;CACtB,CAAC;AAEF,eAAO,MAAM,SAAS,2MAgBnB,cAAc,4CA4MhB,CAAC;AAEF,KAAK,cAAc,GAAG;IACpB,sBAAsB,EAAE,GAAG,EAAE,CAAC;IAC9B,kBAAkB,EAAE,GAAG,EAAE,CAAC;IAC1B,wBAAwB,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9D,oBAAoB,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1D,KAAK,EAAE,GAAG,CAAC;IACX,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,eAAe,EAAE,GAAG,CAAC;IACrB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,sBAAsB,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACnE,kBAAkB,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAC/D,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,aAAa,CAAC,EAAE,GAAG,CAAC;IACpB,cAAc,EAAE,GAAG,CAAC;IACpB,aAAa,EAAE,GAAG,CAAC;IACnB,eAAe,EAAE,GAAG,CAAC;CACtB,CAAC;AAEF,eAAO,MAAM,SAAS,mSAgBnB,cAAc,4CAoDhB,CAAC"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
// @ts-nocheck
|
|
3
2
|
import { quillFormat } from '../../utils/valueFormatter';
|
|
4
3
|
import { snakeCaseToTitleCase } from '../../utils/textProcessing';
|
|
5
4
|
import { QuillCard } from '../../components/QuillCard';
|
|
@@ -55,18 +54,21 @@ export const PivotCard = ({ pivotTable, theme, index, onSelectPivot, selectedPiv
|
|
|
55
54
|
textOverflow: 'ellipsis',
|
|
56
55
|
}, children: _jsx(LabelComponent, { label: column.label }) }, column.field))) }) }), _jsx("tbody", { children: pivotTable.rows
|
|
57
56
|
.slice(0, maxRowsInPivotPeak)
|
|
58
|
-
.map((row, index) => (_jsx("tr", { children: pivotTable.columns.map((
|
|
57
|
+
.map((row, index) => (_jsx("tr", { children: pivotTable.columns.map((column, i) => (_jsx("td", { style: {
|
|
59
58
|
paddingRight: 5,
|
|
60
59
|
flex: 1,
|
|
61
60
|
whiteSpace: 'nowrap',
|
|
62
61
|
textOverflow: 'ellipsis',
|
|
63
62
|
maxWidth: 120,
|
|
64
|
-
}, children: _jsx(TextComponent, { label: pivotTable.pivot.valueFieldType
|
|
63
|
+
}, children: _jsx(TextComponent, { label: (pivotTable.pivot.valueFieldType ||
|
|
64
|
+
['min', 'max'].includes(pivotTable.pivot.aggregationType || '')) &&
|
|
65
|
+
i !== 0
|
|
65
66
|
? quillFormat({
|
|
66
|
-
value: row[
|
|
67
|
-
format: pivotTable.pivot.valueFieldType
|
|
67
|
+
value: row[column.field],
|
|
68
|
+
format: pivotTable.pivot.valueFieldType ||
|
|
69
|
+
'two_decimal_places',
|
|
68
70
|
})
|
|
69
|
-
: row[
|
|
71
|
+
: row[column.field] }) }, i))) }, index))) })] }))] }), _jsxs("div", { style: {
|
|
70
72
|
display: 'flex',
|
|
71
73
|
justifyContent: 'space-between',
|
|
72
74
|
}, children: [pivotTable.rows.length > maxRowsInPivotPeak ? (_jsx("div", { children: _jsx(TextComponent, { label: `... ${pivotTable.rows.length - maxRowsInPivotPeak < 5
|
|
@@ -82,5 +84,5 @@ export const PivotList = ({ recommendedPivotTables, createdPivotTables, onSelect
|
|
|
82
84
|
gridTemplateColumns: 'repeat(2, 1fr)',
|
|
83
85
|
gap: 16,
|
|
84
86
|
gridAutoRows: '220px',
|
|
85
|
-
}, children: [recommendedPivotTables.map((pivotTable, index) => (_jsx(PivotCard, { pivotTable: pivotTable, theme: theme, index: index, onSelectPivot: onSelectRecommendedPivot, selectedPivotIndex: selectedPivotType === 'recommended' ? selectedPivotIndex : -1, onEditPivot: onEditRecommendedPivot, ButtonComponent: ButtonComponent,
|
|
87
|
+
}, children: [recommendedPivotTables.map((pivotTable, index) => (_jsx(PivotCard, { pivotTable: pivotTable, theme: theme, index: index, onSelectPivot: onSelectRecommendedPivot, selectedPivotIndex: selectedPivotType === 'recommended' ? selectedPivotIndex : -1, onEditPivot: onEditRecommendedPivot, ButtonComponent: ButtonComponent, minHeight: 180, CardComponent: CardComponent, LabelComponent: LabelComponent, TextComponent: TextComponent, HeaderComponent: HeaderComponent }, index))), createdPivotTables.map((pivotTable, index) => (_jsx(PivotCard, { pivotTable: pivotTable, theme: theme, index: index, onSelectPivot: onSelectCreatedPivot, selectedPivotIndex: selectedPivotType === 'created' ? selectedPivotIndex : -1, onEditPivot: onEditCreatedPivot, ButtonComponent: ButtonComponent, minHeight: 180, CardComponent: CardComponent, LabelComponent: LabelComponent, TextComponent: TextComponent, HeaderComponent: HeaderComponent }, index)))] }) }));
|
|
86
88
|
};
|