@quillsql/react 2.12.18 → 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 +20 -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 +7 -4
- package/dist/cjs/components/Dashboard/DataLoader.d.ts.map +1 -1
- package/dist/cjs/components/Dashboard/DataLoader.js +47 -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 +20 -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 +7 -4
- package/dist/esm/components/Dashboard/DataLoader.d.ts.map +1 -1
- package/dist/esm/components/Dashboard/DataLoader.js +48 -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,12 +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
|
-
|
|
43
|
+
additionalProcessing?: any;
|
|
44
|
+
filters?: any;
|
|
42
45
|
children: ({ isLoading, error, data, dateBucket, }: ChartDataLoaderChildProps) => JSX.Element;
|
|
43
46
|
}) => JSX.Element;
|
|
44
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,14 +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
|
-
|
|
169
|
+
additionalProcessing,
|
|
159
170
|
},
|
|
160
171
|
};
|
|
161
172
|
const cloudBody = {
|
|
162
173
|
id: id,
|
|
163
|
-
filters:
|
|
174
|
+
filters: filters,
|
|
164
175
|
};
|
|
165
176
|
setError(undefined);
|
|
166
177
|
const resp = await (0, dataFetcher_1.getData)(client, 'itempost', 'omit', hostedBody, cloudBody);
|
|
@@ -170,11 +181,13 @@ const ChartDataLoader = ({ id, children, hideDateRangeFilter = false, dateBucket
|
|
|
170
181
|
if (resp.compareRows) {
|
|
171
182
|
(0, merge_1.mergeComparisonRange)(resp);
|
|
172
183
|
}
|
|
173
|
-
const dashboardItem = { ...resp, filtersApplied:
|
|
184
|
+
const dashboardItem = { ...resp, filtersApplied: filters };
|
|
185
|
+
const cleanedReport = (0, dashboard_1.cleanDashboardItem)(dashboardItem, filters);
|
|
186
|
+
setReport(cleanedReport);
|
|
174
187
|
dispatch({
|
|
175
188
|
type: 'UPDATE_DASHBOARD_ITEM',
|
|
176
189
|
id: id,
|
|
177
|
-
data:
|
|
190
|
+
data: { ...cleanedReport, triggerReload: false },
|
|
178
191
|
});
|
|
179
192
|
}
|
|
180
193
|
else {
|
|
@@ -188,12 +201,14 @@ const ChartDataLoader = ({ id, children, hideDateRangeFilter = false, dateBucket
|
|
|
188
201
|
}
|
|
189
202
|
};
|
|
190
203
|
(0, react_1.useEffect)(() => {
|
|
191
|
-
|
|
204
|
+
if (loading) {
|
|
205
|
+
return;
|
|
206
|
+
}
|
|
192
207
|
getChartOptions();
|
|
193
|
-
}, [
|
|
208
|
+
}, [filters, id, dashboard[id]]);
|
|
194
209
|
return children({
|
|
195
|
-
isLoading: loading
|
|
196
|
-
data:
|
|
210
|
+
isLoading: loading,
|
|
211
|
+
data: report ?? undefined,
|
|
197
212
|
error,
|
|
198
213
|
dateBucket,
|
|
199
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"}
|