@quillsql/react 2.11.29 → 2.12.0
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 +29 -18
- package/dist/cjs/Chart.d.ts.map +1 -1
- package/dist/cjs/Chart.js +41 -20
- package/dist/cjs/ChartBuilder.d.ts +9 -5
- package/dist/cjs/ChartBuilder.d.ts.map +1 -1
- package/dist/cjs/ChartBuilder.js +34 -38
- package/dist/cjs/ChartEditor.d.ts +10 -6
- package/dist/cjs/ChartEditor.d.ts.map +1 -1
- package/dist/cjs/ChartEditor.js +11 -9
- package/dist/cjs/Dashboard.d.ts +53 -38
- package/dist/cjs/Dashboard.d.ts.map +1 -1
- package/dist/cjs/Dashboard.js +38 -19
- package/dist/cjs/ReportBuilder.d.ts +3 -3
- package/dist/cjs/ReportBuilder.d.ts.map +1 -1
- package/dist/cjs/ReportBuilder.js +20 -20
- package/dist/cjs/SQLEditor.d.ts +5 -5
- package/dist/cjs/SQLEditor.d.ts.map +1 -1
- package/dist/cjs/SQLEditor.js +2 -2
- package/dist/cjs/Table.d.ts +6 -6
- package/dist/cjs/Table.d.ts.map +1 -1
- package/dist/cjs/Table.js +14 -12
- package/dist/cjs/components/Chart/BarChart.d.ts.map +1 -1
- package/dist/cjs/components/Chart/BarChart.js +8 -1
- package/dist/cjs/components/Chart/ChartSkeleton.d.ts +2 -1
- package/dist/cjs/components/Chart/ChartSkeleton.d.ts.map +1 -1
- package/dist/cjs/components/Chart/ChartSkeleton.js +5 -1
- package/dist/cjs/components/Chart/LineChart.d.ts +2 -1
- package/dist/cjs/components/Chart/LineChart.d.ts.map +1 -1
- package/dist/cjs/components/Chart/LineChart.js +19 -11
- package/dist/cjs/components/Dashboard/ChartComponent.d.ts +2 -2
- package/dist/cjs/components/Dashboard/ChartComponent.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/ChartComponent.js +4 -4
- package/dist/cjs/components/Dashboard/DashboardFilter.d.ts +12 -1
- package/dist/cjs/components/Dashboard/DashboardFilter.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/DashboardFilter.js +26 -2
- 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 +3 -0
- package/dist/cjs/components/Dashboard/MetricComponent.d.ts +2 -2
- package/dist/cjs/components/Dashboard/MetricComponent.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/MetricComponent.js +6 -6
- package/dist/cjs/components/Dashboard/TableComponent.d.ts +2 -2
- package/dist/cjs/components/Dashboard/TableComponent.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/TableComponent.js +6 -6
- package/dist/cjs/components/QuillMultiSelect.d.ts +11 -0
- package/dist/cjs/components/QuillMultiSelect.d.ts.map +1 -0
- package/dist/cjs/components/QuillMultiSelect.js +183 -0
- package/dist/cjs/components/QuillSelect.d.ts.map +1 -1
- package/dist/cjs/components/QuillSelect.js +0 -1
- package/dist/cjs/components/ReportBuilder/ui.d.ts.map +1 -1
- package/dist/cjs/components/ReportBuilder/ui.js +1 -0
- package/dist/cjs/components/UiComponents.d.ts +10 -0
- package/dist/cjs/components/UiComponents.d.ts.map +1 -1
- package/dist/cjs/components/UiComponents.js +16 -18
- package/dist/cjs/hooks/useDashboard.d.ts +1 -1
- package/dist/cjs/hooks/useDashboard.d.ts.map +1 -1
- package/dist/cjs/hooks/useDashboard.js +4 -4
- package/dist/cjs/hooks/useExport.d.ts +1 -1
- package/dist/cjs/hooks/useExport.d.ts.map +1 -1
- package/dist/cjs/hooks/useExport.js +2 -2
- package/dist/cjs/hooks/useFormat.d.ts +1 -1
- package/dist/cjs/hooks/useFormat.d.ts.map +1 -1
- package/dist/cjs/hooks/useFormat.js +2 -2
- package/dist/cjs/hooks/useQuill.d.ts +2 -2
- package/dist/cjs/hooks/useQuill.d.ts.map +1 -1
- package/dist/cjs/hooks/useQuill.js +12 -11
- package/dist/cjs/index.d.ts +1 -3
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +1 -3
- package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
- package/dist/cjs/internals/ReportBuilder/PivotModal.js +3 -1
- package/dist/cjs/models/Filter.d.ts +7 -0
- package/dist/cjs/models/Filter.d.ts.map +1 -0
- package/dist/cjs/models/Filter.js +2 -0
- package/dist/cjs/utils/dashboard.d.ts +2 -2
- package/dist/cjs/utils/dashboard.d.ts.map +1 -1
- package/dist/cjs/utils/dashboard.js +2 -14
- package/dist/cjs/utils/errorProcessing.d.ts +2 -0
- package/dist/cjs/utils/errorProcessing.d.ts.map +1 -0
- package/dist/cjs/utils/errorProcessing.js +12 -0
- package/dist/cjs/utils/tableProcessing.d.ts.map +1 -1
- package/dist/cjs/utils/tableProcessing.js +3 -0
- package/dist/cjs/utils/valueFormatter.js +1 -1
- package/dist/esm/Chart.d.ts +29 -18
- package/dist/esm/Chart.d.ts.map +1 -1
- package/dist/esm/Chart.js +41 -20
- package/dist/esm/ChartBuilder.d.ts +9 -5
- package/dist/esm/ChartBuilder.d.ts.map +1 -1
- package/dist/esm/ChartBuilder.js +35 -39
- package/dist/esm/ChartEditor.d.ts +10 -6
- package/dist/esm/ChartEditor.d.ts.map +1 -1
- package/dist/esm/ChartEditor.js +12 -10
- package/dist/esm/Dashboard.d.ts +53 -38
- package/dist/esm/Dashboard.d.ts.map +1 -1
- package/dist/esm/Dashboard.js +38 -19
- package/dist/esm/ReportBuilder.d.ts +3 -3
- package/dist/esm/ReportBuilder.d.ts.map +1 -1
- package/dist/esm/ReportBuilder.js +20 -20
- package/dist/esm/SQLEditor.d.ts +5 -5
- package/dist/esm/SQLEditor.d.ts.map +1 -1
- package/dist/esm/SQLEditor.js +2 -2
- package/dist/esm/Table.d.ts +6 -6
- package/dist/esm/Table.d.ts.map +1 -1
- package/dist/esm/Table.js +14 -12
- package/dist/esm/components/Chart/BarChart.d.ts.map +1 -1
- package/dist/esm/components/Chart/BarChart.js +8 -1
- package/dist/esm/components/Chart/ChartSkeleton.d.ts +2 -1
- package/dist/esm/components/Chart/ChartSkeleton.d.ts.map +1 -1
- package/dist/esm/components/Chart/ChartSkeleton.js +3 -1
- package/dist/esm/components/Chart/LineChart.d.ts +2 -1
- package/dist/esm/components/Chart/LineChart.d.ts.map +1 -1
- package/dist/esm/components/Chart/LineChart.js +19 -11
- package/dist/esm/components/Dashboard/ChartComponent.d.ts +2 -2
- package/dist/esm/components/Dashboard/ChartComponent.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/ChartComponent.js +4 -4
- package/dist/esm/components/Dashboard/DashboardFilter.d.ts +12 -1
- package/dist/esm/components/Dashboard/DashboardFilter.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/DashboardFilter.js +26 -2
- 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 +3 -0
- package/dist/esm/components/Dashboard/MetricComponent.d.ts +2 -2
- package/dist/esm/components/Dashboard/MetricComponent.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/MetricComponent.js +6 -6
- package/dist/esm/components/Dashboard/TableComponent.d.ts +2 -2
- package/dist/esm/components/Dashboard/TableComponent.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/TableComponent.js +6 -6
- package/dist/esm/components/QuillMultiSelect.d.ts +11 -0
- package/dist/esm/components/QuillMultiSelect.d.ts.map +1 -0
- package/dist/esm/components/QuillMultiSelect.js +178 -0
- package/dist/esm/components/QuillSelect.d.ts.map +1 -1
- package/dist/esm/components/QuillSelect.js +0 -1
- package/dist/esm/components/ReportBuilder/ui.d.ts.map +1 -1
- package/dist/esm/components/ReportBuilder/ui.js +1 -0
- package/dist/esm/components/UiComponents.d.ts +10 -0
- package/dist/esm/components/UiComponents.d.ts.map +1 -1
- package/dist/esm/components/UiComponents.js +16 -18
- package/dist/esm/hooks/useDashboard.d.ts +1 -1
- package/dist/esm/hooks/useDashboard.d.ts.map +1 -1
- package/dist/esm/hooks/useDashboard.js +4 -4
- package/dist/esm/hooks/useExport.d.ts +1 -1
- package/dist/esm/hooks/useExport.d.ts.map +1 -1
- package/dist/esm/hooks/useExport.js +2 -2
- package/dist/esm/hooks/useFormat.d.ts +1 -1
- package/dist/esm/hooks/useFormat.d.ts.map +1 -1
- package/dist/esm/hooks/useFormat.js +2 -2
- package/dist/esm/hooks/useQuill.d.ts +2 -2
- package/dist/esm/hooks/useQuill.d.ts.map +1 -1
- package/dist/esm/hooks/useQuill.js +12 -11
- package/dist/esm/index.d.ts +1 -3
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +0 -1
- package/dist/esm/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
- package/dist/esm/internals/ReportBuilder/PivotModal.js +3 -1
- package/dist/esm/models/Filter.d.ts +7 -0
- package/dist/esm/models/Filter.d.ts.map +1 -0
- package/dist/esm/models/Filter.js +1 -0
- package/dist/esm/utils/dashboard.d.ts +2 -2
- package/dist/esm/utils/dashboard.d.ts.map +1 -1
- package/dist/esm/utils/dashboard.js +2 -14
- package/dist/esm/utils/errorProcessing.d.ts +2 -0
- package/dist/esm/utils/errorProcessing.d.ts.map +1 -0
- package/dist/esm/utils/errorProcessing.js +8 -0
- package/dist/esm/utils/tableProcessing.d.ts.map +1 -1
- package/dist/esm/utils/tableProcessing.js +3 -0
- package/dist/esm/utils/valueFormatter.js +1 -1
- package/package.json +1 -1
package/dist/esm/ChartEditor.js
CHANGED
|
@@ -3,10 +3,11 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
3
3
|
import { useContext, useEffect, useRef, useState, } from 'react';
|
|
4
4
|
import ChartBuilder from './ChartBuilder';
|
|
5
5
|
import { DashboardContext, DashboardFiltersContext, ClientContext, } from './Context';
|
|
6
|
-
import { MemoizedModal, QuillChartBuilderFormContainer, QuillChartBuilderInputColumnContainer, QuillChartBuilderInputRowContainer, QuillErrorMessageComponent, QuillPivotColumnContainer, QuillPivotRowContainer, QuillTableComponent, } from './components/UiComponents';
|
|
6
|
+
import { MemoizedModal, QuillChartBuilderFormContainer, QuillChartBuilderInputColumnContainer, QuillChartBuilderInputRowContainer, QuillErrorMessageComponent, QuillLoadingComponent, QuillPivotColumnContainer, QuillPivotRowContainer, QuillTableComponent, } from './components/UiComponents';
|
|
7
7
|
import { getData } from './utils/dataFetcher';
|
|
8
8
|
import { mergeComparisonRange } from './utils/merge';
|
|
9
9
|
import { QuillCard } from './components/QuillCard';
|
|
10
|
+
import { processFilterErrorList } from './utils/errorProcessing';
|
|
10
11
|
/**
|
|
11
12
|
* ### Quill Chart Editor
|
|
12
13
|
*
|
|
@@ -15,7 +16,7 @@ import { QuillCard } from './components/QuillCard';
|
|
|
15
16
|
* @example
|
|
16
17
|
* ```js
|
|
17
18
|
* // Usage without custom components
|
|
18
|
-
* <ChartEditor isOpen={true}
|
|
19
|
+
* <ChartEditor isOpen={true} reportId="1234" />
|
|
19
20
|
* ```
|
|
20
21
|
*
|
|
21
22
|
* @example
|
|
@@ -24,7 +25,7 @@ import { QuillCard } from './components/QuillCard';
|
|
|
24
25
|
* <ChartEditor
|
|
25
26
|
* isOpen={isOpen}
|
|
26
27
|
* setIsOpen={setIsOpen}
|
|
27
|
-
*
|
|
28
|
+
* reportId="1234"
|
|
28
29
|
* Button={MyButton}
|
|
29
30
|
* Modal={MyModal}
|
|
30
31
|
* />
|
|
@@ -33,14 +34,14 @@ import { QuillCard } from './components/QuillCard';
|
|
|
33
34
|
* ### Chart Editor API
|
|
34
35
|
* @see https://docs.quillsql.com/components/chart-editor
|
|
35
36
|
*/
|
|
36
|
-
export default function ChartEditor({ isOpen,
|
|
37
|
+
export default function ChartEditor({ isOpen, reportId, isAdmin = false, destinationDashboard, chartBuilderTitle = 'Edit chart', chartBuilderButtonLabel, onAddToDashboardComplete, organizationName, isHorizontalView = true, onDelete, setIsOpen, SelectComponent, TextInputComponent, ButtonComponent, SecondaryButtonComponent, HeaderComponent, SubHeaderComponent, LabelComponent, TextComponent, DeleteButtonComponent, ModalComponent = MemoizedModal, CardComponent = QuillCard, PopoverComponent, LoadingComponent = QuillLoadingComponent, TableComponent = QuillTableComponent, ChartBuilderInputRowContainer = QuillChartBuilderInputRowContainer, ChartBuilderInputColumnContainer = QuillChartBuilderInputColumnContainer, PivotRowContainer = QuillPivotRowContainer, PivotColumnContainer = QuillPivotColumnContainer, ErrorMessageComponent = QuillErrorMessageComponent, ChartBuilderFormContainer = QuillChartBuilderFormContainer, hideDeleteButton = false, hideSubmitButton = false, }) {
|
|
37
38
|
const parentRef = useRef(null);
|
|
38
39
|
const [modalWidth, setModalWidth] = useState(200);
|
|
39
40
|
const [modalHeight, setModalHeight] = useState(200);
|
|
40
41
|
const { dispatch, dashboard } = useContext(DashboardContext);
|
|
41
42
|
const { dashboardFilters } = useContext(DashboardFiltersContext);
|
|
42
43
|
const [client, _] = useContext(ClientContext);
|
|
43
|
-
const [dashboardItem, setDashboardItem] = useState(dashboard?.[
|
|
44
|
+
const [dashboardItem, setDashboardItem] = useState(dashboard?.[reportId]);
|
|
44
45
|
const [isLoading, setIsLoading] = useState(false);
|
|
45
46
|
const dateFilter = Object.values(dashboardFilters).find((filter) => filter.filterType == 'date_range');
|
|
46
47
|
const dateRange = dateFilter?.startDate
|
|
@@ -71,7 +72,7 @@ export default function ChartEditor({ isOpen, chartId, isAdmin = false, destinat
|
|
|
71
72
|
try {
|
|
72
73
|
const hostedBody = {
|
|
73
74
|
metadata: {
|
|
74
|
-
dashboardItemId:
|
|
75
|
+
dashboardItemId: reportId,
|
|
75
76
|
orgId: client?.customerId || '*',
|
|
76
77
|
task: 'item',
|
|
77
78
|
filters: [],
|
|
@@ -80,10 +81,11 @@ export default function ChartEditor({ isOpen, chartId, isAdmin = false, destinat
|
|
|
80
81
|
},
|
|
81
82
|
};
|
|
82
83
|
const cloudBody = {
|
|
83
|
-
id:
|
|
84
|
+
id: reportId,
|
|
84
85
|
filters: [],
|
|
85
86
|
};
|
|
86
87
|
const resp = await getData(client, 'itempost', 'omit', hostedBody, cloudBody);
|
|
88
|
+
processFilterErrorList(resp);
|
|
87
89
|
if (resp && resp.name !== 'error') {
|
|
88
90
|
if (resp.compareRows) {
|
|
89
91
|
mergeComparisonRange(resp);
|
|
@@ -94,7 +96,7 @@ export default function ChartEditor({ isOpen, chartId, isAdmin = false, destinat
|
|
|
94
96
|
});
|
|
95
97
|
dispatch({
|
|
96
98
|
type: 'UPDATE_DASHBOARD_ITEM',
|
|
97
|
-
id:
|
|
99
|
+
id: reportId,
|
|
98
100
|
data: {
|
|
99
101
|
...resp,
|
|
100
102
|
filtersApplied: dashboardFilters,
|
|
@@ -115,12 +117,12 @@ export default function ChartEditor({ isOpen, chartId, isAdmin = false, destinat
|
|
|
115
117
|
return () => {
|
|
116
118
|
isSubscribed = false;
|
|
117
119
|
};
|
|
118
|
-
}, [client,
|
|
120
|
+
}, [client, reportId]);
|
|
119
121
|
if (!dashboardItem) {
|
|
120
122
|
return _jsx("div", {});
|
|
121
123
|
}
|
|
122
124
|
return (_jsx("div", { ref: parentRef, style: { height: '100%' }, children: _jsx(ModalComponent, { isOpen: isOpen, setIsOpen: setIsOpen, title: chartBuilderTitle || 'Add to dashboard',
|
|
123
125
|
// For isHorizontalView, use full viewport size minus 80px for padding,
|
|
124
126
|
// otherwise use the default layout method of the modal (contents).
|
|
125
|
-
width: isHorizontalView ? modalWidth : undefined, height: isHorizontalView ? modalHeight : undefined, children: _jsx(ChartBuilder, {
|
|
127
|
+
width: isHorizontalView ? modalWidth : undefined, height: isHorizontalView ? modalHeight : undefined, children: _jsx(ChartBuilder, { report: dashboardItem, rows: dashboardItem.rows, columns: dashboardItem.columns, query: dashboardItem.queryString, pivot: dashboardItem.pivot, isOpen: isOpen, setIsOpen: setIsOpen, showTableFormatOptions: isAdmin, showDateFieldOptions: isAdmin, showAccessControlOptions: isAdmin, showDashboardDropdown: isAdmin, destinationDashboard: destinationDashboard, onAddToDashboardComplete: onAddToDashboardComplete, dateRange: dateRange, SelectComponent: SelectComponent, TextInputComponent: TextInputComponent, ButtonComponent: ButtonComponent, SecondaryButtonComponent: SecondaryButtonComponent, HeaderComponent: HeaderComponent, SubHeaderComponent: SubHeaderComponent, LabelComponent: LabelComponent, TextComponent: TextComponent, DeleteButtonComponent: DeleteButtonComponent, CardComponent: CardComponent, ModalComponent: ModalComponent, isHorizontalView: isHorizontalView, PopoverComponent: PopoverComponent, TableComponent: TableComponent, ChartBuilderInputRowContainer: ChartBuilderInputRowContainer, ChartBuilderInputColumnContainer: ChartBuilderInputColumnContainer, PivotRowContainer: PivotRowContainer, PivotColumnContainer: PivotColumnContainer, ErrorMessageComponent: ErrorMessageComponent, LoadingComponent: LoadingComponent, onDelete: onDelete, title: chartBuilderTitle, buttonLabel: chartBuilderButtonLabel, organizationName: organizationName, hideSubmitButton: hideSubmitButton, hideDeleteButton: hideDeleteButton, FormContainer: ChartBuilderFormContainer }) }) }));
|
|
126
128
|
}
|
package/dist/esm/Dashboard.d.ts
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import React, { ReactNode, ChangeEvent } from 'react';
|
|
2
2
|
import { Column } from './models/Columns';
|
|
3
|
+
import { Filter } from './models/Filter';
|
|
3
4
|
/**
|
|
4
5
|
* The props passed into the ChartComponent, TableComponent, and MetricComponent
|
|
5
6
|
* functions in the dashboard.
|
|
6
7
|
*/
|
|
7
|
-
export interface
|
|
8
|
-
|
|
9
|
-
onClick?: (
|
|
8
|
+
export interface QuillReportProps {
|
|
9
|
+
report: QuillReport;
|
|
10
|
+
onClick?: (report: QuillReport) => void;
|
|
10
11
|
isLoading?: boolean;
|
|
11
12
|
error?: string;
|
|
12
13
|
children?: ReactNode;
|
|
@@ -16,31 +17,31 @@ export interface DashboardItemProps {
|
|
|
16
17
|
*/
|
|
17
18
|
export type AxisFormat = 'percent' | 'dollar_amount' | 'dollar_cents' | 'whole_number' | 'one_decimal_place' | 'two_decimal_places' | 'string' | 'yyyy' | 'MMM_yyyy' | 'MMM_dd_yyyy' | 'hh_ap_pm' | 'MMM_dd-MMM_dd' | 'MMM_dd_hh:mm_ap_pm' | 'wo, yyyy';
|
|
18
19
|
/**
|
|
19
|
-
* ##
|
|
20
|
-
*
|
|
20
|
+
* ## QuillReport
|
|
21
|
+
* Represents an individual item on a dashboard.
|
|
21
22
|
*
|
|
22
23
|
* Dashboard items can be charts, metric tiles, tables, etc. and can be styled
|
|
23
24
|
* however you'd like.
|
|
24
25
|
*
|
|
25
26
|
* ### API Reference
|
|
26
|
-
* @see https://docs.quillsql.com/components/quill-provider#
|
|
27
|
+
* @see https://docs.quillsql.com/components/quill-provider#quill-report
|
|
27
28
|
*/
|
|
28
|
-
export interface
|
|
29
|
-
/** The
|
|
29
|
+
export interface QuillReport {
|
|
30
|
+
/** The report's unique id. */
|
|
30
31
|
id: string;
|
|
31
|
-
/** The name of the
|
|
32
|
+
/** The name of the report. */
|
|
32
33
|
name: string;
|
|
33
|
-
/** The name of the dashboard this
|
|
34
|
+
/** The name of the dashboard this report belongs to. */
|
|
34
35
|
dashboardName: string;
|
|
35
|
-
/** The rows of data returned from this
|
|
36
|
+
/** The rows of data returned from this report's query. */
|
|
36
37
|
rows: {
|
|
37
38
|
[key: string]: string;
|
|
38
39
|
}[];
|
|
39
|
-
/** The columns data returned from this
|
|
40
|
+
/** The columns data returned from this report's query. */
|
|
40
41
|
columns: Column[];
|
|
41
42
|
/** The type of this chart. */
|
|
42
43
|
chartType: string;
|
|
43
|
-
/** The table and field this
|
|
44
|
+
/** The table and field this report uses for date filtering, if any. */
|
|
44
45
|
dateField: {
|
|
45
46
|
table: string;
|
|
46
47
|
field: string;
|
|
@@ -61,15 +62,15 @@ export interface DashboardItem {
|
|
|
61
62
|
/** The formatted comparison range aggregation value, if any. */
|
|
62
63
|
comparisonAggregation?: string;
|
|
63
64
|
/** The percent change in the aggragations, if any. */
|
|
64
|
-
aggregationPercentChange?:
|
|
65
|
+
aggregationPercentChange?: number;
|
|
65
66
|
/** The label of the xAxis. */
|
|
66
67
|
xAxisLabel: string;
|
|
67
|
-
/** The field to use for this
|
|
68
|
+
/** The field to use for this report's xAxis. */
|
|
68
69
|
xAxisField: string;
|
|
69
|
-
/** The format for this
|
|
70
|
+
/** The format for this report's xAxis. */
|
|
70
71
|
xAxisFormat: AxisFormat;
|
|
71
72
|
/**
|
|
72
|
-
* A list of metadata about the yAxes of this
|
|
73
|
+
* A list of metadata about the yAxes of this report.
|
|
73
74
|
*/
|
|
74
75
|
yAxisFields: {
|
|
75
76
|
/** The field for this yAxis. */
|
|
@@ -80,17 +81,17 @@ export interface DashboardItem {
|
|
|
80
81
|
format: AxisFormat;
|
|
81
82
|
}[];
|
|
82
83
|
/**
|
|
83
|
-
* The relative ordering of this
|
|
84
|
-
*
|
|
84
|
+
* The relative ordering of this report in relation to its siblings. Ordering
|
|
85
|
+
* starts at 1 and counts up (eg. 1, 2, 3, etc.).
|
|
85
86
|
*
|
|
86
|
-
* Also note that
|
|
87
|
-
*
|
|
88
|
-
*
|
|
89
|
-
* the
|
|
87
|
+
* Also note that reports in the same section are first grouped by `chartType`
|
|
88
|
+
* and then each group is sorted by `order`. Currently, the first group is the
|
|
89
|
+
* `metric` reports and the last group is the `table` reports with the rest of
|
|
90
|
+
* the reports in between.
|
|
90
91
|
*/
|
|
91
92
|
order: number;
|
|
92
93
|
/**
|
|
93
|
-
* The rows of data returned from this
|
|
94
|
+
* The rows of data returned from this report's query over the comparison date
|
|
94
95
|
* range as opposed to the primary date range.
|
|
95
96
|
*/
|
|
96
97
|
compareRows: {
|
|
@@ -110,24 +111,24 @@ export interface DashboardProps {
|
|
|
110
111
|
*/
|
|
111
112
|
name?: string;
|
|
112
113
|
/** A component that wraps a dashboard item for 'metric' chart types. */
|
|
113
|
-
MetricComponent?: ({
|
|
114
|
-
|
|
115
|
-
onClick?: (
|
|
114
|
+
MetricComponent?: ({ report, onClick, isLoading, error, }: {
|
|
115
|
+
report: QuillReport;
|
|
116
|
+
onClick?: (report: QuillReport) => void;
|
|
116
117
|
isLoading?: boolean;
|
|
117
118
|
error?: string;
|
|
118
119
|
}) => JSX.Element;
|
|
119
120
|
/** A component that wraps a dashboard item for non-table, non-metric chart types. */
|
|
120
|
-
ChartComponent?: ({
|
|
121
|
-
|
|
122
|
-
onClick?: (
|
|
121
|
+
ChartComponent?: ({ report, onClick, isLoading, error, children, }: {
|
|
122
|
+
report: QuillReport;
|
|
123
|
+
onClick?: (report: QuillReport) => void;
|
|
123
124
|
isLoading?: boolean;
|
|
124
125
|
error?: string;
|
|
125
126
|
children?: ReactNode;
|
|
126
127
|
}) => JSX.Element;
|
|
127
128
|
/** A component that wraps a dashboard item for 'table' chart types. */
|
|
128
|
-
TableComponent?: ({
|
|
129
|
-
|
|
130
|
-
onClick?: (
|
|
129
|
+
TableComponent?: ({ report, onClick, isLoading, error, }: {
|
|
130
|
+
report: QuillReport;
|
|
131
|
+
onClick?: (report: QuillReport) => void;
|
|
131
132
|
isLoading?: boolean;
|
|
132
133
|
error?: string;
|
|
133
134
|
}) => JSX.Element;
|
|
@@ -142,10 +143,22 @@ export interface DashboardProps {
|
|
|
142
143
|
}[];
|
|
143
144
|
onChange: (event: React.ChangeEvent<HTMLSelectElement>) => void;
|
|
144
145
|
}) => JSX.Element;
|
|
146
|
+
/** A multiselect component. */
|
|
147
|
+
MultiSelectComponent?: ({ label, value, options, onChange, width, }: {
|
|
148
|
+
value: string[];
|
|
149
|
+
width: number;
|
|
150
|
+
label?: string;
|
|
151
|
+
options: {
|
|
152
|
+
value: string;
|
|
153
|
+
label: string;
|
|
154
|
+
}[];
|
|
155
|
+
onChange: (event: React.ChangeEvent<HTMLSelectElement>) => void;
|
|
156
|
+
}) => JSX.Element;
|
|
145
157
|
/** A date range picker component. */
|
|
146
|
-
DateRangePickerComponent?: ({ dateRange, label, presetOptions, preset, onChangeDateRange, onChangePreset, }: {
|
|
158
|
+
DateRangePickerComponent?: ({ dateRange, label, presetOptions, preset, selectWidth, onChangeDateRange, onChangePreset, }: {
|
|
147
159
|
preset: string;
|
|
148
160
|
label?: string;
|
|
161
|
+
selectWidth?: number;
|
|
149
162
|
dateRange: {
|
|
150
163
|
startDate: Date;
|
|
151
164
|
endDate: Date;
|
|
@@ -177,8 +190,8 @@ export interface DashboardProps {
|
|
|
177
190
|
}) => JSX.Element;
|
|
178
191
|
/** A fallback component displayed when an active dashboard has no items. */
|
|
179
192
|
EmptyDashboardComponent?: () => JSX.Element;
|
|
180
|
-
/** A callback fired when a
|
|
181
|
-
|
|
193
|
+
/** A callback fired when a report is clicked. */
|
|
194
|
+
onClickReport?: (report: QuillReport) => void;
|
|
182
195
|
/** A callback that is fired when the loading status of the dashboard changes. */
|
|
183
196
|
onChangeLoading?: (isLoading: boolean) => void;
|
|
184
197
|
/** Whether to hide the dashboard filters (default: `false`). */
|
|
@@ -210,6 +223,8 @@ export interface DashboardProps {
|
|
|
210
223
|
containerStyle?: React.CSSProperties;
|
|
211
224
|
/** The styles for the chart container. */
|
|
212
225
|
chartContainerStyle?: React.CSSProperties;
|
|
226
|
+
/** An array of dashboard filters that are indicated by the frontend dev. */
|
|
227
|
+
filters?: Filter[];
|
|
213
228
|
}
|
|
214
229
|
/**
|
|
215
230
|
* ### Quill Dashboard
|
|
@@ -231,7 +246,7 @@ export interface DashboardProps {
|
|
|
231
246
|
* <Dashboard
|
|
232
247
|
* name="saved_reports"
|
|
233
248
|
* SelectComponent={MySelect}
|
|
234
|
-
*
|
|
249
|
+
* onClickReport={(report) => navigate(`/detail/${report.id}`)}
|
|
235
250
|
* MetricComponent={MyMetric}
|
|
236
251
|
* ChartComponent={MyChart}
|
|
237
252
|
* TableComponent={MyTable}
|
|
@@ -242,5 +257,5 @@ export interface DashboardProps {
|
|
|
242
257
|
* ### API Reference
|
|
243
258
|
* @see https://docs.quillsql.com/components/dashboard
|
|
244
259
|
*/
|
|
245
|
-
export default function Dashboard({ name, SelectComponent, EmptyDashboardComponent, DateRangePickerComponent, MetricComponent, ChartComponent, TableComponent, DashboardSectionComponent, DashboardSectionContainerComponent, FilterContainerComponent,
|
|
260
|
+
export default function Dashboard({ name, SelectComponent, MultiSelectComponent, EmptyDashboardComponent, DateRangePickerComponent, MetricComponent, ChartComponent, TableComponent, DashboardSectionComponent, DashboardSectionContainerComponent, FilterContainerComponent, onClickReport, onChangeLoading, hideFilters, hideDateRangeFilter, hideXAxis, hideYAxis, hideCartesianGrid, comparisonLineStyle, containerStyle, className, chartContainerStyle, filters, }: DashboardProps): import("react/jsx-runtime").JSX.Element | null;
|
|
246
261
|
//# sourceMappingURL=Dashboard.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Dashboard.d.ts","sourceRoot":"","sources":["../../src/Dashboard.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAMZ,SAAS,EACT,WAAW,EACZ,MAAM,OAAO,CAAC;AAsCf,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"Dashboard.d.ts","sourceRoot":"","sources":["../../src/Dashboard.tsx"],"names":[],"mappings":"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"}
|
package/dist/esm/Dashboard.js
CHANGED
|
@@ -18,6 +18,7 @@ import DataLoader, { ChartDataLoader, } from './components/Dashboard/DataLoader'
|
|
|
18
18
|
import { QuillEmptyDashboardComponent, QuillFilterContainerComponent, } from './components/UiComponents';
|
|
19
19
|
import { DashboardFilter } from './components/Dashboard/DashboardFilter';
|
|
20
20
|
import { QuillSelectComponent } from './components/QuillSelect';
|
|
21
|
+
import { QuillMultiSelectComponent } from './components/QuillMultiSelect';
|
|
21
22
|
const defaultChartContainerStyles = {
|
|
22
23
|
display: 'flex',
|
|
23
24
|
width: '100%',
|
|
@@ -44,7 +45,7 @@ const defaultChartContainerStyles = {
|
|
|
44
45
|
* <Dashboard
|
|
45
46
|
* name="saved_reports"
|
|
46
47
|
* SelectComponent={MySelect}
|
|
47
|
-
*
|
|
48
|
+
* onClickReport={(report) => navigate(`/detail/${report.id}`)}
|
|
48
49
|
* MetricComponent={MyMetric}
|
|
49
50
|
* ChartComponent={MyChart}
|
|
50
51
|
* TableComponent={MyTable}
|
|
@@ -55,7 +56,7 @@ const defaultChartContainerStyles = {
|
|
|
55
56
|
* ### API Reference
|
|
56
57
|
* @see https://docs.quillsql.com/components/dashboard
|
|
57
58
|
*/
|
|
58
|
-
export default function Dashboard({ name, SelectComponent = QuillSelectComponent, EmptyDashboardComponent = QuillEmptyDashboardComponent, DateRangePickerComponent = QuillDateRangePicker, MetricComponent = QuillMetricComponent, ChartComponent = QuillChartComponent, TableComponent = QuillTableComponent, DashboardSectionComponent = DashboardSection, DashboardSectionContainerComponent = DashboardSectionContainer, FilterContainerComponent = QuillFilterContainerComponent,
|
|
59
|
+
export default function Dashboard({ name, SelectComponent = QuillSelectComponent, MultiSelectComponent = QuillMultiSelectComponent, EmptyDashboardComponent = QuillEmptyDashboardComponent, DateRangePickerComponent = QuillDateRangePicker, MetricComponent = QuillMetricComponent, ChartComponent = QuillChartComponent, TableComponent = QuillTableComponent, DashboardSectionComponent = DashboardSection, DashboardSectionContainerComponent = DashboardSectionContainer, FilterContainerComponent = QuillFilterContainerComponent, onClickReport, onChangeLoading, hideFilters, hideDateRangeFilter = false, hideXAxis = false, hideYAxis = false, hideCartesianGrid = false, comparisonLineStyle = 'solid', containerStyle, className, chartContainerStyle = defaultChartContainerStyles, filters, }) {
|
|
59
60
|
const { dispatch } = useContext(DashboardContext);
|
|
60
61
|
const { isLoading: isDataLoading, data, reload, } = useDashboard(name);
|
|
61
62
|
const [dashboardSections, setDashboardSections] = useState(null);
|
|
@@ -77,7 +78,7 @@ export default function Dashboard({ name, SelectComponent = QuillSelectComponent
|
|
|
77
78
|
onDashboardDataChange(data);
|
|
78
79
|
}, [data]);
|
|
79
80
|
useEffect(() => {
|
|
80
|
-
reload();
|
|
81
|
+
reload(name);
|
|
81
82
|
}, [name, client]);
|
|
82
83
|
const onDashboardDataChange = (resp) => {
|
|
83
84
|
setDashboardSections(resp.sections);
|
|
@@ -119,7 +120,7 @@ export default function Dashboard({ name, SelectComponent = QuillSelectComponent
|
|
|
119
120
|
};
|
|
120
121
|
}),
|
|
121
122
|
field: 'date_range',
|
|
122
|
-
label:
|
|
123
|
+
label: resp.dateFilter.label,
|
|
123
124
|
preset: {
|
|
124
125
|
label: primaryPreset.label,
|
|
125
126
|
},
|
|
@@ -167,21 +168,30 @@ export default function Dashboard({ name, SelectComponent = QuillSelectComponent
|
|
|
167
168
|
data: bigFilterObj,
|
|
168
169
|
});
|
|
169
170
|
}
|
|
171
|
+
if (filters) {
|
|
172
|
+
filters.forEach((filter) => {
|
|
173
|
+
dashboardFiltersDispatch({
|
|
174
|
+
type: 'ADD_DASHBOARD_FILTER',
|
|
175
|
+
id: filter.field,
|
|
176
|
+
data: filter,
|
|
177
|
+
});
|
|
178
|
+
});
|
|
179
|
+
}
|
|
170
180
|
};
|
|
171
181
|
const handleOnClickDashboardItem = (elem) => {
|
|
172
182
|
const cleanedItem = cleanDashboardItem(dashboard[elem._id] ?? elem, dashboardFilters);
|
|
173
|
-
if (dashboard[elem._id]?._id &&
|
|
183
|
+
if (dashboard[elem._id]?._id && onClickReport) {
|
|
174
184
|
// The _id add-on is a patch for backwards compatability
|
|
175
185
|
// TODO: remove all _id references from the codebase (admin and react)
|
|
176
|
-
|
|
186
|
+
onClickReport({ ...cleanedItem, _id: elem._id });
|
|
177
187
|
}
|
|
178
|
-
else if (
|
|
188
|
+
else if (onClickReport) {
|
|
179
189
|
dispatch({
|
|
180
190
|
type: 'UPDATE_DASHBOARD_ITEM',
|
|
181
191
|
id: elem._id,
|
|
182
192
|
data: { ...elem, filtersApplied: dashboardFilters },
|
|
183
193
|
});
|
|
184
|
-
|
|
194
|
+
onClickReport({ ...cleanedItem, _id: elem._id });
|
|
185
195
|
}
|
|
186
196
|
};
|
|
187
197
|
function removeQuotes(str) {
|
|
@@ -220,20 +230,29 @@ export default function Dashboard({ name, SelectComponent = QuillSelectComponent
|
|
|
220
230
|
};
|
|
221
231
|
const updateFilter = (filter, value = null, comparison = null) => {
|
|
222
232
|
//for dateObjects only, since values are arrays for dateObjects
|
|
223
|
-
const { selectedValue: _, ...filterWithoutSelectedValue } = filter; // _ is a throwaway variable
|
|
224
|
-
let selectedValue;
|
|
225
|
-
let selectedElem;
|
|
233
|
+
const { selectedValue: _, operator, ...filterWithoutSelectedValue } = filter; // _ is a throwaway variable
|
|
226
234
|
if (filter.filterType === 'string') {
|
|
227
|
-
|
|
228
|
-
if (
|
|
229
|
-
|
|
235
|
+
let selectedValue = {};
|
|
236
|
+
if (value) {
|
|
237
|
+
if (filter.stringFilterType === 'multiselect') {
|
|
238
|
+
const parsedValue = JSON.parse(value);
|
|
239
|
+
if (parsedValue.length === 0) {
|
|
240
|
+
selectedValue = { values: [] };
|
|
241
|
+
}
|
|
242
|
+
else {
|
|
243
|
+
selectedValue = { values: parsedValue, operator: 'IN' };
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
else {
|
|
247
|
+
selectedValue = { selectedValue: value };
|
|
248
|
+
}
|
|
230
249
|
}
|
|
231
250
|
dashboardFiltersDispatch({
|
|
232
251
|
type: 'ADD_DASHBOARD_FILTER',
|
|
233
252
|
id: filter.field,
|
|
234
253
|
data: {
|
|
235
254
|
...filterWithoutSelectedValue,
|
|
236
|
-
...
|
|
255
|
+
...selectedValue,
|
|
237
256
|
},
|
|
238
257
|
});
|
|
239
258
|
return;
|
|
@@ -345,7 +364,7 @@ export default function Dashboard({ name, SelectComponent = QuillSelectComponent
|
|
|
345
364
|
boxSizing: 'content-box',
|
|
346
365
|
flexDirection: 'row',
|
|
347
366
|
alignItems: 'center',
|
|
348
|
-
}, children: _jsx(FilterContainerComponent, { children: sortedFilters.map((filter, index) => (_jsx(DashboardFilter, { filter: filter, onChangeFilter: updateFilter, theme: theme, SelectComponent: SelectComponent, DateRangePickerComponent: DateRangePickerComponent }, index))) }) })), Object.keys(dashboardSections)
|
|
367
|
+
}, children: _jsx(FilterContainerComponent, { children: sortedFilters.map((filter, index) => (_jsx(DashboardFilter, { filter: filter, onChangeFilter: updateFilter, theme: theme, SelectComponent: SelectComponent, MultiSelectComponent: MultiSelectComponent, DateRangePickerComponent: DateRangePickerComponent }, index))) }) })), Object.keys(dashboardSections)
|
|
349
368
|
.sort(function (a, b) {
|
|
350
369
|
return a.length - b.length;
|
|
351
370
|
})
|
|
@@ -359,14 +378,14 @@ export default function Dashboard({ name, SelectComponent = QuillSelectComponent
|
|
|
359
378
|
textAlign: 'left',
|
|
360
379
|
marginTop: 12,
|
|
361
380
|
}, children: section })] })), metrics(section).length > 0 && (_jsx(DashboardSectionComponent, { section: "metrics", children: metrics(section).map((item, index) => {
|
|
362
|
-
return (_jsx(DataLoader, { id: item._id, children: ({ isLoading, error }) => (_jsx(MetricComponent, { error: error, isLoading: isLoading,
|
|
381
|
+
return (_jsx(DataLoader, { id: item._id, children: ({ isLoading, error }) => (_jsx(MetricComponent, { error: error, isLoading: isLoading, report: cleanDashboardItem(dashboard[item._id] ?? item, dashboardFilters), onClick: !isLoading && onClickReport
|
|
363
382
|
? () => handleOnClickDashboardItem(item)
|
|
364
383
|
: undefined }, item.name + '' + index)) }, `${item.name}${index}`));
|
|
365
|
-
}) })), charts(section).length > 0 && (_jsx(DashboardSectionComponent, { section: "charts", children: charts(section).map((item, index) => (_jsx(ChartDataLoader, { id: item._id, hideDateRangeFilter: hideDateRangeFilter, children: ({ isLoading, data, error, }) => (_jsx(ChartComponent, {
|
|
384
|
+
}) })), charts(section).length > 0 && (_jsx(DashboardSectionComponent, { section: "charts", children: charts(section).map((item, index) => (_jsx(ChartDataLoader, { id: item._id, hideDateRangeFilter: hideDateRangeFilter, children: ({ isLoading, data, error, }) => (_jsx(ChartComponent, { report: cleanDashboardItem(dashboard[item._id] ?? item, dashboardFilters), error: error, onClick: !isLoading && onClickReport
|
|
366
385
|
? () => handleOnClickDashboardItem(item)
|
|
367
386
|
: undefined, children: _jsx(Chart, { config: data, containerStyle: chartContainerStyle, colors: theme.chartColors?.length
|
|
368
387
|
? theme.chartColors
|
|
369
|
-
: undefined, hideXAxis: hideXAxis, hideYAxis: hideYAxis, hideCartesianGrid: hideCartesianGrid, comparisonLineStyle: comparisonLineStyle }) }, item.name + '' + index)) }, `${item.name}${index}`))) })), tables(section).length > 0 && (_jsx(DashboardSectionComponent, { section: "tables", children: tables(section).map((item, index) => (_jsx(DataLoader, { id: item._id, children: ({ isLoading, error }) => (_jsx(TableComponent, {
|
|
388
|
+
: undefined, hideXAxis: hideXAxis, hideYAxis: hideYAxis, hideCartesianGrid: hideCartesianGrid, comparisonLineStyle: comparisonLineStyle }) }, item.name + '' + index)) }, `${item.name}${index}`))) })), tables(section).length > 0 && (_jsx(DashboardSectionComponent, { section: "tables", children: tables(section).map((item, index) => (_jsx(DataLoader, { id: item._id, children: ({ isLoading, error }) => (_jsx(TableComponent, { report: cleanDashboardItem(dashboard[item._id] ?? item, dashboardFilters), isLoading: isLoading, error: error, onClick: !isLoading && onClickReport
|
|
370
389
|
? () => handleOnClickDashboardItem(item)
|
|
371
390
|
: undefined })) }, `${item.name}${index}`))) }))] }, section + '' + sectionIndex));
|
|
372
391
|
})] }));
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { CSSProperties, ReactNode } from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { QuillReport } from './Dashboard';
|
|
3
3
|
/**
|
|
4
4
|
* Props for the Quill ReportBuilder component.
|
|
5
5
|
*/
|
|
@@ -245,9 +245,9 @@ export interface ReportBuilderProps {
|
|
|
245
245
|
/** A report id that the Report Builder will query from and modify. */
|
|
246
246
|
reportId?: string;
|
|
247
247
|
/** A callback function that will trigger when a new chart is saved */
|
|
248
|
-
onSubmitCreateReport?: (
|
|
248
|
+
onSubmitCreateReport?: (report: QuillReport) => void;
|
|
249
249
|
/** A callback function that will trigger when a chart is edited */
|
|
250
|
-
onSubmitEditReport?: (
|
|
250
|
+
onSubmitEditReport?: (report: QuillReport) => void;
|
|
251
251
|
/** Hide the copy SQL button. */
|
|
252
252
|
hideCopySQL?: boolean;
|
|
253
253
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReportBuilder.d.ts","sourceRoot":"","sources":["../../src/ReportBuilder.tsx"],"names":[],"mappings":"AACA,OAAO,EAEL,aAAa,EAEb,SAAS,EAKV,MAAM,OAAO,CAAC;AA2Jf,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"ReportBuilder.d.ts","sourceRoot":"","sources":["../../src/ReportBuilder.tsx"],"names":[],"mappings":"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"}
|