@quillsql/react 2.12.19 → 2.12.20
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 +2 -1
- package/dist/cjs/Chart.d.ts.map +1 -1
- package/dist/cjs/Chart.js +117 -105
- package/dist/cjs/ChartBuilder.d.ts +4 -2
- package/dist/cjs/ChartBuilder.d.ts.map +1 -1
- package/dist/cjs/ChartBuilder.js +26 -11
- package/dist/cjs/ChartEditor.d.ts +1 -1
- package/dist/cjs/ChartEditor.d.ts.map +1 -1
- package/dist/cjs/ChartEditor.js +20 -12
- package/dist/cjs/Context.d.ts +0 -9
- package/dist/cjs/Context.d.ts.map +1 -1
- package/dist/cjs/Context.js +15 -43
- package/dist/cjs/Dashboard.d.ts +16 -3
- package/dist/cjs/Dashboard.d.ts.map +1 -1
- package/dist/cjs/Dashboard.js +64 -65
- package/dist/cjs/ReportBuilder.d.ts.map +1 -1
- package/dist/cjs/Table.d.ts.map +1 -1
- package/dist/cjs/Table.js +11 -4
- package/dist/cjs/components/Chart/BarChart.d.ts +2 -1
- package/dist/cjs/components/Chart/BarChart.d.ts.map +1 -1
- package/dist/cjs/components/Chart/BarChart.js +2 -2
- package/dist/cjs/components/Chart/ChartTooltip.d.ts +1 -0
- package/dist/cjs/components/Chart/ChartTooltip.d.ts.map +1 -1
- package/dist/cjs/components/Chart/ChartTooltip.js +3 -4
- 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 +2 -2
- package/dist/cjs/components/Dashboard/ChartComponent.d.ts +1 -1
- package/dist/cjs/components/Dashboard/ChartComponent.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/ChartComponent.js +10 -4
- package/dist/cjs/components/Dashboard/DashboardFilter.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/DashboardFilter.js +3 -18
- package/dist/cjs/components/Dashboard/DataLoader.d.ts +6 -4
- package/dist/cjs/components/Dashboard/DataLoader.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/DataLoader.js +46 -32
- package/dist/cjs/components/Dashboard/MetricComponent.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/MetricComponent.js +27 -43
- package/dist/cjs/components/Dashboard/TableComponent.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/TableComponent.js +25 -52
- package/dist/cjs/hooks/useDashboard.d.ts.map +1 -1
- package/dist/cjs/hooks/useDashboard.js +3 -2
- package/dist/cjs/hooks/useQuill.d.ts +7 -0
- package/dist/cjs/hooks/useQuill.d.ts.map +1 -1
- package/dist/cjs/hooks/useQuill.js +43 -4
- package/dist/cjs/index.d.ts +1 -1
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +2 -1
- package/dist/cjs/internals/ReportBuilder/PivotList.d.ts.map +1 -1
- package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts +8 -3
- package/dist/cjs/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
- package/dist/cjs/internals/ReportBuilder/PivotModal.js +24 -12
- package/dist/cjs/utils/aggregate.d.ts.map +1 -1
- package/dist/cjs/utils/aggregate.js +0 -4
- 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 +16 -11
- package/dist/cjs/utils/dates.d.ts.map +1 -1
- package/dist/cjs/utils/dates.js +7 -4
- package/dist/esm/Chart.d.ts +2 -1
- package/dist/esm/Chart.d.ts.map +1 -1
- package/dist/esm/Chart.js +116 -105
- package/dist/esm/ChartBuilder.d.ts +4 -2
- package/dist/esm/ChartBuilder.d.ts.map +1 -1
- package/dist/esm/ChartBuilder.js +27 -12
- package/dist/esm/ChartEditor.d.ts +1 -1
- package/dist/esm/ChartEditor.d.ts.map +1 -1
- package/dist/esm/ChartEditor.js +21 -13
- package/dist/esm/Context.d.ts +0 -9
- package/dist/esm/Context.d.ts.map +1 -1
- package/dist/esm/Context.js +14 -40
- package/dist/esm/Dashboard.d.ts +16 -3
- package/dist/esm/Dashboard.d.ts.map +1 -1
- package/dist/esm/Dashboard.js +66 -67
- package/dist/esm/ReportBuilder.d.ts.map +1 -1
- package/dist/esm/Table.d.ts.map +1 -1
- package/dist/esm/Table.js +12 -5
- package/dist/esm/components/Chart/BarChart.d.ts +2 -1
- package/dist/esm/components/Chart/BarChart.d.ts.map +1 -1
- package/dist/esm/components/Chart/BarChart.js +2 -2
- package/dist/esm/components/Chart/ChartTooltip.d.ts +1 -0
- package/dist/esm/components/Chart/ChartTooltip.d.ts.map +1 -1
- package/dist/esm/components/Chart/ChartTooltip.js +3 -4
- 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 +2 -2
- package/dist/esm/components/Dashboard/ChartComponent.d.ts +1 -1
- package/dist/esm/components/Dashboard/ChartComponent.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/ChartComponent.js +7 -4
- package/dist/esm/components/Dashboard/DashboardFilter.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/DashboardFilter.js +3 -18
- package/dist/esm/components/Dashboard/DataLoader.d.ts +6 -4
- package/dist/esm/components/Dashboard/DataLoader.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/DataLoader.js +47 -33
- package/dist/esm/components/Dashboard/MetricComponent.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/MetricComponent.js +28 -44
- package/dist/esm/components/Dashboard/TableComponent.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/TableComponent.js +26 -53
- package/dist/esm/hooks/useDashboard.d.ts.map +1 -1
- package/dist/esm/hooks/useDashboard.js +3 -2
- package/dist/esm/hooks/useQuill.d.ts +7 -0
- package/dist/esm/hooks/useQuill.d.ts.map +1 -1
- package/dist/esm/hooks/useQuill.js +41 -3
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/internals/ReportBuilder/PivotList.d.ts.map +1 -1
- package/dist/esm/internals/ReportBuilder/PivotList.js +1 -1
- package/dist/esm/internals/ReportBuilder/PivotModal.d.ts +8 -3
- package/dist/esm/internals/ReportBuilder/PivotModal.d.ts.map +1 -1
- package/dist/esm/internals/ReportBuilder/PivotModal.js +24 -12
- package/dist/esm/utils/aggregate.d.ts.map +1 -1
- package/dist/esm/utils/aggregate.js +0 -4
- 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 +16 -11
- package/dist/esm/utils/dates.d.ts.map +1 -1
- package/dist/esm/utils/dates.js +7 -4
- package/package.json +1 -1
|
@@ -4,12 +4,9 @@ exports.DashboardFilter = void 0;
|
|
|
4
4
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
5
|
const react_1 = require("react");
|
|
6
6
|
const dateRangePickerUtils_1 = require("../../DateRangePicker/dateRangePickerUtils");
|
|
7
|
-
const Context_1 = require("../../Context");
|
|
8
7
|
const QuillMultiSelect_1 = require("../QuillMultiSelect");
|
|
9
8
|
const QuillSelect_1 = require("../QuillSelect");
|
|
10
9
|
function DashboardFilter({ filter, onChangeFilter, SelectComponent = QuillSelect_1.QuillSelectComponent, MultiSelectComponent = QuillMultiSelect_1.QuillMultiSelectComponent, DateRangePickerComponent, theme, }) {
|
|
11
|
-
const { comparisonRange, setComparisonRange } = (0, Context_1.useComparisonRange)();
|
|
12
|
-
const { setDateFilter } = (0, Context_1.useDateFilter)();
|
|
13
10
|
const [filterValue, setFilterValue] = (0, react_1.useState)(null);
|
|
14
11
|
(0, react_1.useEffect)(() => {
|
|
15
12
|
if (filter.filterType === 'string') {
|
|
@@ -20,18 +17,6 @@ function DashboardFilter({ filter, onChangeFilter, SelectComponent = QuillSelect
|
|
|
20
17
|
setFilterValue(filter.selectedValue);
|
|
21
18
|
}
|
|
22
19
|
}
|
|
23
|
-
if (filter.filterType === 'date_range') {
|
|
24
|
-
setDateFilter(filter.preset.label);
|
|
25
|
-
if (filter?.comparisonRange?.value) {
|
|
26
|
-
const newComparisonRange = dateRangePickerUtils_1.COMPARISON_OPTIONS.find((option) => {
|
|
27
|
-
return option.value === filter.comparisonRange.value;
|
|
28
|
-
});
|
|
29
|
-
setComparisonRange(newComparisonRange);
|
|
30
|
-
}
|
|
31
|
-
else {
|
|
32
|
-
setComparisonRange(null);
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
20
|
}, [filter]);
|
|
36
21
|
if (filter.filterType === 'string') {
|
|
37
22
|
if (!filter.options) {
|
|
@@ -41,7 +26,7 @@ function DashboardFilter({ filter, onChangeFilter, SelectComponent = QuillSelect
|
|
|
41
26
|
return ((0, jsx_runtime_1.jsx)(MultiSelectComponent, { label: filter.label, value: filterValue, onChange: (e) => {
|
|
42
27
|
if (e.target.value === '') {
|
|
43
28
|
setFilterValue(null);
|
|
44
|
-
onChangeFilter(filter,
|
|
29
|
+
onChangeFilter(filter, '[]');
|
|
45
30
|
return;
|
|
46
31
|
}
|
|
47
32
|
const jsonValue = JSON.parse(e.target.value);
|
|
@@ -75,7 +60,7 @@ function DashboardFilter({ filter, onChangeFilter, SelectComponent = QuillSelect
|
|
|
75
60
|
onChangeFilter(filter, { preset: e.target.value });
|
|
76
61
|
}, presetOptions: filter.options.map((option) => {
|
|
77
62
|
return { label: option.label, value: option.label };
|
|
78
|
-
}), selectWidth: 200 }),
|
|
63
|
+
}), selectWidth: 200 }), filter.comparison && ((0, jsx_runtime_1.jsxs)("div", { style: {
|
|
79
64
|
display: 'flex',
|
|
80
65
|
flexDirection: 'row',
|
|
81
66
|
alignItems: 'center',
|
|
@@ -91,7 +76,7 @@ function DashboardFilter({ filter, onChangeFilter, SelectComponent = QuillSelect
|
|
|
91
76
|
whiteSpace: 'nowrap',
|
|
92
77
|
minWidth: 80,
|
|
93
78
|
justifyContent: 'center',
|
|
94
|
-
}, children: "compared to" }), (0, jsx_runtime_1.jsx)(SelectComponent, { value: comparisonRange.value, onChange: (e) => {
|
|
79
|
+
}, children: "compared to" }), (0, jsx_runtime_1.jsx)(SelectComponent, { value: filter.comparisonRange.value, onChange: (e) => {
|
|
95
80
|
onChangeFilter(filter, null, dateRangePickerUtils_1.COMPARISON_OPTIONS.find((option) => option.value === e.target.value));
|
|
96
81
|
}, options: dateRangePickerUtils_1.COMPARISON_OPTIONS.map((compareOption) => ({
|
|
97
82
|
value: compareOption.value,
|
|
@@ -12,10 +12,12 @@ export type DataLoaderChildProps = {
|
|
|
12
12
|
field: string;
|
|
13
13
|
direction: string;
|
|
14
14
|
}) => void;
|
|
15
|
+
data?: any;
|
|
15
16
|
};
|
|
16
|
-
export default function DataLoader({ id, children, }: {
|
|
17
|
+
export default function DataLoader({ id, children, filters, }: {
|
|
17
18
|
id: string;
|
|
18
|
-
|
|
19
|
+
filters?: any;
|
|
20
|
+
children: ({ isLoading, error, onPageChange, onSortChange, data, }: DataLoaderChildProps) => JSX.Element;
|
|
19
21
|
}): JSX.Element;
|
|
20
22
|
type ColorMapType = {
|
|
21
23
|
[key: string]: {
|
|
@@ -33,13 +35,13 @@ export type ChartDataLoaderChildProps = {
|
|
|
33
35
|
data?: any;
|
|
34
36
|
dateBucket?: string;
|
|
35
37
|
};
|
|
36
|
-
export declare const ChartDataLoader: ({ id, children, hideDateRangeFilter, dateBucket,
|
|
38
|
+
export declare const ChartDataLoader: ({ id, children, hideDateRangeFilter, dateBucket, additionalProcessing, filters, }: {
|
|
37
39
|
id: string;
|
|
38
40
|
hideDateRangeFilter?: boolean | undefined;
|
|
39
41
|
dateBucket?: string | undefined;
|
|
40
42
|
mapColorsToFields?: ((_report: QuillReport, _theme: QuillTheme) => ColorMapType) | undefined;
|
|
41
|
-
limit?: number | undefined;
|
|
42
43
|
additionalProcessing?: any;
|
|
44
|
+
filters?: any;
|
|
43
45
|
children: ({ isLoading, error, data, dateBucket, }: ChartDataLoaderChildProps) => JSX.Element;
|
|
44
46
|
}) => JSX.Element;
|
|
45
47
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataLoader.d.ts","sourceRoot":"","sources":["../../../../src/components/Dashboard/DataLoader.tsx"],"names":[],"mappings":";AAQA,OAAO,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"DataLoader.d.ts","sourceRoot":"","sources":["../../../../src/components/Dashboard/DataLoader.tsx"],"names":[],"mappings":";AAQA,OAAO,EAAE,WAAW,EAAuB,MAAM,iBAAiB,CAAC;AAEnE,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAOjD,MAAM,MAAM,oBAAoB,GAAG;IACjC,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,CAAC,IAAI,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IAC3E,YAAY,EAAE,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IACnE,IAAI,CAAC,EAAE,GAAG,CAAC;CACZ,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EACjC,EAAE,EACF,QAAQ,EACR,OAAO,GACR,EAAE;IACD,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,QAAQ,EAAE,CAAC,EACT,SAAS,EACT,KAAK,EACL,YAAY,EACZ,YAAY,EACZ,IAAI,GACL,EAAE,oBAAoB,KAAK,GAAG,CAAC,OAAO,CAAC;CACzC,GAAG,GAAG,CAAC,OAAO,CA8Hd;AAED,KAAK,YAAY,GAAG;IAClB,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,MAAM,MAAM,yBAAyB,GAAG;IACtC,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAIF,eAAO,MAAM,eAAe;QAQtB,MAAM;;;mCAIC,WAAW,UACZ,UAAU,KACf,YAAY;2BACM,GAAG;cAChB,GAAG;wDAMV,yBAAyB,KAAK,WAAW;MAC1C,WAuGH,CAAC"}
|
|
@@ -9,15 +9,17 @@ const hooks_1 = require("../../hooks");
|
|
|
9
9
|
const dataFetcher_1 = require("../../utils/dataFetcher");
|
|
10
10
|
const merge_1 = require("../../utils/merge");
|
|
11
11
|
const errorProcessing_1 = require("../../utils/errorProcessing");
|
|
12
|
-
|
|
12
|
+
const dashboard_1 = require("../../utils/dashboard");
|
|
13
|
+
function DataLoader({ id, children, filters, }) {
|
|
13
14
|
const [client, _] = (0, react_1.useContext)(Context_1.ClientContext);
|
|
14
15
|
const { dispatch, dashboard } = (0, react_1.useContext)(Context_1.DashboardContext);
|
|
15
|
-
const { dashboardFilters } =
|
|
16
|
+
// const { dashboardFilters } = useContext(DashboardFiltersContext);
|
|
16
17
|
const [customFields] = (0, react_1.useContext)(Context_1.CustomFieldContext);
|
|
17
18
|
const [isLoading, setIsLoading] = (0, react_1.useState)(true);
|
|
18
19
|
const [isPaginationLoading, setIsPaginationLoading] = (0, react_1.useState)(true);
|
|
19
20
|
const [error, setError] = (0, react_1.useState)(undefined);
|
|
20
21
|
const [previousPage, setPreviousPage] = (0, react_1.useState)(0);
|
|
22
|
+
const [report, setReport] = (0, react_1.useState)(dashboard[id]);
|
|
21
23
|
const [additionalProcessing, setAdditionProcessing] = (0, react_1.useState)({
|
|
22
24
|
page: 0,
|
|
23
25
|
});
|
|
@@ -35,11 +37,12 @@ function DataLoader({ id, children, }) {
|
|
|
35
37
|
setPreviousPage(0);
|
|
36
38
|
};
|
|
37
39
|
const getChartOptions = async (processing) => {
|
|
38
|
-
|
|
39
|
-
if (!(0, Chart_1.didFiltersChange)(dashboard[id], dashboardFilters)) {
|
|
40
|
+
if (!(0, Chart_1.didFiltersChange)(dashboard[id], filters) && !isLoading) {
|
|
40
41
|
setIsLoading(false);
|
|
42
|
+
setReport(dashboard[id]);
|
|
41
43
|
return;
|
|
42
44
|
}
|
|
45
|
+
setIsLoading(true);
|
|
43
46
|
try {
|
|
44
47
|
let updatedProcessing = { ...additionalProcessing, ...processing };
|
|
45
48
|
if (processing && processing.sort) {
|
|
@@ -49,8 +52,8 @@ function DataLoader({ id, children, }) {
|
|
|
49
52
|
updatedProcessing.page.currentPage = 0;
|
|
50
53
|
}
|
|
51
54
|
// Remove extra fields on each filter so we don't confuse the backend.
|
|
52
|
-
const minimalFilters = Object.values(
|
|
53
|
-
? Object.values(
|
|
55
|
+
const minimalFilters = Object.values(filters).length
|
|
56
|
+
? Object.values(filters).map((filter) => {
|
|
54
57
|
const newFilter = { ...filter };
|
|
55
58
|
if (newFilter.filterType === 'date_range') {
|
|
56
59
|
delete newFilter['field'];
|
|
@@ -83,15 +86,14 @@ function DataLoader({ id, children, }) {
|
|
|
83
86
|
if (resp.compareRows) {
|
|
84
87
|
(0, merge_1.mergeComparisonRange)(resp);
|
|
85
88
|
}
|
|
89
|
+
const dashboardItem = { ...resp, filtersApplied: filters };
|
|
90
|
+
const cleanedReport = (0, dashboard_1.cleanDashboardItem)(dashboardItem, filters);
|
|
86
91
|
dispatch({
|
|
87
92
|
type: 'UPDATE_DASHBOARD_ITEM',
|
|
88
93
|
id: id,
|
|
89
|
-
data:
|
|
90
|
-
...resp,
|
|
91
|
-
filtersApplied: dashboardFilters,
|
|
92
|
-
id: resp._id,
|
|
93
|
-
},
|
|
94
|
+
data: cleanedReport,
|
|
94
95
|
});
|
|
96
|
+
setReport(cleanedReport);
|
|
95
97
|
}
|
|
96
98
|
else {
|
|
97
99
|
setError(resp?.errorMessage);
|
|
@@ -108,33 +110,34 @@ function DataLoader({ id, children, }) {
|
|
|
108
110
|
};
|
|
109
111
|
(0, react_1.useEffect)(() => {
|
|
110
112
|
getChartOptions();
|
|
111
|
-
}, [
|
|
112
|
-
return (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: children({
|
|
113
|
+
}, [filters, id, dashboard[id]]);
|
|
114
|
+
return ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: children({
|
|
115
|
+
isLoading,
|
|
116
|
+
error,
|
|
117
|
+
onPageChange,
|
|
118
|
+
onSortChange,
|
|
119
|
+
data: report ?? undefined,
|
|
120
|
+
}) }));
|
|
113
121
|
}
|
|
114
122
|
exports.default = DataLoader;
|
|
115
123
|
// The same data-loader pattern as above, but with special logic for charts
|
|
116
124
|
// At some point these may be able to get merged into one function.
|
|
117
|
-
const ChartDataLoader = ({ id, children, hideDateRangeFilter = false, dateBucket,
|
|
125
|
+
const ChartDataLoader = ({ id, children, hideDateRangeFilter = false, dateBucket, additionalProcessing, filters, }) => {
|
|
118
126
|
const { dispatch, dashboard } = (0, react_1.useContext)(Context_1.DashboardContext);
|
|
119
|
-
const
|
|
120
|
-
const [initialLoad, setInitialLoad] = (0, react_1.useState)(true);
|
|
127
|
+
// const [initialLoad, setInitialLoad] = useState(true);
|
|
121
128
|
const [loading, setLoading] = (0, react_1.useState)(false);
|
|
122
129
|
const [error, setError] = (0, react_1.useState)(undefined);
|
|
123
130
|
const [isComparison, setIsComparison] = (0, react_1.useState)(false);
|
|
131
|
+
const [report, setReport] = (0, react_1.useState)(dashboard[id]);
|
|
124
132
|
const [client, _] = (0, react_1.useContext)(Context_1.ClientContext);
|
|
125
133
|
const [customFields] = (0, react_1.useContext)(Context_1.CustomFieldContext);
|
|
126
134
|
const theme = (0, hooks_1.useTheme)();
|
|
127
135
|
const getChartOptions = async () => {
|
|
128
|
-
setLoading(true);
|
|
129
|
-
if (!(0, Chart_1.didFiltersChange)(dashboard[id], dashboardFilters)) {
|
|
130
|
-
setLoading(false);
|
|
131
|
-
return;
|
|
132
|
-
}
|
|
133
136
|
try {
|
|
134
137
|
// Remove extra fields on each filter so we don't confuse the backend.
|
|
135
138
|
const allowDateRange = !hideDateRangeFilter;
|
|
136
|
-
const minimalFilters = Object.values(
|
|
137
|
-
? Object.values(
|
|
139
|
+
const minimalFilters = Object.values(filters).length
|
|
140
|
+
? Object.values(filters)
|
|
138
141
|
.filter((f) => allowDateRange || f.filterType !== 'date_range')
|
|
139
142
|
.map((filter) => {
|
|
140
143
|
const newFilter = { ...filter };
|
|
@@ -146,6 +149,14 @@ const ChartDataLoader = ({ id, children, hideDateRangeFilter = false, dateBucket
|
|
|
146
149
|
return newFilter;
|
|
147
150
|
})
|
|
148
151
|
: [];
|
|
152
|
+
if (!(0, Chart_1.didFiltersChange)(dashboard[id], filters) &&
|
|
153
|
+
!loading &&
|
|
154
|
+
!dashboard[id].triggerReload) {
|
|
155
|
+
setLoading(false);
|
|
156
|
+
setReport(dashboard[id]);
|
|
157
|
+
return;
|
|
158
|
+
}
|
|
159
|
+
setLoading(true);
|
|
149
160
|
const hostedBody = {
|
|
150
161
|
metadata: {
|
|
151
162
|
dashboardItemId: id,
|
|
@@ -153,15 +164,14 @@ const ChartDataLoader = ({ id, children, hideDateRangeFilter = false, dateBucket
|
|
|
153
164
|
clientId: client.publicKey,
|
|
154
165
|
task: 'item',
|
|
155
166
|
databaseType: client.databaseType,
|
|
156
|
-
filters:
|
|
167
|
+
filters: filters,
|
|
157
168
|
customFields,
|
|
158
|
-
runQueryConfig: limit ? { limitBy: limit } : undefined,
|
|
159
169
|
additionalProcessing,
|
|
160
170
|
},
|
|
161
171
|
};
|
|
162
172
|
const cloudBody = {
|
|
163
173
|
id: id,
|
|
164
|
-
filters:
|
|
174
|
+
filters: filters,
|
|
165
175
|
};
|
|
166
176
|
setError(undefined);
|
|
167
177
|
const resp = await (0, dataFetcher_1.getData)(client, 'itempost', 'omit', hostedBody, cloudBody);
|
|
@@ -171,11 +181,13 @@ const ChartDataLoader = ({ id, children, hideDateRangeFilter = false, dateBucket
|
|
|
171
181
|
if (resp.compareRows) {
|
|
172
182
|
(0, merge_1.mergeComparisonRange)(resp);
|
|
173
183
|
}
|
|
174
|
-
const dashboardItem = { ...resp, filtersApplied:
|
|
184
|
+
const dashboardItem = { ...resp, filtersApplied: filters };
|
|
185
|
+
const cleanedReport = (0, dashboard_1.cleanDashboardItem)(dashboardItem, filters);
|
|
186
|
+
setReport(cleanedReport);
|
|
175
187
|
dispatch({
|
|
176
188
|
type: 'UPDATE_DASHBOARD_ITEM',
|
|
177
189
|
id: id,
|
|
178
|
-
data:
|
|
190
|
+
data: { ...cleanedReport, triggerReload: false },
|
|
179
191
|
});
|
|
180
192
|
}
|
|
181
193
|
else {
|
|
@@ -189,12 +201,14 @@ const ChartDataLoader = ({ id, children, hideDateRangeFilter = false, dateBucket
|
|
|
189
201
|
}
|
|
190
202
|
};
|
|
191
203
|
(0, react_1.useEffect)(() => {
|
|
192
|
-
|
|
204
|
+
if (loading) {
|
|
205
|
+
return;
|
|
206
|
+
}
|
|
193
207
|
getChartOptions();
|
|
194
|
-
}, [
|
|
208
|
+
}, [filters, id, dashboard[id]]);
|
|
195
209
|
return children({
|
|
196
|
-
isLoading: loading
|
|
197
|
-
data:
|
|
210
|
+
isLoading: loading,
|
|
211
|
+
data: report ?? undefined,
|
|
198
212
|
error,
|
|
199
213
|
dateBucket,
|
|
200
214
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MetricComponent.d.ts","sourceRoot":"","sources":["../../../../src/components/Dashboard/MetricComponent.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AASnD,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,EAC3C,MAAM,EACN,OAAO,EACP,KAAK,EACL,SAAS,GACV,EAAE,gBAAgB,GAAG,GAAG,CAAC,OAAO,
|
|
1
|
+
{"version":3,"file":"MetricComponent.d.ts","sourceRoot":"","sources":["../../../../src/components/Dashboard/MetricComponent.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AASnD,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,EAC3C,MAAM,EACN,OAAO,EACP,KAAK,EACL,SAAS,GACV,EAAE,gBAAgB,GAAG,GAAG,CAAC,OAAO,CAwPhC"}
|
|
@@ -9,37 +9,21 @@ const dateRangePickerUtils_1 = require("../../DateRangePicker/dateRangePickerUti
|
|
|
9
9
|
const valueFormatter_1 = require("../../utils/valueFormatter");
|
|
10
10
|
const ChartError_1 = __importDefault(require("../Chart/ChartError"));
|
|
11
11
|
const ChartSkeleton_1 = __importDefault(require("../Chart/ChartSkeleton"));
|
|
12
|
-
const PivotModal_1 = require("../../internals/ReportBuilder/PivotModal");
|
|
13
|
-
const Context_1 = require("../../Context");
|
|
14
12
|
const hooks_1 = require("../../hooks");
|
|
13
|
+
const useQuill_1 = require("../../hooks/useQuill");
|
|
15
14
|
function QuillMetricComponent({ report, onClick, error, isLoading, }) {
|
|
16
15
|
const theme = (0, hooks_1.useTheme)();
|
|
17
|
-
const
|
|
18
|
-
const
|
|
19
|
-
const
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
? { start: dateFilter.startDate, end: dateFilter.endDate }
|
|
28
|
-
: undefined, Boolean(dateFilter?.comparisonRange?.startDate), -1, dateFilter?.comparisonRange?.startDate &&
|
|
29
|
-
dateFilter?.comparisonRange?.endDate
|
|
30
|
-
? {
|
|
31
|
-
start: dateFilter.comparisonRange.startDate,
|
|
32
|
-
end: dateFilter.comparisonRange.endDate,
|
|
33
|
-
}
|
|
34
|
-
: undefined)
|
|
35
|
-
: null;
|
|
36
|
-
}, [config?.pivot]);
|
|
37
|
-
const primaryMetricLabel = data?.filtersApplied?.date_range?.preset?.label;
|
|
38
|
-
const comparisonKey = data?.filtersApplied?.date_range?.comparisonRange?.value;
|
|
16
|
+
const dateFilter = report?.filtersApplied?.find((filter) => filter.filterType == 'date_range');
|
|
17
|
+
const [rows, setRows] = (0, react_1.useState)(report?.rows ?? []);
|
|
18
|
+
const pivotData = (0, useQuill_1.usePivot)(report.id);
|
|
19
|
+
(0, react_1.useEffect)(() => {
|
|
20
|
+
if (pivotData.data) {
|
|
21
|
+
setRows(pivotData.data.rows);
|
|
22
|
+
}
|
|
23
|
+
}, [pivotData]);
|
|
24
|
+
const primaryMetricLabel = report?.filtersApplied?.date_range?.preset?.label;
|
|
25
|
+
const comparisonKey = report?.filtersApplied?.date_range?.comparisonRange?.value;
|
|
39
26
|
const comparisonLabel = dateRangePickerUtils_1.COMPARISON_OPTIONS.find((opt) => opt.value === comparisonKey)?.text;
|
|
40
|
-
const rows = pivotTable?.rows ?? data.rows ?? [];
|
|
41
|
-
const isComparison = rows.length > 0 &&
|
|
42
|
-
Object.keys(rows[0]).includes(`comparison_${data.xAxisField}`);
|
|
43
27
|
return ((0, jsx_runtime_1.jsx)("div", { onClick: () => onClick && onClick(report), style: {
|
|
44
28
|
cursor: 'pointer',
|
|
45
29
|
boxSizing: 'content-box',
|
|
@@ -77,7 +61,7 @@ function QuillMetricComponent({ report, onClick, error, isLoading, }) {
|
|
|
77
61
|
display: 'block',
|
|
78
62
|
maxWidth: '100%',
|
|
79
63
|
overflow: 'hidden',
|
|
80
|
-
}, children: report?.name }), onClick ? ((0, jsx_runtime_1.jsx)("div", { style: {
|
|
64
|
+
}, children: report?.name }), onClick && report?.name ? ((0, jsx_runtime_1.jsx)("div", { style: {
|
|
81
65
|
fontFamily: theme.fontFamily,
|
|
82
66
|
color: theme.primaryTextColor,
|
|
83
67
|
boxSizing: 'content-box',
|
|
@@ -90,7 +74,7 @@ function QuillMetricComponent({ report, onClick, error, isLoading, }) {
|
|
|
90
74
|
}, children: 'view report →' })) : null] }), isLoading ? ((0, jsx_runtime_1.jsx)(ChartSkeleton_1.default, { containerStyle: {
|
|
91
75
|
maxHeight: '78px',
|
|
92
76
|
height: '100%',
|
|
93
|
-
} })) : error ? ((0, jsx_runtime_1.jsx)(ChartError_1.default, {})) : rows?.length === 0 || rows[0][
|
|
77
|
+
} })) : error ? ((0, jsx_runtime_1.jsx)(ChartError_1.default, {})) : rows?.length === 0 || rows[0][report.xAxisField] === null ? ((0, jsx_runtime_1.jsx)("div", { style: {
|
|
94
78
|
display: 'flex',
|
|
95
79
|
flex: '1 0 auto',
|
|
96
80
|
height: '100%',
|
|
@@ -129,17 +113,17 @@ function QuillMetricComponent({ report, onClick, error, isLoading, }) {
|
|
|
129
113
|
marginRight: 'auto',
|
|
130
114
|
}, children: [(0, jsx_runtime_1.jsx)("span", { children: rows.length > 0 &&
|
|
131
115
|
(0, valueFormatter_1.valueFormatter)({
|
|
132
|
-
value: rows[0][
|
|
133
|
-
field:
|
|
116
|
+
value: rows[0][report.xAxisField] ?? 0,
|
|
117
|
+
field: report.xAxisField,
|
|
134
118
|
fields: [
|
|
135
119
|
{
|
|
136
|
-
field:
|
|
137
|
-
format:
|
|
138
|
-
label:
|
|
139
|
-
_id:
|
|
120
|
+
field: report.xAxisField,
|
|
121
|
+
format: report.xAxisFormat,
|
|
122
|
+
label: report.xAxisLabel,
|
|
123
|
+
_id: report.id || 'dummy',
|
|
140
124
|
},
|
|
141
125
|
],
|
|
142
|
-
}) }),
|
|
126
|
+
}) }), dateFilter?.comparison && ((0, jsx_runtime_1.jsx)("span", { style: {
|
|
143
127
|
fontSize: 13,
|
|
144
128
|
fontWeight: '500',
|
|
145
129
|
fontFamily: theme?.fontFamily,
|
|
@@ -147,7 +131,7 @@ function QuillMetricComponent({ report, onClick, error, isLoading, }) {
|
|
|
147
131
|
marginLeft: 2,
|
|
148
132
|
}, children: primaryMetricLabel
|
|
149
133
|
? `in ${primaryMetricLabel.toLowerCase()}`
|
|
150
|
-
: 'this period' }))] }),
|
|
134
|
+
: 'this period' }))] }), dateFilter?.comparison && ((0, jsx_runtime_1.jsxs)("div", { style: {
|
|
151
135
|
display: 'flex',
|
|
152
136
|
gap: 4,
|
|
153
137
|
alignItems: 'baseline',
|
|
@@ -160,14 +144,14 @@ function QuillMetricComponent({ report, onClick, error, isLoading, }) {
|
|
|
160
144
|
color: theme?.secondaryTextColor,
|
|
161
145
|
}, children: rows.length > 0 &&
|
|
162
146
|
(0, valueFormatter_1.valueFormatter)({
|
|
163
|
-
value: rows[0][`comparison_${
|
|
164
|
-
field:
|
|
147
|
+
value: rows[0][`comparison_${report.xAxisField}`] ?? 0,
|
|
148
|
+
field: report.xAxisField,
|
|
165
149
|
fields: [
|
|
166
150
|
{
|
|
167
|
-
field:
|
|
168
|
-
format:
|
|
169
|
-
label:
|
|
170
|
-
_id:
|
|
151
|
+
field: report.xAxisField,
|
|
152
|
+
format: report.xAxisFormat,
|
|
153
|
+
label: report.xAxisLabel,
|
|
154
|
+
_id: report.id || 'dummy',
|
|
171
155
|
},
|
|
172
156
|
],
|
|
173
157
|
}) }), (0, jsx_runtime_1.jsx)("span", { style: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableComponent.d.ts","sourceRoot":"","sources":["../../../../src/components/Dashboard/TableComponent.tsx"],"names":[],"mappings":";AAQA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"TableComponent.d.ts","sourceRoot":"","sources":["../../../../src/components/Dashboard/TableComponent.tsx"],"names":[],"mappings":";AAQA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAKnD,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,EAC1C,MAAM,EACN,OAAO,EACP,SAAS,EACT,KAAK,EACL,YAAY,EACZ,YAAY,GACb,EAAE,gBAAgB,GAAG,GAAG,CAAC,OAAO,CAiJhC"}
|
|
@@ -6,62 +6,34 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
7
7
|
const react_1 = require("react");
|
|
8
8
|
const QuillTable_1 = __importDefault(require("../QuillTable"));
|
|
9
|
-
const PivotModal_1 = require("../../internals/ReportBuilder/PivotModal");
|
|
10
|
-
const Context_1 = require("../../Context");
|
|
11
9
|
const valueFormatter_1 = require("../../utils/valueFormatter");
|
|
12
10
|
const ChartSkeleton_1 = __importDefault(require("../Chart/ChartSkeleton"));
|
|
13
11
|
const ChartError_1 = __importDefault(require("../Chart/ChartError"));
|
|
14
12
|
const hooks_1 = require("../../hooks");
|
|
15
13
|
const useExport_1 = require("../../hooks/useExport");
|
|
14
|
+
const useQuill_1 = require("../../hooks/useQuill");
|
|
16
15
|
function QuillTableComponent({ report, onClick, isLoading, error, onPageChange, onSortChange, }) {
|
|
17
16
|
const theme = (0, hooks_1.useTheme)();
|
|
18
|
-
const { dashboardFilters } = (0, react_1.useContext)(Context_1.DashboardFiltersContext);
|
|
19
17
|
const [initialLoad, setInitialLoad] = (0, react_1.useState)(true);
|
|
20
18
|
const { downloadCSV } = (0, useExport_1.useExport)(report?.id);
|
|
19
|
+
const pivotData = (0, useQuill_1.usePivot)(report.id);
|
|
20
|
+
const [rows, setRows] = (0, react_1.useState)(report?.rows ?? []);
|
|
21
|
+
const [columns, setColumns] = (0, react_1.useState)(report?.columns ?? report?.yAxisFields ?? []);
|
|
22
|
+
(0, react_1.useEffect)(() => {
|
|
23
|
+
if (report.pivot !== null && pivotData.data) {
|
|
24
|
+
setRows(pivotData.data.rows);
|
|
25
|
+
setColumns(pivotData.data.columns);
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
setRows(report?.rows ?? []);
|
|
29
|
+
setColumns(report?.columns ?? report?.yAxisFields ?? []);
|
|
30
|
+
}
|
|
31
|
+
}, [pivotData, report]);
|
|
21
32
|
(0, react_1.useEffect)(() => {
|
|
22
33
|
if (!isLoading) {
|
|
23
34
|
setInitialLoad(false);
|
|
24
35
|
}
|
|
25
36
|
}, [isLoading]);
|
|
26
|
-
const config = report;
|
|
27
|
-
const data = report;
|
|
28
|
-
const dateFilter = Object.values(dashboardFilters).find((filter) => filter.filterType == 'date_range');
|
|
29
|
-
const pivotTable = (0, react_1.useMemo)(() => {
|
|
30
|
-
const pivot = config?.pivot;
|
|
31
|
-
const data = config;
|
|
32
|
-
return pivot && data?.rows
|
|
33
|
-
? (0, PivotModal_1.generatePivotTable)(pivot, JSON.parse(JSON.stringify(data.rows)), // deep copy
|
|
34
|
-
dateFilter
|
|
35
|
-
? { start: dateFilter.startDate, end: dateFilter.endDate }
|
|
36
|
-
: undefined, Boolean(dateFilter?.comparisonRange?.startDate), -1, dateFilter?.comparisonRange?.startDate &&
|
|
37
|
-
dateFilter?.comparisonRange?.endDate
|
|
38
|
-
? {
|
|
39
|
-
start: dateFilter.comparisonRange.startDate,
|
|
40
|
-
end: dateFilter.comparisonRange.endDate,
|
|
41
|
-
}
|
|
42
|
-
: undefined)
|
|
43
|
-
: null;
|
|
44
|
-
}, [config?.pivot]);
|
|
45
|
-
const columns = pivotTable?.columns ?? data.columns ?? data.yAxisFields;
|
|
46
|
-
const rows = pivotTable?.rows ?? data.rows ?? [];
|
|
47
|
-
// FOR PIVOTS - ADD THE RIGHT FIELD TYPE FOR THE VALUE COLUMNS
|
|
48
|
-
const valueFieldType = config?.pivot?.valueFieldType || undefined;
|
|
49
|
-
// Walk through data.columns and pick off the labels from yAxisFields
|
|
50
|
-
columns.forEach((col, index) => {
|
|
51
|
-
// ADD THE RIGHT FIELD TYPE FOR THE VALUE COLUMNS
|
|
52
|
-
if ((valueFieldType ||
|
|
53
|
-
['min', 'max'].includes(config?.pivot?.aggregationType || '')) &&
|
|
54
|
-
index !== 0) {
|
|
55
|
-
col.format = valueFieldType || 'two_decimal_places';
|
|
56
|
-
}
|
|
57
|
-
if (!data.yAxisFields)
|
|
58
|
-
return;
|
|
59
|
-
const matchingCol = data.yAxisFields.find((c) => c.field === col.field);
|
|
60
|
-
if (!col.label && matchingCol) {
|
|
61
|
-
col.label = matchingCol.label;
|
|
62
|
-
col.format = matchingCol.format;
|
|
63
|
-
}
|
|
64
|
-
});
|
|
65
37
|
const formattedRows = rows.map((row) => {
|
|
66
38
|
return columns.reduce((formattedRow, column) => {
|
|
67
39
|
// Apply the format function to each field in the row
|
|
@@ -74,14 +46,15 @@ function QuillTableComponent({ report, onClick, isLoading, error, onPageChange,
|
|
|
74
46
|
}, {});
|
|
75
47
|
});
|
|
76
48
|
let numberOfRows = undefined;
|
|
77
|
-
if (
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
49
|
+
if (report &&
|
|
50
|
+
report.compareRows &&
|
|
51
|
+
report.compareRows[0] &&
|
|
52
|
+
(report.compareRows[0].count || report.compareRows[0].COUNT)) {
|
|
53
|
+
if (report.compareRows[0].COUNT) {
|
|
54
|
+
numberOfRows = parseInt(report.compareRows[0].COUNT);
|
|
82
55
|
}
|
|
83
|
-
else if (
|
|
84
|
-
numberOfRows = parseInt(
|
|
56
|
+
else if (report.compareRows[0].count) {
|
|
57
|
+
numberOfRows = parseInt(report.compareRows[0].count);
|
|
85
58
|
}
|
|
86
59
|
}
|
|
87
60
|
return ((0, jsx_runtime_1.jsxs)("div", { style: { cursor: 'pointer' }, onClick: () => onClick && onClick(report), children: [(0, jsx_runtime_1.jsxs)("div", { style: {
|
|
@@ -103,7 +76,7 @@ function QuillTableComponent({ report, onClick, isLoading, error, onPageChange,
|
|
|
103
76
|
display: 'block',
|
|
104
77
|
maxWidth: '100%',
|
|
105
78
|
overflow: 'hidden',
|
|
106
|
-
}, children: report?.name }), onClick ? ((0, jsx_runtime_1.jsx)("div", { style: {
|
|
79
|
+
}, children: report?.name }), onClick && report?.name ? ((0, jsx_runtime_1.jsx)("div", { style: {
|
|
107
80
|
fontFamily: theme.fontFamily,
|
|
108
81
|
color: theme.primaryTextColor,
|
|
109
82
|
boxSizing: 'content-box',
|
|
@@ -119,7 +92,7 @@ function QuillTableComponent({ report, onClick, isLoading, error, onPageChange,
|
|
|
119
92
|
} })) : error ? ((0, jsx_runtime_1.jsx)(ChartError_1.default, { containerStyle: {
|
|
120
93
|
width: '100%',
|
|
121
94
|
height: '400px',
|
|
122
|
-
} })) : ((0, jsx_runtime_1.jsx)(QuillTable_1.default, { isLoading: isLoading, rows: formattedRows ?? [], numberOfRows: numberOfRows, columns: columns
|
|
95
|
+
} })) : ((0, jsx_runtime_1.jsx)(QuillTable_1.default, { isLoading: isLoading, rows: formattedRows ?? [], numberOfRows: numberOfRows, columns: columns, rowsPerPage: 10, containerStyle: {
|
|
123
96
|
width: '100%',
|
|
124
97
|
height: '400px',
|
|
125
98
|
}, downloadCSV: () => {
|
|
@@ -128,6 +101,6 @@ function QuillTableComponent({ report, onClick, isLoading, error, onPageChange,
|
|
|
128
101
|
onPageChange && onPageChange(page);
|
|
129
102
|
}, onSortChange: (sort) => {
|
|
130
103
|
onSortChange && onSortChange(sort);
|
|
131
|
-
}, currentPage:
|
|
104
|
+
}, currentPage: report?.page, sort: report?.sort }))] }, report?.name));
|
|
132
105
|
}
|
|
133
106
|
exports.default = QuillTableComponent;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDashboard.d.ts","sourceRoot":"","sources":["../../../src/hooks/useDashboard.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,YAAY,kBAAmB,MAAM;;;;qCASF,MAAM;
|
|
1
|
+
{"version":3,"file":"useDashboard.d.ts","sourceRoot":"","sources":["../../../src/hooks/useDashboard.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,YAAY,kBAAmB,MAAM;;;;qCASF,MAAM;CAkDrD,CAAC"}
|
|
@@ -16,9 +16,9 @@ const useDashboard = (dashboardName) => {
|
|
|
16
16
|
getDashboards(overrideDashboardName ?? dashboardName);
|
|
17
17
|
};
|
|
18
18
|
async function getDashboards(dashboardName) {
|
|
19
|
+
setIsLoading(true);
|
|
19
20
|
if (dashboardName === null || dashboardName === undefined)
|
|
20
21
|
return;
|
|
21
|
-
setIsLoading(true);
|
|
22
22
|
const { databaseType, publicKey, customerId } = client;
|
|
23
23
|
try {
|
|
24
24
|
const searchParams = new URLSearchParams({
|
|
@@ -37,14 +37,15 @@ const useDashboard = (dashboardName) => {
|
|
|
37
37
|
};
|
|
38
38
|
const resp = await (0, dataFetcher_1.getData)(client, `dashconfig?${searchParams}`, 'omit', hostedBody, null, 'GET');
|
|
39
39
|
setData(resp);
|
|
40
|
+
setIsLoading(false);
|
|
40
41
|
setError(null);
|
|
41
42
|
}
|
|
42
43
|
catch (error) {
|
|
43
44
|
setError(null);
|
|
45
|
+
setIsLoading(false);
|
|
44
46
|
setError(error);
|
|
45
47
|
console.error('Error fetching data:', error);
|
|
46
48
|
}
|
|
47
|
-
setIsLoading(false);
|
|
48
49
|
}
|
|
49
50
|
(0, react_1.useEffect)(() => {
|
|
50
51
|
getDashboards(dashboardName);
|
|
@@ -43,5 +43,12 @@ export declare const useQuill: (reportId?: string) => {
|
|
|
43
43
|
loading: boolean;
|
|
44
44
|
error: string | null;
|
|
45
45
|
};
|
|
46
|
+
export declare const usePivot: (reportId?: string) => {
|
|
47
|
+
data: {
|
|
48
|
+
rows: any[];
|
|
49
|
+
columns: Column[];
|
|
50
|
+
} | undefined;
|
|
51
|
+
error: string | undefined;
|
|
52
|
+
};
|
|
46
53
|
export {};
|
|
47
54
|
//# sourceMappingURL=useQuill.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useQuill.d.ts","sourceRoot":"","sources":["../../../src/hooks/useQuill.ts"],"names":[],"mappings":"AAWA,UAAU,MAAM;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,UAAU;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED,eAAO,MAAM,QAAQ,cACR,MAAM;UAEX,WAAW,GAAG,IAAI;aACf,OAAO;WACT,MAAM,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"useQuill.d.ts","sourceRoot":"","sources":["../../../src/hooks/useQuill.ts"],"names":[],"mappings":"AAWA,UAAU,MAAM;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,UAAU;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED,eAAO,MAAM,QAAQ,cACR,MAAM;UAEX,WAAW,GAAG,IAAI;aACf,OAAO;WACT,MAAM,GAAG,IAAI;CAkGrB,CAAC;AAaF,eAAO,MAAM,QAAQ,cACR,MAAM;UAEX;QAAE,IAAI,EAAE,GAAG,EAAE,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,SAAS;WAC7C,MAAM,GAAG,SAAS;CA4C1B,CAAC"}
|