@quillsql/react 2.12.19 → 2.12.21
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 +28 -13
- 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 +48 -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 +28 -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 +32 -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 +29 -14
- 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 +49 -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 +29 -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 +32 -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,CAkId;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,14 @@ function DataLoader({ id, children, }) {
|
|
|
35
37
|
setPreviousPage(0);
|
|
36
38
|
};
|
|
37
39
|
const getChartOptions = async (processing) => {
|
|
38
|
-
|
|
39
|
-
|
|
40
|
+
if (!(0, Chart_1.didFiltersChange)(dashboard[id], filters) &&
|
|
41
|
+
!isLoading &&
|
|
42
|
+
!dashboard[id].triggerReload) {
|
|
40
43
|
setIsLoading(false);
|
|
44
|
+
setReport(dashboard[id]);
|
|
41
45
|
return;
|
|
42
46
|
}
|
|
47
|
+
setIsLoading(true);
|
|
43
48
|
try {
|
|
44
49
|
let updatedProcessing = { ...additionalProcessing, ...processing };
|
|
45
50
|
if (processing && processing.sort) {
|
|
@@ -49,8 +54,8 @@ function DataLoader({ id, children, }) {
|
|
|
49
54
|
updatedProcessing.page.currentPage = 0;
|
|
50
55
|
}
|
|
51
56
|
// Remove extra fields on each filter so we don't confuse the backend.
|
|
52
|
-
const minimalFilters = Object.values(
|
|
53
|
-
? Object.values(
|
|
57
|
+
const minimalFilters = Object.values(filters).length
|
|
58
|
+
? Object.values(filters).map((filter) => {
|
|
54
59
|
const newFilter = { ...filter };
|
|
55
60
|
if (newFilter.filterType === 'date_range') {
|
|
56
61
|
delete newFilter['field'];
|
|
@@ -83,15 +88,14 @@ function DataLoader({ id, children, }) {
|
|
|
83
88
|
if (resp.compareRows) {
|
|
84
89
|
(0, merge_1.mergeComparisonRange)(resp);
|
|
85
90
|
}
|
|
91
|
+
const dashboardItem = { ...resp, filtersApplied: filters };
|
|
92
|
+
const cleanedReport = (0, dashboard_1.cleanDashboardItem)(dashboardItem, filters);
|
|
86
93
|
dispatch({
|
|
87
94
|
type: 'UPDATE_DASHBOARD_ITEM',
|
|
88
95
|
id: id,
|
|
89
|
-
data: {
|
|
90
|
-
...resp,
|
|
91
|
-
filtersApplied: dashboardFilters,
|
|
92
|
-
id: resp._id,
|
|
93
|
-
},
|
|
96
|
+
data: { ...cleanedReport, triggerReload: false },
|
|
94
97
|
});
|
|
98
|
+
setReport(cleanedReport);
|
|
95
99
|
}
|
|
96
100
|
else {
|
|
97
101
|
setError(resp?.errorMessage);
|
|
@@ -108,33 +112,34 @@ function DataLoader({ id, children, }) {
|
|
|
108
112
|
};
|
|
109
113
|
(0, react_1.useEffect)(() => {
|
|
110
114
|
getChartOptions();
|
|
111
|
-
}, [
|
|
112
|
-
return (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: children({
|
|
115
|
+
}, [filters, id, dashboard[id]]);
|
|
116
|
+
return ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: children({
|
|
117
|
+
isLoading,
|
|
118
|
+
error,
|
|
119
|
+
onPageChange,
|
|
120
|
+
onSortChange,
|
|
121
|
+
data: report ?? undefined,
|
|
122
|
+
}) }));
|
|
113
123
|
}
|
|
114
124
|
exports.default = DataLoader;
|
|
115
125
|
// The same data-loader pattern as above, but with special logic for charts
|
|
116
126
|
// At some point these may be able to get merged into one function.
|
|
117
|
-
const ChartDataLoader = ({ id, children, hideDateRangeFilter = false, dateBucket,
|
|
127
|
+
const ChartDataLoader = ({ id, children, hideDateRangeFilter = false, dateBucket, additionalProcessing, filters, }) => {
|
|
118
128
|
const { dispatch, dashboard } = (0, react_1.useContext)(Context_1.DashboardContext);
|
|
119
|
-
const
|
|
120
|
-
const [initialLoad, setInitialLoad] = (0, react_1.useState)(true);
|
|
129
|
+
// const [initialLoad, setInitialLoad] = useState(true);
|
|
121
130
|
const [loading, setLoading] = (0, react_1.useState)(false);
|
|
122
131
|
const [error, setError] = (0, react_1.useState)(undefined);
|
|
123
132
|
const [isComparison, setIsComparison] = (0, react_1.useState)(false);
|
|
133
|
+
const [report, setReport] = (0, react_1.useState)(dashboard[id]);
|
|
124
134
|
const [client, _] = (0, react_1.useContext)(Context_1.ClientContext);
|
|
125
135
|
const [customFields] = (0, react_1.useContext)(Context_1.CustomFieldContext);
|
|
126
136
|
const theme = (0, hooks_1.useTheme)();
|
|
127
137
|
const getChartOptions = async () => {
|
|
128
|
-
setLoading(true);
|
|
129
|
-
if (!(0, Chart_1.didFiltersChange)(dashboard[id], dashboardFilters)) {
|
|
130
|
-
setLoading(false);
|
|
131
|
-
return;
|
|
132
|
-
}
|
|
133
138
|
try {
|
|
134
139
|
// Remove extra fields on each filter so we don't confuse the backend.
|
|
135
140
|
const allowDateRange = !hideDateRangeFilter;
|
|
136
|
-
const minimalFilters = Object.values(
|
|
137
|
-
? Object.values(
|
|
141
|
+
const minimalFilters = Object.values(filters).length
|
|
142
|
+
? Object.values(filters)
|
|
138
143
|
.filter((f) => allowDateRange || f.filterType !== 'date_range')
|
|
139
144
|
.map((filter) => {
|
|
140
145
|
const newFilter = { ...filter };
|
|
@@ -146,6 +151,14 @@ const ChartDataLoader = ({ id, children, hideDateRangeFilter = false, dateBucket
|
|
|
146
151
|
return newFilter;
|
|
147
152
|
})
|
|
148
153
|
: [];
|
|
154
|
+
if (!(0, Chart_1.didFiltersChange)(dashboard[id], filters) &&
|
|
155
|
+
!loading &&
|
|
156
|
+
!dashboard[id].triggerReload) {
|
|
157
|
+
setLoading(false);
|
|
158
|
+
setReport(dashboard[id]);
|
|
159
|
+
return;
|
|
160
|
+
}
|
|
161
|
+
setLoading(true);
|
|
149
162
|
const hostedBody = {
|
|
150
163
|
metadata: {
|
|
151
164
|
dashboardItemId: id,
|
|
@@ -153,15 +166,14 @@ const ChartDataLoader = ({ id, children, hideDateRangeFilter = false, dateBucket
|
|
|
153
166
|
clientId: client.publicKey,
|
|
154
167
|
task: 'item',
|
|
155
168
|
databaseType: client.databaseType,
|
|
156
|
-
filters:
|
|
169
|
+
filters: filters,
|
|
157
170
|
customFields,
|
|
158
|
-
runQueryConfig: limit ? { limitBy: limit } : undefined,
|
|
159
171
|
additionalProcessing,
|
|
160
172
|
},
|
|
161
173
|
};
|
|
162
174
|
const cloudBody = {
|
|
163
175
|
id: id,
|
|
164
|
-
filters:
|
|
176
|
+
filters: filters,
|
|
165
177
|
};
|
|
166
178
|
setError(undefined);
|
|
167
179
|
const resp = await (0, dataFetcher_1.getData)(client, 'itempost', 'omit', hostedBody, cloudBody);
|
|
@@ -171,11 +183,13 @@ const ChartDataLoader = ({ id, children, hideDateRangeFilter = false, dateBucket
|
|
|
171
183
|
if (resp.compareRows) {
|
|
172
184
|
(0, merge_1.mergeComparisonRange)(resp);
|
|
173
185
|
}
|
|
174
|
-
const dashboardItem = { ...resp, filtersApplied:
|
|
186
|
+
const dashboardItem = { ...resp, filtersApplied: filters };
|
|
187
|
+
const cleanedReport = (0, dashboard_1.cleanDashboardItem)(dashboardItem, filters);
|
|
188
|
+
setReport(cleanedReport);
|
|
175
189
|
dispatch({
|
|
176
190
|
type: 'UPDATE_DASHBOARD_ITEM',
|
|
177
191
|
id: id,
|
|
178
|
-
data:
|
|
192
|
+
data: { ...cleanedReport, triggerReload: false },
|
|
179
193
|
});
|
|
180
194
|
}
|
|
181
195
|
else {
|
|
@@ -189,12 +203,14 @@ const ChartDataLoader = ({ id, children, hideDateRangeFilter = false, dateBucket
|
|
|
189
203
|
}
|
|
190
204
|
};
|
|
191
205
|
(0, react_1.useEffect)(() => {
|
|
192
|
-
|
|
206
|
+
if (loading) {
|
|
207
|
+
return;
|
|
208
|
+
}
|
|
193
209
|
getChartOptions();
|
|
194
|
-
}, [
|
|
210
|
+
}, [filters, id, dashboard[id]]);
|
|
195
211
|
return children({
|
|
196
|
-
isLoading: loading
|
|
197
|
-
data:
|
|
212
|
+
isLoading: loading,
|
|
213
|
+
data: report ?? undefined,
|
|
198
214
|
error,
|
|
199
215
|
dateBucket,
|
|
200
216
|
});
|
|
@@ -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,CAoJhC"}
|
|
@@ -6,62 +6,37 @@ 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.rows || !report.columns) {
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
if (report.pivot !== null && pivotData.data) {
|
|
27
|
+
setRows(pivotData.data.rows);
|
|
28
|
+
setColumns(pivotData.data.columns);
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
setRows(report?.rows ?? []);
|
|
32
|
+
setColumns(report?.columns ?? report?.yAxisFields ?? []);
|
|
33
|
+
}
|
|
34
|
+
}, [pivotData, report]);
|
|
21
35
|
(0, react_1.useEffect)(() => {
|
|
22
36
|
if (!isLoading) {
|
|
23
37
|
setInitialLoad(false);
|
|
24
38
|
}
|
|
25
39
|
}, [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
40
|
const formattedRows = rows.map((row) => {
|
|
66
41
|
return columns.reduce((formattedRow, column) => {
|
|
67
42
|
// Apply the format function to each field in the row
|
|
@@ -74,14 +49,15 @@ function QuillTableComponent({ report, onClick, isLoading, error, onPageChange,
|
|
|
74
49
|
}, {});
|
|
75
50
|
});
|
|
76
51
|
let numberOfRows = undefined;
|
|
77
|
-
if (
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
52
|
+
if (report &&
|
|
53
|
+
report.compareRows &&
|
|
54
|
+
report.compareRows[0] &&
|
|
55
|
+
(report.compareRows[0].count || report.compareRows[0].COUNT)) {
|
|
56
|
+
if (report.compareRows[0].COUNT) {
|
|
57
|
+
numberOfRows = parseInt(report.compareRows[0].COUNT);
|
|
82
58
|
}
|
|
83
|
-
else if (
|
|
84
|
-
numberOfRows = parseInt(
|
|
59
|
+
else if (report.compareRows[0].count) {
|
|
60
|
+
numberOfRows = parseInt(report.compareRows[0].count);
|
|
85
61
|
}
|
|
86
62
|
}
|
|
87
63
|
return ((0, jsx_runtime_1.jsxs)("div", { style: { cursor: 'pointer' }, onClick: () => onClick && onClick(report), children: [(0, jsx_runtime_1.jsxs)("div", { style: {
|
|
@@ -103,7 +79,7 @@ function QuillTableComponent({ report, onClick, isLoading, error, onPageChange,
|
|
|
103
79
|
display: 'block',
|
|
104
80
|
maxWidth: '100%',
|
|
105
81
|
overflow: 'hidden',
|
|
106
|
-
}, children: report?.name }), onClick ? ((0, jsx_runtime_1.jsx)("div", { style: {
|
|
82
|
+
}, children: report?.name }), onClick && report?.name ? ((0, jsx_runtime_1.jsx)("div", { style: {
|
|
107
83
|
fontFamily: theme.fontFamily,
|
|
108
84
|
color: theme.primaryTextColor,
|
|
109
85
|
boxSizing: 'content-box',
|
|
@@ -119,7 +95,7 @@ function QuillTableComponent({ report, onClick, isLoading, error, onPageChange,
|
|
|
119
95
|
} })) : error ? ((0, jsx_runtime_1.jsx)(ChartError_1.default, { containerStyle: {
|
|
120
96
|
width: '100%',
|
|
121
97
|
height: '400px',
|
|
122
|
-
} })) : ((0, jsx_runtime_1.jsx)(QuillTable_1.default, { isLoading: isLoading, rows: formattedRows ?? [], numberOfRows: numberOfRows, columns: columns
|
|
98
|
+
} })) : ((0, jsx_runtime_1.jsx)(QuillTable_1.default, { isLoading: isLoading, rows: formattedRows ?? [], numberOfRows: numberOfRows, columns: columns, rowsPerPage: 10, containerStyle: {
|
|
123
99
|
width: '100%',
|
|
124
100
|
height: '400px',
|
|
125
101
|
}, downloadCSV: () => {
|
|
@@ -128,6 +104,6 @@ function QuillTableComponent({ report, onClick, isLoading, error, onPageChange,
|
|
|
128
104
|
onPageChange && onPageChange(page);
|
|
129
105
|
}, onSortChange: (sort) => {
|
|
130
106
|
onSortChange && onSortChange(sort);
|
|
131
|
-
}, currentPage:
|
|
107
|
+
}, currentPage: report?.page, sort: report?.sort }))] }, report?.name));
|
|
132
108
|
}
|
|
133
109
|
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"}
|