@quillsql/react 2.11.30 → 2.12.1
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 +25 -18
- package/dist/cjs/Chart.d.ts.map +1 -1
- package/dist/cjs/Chart.js +25 -17
- 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 +36 -17
- package/dist/cjs/ReportBuilder.d.ts +3 -3
- package/dist/cjs/ReportBuilder.d.ts.map +1 -1
- package/dist/cjs/ReportBuilder.js +20 -22
- 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/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 +15 -17
- 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/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/valueFormatter.js +1 -1
- package/dist/esm/Chart.d.ts +25 -18
- package/dist/esm/Chart.d.ts.map +1 -1
- package/dist/esm/Chart.js +25 -17
- 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 +36 -17
- package/dist/esm/ReportBuilder.d.ts +3 -3
- package/dist/esm/ReportBuilder.d.ts.map +1 -1
- package/dist/esm/ReportBuilder.js +20 -22
- 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/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 +15 -17
- 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/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/valueFormatter.js +1 -1
- package/package.json +1 -1
package/dist/cjs/index.js
CHANGED
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.ThemeContext = exports.downloadCSV = exports.useMemoizedRows = exports.useExport = exports.useQuill = exports.useDashboard = exports.format = exports.ChartEditor = exports.
|
|
6
|
+
exports.ThemeContext = exports.downloadCSV = exports.useMemoizedRows = exports.useExport = exports.useQuill = exports.useDashboard = exports.format = exports.ChartEditor = exports.ReportBuilder = exports.SchemaListComponent = exports.SQLEditor = exports.Table = exports.Chart = exports.QuillProvider = exports.Dashboard = void 0;
|
|
7
7
|
// src/index.ts
|
|
8
8
|
var Dashboard_1 = require("./Dashboard");
|
|
9
9
|
Object.defineProperty(exports, "Dashboard", { enumerable: true, get: function () { return __importDefault(Dashboard_1).default; } });
|
|
@@ -18,8 +18,6 @@ Object.defineProperty(exports, "SQLEditor", { enumerable: true, get: function ()
|
|
|
18
18
|
Object.defineProperty(exports, "SchemaListComponent", { enumerable: true, get: function () { return SQLEditor_1.SchemaListComponent; } });
|
|
19
19
|
var ReportBuilder_1 = require("./ReportBuilder");
|
|
20
20
|
Object.defineProperty(exports, "ReportBuilder", { enumerable: true, get: function () { return __importDefault(ReportBuilder_1).default; } });
|
|
21
|
-
var ChartBuilder_1 = require("./ChartBuilder");
|
|
22
|
-
Object.defineProperty(exports, "ChartBuilder", { enumerable: true, get: function () { return __importDefault(ChartBuilder_1).default; } });
|
|
23
21
|
var ChartEditor_1 = require("./ChartEditor");
|
|
24
22
|
Object.defineProperty(exports, "ChartEditor", { enumerable: true, get: function () { return __importDefault(ChartEditor_1).default; } });
|
|
25
23
|
var valueFormatter_1 = require("./utils/valueFormatter");
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Filter.d.ts","sourceRoot":"","sources":["../../../src/models/Filter.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,MAAM;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,GAAG,EAAE,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { QuillReport } from '../Dashboard';
|
|
2
2
|
/**
|
|
3
3
|
* Returns a cleaned version of the dashboard item we store in state. We clean
|
|
4
4
|
* the dashboard item so that we aren't exposing unnecessary details to the
|
|
@@ -8,5 +8,5 @@ import { DashboardItem } from '../Dashboard';
|
|
|
8
8
|
*/
|
|
9
9
|
export declare function cleanDashboardItem(item: {
|
|
10
10
|
[key: string]: any;
|
|
11
|
-
} | undefined, dashboardFilters: any):
|
|
11
|
+
} | undefined, dashboardFilters: any): QuillReport;
|
|
12
12
|
//# sourceMappingURL=dashboard.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../../../src/utils/dashboard.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../../../src/utils/dashboard.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AA6B3C;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,GAAG,SAAS,EACxC,gBAAgB,EAAE,GAAG,GACpB,WAAW,CAmCb"}
|
|
@@ -15,7 +15,7 @@ const defaultDashboardItem = {
|
|
|
15
15
|
pivot: null,
|
|
16
16
|
primaryAggregation: '',
|
|
17
17
|
comparisonAggregation: '',
|
|
18
|
-
aggregationPercentChange:
|
|
18
|
+
aggregationPercentChange: undefined,
|
|
19
19
|
yAxisFields: [],
|
|
20
20
|
xAxisLabel: '',
|
|
21
21
|
xAxisField: '',
|
|
@@ -83,7 +83,7 @@ function getAggragations(pivotTable, item) {
|
|
|
83
83
|
return {
|
|
84
84
|
primaryAggregation: formatAggragation(item, primary),
|
|
85
85
|
comparisonAggregation: formatAggragation(item, comparison),
|
|
86
|
-
aggregationPercentChange:
|
|
86
|
+
aggregationPercentChange: Number(primary - comparison),
|
|
87
87
|
};
|
|
88
88
|
}
|
|
89
89
|
/**
|
|
@@ -98,18 +98,6 @@ function formatAggragation(item, value) {
|
|
|
98
98
|
fields: item.yAxisFields,
|
|
99
99
|
});
|
|
100
100
|
}
|
|
101
|
-
/**
|
|
102
|
-
* Formats the percentage change from a to b with the sign included.
|
|
103
|
-
*/
|
|
104
|
-
function formatPercentageWithSign(a, b) {
|
|
105
|
-
const formatter = new Intl.NumberFormat('en-US', {
|
|
106
|
-
style: 'percent',
|
|
107
|
-
signDisplay: 'exceptZero',
|
|
108
|
-
minimumFractionDigits: 2,
|
|
109
|
-
maximumFractionDigits: 2,
|
|
110
|
-
});
|
|
111
|
-
return formatter.format(Number(b - a));
|
|
112
|
-
}
|
|
113
101
|
/**
|
|
114
102
|
* Extract and transform the data from itemInfo.
|
|
115
103
|
*/
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errorProcessing.d.ts","sourceRoot":"","sources":["../../../src/utils/errorProcessing.ts"],"names":[],"mappings":"AAAA,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,GAAG,QAO/C"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.processFilterErrorList = void 0;
|
|
4
|
+
function processFilterErrorList(resp) {
|
|
5
|
+
if (!resp || !resp.filterErrorList || !Array.isArray(resp.filterErrorList)) {
|
|
6
|
+
return;
|
|
7
|
+
}
|
|
8
|
+
resp.filterErrorList.forEach((filterError) => {
|
|
9
|
+
console.error(filterError);
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
exports.processFilterErrorList = processFilterErrorList;
|
|
@@ -104,7 +104,7 @@ exports.quillFormat = quillFormat;
|
|
|
104
104
|
* Formats the value as a string using the built-in converstion.
|
|
105
105
|
*/
|
|
106
106
|
const formatString = (value) => {
|
|
107
|
-
if (
|
|
107
|
+
if (value === null || value === undefined) {
|
|
108
108
|
return 'null';
|
|
109
109
|
}
|
|
110
110
|
if (typeof value === 'object') {
|
package/dist/esm/Chart.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { QuillTheme } from './QuillProvider';
|
|
3
|
-
import { type
|
|
3
|
+
import { type QuillReport } from './Dashboard';
|
|
4
|
+
import { Filter } from './models/Filter';
|
|
4
5
|
export declare function didFiltersChange(dashboardItem: any, filters: any): boolean;
|
|
5
6
|
export type ColorMapType = {
|
|
6
7
|
[key: string]: {
|
|
@@ -17,24 +18,24 @@ export type ColorMapType = {
|
|
|
17
18
|
*/
|
|
18
19
|
export interface ChartProps {
|
|
19
20
|
/**
|
|
20
|
-
* A
|
|
21
|
+
* A report to render, if any.
|
|
21
22
|
*
|
|
22
|
-
* When config is passed, the chart will not refetch the given
|
|
23
|
-
*
|
|
23
|
+
* When config is passed, the chart will not refetch the given report and will
|
|
24
|
+
* instead simply render the item it was given.
|
|
24
25
|
*
|
|
25
|
-
* A `config` must be passed if `
|
|
26
|
+
* A `config` must be passed if `reportId` is not present.
|
|
26
27
|
*/
|
|
27
|
-
config?:
|
|
28
|
+
config?: QuillReport | any;
|
|
28
29
|
/**
|
|
29
|
-
*
|
|
30
|
+
* The id of a report to render, if any.
|
|
30
31
|
*
|
|
31
|
-
* When a
|
|
32
|
-
* render this chart, and then it will render the
|
|
33
|
-
*
|
|
32
|
+
* When a reportId is passed, the chart will first fetch the data necessary to
|
|
33
|
+
* render this chart, and then it will render the report that it receives from
|
|
34
|
+
* the server.
|
|
34
35
|
*
|
|
35
|
-
* A `
|
|
36
|
+
* A `reportId` must be passed if `config` is not present.
|
|
36
37
|
*/
|
|
37
|
-
|
|
38
|
+
reportId?: string;
|
|
38
39
|
/**
|
|
39
40
|
* A list of color strings used to color the chart.
|
|
40
41
|
*
|
|
@@ -88,8 +89,8 @@ export interface ChartProps {
|
|
|
88
89
|
*/
|
|
89
90
|
cartesianGridLineColor?: string;
|
|
90
91
|
/**
|
|
91
|
-
* An optional function that takes a
|
|
92
|
-
*
|
|
92
|
+
* An optional function that takes a report and theme and returns a map of
|
|
93
|
+
* keys used in that report to the colors they should use.
|
|
93
94
|
*
|
|
94
95
|
* The color values support RGB hexcodes and CSS color literals.
|
|
95
96
|
*
|
|
@@ -113,7 +114,11 @@ export interface ChartProps {
|
|
|
113
114
|
* }
|
|
114
115
|
* ```
|
|
115
116
|
*/
|
|
116
|
-
mapColorsToFields?: (
|
|
117
|
+
mapColorsToFields?: (report: QuillReport, theme: QuillTheme) => ColorMapType;
|
|
118
|
+
/**
|
|
119
|
+
* A loading component to show when the chart is loading.
|
|
120
|
+
*/
|
|
121
|
+
LoadingComponent?: () => JSX.Element;
|
|
117
122
|
/**
|
|
118
123
|
* Styles the top-level container of the Chart.
|
|
119
124
|
*
|
|
@@ -124,6 +129,8 @@ export interface ChartProps {
|
|
|
124
129
|
* Styles the top-level container of the Chart.
|
|
125
130
|
*/
|
|
126
131
|
containerStyle?: React.CSSProperties;
|
|
132
|
+
/** An array of dashboard filters that are indicated by the frontend dev. */
|
|
133
|
+
filters?: Filter[];
|
|
127
134
|
}
|
|
128
135
|
/**
|
|
129
136
|
* ### Quill Chart
|
|
@@ -133,13 +140,13 @@ export interface ChartProps {
|
|
|
133
140
|
* @example
|
|
134
141
|
* ```js
|
|
135
142
|
* // Usage with chart id (will auto-fetch data)
|
|
136
|
-
* <Chart
|
|
143
|
+
* <Chart reportId="12345" />
|
|
137
144
|
* ```
|
|
138
145
|
*
|
|
139
146
|
* @example
|
|
140
147
|
* ```js
|
|
141
|
-
* // Usage with a
|
|
142
|
-
* <Chart config={
|
|
148
|
+
* // Usage with a report (will not auto-fetch data)
|
|
149
|
+
* <Chart config={report} />
|
|
143
150
|
* ```
|
|
144
151
|
*
|
|
145
152
|
* ### Chart API
|
package/dist/esm/Chart.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Chart.d.ts","sourceRoot":"","sources":["../../src/Chart.tsx"],"names":[],"mappings":";AAWA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAgB7C,OAAO,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"Chart.d.ts","sourceRoot":"","sources":["../../src/Chart.tsx"],"names":[],"mappings":";AAWA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAgB7C,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AA0GzC,wBAAgB,gBAAgB,CAAC,aAAa,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,WAQhE;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAC9B,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,uBAAuB,CAAC,EAAE,MAAM,CAAC;QACjC,sBAAsB,CAAC,EAAE,MAAM,CAAC;KACjC,CAAC;CACH,CAAC;AAeF;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,WAAW,GAAG,GAAG,CAAC;IAE3B;;;;;;;;OAQG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAElB;;OAEG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B;;OAEG;IACH,2BAA2B,CAAC,EAAE,OAAO,CAAC;IAEtC;;OAEG;IACH,yBAAyB,CAAC,EAAE,OAAO,CAAC;IAEpC;;OAEG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;IAEnC;;OAEG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAE9B;;;OAGG;IACH,mBAAmB,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IAEzC;;OAEG;IACH,sBAAsB,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IAE5C;;OAEG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAEhC;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,iBAAiB,CAAC,EAAE,CAClB,MAAM,EAAE,WAAW,EACnB,KAAK,EAAE,UAAU,KACd,YAAY,CAAC;IAElB;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,GAAG,CAAC,OAAO,CAAC;IAErC;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,cAAc,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAErC,4EAA4E;IAC5E,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,QAAA,MAAM,KAAK,UAAW,UAAU,4CA8C/B,CAAC;AAynBF,eAAe,KAAK,CAAC"}
|
package/dist/esm/Chart.js
CHANGED
|
@@ -12,12 +12,13 @@ import { DATE_FORMAT_TYPES, valueFormatter } from './utils/valueFormatter';
|
|
|
12
12
|
import LineChart from './components/Chart/LineChart';
|
|
13
13
|
import BarChart from './components/Chart/BarChart';
|
|
14
14
|
import { mergeComparisonRange } from './utils/merge';
|
|
15
|
-
import
|
|
15
|
+
import { QuillLoadingSkeleton } from './components/Chart/ChartSkeleton';
|
|
16
16
|
import ChartError from './components/Chart/ChartError';
|
|
17
17
|
import { COMPARISON_OPTIONS } from './DateRangePicker/dateRangePickerUtils';
|
|
18
18
|
import { quillFormat } from './utils/valueFormatter';
|
|
19
19
|
import { downloadCSV } from './utils/csv';
|
|
20
20
|
import useTheme from './hooks/useTheme';
|
|
21
|
+
import { processFilterErrorList } from './utils/errorProcessing';
|
|
21
22
|
const MAX_ROWS_FOR_GENERIC_TABLE = 300;
|
|
22
23
|
// @ts-ignore
|
|
23
24
|
function sumByKey(arr, key) {
|
|
@@ -75,7 +76,7 @@ export function didFiltersChange(dashboardItem, filters) {
|
|
|
75
76
|
}
|
|
76
77
|
return !isEquivalent(dashboardItem.filtersApplied, filters);
|
|
77
78
|
}
|
|
78
|
-
function fallbackMapColorsToFields(
|
|
79
|
+
function fallbackMapColorsToFields(_report, _theme) {
|
|
79
80
|
// By default, if the key is not in the map we use the colors array.
|
|
80
81
|
return {};
|
|
81
82
|
}
|
|
@@ -87,13 +88,13 @@ function fallbackMapColorsToFields(_dashboardItem, _theme) {
|
|
|
87
88
|
* @example
|
|
88
89
|
* ```js
|
|
89
90
|
* // Usage with chart id (will auto-fetch data)
|
|
90
|
-
* <Chart
|
|
91
|
+
* <Chart reportId="12345" />
|
|
91
92
|
* ```
|
|
92
93
|
*
|
|
93
94
|
* @example
|
|
94
95
|
* ```js
|
|
95
|
-
* // Usage with a
|
|
96
|
-
* <Chart config={
|
|
96
|
+
* // Usage with a report (will not auto-fetch data)
|
|
97
|
+
* <Chart config={report} />
|
|
97
98
|
* ```
|
|
98
99
|
*
|
|
99
100
|
* ### Chart API
|
|
@@ -114,9 +115,9 @@ const Chart = (props) => {
|
|
|
114
115
|
? theme.chartColors
|
|
115
116
|
: ['#4E80EE', '#E14F62', '#55B5A6', '#E9A23B', '#6466E9', '#55B685'];
|
|
116
117
|
}, [data.colors]);
|
|
117
|
-
return (_jsx(ChartUpdater, {
|
|
118
|
+
return (_jsx(ChartUpdater, { reportId: data.reportId, className: data.className, containerStyle: data.containerStyle, colors: chartColors, isAnimationActive: data.isAnimationActive, hideXAxis: data.hideXAxis, hideYAxis: data.hideYAxis, hideCartesianGrid: data.hideCartesianGrid, hideHorizontalCartesianGrid: data.hideHorizontalCartesianGrid, hideVerticalCartesianGrid: data.hideVerticalCartesianGrid, hideSubsequentXAxisTicks: data.hideSubsequentXAxisTicks, hideDateRangeFilter: data.hideDateRangeFilter, cartesianGridLineStyle: data.cartesianGridLineStyle, cartesianGridLineColor: data.cartesianGridLineColor, comparisonLineStyle: data.comparisonLineStyle, mapColorsToFields: data.mapColorsToFields ?? fallbackMapColorsToFields, LoadingComponent: data.LoadingComponent, filters: data.filters }));
|
|
118
119
|
};
|
|
119
|
-
const ChartUpdater = ({ colors,
|
|
120
|
+
const ChartUpdater = ({ colors, reportId, className, containerStyle, isAnimationActive, hideXAxis, hideYAxis, hideCartesianGrid, hideHorizontalCartesianGrid = false, hideVerticalCartesianGrid = true, hideSubsequentXAxisTicks = false, cartesianGridLineStyle = 'solid', cartesianGridLineColor, comparisonLineStyle, hideDateRangeFilter = false, mapColorsToFields, LoadingComponent = QuillLoadingSkeleton, filters, }) => {
|
|
120
121
|
const { dispatch, dashboard } = useContext(DashboardContext);
|
|
121
122
|
const { dashboardFilters } = useContext(DashboardFiltersContext);
|
|
122
123
|
const [initialLoad, setInitialLoad] = useState(true);
|
|
@@ -129,7 +130,7 @@ const ChartUpdater = ({ colors, chartId, className, containerStyle, isAnimationA
|
|
|
129
130
|
useEffect(() => {
|
|
130
131
|
async function getChartOptions() {
|
|
131
132
|
setLoading(true);
|
|
132
|
-
if (!didFiltersChange(dashboard[
|
|
133
|
+
if (!didFiltersChange(dashboard[reportId], dashboardFilters)) {
|
|
133
134
|
setLoading(false);
|
|
134
135
|
return;
|
|
135
136
|
}
|
|
@@ -149,9 +150,12 @@ const ChartUpdater = ({ colors, chartId, className, containerStyle, isAnimationA
|
|
|
149
150
|
return newFilter;
|
|
150
151
|
})
|
|
151
152
|
: [];
|
|
153
|
+
if (filters) {
|
|
154
|
+
minimalFilters.push(...filters);
|
|
155
|
+
}
|
|
152
156
|
const hostedBody = {
|
|
153
157
|
metadata: {
|
|
154
|
-
dashboardItemId:
|
|
158
|
+
dashboardItemId: reportId,
|
|
155
159
|
orgId: client.customerId || '*',
|
|
156
160
|
clientId: client.publicKey,
|
|
157
161
|
task: 'item',
|
|
@@ -160,20 +164,21 @@ const ChartUpdater = ({ colors, chartId, className, containerStyle, isAnimationA
|
|
|
160
164
|
},
|
|
161
165
|
};
|
|
162
166
|
const cloudBody = {
|
|
163
|
-
id:
|
|
167
|
+
id: reportId,
|
|
164
168
|
filters: minimalFilters,
|
|
165
169
|
};
|
|
166
170
|
setError(undefined);
|
|
167
171
|
const resp = await getData(client, 'itempost', 'omit', hostedBody, cloudBody);
|
|
172
|
+
processFilterErrorList(resp);
|
|
168
173
|
if (resp && resp.name !== 'error' && !resp.errorMessage) {
|
|
169
174
|
setIsComparison(!!resp.compareRows?.length);
|
|
170
175
|
if (resp.compareRows) {
|
|
171
176
|
mergeComparisonRange(resp);
|
|
172
177
|
}
|
|
173
|
-
const dashboardItem = { ...resp, filtersApplied:
|
|
178
|
+
const dashboardItem = { ...resp, filtersApplied: minimalFilters };
|
|
174
179
|
dispatch({
|
|
175
180
|
type: 'UPDATE_DASHBOARD_ITEM',
|
|
176
|
-
id:
|
|
181
|
+
id: reportId,
|
|
177
182
|
data: dashboardItem,
|
|
178
183
|
});
|
|
179
184
|
if (mapColorsToFields) {
|
|
@@ -192,10 +197,10 @@ const ChartUpdater = ({ colors, chartId, className, containerStyle, isAnimationA
|
|
|
192
197
|
}
|
|
193
198
|
setInitialLoad(false);
|
|
194
199
|
getChartOptions();
|
|
195
|
-
}, [dashboardFilters, client,
|
|
196
|
-
return (_jsx(ChartDisplay, { config: dashboard[
|
|
200
|
+
}, [dashboardFilters, client, reportId]);
|
|
201
|
+
return (_jsx(ChartDisplay, { config: dashboard[reportId], colors: colors, className: className, containerStyle: containerStyle, hideXAxis: hideXAxis, hideYAxis: hideYAxis, hideCartesianGrid: hideCartesianGrid, hideHorizontalCartesianGrid: hideHorizontalCartesianGrid, hideVerticalCartesianGrid: hideVerticalCartesianGrid, hideSubsequentXAxisTicks: hideSubsequentXAxisTicks, cartesianGridLineStyle: cartesianGridLineStyle, cartesianGridLineColor: cartesianGridLineColor, hideDateRangeFilter: hideDateRangeFilter, comparisonLineStyle: comparisonLineStyle, isAnimationActive: isAnimationActive, isComparison: isComparison, loading: loading || initialLoad, error: error, colorMap: colorMap, LoadingComponent: LoadingComponent }));
|
|
197
202
|
};
|
|
198
|
-
const ChartDisplay = ({ config, colors, className, containerStyle, hideXAxis, hideYAxis, hideCartesianGrid, hideDateRangeFilter = false, hideHorizontalCartesianGrid = false, hideVerticalCartesianGrid = true, hideSubsequentXAxisTicks = false, cartesianGridLineStyle = 'solid', cartesianGridLineColor, comparisonLineStyle, isAnimationActive, loading = false, error = undefined, isComparison = false, colorMap, }) => {
|
|
203
|
+
const ChartDisplay = ({ config, colors, className, containerStyle, hideXAxis, hideYAxis, hideCartesianGrid, hideDateRangeFilter = false, hideHorizontalCartesianGrid = false, hideVerticalCartesianGrid = true, hideSubsequentXAxisTicks = false, cartesianGridLineStyle = 'solid', cartesianGridLineColor, comparisonLineStyle, isAnimationActive, loading = false, error = undefined, isComparison = false, colorMap, LoadingComponent = QuillLoadingSkeleton, }) => {
|
|
199
204
|
const { dashboardFilters } = useContext(DashboardFiltersContext);
|
|
200
205
|
const theme = useTheme();
|
|
201
206
|
const chartColors = useMemo(() => {
|
|
@@ -240,12 +245,13 @@ const ChartDisplay = ({ config, colors, className, containerStyle, hideXAxis, hi
|
|
|
240
245
|
else if (!pivotTable &&
|
|
241
246
|
config &&
|
|
242
247
|
config?.chartType !== 'metric' &&
|
|
248
|
+
config?.chartType !== 'table' &&
|
|
243
249
|
config.rows &&
|
|
244
250
|
config.rows.length > MAX_ROWS_FOR_GENERIC_TABLE) {
|
|
245
251
|
return (_jsx(ChartError, { className: className, containerStyle: containerStyle, label: "Charts can only display 300 rows. Please add a pivot or modify the query." }));
|
|
246
252
|
}
|
|
247
253
|
else if (!config || loading) {
|
|
248
|
-
return (_jsx(
|
|
254
|
+
return (_jsx("div", { className: className, style: containerStyle, children: _jsx(LoadingComponent, {}) }));
|
|
249
255
|
}
|
|
250
256
|
const chartTypes = [config?.chartType];
|
|
251
257
|
if (chartTypes.includes('pie')) {
|
|
@@ -270,7 +276,7 @@ const ChartDisplay = ({ config, colors, className, containerStyle, hideXAxis, hi
|
|
|
270
276
|
columns.forEach((col, index) => {
|
|
271
277
|
// ADD THE RIGHT FIELD TYPE FOR THE VALUE COLUMNS
|
|
272
278
|
if ((valueFieldType ||
|
|
273
|
-
['min', 'max'].includes(config?.pivot
|
|
279
|
+
['min', 'max'].includes(config?.pivot?.aggregationType)) &&
|
|
274
280
|
index !== 0) {
|
|
275
281
|
col.format = valueFieldType || 'two_decimal_places';
|
|
276
282
|
}
|
|
@@ -296,6 +302,7 @@ const ChartDisplay = ({ config, colors, className, containerStyle, hideXAxis, hi
|
|
|
296
302
|
return (_jsx(QuillTable, { rows: formattedRows ?? [], columns: columns ?? data.yAxisFields, rowsPerPage: config?.rowsPerPage || 10, containerStyle: {
|
|
297
303
|
width: containerStyle?.width || '100%',
|
|
298
304
|
height: containerStyle?.height || '400px',
|
|
305
|
+
...containerStyle,
|
|
299
306
|
}, className: className, downloadCSV: () => {
|
|
300
307
|
downloadCSV({
|
|
301
308
|
rows: pivotTable?.rows ?? data.rows ?? [],
|
|
@@ -377,6 +384,7 @@ const ChartDisplay = ({ config, colors, className, containerStyle, hideXAxis, hi
|
|
|
377
384
|
display: 'flex',
|
|
378
385
|
width: '100%',
|
|
379
386
|
flexDirection: 'row',
|
|
387
|
+
...containerStyle,
|
|
380
388
|
}, className: className, children: [_jsxs("div", { style: {
|
|
381
389
|
display: 'flex',
|
|
382
390
|
gap: 4,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React, { ReactNode } from 'react';
|
|
2
2
|
import { ColumnInternal } from './models/Columns';
|
|
3
|
-
import {
|
|
3
|
+
import { QuillReport } from './Dashboard';
|
|
4
4
|
export declare const numberFormatOptions: string[];
|
|
5
5
|
export declare const dateFormatOptions: string[];
|
|
6
6
|
/**
|
|
@@ -109,6 +109,10 @@ export interface ChartBuilderProps {
|
|
|
109
109
|
ErrorMessageComponent?: (props: {
|
|
110
110
|
errorMessage: string;
|
|
111
111
|
}) => JSX.Element;
|
|
112
|
+
/**
|
|
113
|
+
* A loading component to show in the pivot modal while suggestions load.
|
|
114
|
+
*/
|
|
115
|
+
LoadingComponent?: () => JSX.Element;
|
|
112
116
|
/**
|
|
113
117
|
* A container for each row of inputs for the ChartBuilder form.
|
|
114
118
|
*/
|
|
@@ -160,7 +164,7 @@ export interface ChartBuilderProps {
|
|
|
160
164
|
/** Whether to show the dashboard dropdown. */
|
|
161
165
|
showDashboardDropdown?: boolean;
|
|
162
166
|
/** A callback fired when the add to dashboard flow has been completed. */
|
|
163
|
-
onAddToDashboardComplete?: (
|
|
167
|
+
onAddToDashboardComplete?: (report: QuillReport) => void;
|
|
164
168
|
/** A callback fired when this chart is delete. */
|
|
165
169
|
onDelete?: () => void;
|
|
166
170
|
/** The pivot info applied to this data. */
|
|
@@ -187,8 +191,8 @@ export interface ChartBuilderProps {
|
|
|
187
191
|
start: Date;
|
|
188
192
|
end: Date;
|
|
189
193
|
} | undefined;
|
|
190
|
-
/** The
|
|
191
|
-
|
|
194
|
+
/** The report for this ChartBuilder. */
|
|
195
|
+
report?: QuillReport | any;
|
|
192
196
|
/** A list of generated pivots that were recommended as useful for this query. */
|
|
193
197
|
recommendedPivots?: {
|
|
194
198
|
rowField: string;
|
|
@@ -282,7 +286,7 @@ export declare function ChartBuilderWithModal(props: ChartBuilderProps): import(
|
|
|
282
286
|
* ### Chart Builder API
|
|
283
287
|
* @see https://docs.quillsql.com/components/chart-builder
|
|
284
288
|
*/
|
|
285
|
-
export default function ChartBuilder({ TextInputComponent, SelectComponent, ButtonComponent, SecondaryButtonComponent, HeaderComponent, SubHeaderComponent, LabelComponent, DeleteButtonComponent, TextComponent, PopoverComponent, CardComponent, TableComponent, ModalComponent, ErrorMessageComponent, ChartBuilderInputRowContainer, ChartBuilderInputColumnContainer, PivotRowContainer, PivotColumnContainer, FormContainer, isOpen, isHorizontalView, pivot, setIsOpen, rows, columns, query, queryNoDateColumn, dateRange: dr, showTableFormatOptions, showDateFieldOptions, showAccessControlOptions, showDashboardDropdown, onAddToDashboardComplete, onDelete,
|
|
289
|
+
export default function ChartBuilder({ TextInputComponent, SelectComponent, ButtonComponent, SecondaryButtonComponent, HeaderComponent, SubHeaderComponent, LabelComponent, DeleteButtonComponent, TextComponent, PopoverComponent, CardComponent, TableComponent, ModalComponent, LoadingComponent, ErrorMessageComponent, ChartBuilderInputRowContainer, ChartBuilderInputColumnContainer, PivotRowContainer, PivotColumnContainer, FormContainer, isOpen, isHorizontalView, pivot, setIsOpen, rows, columns, query, queryNoDateColumn, dateRange: dr, showTableFormatOptions, showDateFieldOptions, showAccessControlOptions, showDashboardDropdown, onAddToDashboardComplete, onDelete, report, recommendedPivots: rp, createdPivots: cp, destinationDashboard, dateColumn, buttonLabel, organizationName, pivotData, hideDeleteButton, hideSubmitButton, hideDateRangeFilter, initialUniqueValues, pivotRecommendationsEnabled, }: ChartBuilderProps): import("react/jsx-runtime").JSX.Element | null;
|
|
286
290
|
export declare function DashboardFilterModal({ isOpen, setIsOpen, issues, ModalComponent, ButtonComponent, }: {
|
|
287
291
|
isOpen: boolean;
|
|
288
292
|
setIsOpen: (e: boolean) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChartBuilder.d.ts","sourceRoot":"","sources":["../../src/ChartBuilder.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAOZ,SAAS,EACV,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"ChartBuilder.d.ts","sourceRoot":"","sources":["../../src/ChartBuilder.tsx"],"names":[],"mappings":"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"}
|