@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
@@ -420,13 +420,13 @@ const QuillTableSQLEditorComponent = ({ rows, columns, isLoading = false, rowCou
420
420
  onPageChange && onPageChange(page);
421
421
  }, onSortChange: (sort) => {
422
422
  setSort(sort);
423
- setPage(page);
424
423
  setCurrentPage && setCurrentPage(0);
424
+ setPage(0);
425
425
  onSortChange && onSortChange(sort);
426
426
  }, sort: sort, currentPage: currentPage ?? page, isLoading: isLoading, containerStyle: containerStyle }));
427
427
  };
428
428
  exports.QuillTableSQLEditorComponent = QuillTableSQLEditorComponent;
429
- const QuillTableComponent = ({ rows, columns, isLoading = false, rowCount, onPageChange, onSortChange, }) => {
429
+ const QuillTableComponent = ({ rows, columns, isLoading = false, rowCount, rowCountIsLoading, onPageChange, onSortChange, }) => {
430
430
  const [sort, setSort] = (0, react_1.useState)({ field: '', direction: '' });
431
431
  const [page, setPage] = (0, react_1.useState)(0);
432
432
  const [initialLoad, setInitialLoad] = (0, react_1.useState)(true);
@@ -444,7 +444,7 @@ const QuillTableComponent = ({ rows, columns, isLoading = false, rowCount, onPag
444
444
  height: '100%',
445
445
  }, children: (0, jsx_runtime_1.jsx)(ChartSkeleton_1.default, {}) }));
446
446
  }
