@quillsql/react 2.12.53 → 2.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (139) hide show
  1. package/dist/cjs/Chart.d.ts.map +1 -1
  2. package/dist/cjs/Chart.js +4 -2
  3. package/dist/cjs/ChartBuilder.d.ts +4 -1
  4. package/dist/cjs/ChartBuilder.d.ts.map +1 -1
  5. package/dist/cjs/ChartBuilder.js +9 -9
  6. package/dist/cjs/ChartEditor.d.ts.map +1 -1
  7. package/dist/cjs/ChartEditor.js +47 -24
  8. package/dist/cjs/Context.d.ts +14 -2
  9. package/dist/cjs/Context.d.ts.map +1 -1
  10. package/dist/cjs/Context.js +118 -41
  11. package/dist/cjs/Dashboard.d.ts +4 -1
  12. package/dist/cjs/Dashboard.d.ts.map +1 -1
  13. package/dist/cjs/Dashboard.js +138 -354
  14. package/dist/cjs/DateRangePicker/QuillDateRangePicker.d.ts.map +1 -1
  15. package/dist/cjs/DateRangePicker/QuillDateRangePicker.js +14 -6
  16. package/dist/cjs/ReportBuilder.d.ts.map +1 -1
  17. package/dist/cjs/ReportBuilder.js +13 -7
  18. package/dist/cjs/SQLEditor.d.ts.map +1 -1
  19. package/dist/cjs/SQLEditor.js +6 -5
  20. package/dist/cjs/Table.d.ts.map +1 -1
  21. package/dist/cjs/Table.js +5 -2
  22. package/dist/cjs/components/Dashboard/DashboardFilter.d.ts +2 -1
  23. package/dist/cjs/components/Dashboard/DashboardFilter.d.ts.map +1 -1
  24. package/dist/cjs/components/Dashboard/DashboardFilter.js +7 -7
  25. package/dist/cjs/components/Dashboard/DataLoader.d.ts +6 -4
  26. package/dist/cjs/components/Dashboard/DataLoader.d.ts.map +1 -1
  27. package/dist/cjs/components/Dashboard/DataLoader.js +81 -41
  28. package/dist/cjs/components/Dashboard/TableComponent.d.ts.map +1 -1
  29. package/dist/cjs/components/Dashboard/TableComponent.js +8 -1
  30. package/dist/cjs/components/QuillMultiSelect.js +1 -1
  31. package/dist/cjs/components/QuillMultiSelectWithCombo.js +1 -1
  32. package/dist/cjs/components/QuillSelect.d.ts +1 -1
  33. package/dist/cjs/components/QuillSelect.d.ts.map +1 -1
  34. package/dist/cjs/components/QuillSelect.js +3 -3
  35. package/dist/cjs/components/QuillSelectWithCombo.d.ts +1 -1
  36. package/dist/cjs/components/QuillSelectWithCombo.d.ts.map +1 -1
  37. package/dist/cjs/components/QuillSelectWithCombo.js +3 -3
  38. package/dist/cjs/components/QuillTable.d.ts +1 -1
  39. package/dist/cjs/components/QuillTable.d.ts.map +1 -1
  40. package/dist/cjs/components/QuillTable.js +26 -16
  41. package/dist/cjs/components/ReportBuilder/ui.d.ts +0 -1
  42. package/dist/cjs/components/ReportBuilder/ui.d.ts.map +1 -1
  43. package/dist/cjs/components/ReportBuilder/ui.js +1 -13
  44. package/dist/cjs/components/UiComponents.d.ts +2 -1
  45. package/dist/cjs/components/UiComponents.d.ts.map +1 -1
  46. package/dist/cjs/components/UiComponents.js +3 -3
  47. package/dist/cjs/hooks/useDashboard.d.ts +4 -1
  48. package/dist/cjs/hooks/useDashboard.d.ts.map +1 -1
  49. package/dist/cjs/hooks/useDashboard.js +129 -64
  50. package/dist/cjs/hooks/useExport.d.ts.map +1 -1
  51. package/dist/cjs/hooks/useExport.js +8 -2
  52. package/dist/cjs/hooks/useQuill.d.ts.map +1 -1
  53. package/dist/cjs/hooks/useQuill.js +14 -14
  54. package/dist/cjs/models/Client.d.ts +6 -0
  55. package/dist/cjs/models/Client.d.ts.map +1 -1
  56. package/dist/cjs/models/Dashboard.d.ts +1 -1
  57. package/dist/cjs/models/Dashboard.d.ts.map +1 -1
  58. package/dist/cjs/models/Filter.d.ts +4 -3
  59. package/dist/cjs/models/Filter.d.ts.map +1 -1
  60. package/dist/cjs/models/Filter.js +38 -1
  61. package/dist/cjs/utils/dashboard.d.ts.map +1 -1
  62. package/dist/cjs/utils/dashboard.js +3 -2
  63. package/dist/cjs/utils/paginationProcessing.js +1 -1
  64. package/dist/cjs/utils/report.d.ts +2 -2
  65. package/dist/cjs/utils/report.d.ts.map +1 -1
  66. package/dist/cjs/utils/report.js +6 -5
  67. package/dist/cjs/utils/tableProcessing.d.ts +4 -4
  68. package/dist/cjs/utils/tableProcessing.d.ts.map +1 -1
  69. package/dist/cjs/utils/tableProcessing.js +3 -1
  70. package/dist/esm/Chart.d.ts.map +1 -1
  71. package/dist/esm/Chart.js +4 -2
  72. package/dist/esm/ChartBuilder.d.ts +4 -1
  73. package/dist/esm/ChartBuilder.d.ts.map +1 -1
  74. package/dist/esm/ChartBuilder.js +9 -9
  75. package/dist/esm/ChartEditor.d.ts.map +1 -1
  76. package/dist/esm/ChartEditor.js +48 -25
  77. package/dist/esm/Context.d.ts +14 -2
  78. package/dist/esm/Context.d.ts.map +1 -1
  79. package/dist/esm/Context.js +118 -41
  80. package/dist/esm/Dashboard.d.ts +4 -1
  81. package/dist/esm/Dashboard.d.ts.map +1 -1
  82. package/dist/esm/Dashboard.js +138 -354
  83. package/dist/esm/DateRangePicker/QuillDateRangePicker.d.ts.map +1 -1
  84. package/dist/esm/DateRangePicker/QuillDateRangePicker.js +15 -7
  85. package/dist/esm/ReportBuilder.d.ts.map +1 -1
  86. package/dist/esm/ReportBuilder.js +14 -8
  87. package/dist/esm/SQLEditor.d.ts.map +1 -1
  88. package/dist/esm/SQLEditor.js +6 -5
  89. package/dist/esm/Table.d.ts.map +1 -1
  90. package/dist/esm/Table.js +5 -2
  91. package/dist/esm/components/Dashboard/DashboardFilter.d.ts +2 -1
  92. package/dist/esm/components/Dashboard/DashboardFilter.d.ts.map +1 -1
  93. package/dist/esm/components/Dashboard/DashboardFilter.js +7 -7
  94. package/dist/esm/components/Dashboard/DataLoader.d.ts +6 -4
  95. package/dist/esm/components/Dashboard/DataLoader.d.ts.map +1 -1
  96. package/dist/esm/components/Dashboard/DataLoader.js +83 -43
  97. package/dist/esm/components/Dashboard/TableComponent.d.ts.map +1 -1
  98. package/dist/esm/components/Dashboard/TableComponent.js +8 -1
  99. package/dist/esm/components/QuillMultiSelect.js +1 -1
  100. package/dist/esm/components/QuillMultiSelectWithCombo.js +1 -1
  101. package/dist/esm/components/QuillSelect.d.ts +1 -1
  102. package/dist/esm/components/QuillSelect.d.ts.map +1 -1
  103. package/dist/esm/components/QuillSelect.js +3 -3
  104. package/dist/esm/components/QuillSelectWithCombo.d.ts +1 -1
  105. package/dist/esm/components/QuillSelectWithCombo.d.ts.map +1 -1
  106. package/dist/esm/components/QuillSelectWithCombo.js +3 -3
  107. package/dist/esm/components/QuillTable.d.ts +1 -1
  108. package/dist/esm/components/QuillTable.d.ts.map +1 -1
  109. package/dist/esm/components/QuillTable.js +26 -16
  110. package/dist/esm/components/ReportBuilder/ui.d.ts +0 -1
  111. package/dist/esm/components/ReportBuilder/ui.d.ts.map +1 -1
  112. package/dist/esm/components/ReportBuilder/ui.js +0 -8
  113. package/dist/esm/components/UiComponents.d.ts +2 -1
  114. package/dist/esm/components/UiComponents.d.ts.map +1 -1
  115. package/dist/esm/components/UiComponents.js +3 -3
  116. package/dist/esm/hooks/useDashboard.d.ts +4 -1
  117. package/dist/esm/hooks/useDashboard.d.ts.map +1 -1
  118. package/dist/esm/hooks/useDashboard.js +128 -66
  119. package/dist/esm/hooks/useExport.d.ts.map +1 -1
  120. package/dist/esm/hooks/useExport.js +9 -3
  121. package/dist/esm/hooks/useQuill.d.ts.map +1 -1
  122. package/dist/esm/hooks/useQuill.js +15 -15
  123. package/dist/esm/models/Client.d.ts +6 -0
  124. package/dist/esm/models/Client.d.ts.map +1 -1
  125. package/dist/esm/models/Dashboard.d.ts +1 -1
  126. package/dist/esm/models/Dashboard.d.ts.map +1 -1
  127. package/dist/esm/models/Filter.d.ts +4 -3
  128. package/dist/esm/models/Filter.d.ts.map +1 -1
  129. package/dist/esm/models/Filter.js +36 -0
  130. package/dist/esm/utils/dashboard.d.ts.map +1 -1
  131. package/dist/esm/utils/dashboard.js +3 -2
  132. package/dist/esm/utils/paginationProcessing.js +1 -1
  133. package/dist/esm/utils/report.d.ts +2 -2
  134. package/dist/esm/utils/report.d.ts.map +1 -1
  135. package/dist/esm/utils/report.js +6 -5
  136. package/dist/esm/utils/tableProcessing.d.ts +4 -4
  137. package/dist/esm/utils/tableProcessing.d.ts.map +1 -1
  138. package/dist/esm/utils/tableProcessing.js +3 -1
  139. package/package.json +1 -1