447
- return ((0, jsx_runtime_1.jsx)(QuillTable_1.default, { rows: rows, columns: columns, rowsPerPage: paginationProcessing_1.DEFAULT_PAGINATION.rowsPerPage, rowCount: rowCount, onPageChange: (page) => {
447
+ return ((0, jsx_runtime_1.jsx)(QuillTable_1.default, { rows: rows, columns: columns, rowsPerPage: paginationProcessing_1.DEFAULT_PAGINATION.rowsPerPage, rowCount: rowCount, rowCountIsLoading: rowCountIsLoading, onPageChange: (page) => {
448
448
  setPage(page);
449
449
  onPageChange && onPageChange(page);
450
450
  }, 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,9 +1,14 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  exports.useDashboard = exports.useReports = void 0;
4
7
  const react_1 = require("react");
5
8
  const Context_1 = require("../Context");
6
9
  const dashboard_1 = require("../utils/dashboard");
10
+ const dateRangePickerUtils_1 = require("../DateRangePicker/dateRangePickerUtils");
11
+ const fast_deep_equal_1 = __importDefault(require("fast-deep-equal"));
7
12
  const useReports = () => {
8
13
  const [dashboard, dispatch] = (0, react_1.useContext)(Context_1.DashboardContext);
9
14
  const reloadReport = (id) => {
@@ -27,131 +32,191 @@ const useReports = () => {
27
32
  exports.useReports = useReports;
28
33
  const useDashboard = (dashboardName) => {
29
34
  const [dashboardConfig, dashboardConfigContext] = (0, react_1.useContext)(Context_1.DashboardConfigContext);
35
+ const { dashboardFilters, loadFiltersForDashboard } = (0, react_1.useContext)(Context_1.DashboardFiltersContext);
30
36
  const [dashboard] = (0, react_1.useContext)(Context_1.DashboardContext);
31
37
  const [isLoading, setIsLoading] = (0, react_1.useState)(true);
32
38
  const [error, setError] = (0, react_1.useState)(null);
33
39
  const [client, isClientLoading] = (0, react_1.useContext)(Context_1.ClientContext);
34
- const [dashboardFilters, setDashboardFilters] = (0, react_1.useState)(null);
35
- const [dashboardFiltersLoading, setDashboardFiltersLoading] = (0, react_1.useState)(true);
36
40
  const loading = (0, react_1.useMemo)(() => isLoading ||
37
41
  isClientLoading ||
38
42
  (dashboardConfig[dashboardName] &&
39
43
  !dashboardConfig[dashboardName]?.sections), [isLoading, isClientLoading, dashboardConfig, dashboardName]);
40
- const handleReload = async (overrideDashboardName, fetchFromServer = false, reportAction) => {
41
- await Promise.allSettled([
42
- getDashboardFilters(overrideDashboardName ?? dashboardName, fetchFromServer),
43
- getDashboards(overrideDashboardName ?? dashboardName, fetchFromServer, reportAction),
44
+ const handleReload = async (overrideDashboardName, fetchFromServer = false, reportAction, overrideFilters) => {
45
+ if (!fetchFromServer && isLoading)
46
+ return;
47
+ if (overrideFilters) {
48
+ // Pull the date filter out of the override filters, process it, and append it to the filters
49
+ const dateFilter = overrideFilters.filters.find((f) => f.filterType === 'date_range');
50
+ loadFiltersForDashboard(dashboardName, [
51
+ ...(dateFilter
52
+ ? [
53
+ {
54
+ ...dateFilter,
55
+ dateField: [
56
+ ...new Map(Object.values(dashboardConfig[overrideDashboardName ?? dashboardName]
57
+ ?.sections ?? {})
58
+ .flat()
59
+ .map((report) => {
60
+ const key = JSON.stringify(report.dateField);
61
+ return [key, report.dateField];
62
+ })).values(),
63
+ ],
64
+ },
65
+ ]
66
+ : []),
67
+ ...(overrideFilters.filters.filter((f) => f.filterType !== 'date_range') ?? []),
68
+ ], overrideFilters.editedFilterLabel);
69
+ return;
70
+ }
71
+ const dashboard = await getDashboards(overrideDashboardName ?? dashboardName, fetchFromServer, reportAction);
72
+ if (!fetchFromServer &&
73
+ Object.keys(dashboardFilters[dashboardName] ?? {}).length)
74
+ return;
75
+ const dateFilter = dashboard?.dateFilter
76
+ ? {
77
+ ...dashboard?.dateFilter,
78
+ startDate: dateRangePickerUtils_1.PRIMARY_RANGE[dashboard?.dateFilter.primaryRange?.value ?? 'LAST_30_DAYS']?.start,
79
+ endDate: dateRangePickerUtils_1.PRIMARY_RANGE[dashboard?.dateFilter.primaryRange?.value ?? 'LAST_30_DAYS']?.end,
80
+ filterType: 'date_range',
81
+ dateField: [
82
+ ...new Map(Object.values(dashboard?.sections ?? {})
83
+ .flat()
84
+ .map((report) => {
85
+ const key = JSON.stringify(report.dateField);
86
+ return [key, report.dateField];
87
+ })).values(),
88
+ ],
89
+ preset: dashboard?.dateFilter.primaryRange,
90
+ dashboardName: overrideDashboardName ?? dashboardName,
91
+ comparisonRange: dashboard?.dateFilter.comparison
92
+ ? {
93
+ startDate: dashboard?.dateFilter.comparsionRange?.startDate ??
94
+ dateRangePickerUtils_1.COMPARISON_RANGE[dashboard?.dateFilter
95
+ .defaultComparisonRange ??
96
+ 'NO_COMPARISON']({
97
+ start: dateRangePickerUtils_1.PRIMARY_RANGE[dashboard?.dateFilter.primaryRange?.value ??
98
+ 'LAST_30_DAYS']?.start,
99
+ end: dateRangePickerUtils_1.PRIMARY_RANGE[dashboard?.dateFilter.primaryRange?.value ??
100
+ 'LAST_30_DAYS']?.end,
101
+ })?.start,
102
+ endDate: dashboard?.dateFilter.comparsionRange?.endDate ??
103
+ dateRangePickerUtils_1.COMPARISON_RANGE[dashboard?.dateFilter
104
+ .defaultComparisonRange ??
105
+ 'NO_COMPARISON']({
106
+ start: dateRangePickerUtils_1.PRIMARY_RANGE[dashboard?.dateFilter.primaryRange?.value ??
107
+ 'LAST_30_DAYS']?.start,
108
+ end: dateRangePickerUtils_1.PRIMARY_RANGE[dashboard?.dateFilter.primaryRange?.value ??
109
+ 'LAST_30_DAYS']?.end,
110
+ })?.end,
111
+ value: dashboard?.dateFilter.comparsionRange?.value ??
112
+ dashboard.dateFilter?.defaultComparisonRange,
113
+ }
114
+ : undefined,
115
+ }
116
+ : undefined;
117
+ // Append dateFilter to the filters unless it's undefined
118
+ loadFiltersForDashboard(dashboardName, [
119
+ ...(dateFilter ? [dateFilter] : []),
120
+ ...(dashboard?.filters ?? []),
44
121
  ]);
45
122
  };
46
- //FIXME: report should be of type QuillReport
47
123
  async function getDashboards(dashboardName, fetchFromServer = false, reportAction) {
48
- setIsLoading(true);
49
- if (!fetchFromServer && dashboardConfig) {
124
+ const curDashboardConfig = dashboardConfig[dashboardName];
125
+ if (!fetchFromServer && curDashboardConfig?.sections) {
50
126
  if (reportAction?.action === 'delete') {
51
127
  dashboardConfigContext({
52
128
  type: 'UPDATE_DASHBOARD',
53
129
  id: dashboardName,
54
130
  data: {
55
- ...dashboardConfig[dashboardName],
56
- sections: {
57
- '': dashboardConfig[dashboardName]?.sections?.[''].filter((report) => (report.id ?? report._id) !==
58
- (reportAction.report.id ?? reportAction.report._id)),
59
- },
131
+ ...curDashboardConfig,
132
+ sections: Object.fromEntries(Object.entries(curDashboardConfig?.sections ?? {}).map(([sectionKey, reports]) => [
133
+ sectionKey,
134
+ reports.filter((report) => report.id !== reportAction.report.id),
135
+ ])),
60
136
  },
61
137
  });
62
138
  }
63
139
  else if (reportAction?.action === 'upsert') {
64
- const containsReport = dashboardConfig[dashboardName]?.sections?.[''].some((report) => (report.id ?? report._id) ===
65
- (reportAction?.report.id ?? reportAction?.report._id));
140
+ const containsReport = Object.values(curDashboardConfig?.sections ?? {})
141
+ .flat()
142
+ .some((report) => (report.id ?? report._id) === reportAction?.report.id);
66
143
  dashboardConfigContext({
67
144
  type: 'UPDATE_DASHBOARD',
68
145
  id: dashboardName,
69
146
  data: {
70
- ...dashboardConfig[dashboardName],
71
- sections: {
72
- '': containsReport
73
- ? dashboardConfig[dashboardName]?.sections?.[''].map((report) => {
147
+ ...curDashboardConfig,
148
+ sections: Object.fromEntries(Object.entries(curDashboardConfig?.sections ?? {}).map(([sectionKey, reports]) => [
149
+ sectionKey,
150
+ containsReport
151
+ ? reports.map((report) => {
74
152
  return {
75
153
  report,
76
- // FIXME: this is bizarre. The _id field shouldn't even exist on the report according to the type, but that's what is set.
77
- ...((reportAction?.report.id ??
78
- reportAction?.report._id) ===
79
- (report.id ?? report._id)
154
+ ...(reportAction?.report.id === report.id
80
155
  ? reportAction?.report
81
- : dashboard[report.id ?? report._id]),
82
- _id: report.id ?? report._id,
156
+ : dashboard[report.id]),
157
+ _id: report.id,
158
+ id: report.id,
83
159
  };
84
160
  })
85
161
  : [
86
- ...(dashboardConfig[dashboardName]?.sections?.[''] ?? []),
162
+ ...(reports ?? []),
87
163
  {
88
164
  report: reportAction?.report,
89
- ...dashboard[reportAction?.report.id ?? reportAction?.report._id],
90
- _id: reportAction?.report.id ?? reportAction?.report._id,
165
+ ...dashboard[reportAction?.report.id],
166
+ id: reportAction?.report.id,
167
+ _id: reportAction?.report.id,
91
168
  },
92
169
  ],
93
- },
170
+ ])),
94
171
  },
95
172
  });
96
173
  }
97
174
  setIsLoading(false);
98
- return;
175
+ return curDashboardConfig;
99
176
  }
100
- const curDashboardConfig = dashboardConfig[dashboardName];
101
177
  if (!fetchFromServer &&
102
178
  curDashboardConfig &&
103
179
  curDashboardConfig.newQueries) {
104
180
  setIsLoading(false);
105
- return;
181
+ return curDashboardConfig;
106
182
  }
107
183
  if (!client || !client.publicKey || !client.organizationId) {
108
- return;
184
+ return curDashboardConfig;
109
185
  }
110
186
  if (dashboardName === null || dashboardName === undefined)
111
- return;
187
+ return curDashboardConfig;
112
188
  try {
189
+ setIsLoading(true);
113
190
  const resp = await (0, dashboard_1.getDashboard)(dashboardName, client);
114
- dashboardConfigContext({
115
- type: 'ADD_DASHBOARD',
116
- id: dashboardName,
117
- data: { ...resp },
118
- });
119
- setIsLoading(false);
191
+ // if dashboard has changed
192
+ if (!(0, fast_deep_equal_1.default)(resp, curDashboardConfig)) {
193
+ dashboardConfigContext({
194
+ type: 'ADD_DASHBOARD',
195
+ id: dashboardName,
196
+ data: { ...resp },
197
+ });
198
+ }
120
199
  setError(null);
200
+ return resp;
121
201
  }
122
202
  catch (error) {
123
- setIsLoading(false);
124
203
  setError(error);
125
204
  console.error('Error fetching data:', error);
126
205
  }
127
- }
128
- async function getDashboardFilters(dashboardName, fetchFromServer = false) {
129
- if (!fetchFromServer && dashboardFilters) {
130
- setDashboardFiltersLoading(false);
131
- return;
132
- }
133
- setDashboardFiltersLoading(true);
134
- if (!client || !client.publicKey || !client.organizationId) {
135
- return;
136
- }
137
- if (dashboardName === null || dashboardName === undefined)
138
- return;
139
- try {
140
- const resp = await (0, dashboard_1.getDashboardFilters)(dashboardName, client);
141
- setDashboardFilters(resp);
142
- }
143
- catch (error) {
144
- console.error('Error fetching data:', error);
145
- }
146
206
  finally {
147
- setDashboardFiltersLoading(false);
207
+ setIsLoading(false);
148
208
  }
149
209
  }
210
+ function isDashboardFilterLoading(filterName) {
211
+ return dashboardFilters[dashboardName]?.[filterName]?.loading;
212
+ }
150
213
  return {
151
214
  data: loading ? null : dashboardConfig[dashboardName],
152
- dashboardFilters: dashboardFilters,
215
+ dashboardFilters: dashboardFilters[dashboardName] !== undefined
216
+ ? Object.values(dashboardFilters[dashboardName] ?? {}).map((f) => f.filter)
217
+ : null,
153
218
  isLoading: loading,
154
- isDashboardFiltersLoading: dashboardFiltersLoading,
219
+ isDashboardFilterLoading,
155
220
  error,
156
221
  reload: handleReload,
157
222
  };
@@ -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"}
@@ -50,6 +50,12 @@ async function getExportData(client, dashboardFilters, reportId) {
50
50
  }
51
51
  const useExport = (reportId) => {
52
52
  const { dashboardFilters } = (0, react_1.useContext)(Context_1.DashboardFiltersContext);
53
+ const specificDashboardFilters = (0, react_1.useMemo)(() => {
54
+ //FIXME: Pretty sure this won't work with multiple dashboards
55
+ Object.values(dashboardFilters).map((dashboardFilter) => {
56
+ return dashboardFilter.filter;
57
+ });
58
+ }, [dashboardFilters]);
53
59
  const [theme] = (0, react_1.useContext)(Context_1.ThemeContext);
54
60
  const [client] = (0, react_1.useContext)(Context_1.ClientContext);
55
61
  const [isLoading, setIsLoading] = (0, react_1.useState)(false);
@@ -62,7 +68,7 @@ const useExport = (reportId) => {
62
68
  return;
63
69
  }
64
70
  setIsLoading(true);
65
- const resp = await getExportData(client, dashboardFilters, reportId);
71
+ const resp = await getExportData(client, specificDashboardFilters, reportId);
66
72
  (0, csv_1.downloadCSV)({
67
73
  rows: resp.rows,
68
74
  fields: resp.columns,
@@ -75,7 +81,7 @@ const useExport = (reportId) => {
75
81
  return;
76
82
  }
77
83
  setIsLoading(true);
78
- const resp = await getExportData(client, dashboardFilters, reportId);
84
+ const resp = await getExportData(client, specificDashboardFilters, reportId);
79
85
  const iframe = document.createElement('iframe');
80
86
  document.body.appendChild(iframe);
81
87
  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"}
@@ -11,6 +11,14 @@ const dataProcessing_1 = require("../utils/dataProcessing");
11
11
  const useQuill = (reportId, pagination) => {
12
12
  const [dashboard, dispatch] = (0, react_1.useContext)(Context_1.DashboardContext);
13
13
  const { dashboardFilters } = (0, react_1.useContext)(Context_1.DashboardFiltersContext);
14
+ const specificDashboardFilters = (0, react_1.useMemo)(() => {
15
+ if (!reportId)
16
+ return [];
17
+ const dashboardName = dashboard[reportId]?.dashboardName;
18
+ if (!dashboardName)
19
+ return [];
20
+ return Object.values(dashboardFilters[dashboardName] ?? {}).map((f) => f.filter);
21
+ }, [dashboardFilters, reportId, dashboard]);
14
22
  const [schemaData] = (0, react_1.useContext)(Context_1.SchemaDataContext);
15
23
  const [client] = (0, react_1.useContext)(Context_1.ClientContext);
16
24
  const [data, setData] = (0, react_1.useState)(null);
@@ -76,13 +84,8 @@ const useQuill = (reportId, pagination) => {
76
84
  if (!loading && reportId && data) {
77
85
  setLoading(true);
78
86
  try {
79
- const specificDashboardFilter = dashboardFilters.filter((f) => f &&
80
- reportId &&
81
- dashboard[reportId] &&
82
- // @ts-ignore
83
- dashboard[reportId].dashboardName === f.dashboardName);
84
87
  const updatedProcessing = { ...additionalProcessing, ...processing };
85
- const paginatedRows = await (0, tableProcessing_1.fetchResultsByReport)(reportId, client, updatedProcessing, specificDashboardFilter, schemaData.customFields);
88
+ const paginatedRows = await (0, tableProcessing_1.fetchResultsByReport)(reportId, client, updatedProcessing, specificDashboardFilters, schemaData.customFields);
86
89
  if (paginatedRows.error) {
87
90
  throw new Error('Error fetching chart');
88
91
  }
@@ -115,19 +118,14 @@ const useQuill = (reportId, pagination) => {
115
118
  setLoading(false);
116
119
  return;
117
120
  }
118
- const specificDashboardFilter = dashboardFilters.filter((f) => f &&
119
- reportId &&
120
- dashboard[curReportId] &&
121
- // @ts-ignore
122
- dashboard[curReportId].dashboardName === f.dashboardName);
123
121
  setLoading(true);
124
- const { report, error } = await (0, report_1.fetchReport)(curReportId, client, useReportTask, specificDashboardFilter, additionalProcessing, undefined, schemaData.customFields);
122
+ const { report, error } = await (0, report_1.fetchReport)(curReportId, client, useReportTask, specificDashboardFilters, additionalProcessing, undefined, schemaData.customFields);
125
123
  dispatch({
126
124
  type: 'ADD_DASHBOARD_ITEM',
127
125
  id: reportId,
128
126
  data: {
129
127
  ...report,
130
- filtersApplied: specificDashboardFilter,
128
+ filtersApplied: specificDashboardFilters,
131
129
  triggerReload: false,
132
130
  },
133
131
  });
@@ -137,7 +135,9 @@ const useQuill = (reportId, pagination) => {
137
135
  };
138
136
  (0, react_1.useEffect)(() => {
139
137
  if (reportId) {
140
- fetchReportHelper(reportId, pagination ? true : false, pagination);
138
+ fetchReportHelper(reportId, pagination ? true : false, {
139
+ page: pagination,
140
+ });
141
141
  }
142
142
  }, [reportId, dashboard]);
143
143
  (0, react_1.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":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAoC7E,oBAAY,cAAc;IACxB,SAAS,eAAa;IACtB,YAAY,mBAAiB;IAC7B,QAAQ,aAAW;IACnB,EAAE,OAAK;IACP,KAAK,WAAS;CACf;AAED,oBAAY,YAAY;IACtB,MAAM,WAAS;IACf,SAAS,gBAAc;IACvB,aAAa,oBAAkB;IAC/B,YAAY,mBAAiB;IAC7B,OAAO,aAAW;IAClB,UAAU,iBAAe;IACzB,WAAW,iBAAe;IAC1B,QAAQ,cAAY;IACpB,oBAAoB,6BAA2B;IAC/C,iBAAiB,0BAAwB;CAC1C;AAED,oBAAY,cAAc;IACxB,OAAO,aAAW;IAClB,UAAU,iBAAe;IACzB,WAAW,iBAAe;IAC1B,QAAQ,cAAY;IACpB,oBAAoB,6BAA2B;IAC/C,iBAAiB,0BAAwB;CAC1C;AAED,oBAAY,YAAY;IACtB,SAAS,gBAAc;IACvB,MAAM,YAAU;CACjB;AAED,oBAAY,YAAY;IACtB,OAAO,aAAW;IAClB,UAAU,iBAAe;CAC1B;AAED,oBAAY,QAAQ;IAClB,IAAI,SAAO;IACX,OAAO,YAAU;IACjB,KAAK,UAAQ;IACb,IAAI,SAAO;IACX,GAAG,QAAM;IACT,IAAI,SAAO;CACZ;AAED,oBAAY,UAAU;IACpB,MAAM,WAAS;IACf,MAAM,WAAS;IACf,IAAI,SAAO;IACX,IAAI,SAAO;IACX,OAAO,YAAU;CAClB;AAED,oBAAY,WAAW;IACrB,YAAY,kBAAkB;IAC9B,UAAU,gBAAgB;IAC1B,gBAAgB,uBAAuB;IACvC,oBAAoB,2BAA2B;IAC/C,aAAa,mBAAmB;IAChC,UAAU,gBAAgB;IAC1B,cAAc,qBAAqB;IACnC,aAAa,mBAAmB;CACjC;AAED,MAAM,MAAM,QAAQ,GAChB,cAAc,GACd,YAAY,GACZ,cAAc,GACd,YAAY,GACZ,YAAY,CAAC;AAEjB,MAAM,MAAM,IAAI,GAAG,QAAQ,CAAC;AAE5B,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,WAAW,CAAC;IACxB,SAAS,EAAE,UAAU,CAAC;IACtB,QAAQ,EAAE,QAAQ,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,GAAG,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAa,SAAQ,UAAU;IAC9C,UAAU,EAAE,WAAW,CAAC,YAAY,CAAC;IACrC,SAAS,EAAE,UAAU,CAAC,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC;IAC/C,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,cAAe,SAAQ,UAAU;IAChD,UAAU,EAAE,WAAW,CAAC,cAAc,CAAC;IACvC,SAAS,EAAE,UAAU,CAAC,MAAM,CAAC;IAC7B,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,aAAc,SAAQ,UAAU;IAC/C,UAAU,EAAE,WAAW,CAAC,aAAa,CAAC;IACtC,SAAS,EAAE,UAAU,CAAC,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC;IAC/C,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,UAAW,SAAQ,UAAU;IAC5C,UAAU,EAAE,WAAW,CAAC,UAAU,CAAC;IACnC,SAAS,EAAE,UAAU,CAAC,IAAI,CAAC;IAC3B,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CACxC;AAED,MAAM,WAAW,gBAAiB,SAAQ,UAAU;IAClD,UAAU,EAAE,WAAW,CAAC,gBAAgB,CAAC;IACzC,SAAS,EAAE,UAAU,CAAC,IAAI,CAAC;IAC3B,KAAK,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAC/C;AAED,MAAM,WAAW,oBAAqB,SAAQ,UAAU;IACtD,UAAU,EAAE,WAAW,CAAC,oBAAoB,CAAC;IAC7C,SAAS,EAAE,UAAU,CAAC,IAAI,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,aAAc,SAAQ,UAAU;IAC/C,UAAU,EAAE,WAAW,CAAC,aAAa,CAAC;IACtC,SAAS,EAAE,UAAU,CAAC,OAAO,CAAC;IAC9B,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,UAAW,SAAQ,UAAU;IAC5C,UAAU,EAAE,WAAW,CAAC,UAAU,CAAC;IACnC,SAAS,EAAE,UAAU,CAAC,IAAI,CAAC;IAC3B,KAAK,EAAE,IAAI,CAAC;CACb;AAED,MAAM,WAAW,UAAW,SAAQ,UAAU;IAC5C,YAAY,EAAE,OAAO,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,MAAM,MAAM,GACd,UAAU,GACV,YAAY,GACZ,cAAc,GACd,aAAa,GACb,UAAU,GACV,gBAAgB,GAChB,oBAAoB,GACpB,aAAa,GACb,UAAU,CAAC;AAGf,MAAM,MAAM,UAAU,GAAG;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnE,MAAM,MAAM,eAAe,GAAG,KAAK,GAAG,IAAI,CAAC;AAE3C,MAAM,MAAM,OAAO,GACf,CAAC,MAAM,CAAC,GACR,CAAC,MAAM,EAAE,eAAe,EAAE,GAAG,KAAK,CAAC,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;AAE3E,oEAAoE;AACpE,oBAAY,mBAAmB;IAC7B,MAAM,WAAW;IACjB,IAAI,eAAe;CACpB;AAED,aAAK,gBAAgB;IACnB,OAAO,YAAY;IACnB,WAAW,gBAAgB;CAC5B;AAED,MAAM,MAAM,eAAe,GAAG,qBAAqB,GAAG,mBAAmB,CAAC;AAE1E,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,mBAAmB,CAAC;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,qBAAsB,SAAQ,mBAAmB;IAChE,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,mBAAmB,CAAC,MAAM,CAAC;IACvC,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,OAAO,EAAE;QAAE,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,EAAE,CAAC;IAC3C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,mBAAoB,SAAQ,mBAAmB;IAC9D,UAAU,EAAE,mBAAmB,CAAC,IAAI,CAAC;IACrC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,sBAAsB,CAAC,EAAE,kBAAkB,CAAC;IAC5C,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC5C,YAAY,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/C,YAAY,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAClD,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACzC,SAAS,EAAE,IAAI,CAAC;IAChB,OAAO,EAAE,IAAI,CAAC;IACd,eAAe,CAAC,EAAE;QAChB,SAAS,CAAC,EAAE,IAAI,CAAC;QACjB,OAAO,CAAC,EAAE,IAAI,CAAC;QACf,KAAK,EAAE,kBAAkB,CAAC;KAC3B,CAAC;CACH;AAGD,wBAAgB,8BAA8B,CAC5C,eAAe,EAAE,eAAe,GAC/B,MAAM,CAgCR"}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  // import * as Constants from '../utils/filterConstants';
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.DashboardFilterType = exports.FilterNames = exports.FieldTypes = exports.TimeUnit = exports.BoolOperator = exports.NullOperator = exports.NumberOperator = exports.DateOperator = exports.StringOperator = void 0;
4
+ exports.convertDashboardFilterToFilter = exports.DashboardFilterType = exports.FilterNames = exports.FieldTypes = exports.TimeUnit = exports.BoolOperator = exports.NullOperator = exports.NumberOperator = exports.DateOperator = exports.StringOperator = void 0;
5
5
  /* eslint-disable no-unused-vars */
6
6
  const IS_EXACTLY = 'is exactly';
7
7
  const IS_NOT_EXACTLY = 'is not exactly';
@@ -110,3 +110,40 @@ var StringFilterType;
110
110
  StringFilterType["Default"] = "default";
111
111
  StringFilterType["Multiselect"] = "multiselect";
112
112
  })(StringFilterType || (StringFilterType = {}));
113
+ //FIXME: This is likely incorrect
114
+ function convertDashboardFilterToFilter(dashboardFilter) {
115
+ if (dashboardFilter.filterType === DashboardFilterType.String) {
116
+ return {
117
+ filterType: FilterNames.StringFilter,
118
+ fieldType: FieldTypes.String,
119
+ operator: StringOperator.Is,
120
+ field: dashboardFilter.field,
121
+ value: dashboardFilter.selectedValue,
122
+ table: dashboardFilter.table,
123
+ };
124
+ }
125
+ else {
126
+ if (dashboardFilter.comparison) {
127
+ return {
128
+ filterType: FilterNames.DateComparisonFilter,
129
+ fieldType: FieldTypes.Date,
130
+ operator: DateOperator.Custom,
131
+ field: dashboardFilter.field,
132
+ value: dashboardFilter.comparisonRange?.value,
133
+ };
134
+ }
135
+ else {
136
+ return {
137
+ filterType: FilterNames.DateCustomFilter,
138
+ fieldType: FieldTypes.Date,
139
+ operator: DateOperator.Custom,
140
+ field: dashboardFilter.field,
141
+ value: {
142
+ startDate: dashboardFilter.startDate.toISOString(),
143
+ endDate: dashboardFilter.endDate.toISOString(),
144
+ },
145
+ };
146
+ }
147
+ }
148
+ }
149
+ exports.convertDashboardFilterToFilter = convertDashboardFilterToFilter;
@@ -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"}
@@ -74,7 +74,7 @@ async function cleanDashboardItem(item, dashboardFilters, client, dateBucket) {
74
74
  xAxisFormat: item.xAxisFormat,
75
75
  order: item.order,
76
76
  filtersApplied: item.filtersApplied,
77
- rowCount: parseInt(item.rowCount),
77
+ rowCount: item.rowCount ? parseInt(item.rowCount) : item.rows.length,
78
78
  template: item.template,
79
79
  sort: item.sort,
80
80
  itemQuery: item.itemQuery,
@@ -98,7 +98,7 @@ async function getPivotTable(report, dashboardFilters, client, dateBucketInitial
98
98
  const pivot = report?.pivot;
99
99
  const data = report || {};
100
100
  if (pivot && client) {
101
- if (report.rowCount === 0) {
101
+ if (report.rowCount === 0 || report.rows.length === 0) {
102
102
  const columns = [];
103
103
  if (pivot.rowField) {
104
104
  columns.push({
@@ -142,6 +142,7 @@ async function getPivotTable(report, dashboardFilters, client, dateBucketInitial
142
142
  throw new Error('Error generating pivot table');
143
143
  }
144
144
  catch (e) {
145
+ console.log('Error fetching pivot table', e);
145
146
  throw new Error('Failed to fetch chart');
146
147
  }
147
148
  }
@@ -4,7 +4,7 @@ exports.shouldSortInMemory = exports.shouldFetchMore = exports.DEFAULT_PAGINATIO
4
4
  exports.DEFAULT_PAGINATION = {
5
5
  page: 0,
6
6
  rowsPerPage: 10,
7
- rowsPerRequest: 20,
7
+ rowsPerRequest: 600,
8
8
  };
9
9
  function shouldFetchMore(pagination, page, maxPage) {
10
10
  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;