@@ -379,12 +379,12 @@ export const QuillTableSQLEditorComponent = ({ rows, columns, isLoading = false,
379
379
  onPageChange && onPageChange(page);
380
380
  }, onSortChange: (sort) => {
381
381
  setSort(sort);
382
- setPage(page);
383
382
  setCurrentPage && setCurrentPage(0);
383
+ setPage(0);
384
384
  onSortChange && onSortChange(sort);
385
385
  }, sort: sort, currentPage: currentPage ?? page, isLoading: isLoading, containerStyle: containerStyle }));
386
386
  };
387
- export const QuillTableComponent = ({ rows, columns, isLoading = false, rowCount, onPageChange, onSortChange, }) => {
387
+ export const QuillTableComponent = ({ rows, columns, isLoading = false, rowCount, rowCountIsLoading, onPageChange, onSortChange, }) => {
388
388
  const [sort, setSort] = useState({ field: '', direction: '' });
389
389
  const [page, setPage] = useState(0);
390
390
  const [initialLoad, setInitialLoad] = useState(true);
@@ -402,7 +402,7 @@ export const QuillTableComponent = ({ rows, columns, isLoading = false, rowCount
402
402
  height: '100%',
403
403
  }, children: _jsx(ChartSkeleton, {}) }));
404
404
  }
405
- return (_jsx(QuillTable, { rows: rows, columns: columns, rowsPerPage: DEFAULT_PAGINATION.rowsPerPage, rowCount: rowCount, onPageChange: (page) => {
405
+ return (_jsx(QuillTable, { rows: rows, columns: columns, rowsPerPage: DEFAULT_PAGINATION.rowsPerPage, rowCount: rowCount, rowCountIsLoading: rowCountIsLoading, onPageChange: (page) => {
406
406
  setPage(page);
407
407
  onPageChange && onPageChange(page);
408
408
  }, onSortChange: (sort) => {
@@ -7,13 +7,16 @@ export declare const useDashboard: (dashboardName: string) => {
7
7
  data: import("../models/Dashboard").DashboardConfig | null | undefined;
8
8
  dashboardFilters: DashboardFilter[] | null;
9
9
  isLoading: boolean | undefined;
10
- isDashboardFiltersLoading: boolean;
10
+ isDashboardFilterLoading: (filterName: string) => boolean | undefined;
11
11
  error: any;
12
12
  reload: (overrideDashboardName?: string, fetchFromServer?: boolean, reportAction?: {
13
13
  report: QuillReport | {
14
14
  id: string;
15
15
  };
16
16
  action: 'upsert' | 'delete';
17
+ }, overrideFilters?: {
18
+ filters: DashboardFilter[];
19
+ editedFilterLabel: string;
17
20
  }) => Promise<void>;
18
21
  };
19
22
  //# sourceMappingURL=useDashboard.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useDashboard.d.ts","sourceRoot":"","sources":["../../../src/hooks/useDashboard.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAKpE,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEnD,eAAO,MAAM,UAAU;gDAYC,mBAAmB,KAAK,OAAO;CAYtD,CAAC;AAEF,eAAO,MAAM,YAAY,kBAAmB,MAAM;;;;;;qCAuBtB,MAAM,4CAEf;QACb,MAAM,EAAE,WAAW,GAAG;YAAE,EAAE,EAAE,MAAM,CAAA;SAAE,CAAC;QACrC,MAAM,EAAE,QAAQ,GAAG,QAAQ,CAAC;KAC7B;CA+IJ,CAAC"}
1
+ {"version":3,"file":"useDashboard.d.ts","sourceRoot":"","sources":["../../../src/hooks/useDashboard.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAOpE,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAGnD,eAAO,MAAM,UAAU;gDAYC,mBAAmB,KAAK,OAAO;CAYtD,CAAC;AAEF,eAAO,MAAM,YAAY,kBAAmB,MAAM;;;;2CAiQF,MAAM;;qCA3O1B,MAAM,4CAEf;QACb,MAAM,EAAE,WAAW,GAAG;YAAE,EAAE,EAAE,MAAM,CAAA;SAAE,CAAC;QACrC,MAAM,EAAE,QAAQ,GAAG,QAAQ,CAAC;KAC7B,oBACiB;QAAE,OAAO,EAAE,eAAe,EAAE,CAAC;QAAC,iBAAiB,EAAE,MAAM,CAAA;KAAE;CAqP9E,CAAC"}
@@ -1,6 +1,8 @@
1
1
  import { useContext, useMemo, useState } from 'react';
2
- import { ClientContext, DashboardConfigContext, DashboardContext, } from '../Context';
3
- import { getDashboard, getDashboardFilters as getFilters, } from '../utils/dashboard';
2
+ import { ClientContext, DashboardConfigContext, DashboardContext, DashboardFiltersContext, } from '../Context';
3
+ import { getDashboard } from '../utils/dashboard';
4
+ import { COMPARISON_RANGE, PRIMARY_RANGE, } from '../DateRangePicker/dateRangePickerUtils';
5
+ import equal from 'fast-deep-equal';
4
6
  export const useReports = () => {
5
7
  const [dashboard, dispatch] = useContext(DashboardContext);
6
8
  const reloadReport = (id) => {
@@ -23,131 +25,191 @@ export const useReports = () => {
23
25
  };
24
26
  export const useDashboard = (dashboardName) => {
25
27
  const [dashboardConfig, dashboardConfigContext] = useContext(DashboardConfigContext);
28
+ const { dashboardFilters, loadFiltersForDashboard } = useContext(DashboardFiltersContext);
26
29
  const [dashboard] = useContext(DashboardContext);
27
30
  const [isLoading, setIsLoading] = useState(true);
28
31
  const [error, setError] = useState(null);
29
32
  const [client, isClientLoading] = useContext(ClientContext);
30
- const [dashboardFilters, setDashboardFilters] = useState(null);
31
- const [dashboardFiltersLoading, setDashboardFiltersLoading] = useState(true);
32
33
  const loading = useMemo(() => isLoading ||
33
34
  isClientLoading ||
34
35
  (dashboardConfig[dashboardName] &&
35
36
  !dashboardConfig[dashboardName]?.sections), [isLoading, isClientLoading, dashboardConfig, dashboardName]);
36
- const handleReload = async (overrideDashboardName, fetchFromServer = false, reportAction) => {
37
- await Promise.allSettled([
38
- getDashboardFilters(overrideDashboardName ?? dashboardName, fetchFromServer),
39
- getDashboards(overrideDashboardName ?? dashboardName, fetchFromServer, reportAction),
37
+ const handleReload = async (overrideDashboardName, fetchFromServer = false, reportAction, overrideFilters) => {
38
+ if (!fetchFromServer && isLoading)
39
+ return;
40
+ if (overrideFilters) {
41
+ // Pull the date filter out of the override filters, process it, and append it to the filters
42
+ const dateFilter = overrideFilters.filters.find((f) => f.filterType === 'date_range');
43
+ loadFiltersForDashboard(dashboardName, [
44
+ ...(dateFilter
45
+ ? [
46
+ {
47
+ ...dateFilter,
48
+ dateField: [
49
+ ...new Map(Object.values(dashboardConfig[overrideDashboardName ?? dashboardName]
50
+ ?.sections ?? {})
51
+ .flat()
52
+ .map((report) => {
53
+ const key = JSON.stringify(report.dateField);
54
+ return [key, report.dateField];
55
+ })).values(),
56
+ ],
57
+ },
58
+ ]
59
+ : []),
60
+ ...(overrideFilters.filters.filter((f) => f.filterType !== 'date_range') ?? []),
61
+ ], overrideFilters.editedFilterLabel);
62
+ return;
63
+ }
64
+ const dashboard = await getDashboards(overrideDashboardName ?? dashboardName, fetchFromServer, reportAction);
65
+ if (!fetchFromServer &&
66
+ Object.keys(dashboardFilters[dashboardName] ?? {}).length)
67
+ return;
68
+ const dateFilter = dashboard?.dateFilter
69
+ ? {
70
+ ...dashboard?.dateFilter,
71
+ startDate: PRIMARY_RANGE[dashboard?.dateFilter.primaryRange?.value ?? 'LAST_30_DAYS']?.start,
72
+ endDate: PRIMARY_RANGE[dashboard?.dateFilter.primaryRange?.value ?? 'LAST_30_DAYS']?.end,
73
+ filterType: 'date_range',
74
+ dateField: [
75
+ ...new Map(Object.values(dashboard?.sections ?? {})
76
+ .flat()
77
+ .map((report) => {
78
+ const key = JSON.stringify(report.dateField);
79
+ return [key, report.dateField];
80
+ })).values(),
81
+ ],
82
+ preset: dashboard?.dateFilter.primaryRange,
83
+ dashboardName: overrideDashboardName ?? dashboardName,
84
+ comparisonRange: dashboard?.dateFilter.comparison
85
+ ? {
86
+ startDate: dashboard?.dateFilter.comparsionRange?.startDate ??
87
+ COMPARISON_RANGE[dashboard?.dateFilter
88
+ .defaultComparisonRange ??
89
+ 'NO_COMPARISON']({
90
+ start: PRIMARY_RANGE[dashboard?.dateFilter.primaryRange?.value ??
91
+ 'LAST_30_DAYS']?.start,
92
+ end: PRIMARY_RANGE[dashboard?.dateFilter.primaryRange?.value ??
93
+ 'LAST_30_DAYS']?.end,
94
+ })?.start,
95
+ endDate: dashboard?.dateFilter.comparsionRange?.endDate ??
96
+ COMPARISON_RANGE[dashboard?.dateFilter
97
+ .defaultComparisonRange ??
98
+ 'NO_COMPARISON']({
99
+ start: PRIMARY_RANGE[dashboard?.dateFilter.primaryRange?.value ??
100
+ 'LAST_30_DAYS']?.start,
101
+ end: PRIMARY_RANGE[dashboard?.dateFilter.primaryRange?.value ??
102
+ 'LAST_30_DAYS']?.end,
103
+ })?.end,
104
+ value: dashboard?.dateFilter.comparsionRange?.value ??
105
+ dashboard.dateFilter?.defaultComparisonRange,
106
+ }
107
+ : undefined,
108
+ }
109
+ : undefined;
110
+ // Append dateFilter to the filters unless it's undefined
111
+ loadFiltersForDashboard(dashboardName, [
112
+ ...(dateFilter ? [dateFilter] : []),
113
+ ...(dashboard?.filters ?? []),
40
114
  ]);
41
115
  };
42
- //FIXME: report should be of type QuillReport
43
116
  async function getDashboards(dashboardName, fetchFromServer = false, reportAction) {
44
- setIsLoading(true);
45
- if (!fetchFromServer && dashboardConfig) {
117
+ const curDashboardConfig = dashboardConfig[dashboardName];
118
+ if (!fetchFromServer && curDashboardConfig?.sections) {
46
119
  if (reportAction?.action === 'delete') {
47
120
  dashboardConfigContext({
48
121
  type: 'UPDATE_DASHBOARD',
49
122
  id: dashboardName,
50
123
  data: {
51
- ...dashboardConfig[dashboardName],
52
- sections: {
53
- '': dashboardConfig[dashboardName]?.sections?.[''].filter((report) => (report.id ?? report._id) !==
54
- (reportAction.report.id ?? reportAction.report._id)),
55
- },
124
+ ...curDashboardConfig,
125
+ sections: Object.fromEntries(Object.entries(curDashboardConfig?.sections ?? {}).map(([sectionKey, reports]) => [
126
+ sectionKey,
127
+ reports.filter((report) => report.id !== reportAction.report.id),
128
+ ])),
56
129
  },
57
130
  });
58
131
  }
59
132
  else if (reportAction?.action === 'upsert') {
60
- const containsReport = dashboardConfig[dashboardName]?.sections?.[''].some((report) => (report.id ?? report._id) ===
61
- (reportAction?.report.id ?? reportAction?.report._id));
133
+ const containsReport = Object.values(curDashboardConfig?.sections ?? {})
134
+ .flat()
135
+ .some((report) => (report.id ?? report._id) === reportAction?.report.id);
62
136
  dashboardConfigContext({
63
137
  type: 'UPDATE_DASHBOARD',
64
138
  id: dashboardName,
65
139
  data: {
66
- ...dashboardConfig[dashboardName],
67
- sections: {
68
- '': containsReport
69
- ? dashboardConfig[dashboardName]?.sections?.[''].map((report) => {
140
+ ...curDashboardConfig,
141
+ sections: Object.fromEntries(Object.entries(curDashboardConfig?.sections ?? {}).map(([sectionKey, reports]) => [
142
+ sectionKey,
143
+ containsReport
144
+ ? reports.map((report) => {
70
145
  return {
71
146
  report,
72
- // FIXME: this is bizarre. The _id field shouldn't even exist on the report according to the type, but that's what is set.
73
- ...((reportAction?.report.id ??
74
- reportAction?.report._id) ===
75
- (report.id ?? report._id)
147
+ ...(reportAction?.report.id === report.id
76
148
  ? reportAction?.report
77
- : dashboard[report.id ?? report._id]),
78
- _id: report.id ?? report._id,
149
+ : dashboard[report.id]),
150
+ _id: report.id,
151
+ id: report.id,
79
152
  };
80
153
  })
81
154
  : [
82
- ...(dashboardConfig[dashboardName]?.sections?.[''] ?? []),
155
+ ...(reports ?? []),
83
156
  {
84
157
  report: reportAction?.report,
85
- ...dashboard[reportAction?.report.id ?? reportAction?.report._id],
86
- _id: reportAction?.report.id ?? reportAction?.report._id,
158
+ ...dashboard[reportAction?.report.id],
159
+ id: reportAction?.report.id,
160
+ _id: reportAction?.report.id,
87
161
  },
88
162
  ],
89
- },
163
+ ])),
90
164
  },
91
165
  });
92
166
  }
93
167
  setIsLoading(false);
94
- return;
168
+ return curDashboardConfig;
95
169
  }
96
- const curDashboardConfig = dashboardConfig[dashboardName];
97
170
  if (!fetchFromServer &&
98
171
  curDashboardConfig &&
99
172
  curDashboardConfig.newQueries) {
100
173
  setIsLoading(false);
101
- return;
174
+ return curDashboardConfig;
102
175
  }
103
176
  if (!client || !client.publicKey || !client.organizationId) {
104
- return;
177
+ return curDashboardConfig;
105
178
  }
106
179
  if (dashboardName === null || dashboardName === undefined)
107
- return;
180
+ return curDashboardConfig;
108
181
  try {
182
+ setIsLoading(true);
109
183
  const resp = await getDashboard(dashboardName, client);
110
- dashboardConfigContext({
111
- type: 'ADD_DASHBOARD',
112
- id: dashboardName,
113
- data: { ...resp },
114
- });
115
- setIsLoading(false);
184
+ // if dashboard has changed
185
+ if (!equal(resp, curDashboardConfig)) {
186
+ dashboardConfigContext({
187
+ type: 'ADD_DASHBOARD',
188
+ id: dashboardName,
189
+ data: { ...resp },
190
+ });
191
+ }
116
192
  setError(null);
193
+ return resp;
117
194
  }
118
195
  catch (error) {
119
- setIsLoading(false);
120
196
  setError(error);
121
197
  console.error('Error fetching data:', error);
122
198
  }
123
- }
124
- async function getDashboardFilters(dashboardName, fetchFromServer = false) {
125
- if (!fetchFromServer && dashboardFilters) {
126
- setDashboardFiltersLoading(false);
127
- return;
128
- }
129
- setDashboardFiltersLoading(true);
130
- if (!client || !client.publicKey || !client.organizationId) {
131
- return;
132
- }
133
- if (dashboardName === null || dashboardName === undefined)
134
- return;
135
- try {
136
- const resp = await getFilters(dashboardName, client);
137
- setDashboardFilters(resp);
138
- }
139
- catch (error) {
140
- console.error('Error fetching data:', error);
141
- }
142
199
  finally {
143
- setDashboardFiltersLoading(false);
200
+ setIsLoading(false);
144
201
  }
145
202
  }
203
+ function isDashboardFilterLoading(filterName) {
204
+ return dashboardFilters[dashboardName]?.[filterName]?.loading;
205
+ }
146
206
  return {
147
207
  data: loading ? null : dashboardConfig[dashboardName],
148
- dashboardFilters: dashboardFilters,
208
+ dashboardFilters: dashboardFilters[dashboardName] !== undefined
209
+ ? Object.values(dashboardFilters[dashboardName] ?? {}).map((f) => f.filter)
210
+ : null,
149
211
  isLoading: loading,
150
- isDashboardFiltersLoading: dashboardFiltersLoading,
212
+ isDashboardFilterLoading,
151
213
  error,
152
214
  reload: handleReload,
153
215
  };
@@ -1 +1 @@
1
- {"version":3,"file":"useExport.d.ts","sourceRoot":"","sources":["../../../src/hooks/useExport.tsx"],"names":[],"mappings":"AA8DA,eAAO,MAAM,SAAS,cAAe,MAAM;;;;CA6C1C,CAAC"}
1
+ {"version":3,"file":"useExport.d.ts","sourceRoot":"","sources":["../../../src/hooks/useExport.tsx"],"names":[],"mappings":"AA8DA,eAAO,MAAM,SAAS,cAAe,MAAM;;;;CA2D1C,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { downloadCSV } from '../utils/csv';
3
- import { useContext, useLayoutEffect, useRef, useState } from 'react';
3
+ import { useContext, useLayoutEffect, useMemo, useRef, useState } from 'react';
4
4
  import { getData } from '../utils/dataFetcher';
5
5
  import { ClientContext, DashboardFiltersContext, ThemeContext, } from '../Context';
6
6
  import ReactDOM from 'react-dom';
@@ -44,6 +44,12 @@ async function getExportData(client, dashboardFilters, reportId) {
44
44
  }
45
45
  export const useExport = (reportId) => {
46
46
  const { dashboardFilters } = useContext(DashboardFiltersContext);
47
+ const specificDashboardFilters = useMemo(() => {
48
+ //FIXME: Pretty sure this won't work with multiple dashboards
49
+ Object.values(dashboardFilters).map((dashboardFilter) => {
50
+ return dashboardFilter.filter;
51
+ });
52
+ }, [dashboardFilters]);
47
53
  const [theme] = useContext(ThemeContext);
48
54
  const [client] = useContext(ClientContext);
49
55
  const [isLoading, setIsLoading] = useState(false);
@@ -56,7 +62,7 @@ export const useExport = (reportId) => {
56
62
  return;
57
63
  }
58
64
  setIsLoading(true);
59
- const resp = await getExportData(client, dashboardFilters, reportId);
65
+ const resp = await getExportData(client, specificDashboardFilters, reportId);
60
66
  downloadCSV({
61
67
  rows: resp.rows,
62
68
  fields: resp.columns,
@@ -69,7 +75,7 @@ export const useExport = (reportId) => {
69
75
  return;
70
76
  }
71
77
  setIsLoading(true);
72
- const resp = await getExportData(client, dashboardFilters, reportId);
78
+ const resp = await getExportData(client, specificDashboardFilters, reportId);
73
79
  const iframe = document.createElement('iframe');
74
80
  document.body.appendChild(iframe);
75
81
  if (iframe && iframe.contentDocument && theme) {
@@ -1 +1 @@
1
- {"version":3,"file":"useQuill.d.ts","sourceRoot":"","sources":["../../../src/hooks/useQuill.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EACL,WAAW,EAIZ,MAAM,yBAAyB,CAAC;AAEjC,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,eAAO,MAAM,QAAQ,cACR,MAAM,eACJ;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE;UAEtD,WAAW,GAAG,IAAI;aACf,OAAO;WACT,MAAM,GAAG,SAAS;sBACP,MAAM,KAAK,IAAI;qBAChB,MAAM,aAAa,MAAM,KAAK,IAAI;2BAEnC,WAAW,KAAK,MAAM,GAAG,SAAS,WACvC,SAAS;CAyLrB,CAAC;AAEF,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;CAoD1B,CAAC"}
1
+ {"version":3,"file":"useQuill.d.ts","sourceRoot":"","sources":["../../../src/hooks/useQuill.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EACL,WAAW,EAIZ,MAAM,yBAAyB,CAAC;AAGjC,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,eAAO,MAAM,QAAQ,cACR,MAAM,eACJ;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE;UAEtD,WAAW,GAAG,IAAI;aACf,OAAO;WACT,MAAM,GAAG,SAAS;sBACP,MAAM,KAAK,IAAI;qBAChB,MAAM,aAAa,MAAM,KAAK,IAAI;2BAEnC,WAAW,KAAK,MAAM,GAAG,SAAS,WACvC,SAAS;CAmLrB,CAAC;AAEF,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;CAoD1B,CAAC"}
@@ -1,4 +1,4 @@
1
- import { useContext, useEffect, useState } from 'react';
1
+ import { useContext, useEffect, useMemo, useState } from 'react';
2
2
  import { ClientContext, DashboardContext, DashboardFiltersContext, SchemaDataContext, } from '../Context';
3
3
  import { mergeComparisonRange } from '../utils/merge';
4
4
  import { convertInternalReportToReport, fetchReport } from '../utils/report';
@@ -8,6 +8,14 @@ import { getPointToPointPercentageChange, getSimplePercentageChange, getSumOfFie
8
8
  export const useQuill = (reportId, pagination) => {
9
9
  const [dashboard, dispatch] = useContext(DashboardContext);
10
10
  const { dashboardFilters } = useContext(DashboardFiltersContext);
11
+ const specificDashboardFilters = useMemo(() => {
12
+ if (!reportId)
13
+ return [];
14
+ const dashboardName = dashboard[reportId]?.dashboardName;
15
+ if (!dashboardName)
16
+ return [];
17
+ return Object.values(dashboardFilters[dashboardName] ?? {}).map((f) => f.filter);
18
+ }, [dashboardFilters, reportId, dashboard]);
11
19
  const [schemaData] = useContext(SchemaDataContext);
12
20
  const [client] = useContext(ClientContext);
13
21
  const [data, setData] = useState(null);
@@ -73,13 +81,8 @@ export const useQuill = (reportId, pagination) => {
73
81
  if (!loading && reportId && data) {
74
82
  setLoading(true);
75
83
  try {
76
- const specificDashboardFilter = dashboardFilters.filter((f) => f &&
77
- reportId &&
78
- dashboard[reportId] &&
79
- // @ts-ignore
80
- dashboard[reportId].dashboardName === f.dashboardName);
81
84
  const updatedProcessing = { ...additionalProcessing, ...processing };
82
- const paginatedRows = await fetchResultsByReport(reportId, client, updatedProcessing, specificDashboardFilter, schemaData.customFields);
85
+ const paginatedRows = await fetchResultsByReport(reportId, client, updatedProcessing, specificDashboardFilters, schemaData.customFields);
83
86
  if (paginatedRows.error) {
84
87
  throw new Error('Error fetching chart');
85
88
  }
@@ -112,19 +115,14 @@ export const useQuill = (reportId, pagination) => {
112
115
  setLoading(false);
113
116
  return;
114
117
  }
115
- const specificDashboardFilter = dashboardFilters.filter((f) => f &&
116
- reportId &&
117
- dashboard[curReportId] &&
118
- // @ts-ignore
119
- dashboard[curReportId].dashboardName === f.dashboardName);
120
118
  setLoading(true);
121
- const { report, error } = await fetchReport(curReportId, client, useReportTask, specificDashboardFilter, additionalProcessing, undefined, schemaData.customFields);
119
+ const { report, error } = await fetchReport(curReportId, client, useReportTask, specificDashboardFilters, additionalProcessing, undefined, schemaData.customFields);
122
120
  dispatch({
123
121
  type: 'ADD_DASHBOARD_ITEM',
124
122
  id: reportId,
125
123
  data: {
126
124
  ...report,
127
- filtersApplied: specificDashboardFilter,
125
+ filtersApplied: specificDashboardFilters,
128
126
  triggerReload: false,
129
127
  },
130
128
  });
@@ -134,7 +132,9 @@ export const useQuill = (reportId, pagination) => {
134
132
  };
135
133
  useEffect(() => {
136
134
  if (reportId) {
137
- fetchReportHelper(reportId, pagination ? true : false, pagination);
135
+ fetchReportHelper(reportId, pagination ? true : false, {
136
+ page: pagination,
137
+ });
138
138
  }
139
139
  }, [reportId, dashboard]);
140
140
  useEffect(() => {
@@ -5,6 +5,9 @@ export type Client = {
5
5
  multiTenancyDisabled?: boolean;
6
6
  adminCustomerId?: string;
7
7
  recommendedPivotsDisabled?: boolean;
8
+ featureFlags?: {
9
+ [key: string]: boolean;
10
+ };
8
11
  };
9
12
  export type QuillProviderClient = {
10
13
  organizationId?: string;
@@ -18,5 +21,8 @@ export type QuillProviderClient = {
18
21
  multiTenancyDisabled?: boolean;
19
22
  adminCustomerId?: string;
20
23
  recommendedPivotsDisabled?: boolean;
24
+ featureFlags?: {
25
+ [key: string]: boolean;
26
+ };
21
27
  };
22
28
  //# sourceMappingURL=Client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Client.d.ts","sourceRoot":"","sources":["../../../src/models/Client.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,MAAM,GAAG;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,yBAAyB,CAAC,EAAE,OAAO,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,WAAW,CAAC;IAC3B,eAAe,EAAE,OAAO,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,yBAAyB,CAAC,EAAE,OAAO,CAAC;CACrC,CAAC"}
1
+ {"version":3,"file":"Client.d.ts","sourceRoot":"","sources":["../../../src/models/Client.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,MAAM,GAAG;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,YAAY,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;CAC3C,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,WAAW,CAAC;IAC3B,eAAe,EAAE,OAAO,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,YAAY,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;CAC3C,CAAC"}
@@ -7,7 +7,7 @@ export type DashboardConfig = {
7
7
  dateFilter: DashboardDateFilter;
8
8
  customFiltersEnabled?: boolean;
9
9
  sections?: {
10
- '': QuillReport[];
10
+ [key: string]: QuillReport[];
11
11
  };
12
12
  newQueries?: QuillReport[];
13
13
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Dashboard.d.ts","sourceRoot":"","sources":["../../../src/models/Dashboard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC,MAAM,MAAM,eAAe,GAAG;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,qBAAqB,EAAE,CAAC;IACjC,UAAU,EAAE,mBAAmB,CAAC;IAChC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,EAAE;QACT,EAAE,EAAE,WAAW,EAAE,CAAC;KACnB,CAAC;IACF,UAAU,CAAC,EAAE,WAAW,EAAE,CAAC;CAC5B,CAAC"}
1
+ {"version":3,"file":"Dashboard.d.ts","sourceRoot":"","sources":["../../../src/models/Dashboard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC,MAAM,MAAM,eAAe,GAAG;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,qBAAqB,EAAE,CAAC;IACjC,UAAU,EAAE,mBAAmB,CAAC;IAChC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,EAAE;QACT,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,EAAE,CAAC;KAC9B,CAAC;IACF,UAAU,CAAC,EAAE,WAAW,EAAE,CAAC;CAC5B,CAAC"}
@@ -156,8 +156,8 @@ export interface DashboardStringFilter extends DashboardBaseFilter {
156
156
  }
157
157
  export interface DashboardDateFilter extends DashboardBaseFilter {
158
158
  filterType: DashboardFilterType.Date;
159
- comparison: boolean;
160
- defaultComparisonRange: ComparisonRangeKey;
159
+ comparison?: boolean;
160
+ defaultComparisonRange?: ComparisonRangeKey;
161
161
  options: {
162
162
  label: string;
163
163
  value: string;
@@ -176,11 +176,12 @@ export interface DashboardDateFilter extends DashboardBaseFilter {
176
176
  };
177
177
  startDate: Date;
178
178
  endDate: Date;
179
- comparisonRange: {
179
+ comparisonRange?: {
180
180
  startDate?: Date;
181
181
  endDate?: Date;
182
182
  value: ComparisonRangeKey;
183
183
  };
184
184
  }
185
+ export declare function convertDashboardFilterToFilter(dashboardFilter: DashboardFilter): Filter;
185
186
  export {};
186
187
  //# sourceMappingURL=Filter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Filter.d.ts","sourceRoot":"","sources":["../../../src/models/Filter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Filter.d.ts","sourceRoot":"","sources":["../../../src/models/Filter.ts"],"names":[],"mappings":"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"}
@@ -107,3 +107,39 @@ var StringFilterType;
107
107
  StringFilterType["Default"] = "default";
108
108
  StringFilterType["Multiselect"] = "multiselect";
109
109
  })(StringFilterType || (StringFilterType = {}));
110
+ //FIXME: This is likely incorrect
111
+ export function convertDashboardFilterToFilter(dashboardFilter) {
112
+ if (dashboardFilter.filterType === DashboardFilterType.String) {
113
+ return {
114
+ filterType: FilterNames.StringFilter,
115
+ fieldType: FieldTypes.String,
116
+ operator: StringOperator.Is,
117
+ field: dashboardFilter.field,
118
+ value: dashboardFilter.selectedValue,
119
+ table: dashboardFilter.table,
120
+ };
121
+ }
122
+ else {
123
+ if (dashboardFilter.comparison) {
124
+ return {
125
+ filterType: FilterNames.DateComparisonFilter,
126
+ fieldType: FieldTypes.Date,
127
+ operator: DateOperator.Custom,
128
+ field: dashboardFilter.field,
129
+ value: dashboardFilter.comparisonRange?.value,
130
+ };
131
+ }
132
+ else {
133
+ return {
134
+ filterType: FilterNames.DateCustomFilter,
135
+ fieldType: FieldTypes.Date,
136
+ operator: DateOperator.Custom,
137
+ field: dashboardFilter.field,
138
+ value: {
139
+ startDate: dashboardFilter.startDate.toISOString(),
140
+ endDate: dashboardFilter.endDate.toISOString(),
141
+ },
142
+ };
143
+ }
144
+ }
145
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../../../src/utils/dashboard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAWvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AA6BnD;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,GAAG,SAAS,EACxC,gBAAgB,EAAE,GAAG,EACrB,MAAM,CAAC,EAAE,mBAAmB,EAC5B,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,mBAAmB,CAAC,CAoD9B;AAqID,wBAAsB,YAAY,CAChC,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,mBAAmB,GAC1B,OAAO,CAAC,GAAG,CAAC,CA2Bd;AAED,wBAAsB,mBAAmB,CACvC,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,mBAAmB,GAC1B,OAAO,CAAC,eAAe,EAAE,CAAC,CA0F5B"}
1
+ {"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../../../src/utils/dashboard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAWvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AA6BnD;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,GAAG,SAAS,EACxC,gBAAgB,EAAE,GAAG,EACrB,MAAM,CAAC,EAAE,mBAAmB,EAC5B,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,mBAAmB,CAAC,CAoD9B;AAsID,wBAAsB,YAAY,CAChC,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,mBAAmB,GAC1B,OAAO,CAAC,GAAG,CAAC,CA2Bd;AAED,wBAAsB,mBAAmB,CACvC,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,mBAAmB,GAC1B,OAAO,CAAC,eAAe,EAAE,CAAC,CA0F5B"}
@@ -71,7 +71,7 @@ export async function cleanDashboardItem(item, dashboardFilters, client, dateBuc
71
71
  xAxisFormat: item.xAxisFormat,
72
72
  order: item.order,
73
73
  filtersApplied: item.filtersApplied,
74
- rowCount: parseInt(item.rowCount),
74
+ rowCount: item.rowCount ? parseInt(item.rowCount) : item.rows.length,
75
75
  template: item.template,
76
76
  sort: item.sort,
77
77
  itemQuery: item.itemQuery,
@@ -94,7 +94,7 @@ async function getPivotTable(report, dashboardFilters, client, dateBucketInitial
94
94
  const pivot = report?.pivot;
95
95
  const data = report || {};
96
96
  if (pivot && client) {
97
- if (report.rowCount === 0) {
97
+ if (report.rowCount === 0 || report.rows.length === 0) {
98
98
  const columns = [];
99
99
  if (pivot.rowField) {
100
100
  columns.push({
@@ -138,6 +138,7 @@ async function getPivotTable(report, dashboardFilters, client, dateBucketInitial
138
138
  throw new Error('Error generating pivot table');
139
139
  }
140
140
  catch (e) {
141
+ console.log('Error fetching pivot table', e);
141
142
  throw new Error('Failed to fetch chart');
142
143
  }
143
144
  }
@@ -1,7 +1,7 @@
1
1
  export const DEFAULT_PAGINATION = {
2
2
  page: 0,
3
3
  rowsPerPage: 10,
4
- rowsPerRequest: 20,
4
+ rowsPerRequest: 600,
5
5
  };
6
6
  export function shouldFetchMore(pagination, page, maxPage) {
7
7
  if (!pagination) {
@@ -23,11 +23,11 @@ export type ReportBuilderInfo = {
23
23
  };
24
24
  export declare const EMPTY_REPORT: QuillReport;
25
25
  export declare const EMPTY_INTERNAL_REPORT: QuillReportInternal;
26
- export declare function fetchReport(reportId: string, client: QuillProviderClient, useReportTask?: boolean, filters?: any[], additionalProcessing?: AdditionalProcessing, dateBucket?: string, customFields?: any, queryTask?: string): Promise<{
26
+ export declare function fetchReport(reportId: string, client: QuillProviderClient, useReportTask?: boolean, filters?: any[], additionalProcessing?: AdditionalProcessing, dateBucket?: string, customFields?: any, rowsOnly?: boolean, rowCountOnly?: boolean): Promise<{
27
27
  report: QuillReportInternal;
28
28
  error?: string;
29
29
  }>;
30
- export declare function fetchReportRowCount(reportId: string, client: QuillProviderClient, useReportTask?: boolean, filters?: any[], additionalProcessing?: AdditionalProcessing, customFields?: any): Promise<any>;
30
+ export declare function fetchReportRowCount(reportId: string, client: QuillProviderClient, useReportTask?: boolean, filters?: any[], additionalProcessing?: AdditionalProcessing, customFields?: any): Promise<number | undefined>;
31
31
  export declare function saveReport({ report, dashboardItemId, client, }: {
32
32
  report: any;
33
33
  dashboardItemId?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../../../src/utils/report.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAU,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,EACL,kBAAkB,EAClB,KAAK,EACL,mBAAmB,EACpB,MAAM,kBAAkB,CAAC;AAa1B,OAAO,EACL,oBAAoB,EAIrB,MAAM,mBAAmB,CAAC;AAI3B,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,SAAS,EAAE;QAAE,IAAI,EAAE,GAAG,EAAE,CAAC;QAAC,OAAO,EAAE,cAAc,EAAE,CAAA;KAAE,GAAG,IAAI,CAAC;IAC7D,aAAa,EAAE,GAAG,EAAE,CAAC;IACrB,MAAM,EAAE,mBAAmB,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,mBAAmB,CAAC;IAClC,UAAU,EAAE,kBAAkB,CAAC;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,WAkB1B,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,mBAGnC,CAAC;AA2BF,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,mBAAmB,EAC3B,aAAa,UAAO,EACpB,OAAO,GAAE,GAAG,EAAO,EACnB,oBAAoB,CAAC,EAAE,oBAAoB,EAC3C,UAAU,CAAC,EAAE,MAAM,EACnB,YAAY,CAAC,EAAE,GAAG,EAClB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC;IAAE,MAAM,EAAE,mBAAmB,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAiI1D;AAED,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,mBAAmB,EAC3B,aAAa,UAAO,EACpB,OAAO,GAAE,GAAG,EAAO,EACnB,oBAAoB,CAAC,EAAE,oBAAoB,EAC3C,YAAY,CAAC,EAAE,GAAG,gBAmCnB;AAED,wBAAsB,UAAU,CAAC,EAC/B,MAAM,EACN,eAAe,EACf,MAAM,GACP,EAAE;IACD,MAAM,EAAE,GAAG,CAAC;IACZ,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,mBAAmB,CAAC;CAC7B,GAAG,OAAO,CAAC,GAAG,CAAC,CA4Cf;AAED,eAAO,MAAM,oBAAoB,WAAY,GAAG,QAkB/C,CAAC;AAEF,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,mBAAmB,GAC1B,WAAW,CAsDb;AAED,eAAO,MAAM,6BAA6B,YAC/B,GAAG,YACF,GAAG,UACL,KAAK,EAAE,UACP,mBAAmB,UACnB,KAAK,qBACM,GAAG,iBACP,MAAM,qBACF;IACjB,aAAa,EAAE,mBAAmB,CAAC;IACnC,UAAU,EAAE,kBAAkB,CAAC;CAChC,WACQ,mBAAmB,iBACb,GAAG,qBACC,OAAO,iBACX,OAAO,eACT,oBAAoB,KAChC,QAAQ,iBAAiB,CAgK3B,CAAC"}
1
+ {"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../../../src/utils/report.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAU,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,EACL,kBAAkB,EAClB,KAAK,EACL,mBAAmB,EACpB,MAAM,kBAAkB,CAAC;AAa1B,OAAO,EACL,oBAAoB,EAIrB,MAAM,mBAAmB,CAAC;AAI3B,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,SAAS,EAAE;QAAE,IAAI,EAAE,GAAG,EAAE,CAAC;QAAC,OAAO,EAAE,cAAc,EAAE,CAAA;KAAE,GAAG,IAAI,CAAC;IAC7D,aAAa,EAAE,GAAG,EAAE,CAAC;IACrB,MAAM,EAAE,mBAAmB,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,mBAAmB,CAAC;IAClC,UAAU,EAAE,kBAAkB,CAAC;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,WAkB1B,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,mBAGnC,CAAC;AA2BF,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,mBAAmB,EAC3B,aAAa,UAAO,EACpB,OAAO,GAAE,GAAG,EAAO,EACnB,oBAAoB,CAAC,EAAE,oBAAoB,EAC3C,UAAU,CAAC,EAAE,MAAM,EACnB,YAAY,CAAC,EAAE,GAAG,EAClB,QAAQ,CAAC,EAAE,OAAO,EAClB,YAAY,CAAC,EAAE,OAAO,GACrB,OAAO,CAAC;IAAE,MAAM,EAAE,mBAAmB,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAmI1D;AAED,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,mBAAmB,EAC3B,aAAa,UAAO,EACpB,OAAO,GAAE,GAAG,EAAO,EACnB,oBAAoB,CAAC,EAAE,oBAAoB,EAC3C,YAAY,CAAC,EAAE,GAAG,GACjB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAkC7B;AAED,wBAAsB,UAAU,CAAC,EAC/B,MAAM,EACN,eAAe,EACf,MAAM,GACP,EAAE;IACD,MAAM,EAAE,GAAG,CAAC;IACZ,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,mBAAmB,CAAC;CAC7B,GAAG,OAAO,CAAC,GAAG,CAAC,CA4Cf;AAED,eAAO,MAAM,oBAAoB,WAAY,GAAG,QAkB/C,CAAC;AAEF,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,mBAAmB,GAC1B,WAAW,CAsDb;AAED,eAAO,MAAM,6BAA6B,YAC/B,GAAG,YACF,GAAG,UACL,KAAK,EAAE,UACP,mBAAmB,UACnB,KAAK,qBACM,GAAG,iBACP,MAAM,qBACF;IACjB,aAAa,EAAE,mBAAmB,CAAC;IACnC,UAAU,EAAE,kBAAkB,CAAC;CAChC,WACQ,mBAAmB,iBACb,GAAG,qBACC,OAAO,iBACX,OAAO,eACT,oBAAoB,KAChC,QAAQ,iBAAiB,CAgK3B,CAAC"}