@quillsql/react 2.12.53 → 2.13.1

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 (97) hide show
  1. package/dist/cjs/ChartBuilder.d.ts.map +1 -1
  2. package/dist/cjs/ChartBuilder.js +4 -4
  3. package/dist/cjs/ChartEditor.d.ts.map +1 -1
  4. package/dist/cjs/ChartEditor.js +10 -10
  5. package/dist/cjs/Context.d.ts +13 -1
  6. package/dist/cjs/Context.d.ts.map +1 -1
  7. package/dist/cjs/Context.js +114 -17
  8. package/dist/cjs/Dashboard.d.ts.map +1 -1
  9. package/dist/cjs/Dashboard.js +107 -313
  10. package/dist/cjs/DateRangePicker/QuillDateRangePicker.d.ts.map +1 -1
  11. package/dist/cjs/DateRangePicker/QuillDateRangePicker.js +14 -6
  12. package/dist/cjs/ReportBuilder.d.ts.map +1 -1
  13. package/dist/cjs/ReportBuilder.js +13 -7
  14. package/dist/cjs/SQLEditor.d.ts.map +1 -1
  15. package/dist/cjs/SQLEditor.js +6 -5
  16. package/dist/cjs/components/Dashboard/DashboardFilter.d.ts +2 -1
  17. package/dist/cjs/components/Dashboard/DashboardFilter.d.ts.map +1 -1
  18. package/dist/cjs/components/Dashboard/DashboardFilter.js +7 -7
  19. package/dist/cjs/components/Dashboard/DataLoader.d.ts.map +1 -1
  20. package/dist/cjs/components/Dashboard/DataLoader.js +36 -3
  21. package/dist/cjs/components/QuillMultiSelect.js +1 -1
  22. package/dist/cjs/components/QuillMultiSelectWithCombo.js +1 -1
  23. package/dist/cjs/components/QuillSelect.d.ts +1 -1
  24. package/dist/cjs/components/QuillSelect.d.ts.map +1 -1
  25. package/dist/cjs/components/QuillSelect.js +3 -3
  26. package/dist/cjs/components/QuillSelectWithCombo.d.ts +1 -1
  27. package/dist/cjs/components/QuillSelectWithCombo.d.ts.map +1 -1
  28. package/dist/cjs/components/QuillSelectWithCombo.js +3 -3
  29. package/dist/cjs/components/QuillTable.d.ts.map +1 -1
  30. package/dist/cjs/components/QuillTable.js +10 -3
  31. package/dist/cjs/components/UiComponents.d.ts +1 -0
  32. package/dist/cjs/components/UiComponents.d.ts.map +1 -1
  33. package/dist/cjs/hooks/useDashboard.d.ts +4 -1
  34. package/dist/cjs/hooks/useDashboard.d.ts.map +1 -1
  35. package/dist/cjs/hooks/useDashboard.js +122 -53
  36. package/dist/cjs/hooks/useExport.d.ts.map +1 -1
  37. package/dist/cjs/hooks/useExport.js +8 -2
  38. package/dist/cjs/hooks/useQuill.d.ts.map +1 -1
  39. package/dist/cjs/hooks/useQuill.js +11 -13
  40. package/dist/cjs/models/Client.d.ts +6 -0
  41. package/dist/cjs/models/Client.d.ts.map +1 -1
  42. package/dist/cjs/models/Filter.d.ts +4 -3
  43. package/dist/cjs/models/Filter.d.ts.map +1 -1
  44. package/dist/cjs/models/Filter.js +38 -1
  45. package/dist/cjs/utils/paginationProcessing.js +1 -1
  46. package/dist/cjs/utils/report.js +2 -2
  47. package/dist/cjs/utils/tableProcessing.d.ts +2 -2
  48. package/dist/cjs/utils/tableProcessing.d.ts.map +1 -1
  49. package/dist/esm/ChartBuilder.d.ts.map +1 -1
  50. package/dist/esm/ChartBuilder.js +4 -4
  51. package/dist/esm/ChartEditor.d.ts.map +1 -1
  52. package/dist/esm/ChartEditor.js +10 -10
  53. package/dist/esm/Context.d.ts +13 -1
  54. package/dist/esm/Context.d.ts.map +1 -1
  55. package/dist/esm/Context.js +114 -17
  56. package/dist/esm/Dashboard.d.ts.map +1 -1
  57. package/dist/esm/Dashboard.js +107 -313
  58. package/dist/esm/DateRangePicker/QuillDateRangePicker.d.ts.map +1 -1
  59. package/dist/esm/DateRangePicker/QuillDateRangePicker.js +15 -7
  60. package/dist/esm/ReportBuilder.d.ts.map +1 -1
  61. package/dist/esm/ReportBuilder.js +14 -8
  62. package/dist/esm/SQLEditor.d.ts.map +1 -1
  63. package/dist/esm/SQLEditor.js +6 -5
  64. package/dist/esm/components/Dashboard/DashboardFilter.d.ts +2 -1
  65. package/dist/esm/components/Dashboard/DashboardFilter.d.ts.map +1 -1
  66. package/dist/esm/components/Dashboard/DashboardFilter.js +7 -7
  67. package/dist/esm/components/Dashboard/DataLoader.d.ts.map +1 -1
  68. package/dist/esm/components/Dashboard/DataLoader.js +37 -4
  69. package/dist/esm/components/QuillMultiSelect.js +1 -1
  70. package/dist/esm/components/QuillMultiSelectWithCombo.js +1 -1
  71. package/dist/esm/components/QuillSelect.d.ts +1 -1
  72. package/dist/esm/components/QuillSelect.d.ts.map +1 -1
  73. package/dist/esm/components/QuillSelect.js +3 -3
  74. package/dist/esm/components/QuillSelectWithCombo.d.ts +1 -1
  75. package/dist/esm/components/QuillSelectWithCombo.d.ts.map +1 -1
  76. package/dist/esm/components/QuillSelectWithCombo.js +3 -3
  77. package/dist/esm/components/QuillTable.d.ts.map +1 -1
  78. package/dist/esm/components/QuillTable.js +10 -3
  79. package/dist/esm/components/UiComponents.d.ts +1 -0
  80. package/dist/esm/components/UiComponents.d.ts.map +1 -1
  81. package/dist/esm/hooks/useDashboard.d.ts +4 -1
  82. package/dist/esm/hooks/useDashboard.d.ts.map +1 -1
  83. package/dist/esm/hooks/useDashboard.js +121 -55
  84. package/dist/esm/hooks/useExport.d.ts.map +1 -1
  85. package/dist/esm/hooks/useExport.js +9 -3
  86. package/dist/esm/hooks/useQuill.d.ts.map +1 -1
  87. package/dist/esm/hooks/useQuill.js +12 -14
  88. package/dist/esm/models/Client.d.ts +6 -0
  89. package/dist/esm/models/Client.d.ts.map +1 -1
  90. package/dist/esm/models/Filter.d.ts +4 -3
  91. package/dist/esm/models/Filter.d.ts.map +1 -1
  92. package/dist/esm/models/Filter.js +36 -0
  93. package/dist/esm/utils/paginationProcessing.js +1 -1
  94. package/dist/esm/utils/report.js +2 -2
  95. package/dist/esm/utils/tableProcessing.d.ts +2 -2
  96. package/dist/esm/utils/tableProcessing.d.ts.map +1 -1
  97. package/package.json +1 -1
@@ -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,50 +25,126 @@ 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
116
  //FIXME: report should be of type QuillReport
43
117
  async function getDashboards(dashboardName, fetchFromServer = false, reportAction) {
44
- setIsLoading(true);
45
- if (!fetchFromServer && dashboardConfig) {
118
+ const curDashboardConfig = dashboardConfig[dashboardName];
119
+ if (!fetchFromServer && curDashboardConfig?.sections) {
46
120
  if (reportAction?.action === 'delete') {
47
121
  dashboardConfigContext({
48
122
  type: 'UPDATE_DASHBOARD',
49
123
  id: dashboardName,
50
124
  data: {
51
- ...dashboardConfig[dashboardName],
52
- sections: {
53
- '': dashboardConfig[dashboardName]?.sections?.[''].filter((report) => (report.id ?? report._id) !==
125
+ ...curDashboardConfig,
126
+ sections: Object.fromEntries(Object.entries(curDashboardConfig?.sections ?? {}).map(([sectionKey, reports]) => [
127
+ sectionKey,
128
+ reports.filter((report) => (report.id ?? report._id) !==
54
129
  (reportAction.report.id ?? reportAction.report._id)),
55
- },
130
+ ])),
56
131
  },
57
132
  });
58
133
  }
59
134
  else if (reportAction?.action === 'upsert') {
60
- const containsReport = dashboardConfig[dashboardName]?.sections?.[''].some((report) => (report.id ?? report._id) ===
135
+ const containsReport = Object.values(curDashboardConfig?.sections ?? {})
136
+ .flat()
137
+ .some((report) => (report.id ?? report._id) ===
61
138
  (reportAction?.report.id ?? reportAction?.report._id));
62
139
  dashboardConfigContext({
63
140
  type: 'UPDATE_DASHBOARD',
64
141
  id: dashboardName,
65
142
  data: {
66
- ...dashboardConfig[dashboardName],
67
- sections: {
68
- '': containsReport
69
- ? dashboardConfig[dashboardName]?.sections?.[''].map((report) => {
143
+ ...curDashboardConfig,
144
+ sections: Object.fromEntries(Object.entries(curDashboardConfig?.sections ?? {}).map(([sectionKey, reports]) => [
145
+ sectionKey,
146
+ containsReport
147
+ ? reports.map((report) => {
70
148
  return {
71
149
  report,
72
150
  // FIXME: this is bizarre. The _id field shouldn't even exist on the report according to the type, but that's what is set.
@@ -79,75 +157,63 @@ export const useDashboard = (dashboardName) => {
79
157
  };
80
158
  })
81
159
  : [
82
- ...(dashboardConfig[dashboardName]?.sections?.[''] ?? []),
160
+ ...(reports ?? []),
83
161
  {
84
162
  report: reportAction?.report,
85
163
  ...dashboard[reportAction?.report.id ?? reportAction?.report._id],
86
164
  _id: reportAction?.report.id ?? reportAction?.report._id,
87
165
  },
88
166
  ],
89
- },
167
+ ])),
90
168
  },
91
169
  });
92
170
  }
93
171
  setIsLoading(false);
94
- return;
172
+ return curDashboardConfig;
95
173
  }
96
- const curDashboardConfig = dashboardConfig[dashboardName];
97
174
  if (!fetchFromServer &&
98
175
  curDashboardConfig &&
99
176
  curDashboardConfig.newQueries) {
100
177
  setIsLoading(false);
101
- return;
178
+ return curDashboardConfig;
102
179
  }
103
180
  if (!client || !client.publicKey || !client.organizationId) {
104
- return;
181
+ return curDashboardConfig;
105
182
  }
106
183
  if (dashboardName === null || dashboardName === undefined)
107
- return;
184
+ return curDashboardConfig;
108
185
  try {
186
+ setIsLoading(true);
109
187
  const resp = await getDashboard(dashboardName, client);
110
- dashboardConfigContext({
111
- type: 'ADD_DASHBOARD',
112
- id: dashboardName,
113
- data: { ...resp },
114
- });
115
- setIsLoading(false);
188
+ // if dashboard has changed
189
+ if (!equal(resp, curDashboardConfig)) {
190
+ dashboardConfigContext({
191
+ type: 'ADD_DASHBOARD',
192
+ id: dashboardName,
193
+ data: { ...resp },
194
+ });
195
+ }
116
196
  setError(null);
197
+ return resp;
117
198
  }
118
199
  catch (error) {
119
- setIsLoading(false);
120
200
  setError(error);
121
201
  console.error('Error fetching data:', error);
122
202
  }
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
203
  finally {
143
- setDashboardFiltersLoading(false);
204
+ setIsLoading(false);
144
205
  }
145
206
  }
207
+ function isDashboardFilterLoading(filterName) {
208
+ return dashboardFilters[dashboardName]?.[filterName]?.loading;
209
+ }
146
210
  return {
147
211
  data: loading ? null : dashboardConfig[dashboardName],
148
- dashboardFilters: dashboardFilters,
212
+ dashboardFilters: dashboardFilters[dashboardName] !== undefined
213
+ ? Object.values(dashboardFilters[dashboardName] ?? {}).map((f) => f.filter)
214
+ : null,
149
215
  isLoading: loading,
150
- isDashboardFiltersLoading: dashboardFiltersLoading,
216
+ isDashboardFilterLoading,
151
217
  error,
152
218
  reload: handleReload,
153
219
  };
@@ -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;CAiLrB,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
  });
@@ -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"}
@@ -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,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) {
@@ -74,7 +74,7 @@ export async function fetchReport(reportId, client, useReportTask = true, filter
74
74
  clientId: client.publicKey,
75
75
  task: useReportTask ? 'report' : 'item',
76
76
  databaseType: client.databaseType,
77
- filters: filters,
77
+ filters: filters.map((filter) => ({ ...filter, options: undefined })),
78
78
  customFields,
79
79
  additionalProcessing,
80
80
  useNewNodeSql: true,
@@ -172,7 +172,7 @@ export async function fetchReportRowCount(reportId, client, useReportTask = true
172
172
  clientId: client.publicKey,
173
173
  task: useReportTask ? 'report' : 'item',
174
174
  databaseType: client.databaseType,
175
- filters: filters,
175
+ filters: filters.filter((filter) => filter.options === undefined),
176
176
  customFields,
177
177
  additionalProcessing,
178
178
  useNewNodeSql: true,
@@ -1,7 +1,7 @@
1
1
  import { NodeSQLParser } from '../components/ReportBuilder/ast';
2
2
  import { QuillProviderClient } from '../models/Client';
3
3
  import { Column, ColumnInternal } from '../models/Columns';
4
- import { Filter } from '../models/Filter';
4
+ import { DashboardFilter } from '../models/Filter';
5
5
  import { Pagination } from '../models/Pagination';
6
6
  import { DateRangesByColumn, UniqueValuesByColumn } from '../models/Tables';
7
7
  export interface AdditionalProcessing {
@@ -42,7 +42,7 @@ export declare const getPaginatedRows: (client: QuillProviderClient, query?: str
42
42
  rowCount?: number;
43
43
  error?: string;
44
44
  }>;
45
- export declare const fetchResultsByQuery: (query: string, client: QuillProviderClient, processing?: AdditionalProcessing, customFields?: any, filters?: Filter[], dateField?: {
45
+ export declare const fetchResultsByQuery: (query: string, client: QuillProviderClient, processing?: AdditionalProcessing, customFields?: any, filters?: DashboardFilter[], dateField?: {
46
46
  field: string;
47
47
  table: string;
48
48
  } | null, rowsOnly?: boolean, rowCountOnly?: boolean) => Promise<{
@@ -1 +1 @@
1
- {"version":3,"file":"tableProcessing.d.ts","sourceRoot":"","sources":["../../../src/utils/tableProcessing.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,aAAa,EACd,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAgB5E,MAAM,WAAW,oBAAoB;IACnC,IAAI,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5C,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,IAAI,CAAC,EAAE,GAAG,CAAC;CACZ;AAED,eAAO,MAAM,cAAc,YAChB,MAAM,EAAE,qBACE,MAAM,EAAE,KAC1B,OAUF,CAAC;AAEF,eAAO,MAAM,wBAAwB,YAC1B,MAAM,EAAE,SACV,MAAM,QACP,GAAG,UACD,mBAAmB,gBACb,GAAG,EAAE;;;;SAmEpB,CAAC;AAEF,eAAO,MAAM,qBAAqB,YACvB,cAAc,EAAE,aACd,MAAM,UACT,GAAG,iBACI,GAAG,yBACK,GAAG,wBACJ,OAAO,UACrB,MAAM,iBA2Cf,CAAC;AAEF,eAAO,MAAM,wBAAwB,YAC1B,cAAc,EAAE,UACjB,mBAAmB,SACpB,MAAM,iBACE,GAAG;;;;EA6DnB,CAAC;AAEF,eAAO,MAAM,kBAAkB,YACpB,MAAM,EAAE,SACV,MAAM,UACL,mBAAmB,gBACb,GAAG,EAAE,KAClB,QAAQ;IACT,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,eAAe,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;CACvC,CAiDA,CAAC;AAkDF,eAAO,MAAM,qBAAqB,YACvB,MAAM,EAAE,SACV,MAAM,UACL,mBAAmB,gBACb,GAAG,EAAE;;mBAEY;YAAE,KAAK,EAAE,IAAI,CAAC;YAAC,GAAG,EAAE,IAAI,CAAA;SAAE;;SAiB1D,CAAC;AA2DF,eAAO,MAAM,gBAAgB,WACnB,mBAAmB,UACnB,MAAM,aACH,MAAM,eACJ,oBAAoB,YACvB,GAAG,iBACE,GAAG,KACjB,QAAQ;IACT,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAaA,CAAC;AAEF,eAAO,MAAM,mBAAmB,UACvB,MAAM,UACL,mBAAmB,eACd,oBAAoB,iBAClB,GAAG,YACR,MAAM,EAAE,cACN;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,aACxC,OAAO,iBACH,OAAO;aAEb,cAAc,EAAE;UACnB,GAAG,EAAE;;;;EA2DZ,CAAC;AAEF,eAAO,MAAM,oBAAoB,aACrB,MAAM,UACR,mBAAmB,eACd,oBAAoB,YACvB,GAAG,iBACE,GAAG;aAET,MAAM,EAAE;UACX,GAAG,EAAE;;;EAgFZ,CAAC;AAEF,eAAO,MAAM,eAAe,QACrB,cAAc,MAAM,UACjB,mBAAmB,eACd,oBAAoB,iBAClB,GAAG,aACP,OAAO,iBACH,OAAO;aAEb,cAAc,EAAE;UACnB,GAAG,EAAE;;;;EAyDZ,CAAC;AAEF,eAAO,MAAM,+CAA+C,0BACnC,oBAAoB;;CAU5C,CAAC"}
1
+ {"version":3,"file":"tableProcessing.d.ts","sourceRoot":"","sources":["../../../src/utils/tableProcessing.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,aAAa,EACd,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAgB5E,MAAM,WAAW,oBAAoB;IACnC,IAAI,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5C,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,IAAI,CAAC,EAAE,GAAG,CAAC;CACZ;AAED,eAAO,MAAM,cAAc,YAChB,MAAM,EAAE,qBACE,MAAM,EAAE,KAC1B,OAUF,CAAC;AAEF,eAAO,MAAM,wBAAwB,YAC1B,MAAM,EAAE,SACV,MAAM,QACP,GAAG,UACD,mBAAmB,gBACb,GAAG,EAAE;;;;SAmEpB,CAAC;AAEF,eAAO,MAAM,qBAAqB,YACvB,cAAc,EAAE,aACd,MAAM,UACT,GAAG,iBACI,GAAG,yBACK,GAAG,wBACJ,OAAO,UACrB,MAAM,iBA2Cf,CAAC;AAEF,eAAO,MAAM,wBAAwB,YAC1B,cAAc,EAAE,UACjB,mBAAmB,SACpB,MAAM,iBACE,GAAG;;;;EA6DnB,CAAC;AAEF,eAAO,MAAM,kBAAkB,YACpB,MAAM,EAAE,SACV,MAAM,UACL,mBAAmB,gBACb,GAAG,EAAE,KAClB,QAAQ;IACT,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,eAAe,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;CACvC,CAiDA,CAAC;AAkDF,eAAO,MAAM,qBAAqB,YACvB,MAAM,EAAE,SACV,MAAM,UACL,mBAAmB,gBACb,GAAG,EAAE;;mBAEY;YAAE,KAAK,EAAE,IAAI,CAAC;YAAC,GAAG,EAAE,IAAI,CAAA;SAAE;;SAiB1D,CAAC;AA2DF,eAAO,MAAM,gBAAgB,WACnB,mBAAmB,UACnB,MAAM,aACH,MAAM,eACJ,oBAAoB,YACvB,GAAG,iBACE,GAAG,KACjB,QAAQ;IACT,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAaA,CAAC;AAEF,eAAO,MAAM,mBAAmB,UACvB,MAAM,UACL,mBAAmB,eACd,oBAAoB,iBAClB,GAAG,YACR,eAAe,EAAE,cACf;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,aACxC,OAAO,iBACH,OAAO;aAEb,cAAc,EAAE;UACnB,GAAG,EAAE;;;;EA2DZ,CAAC;AAEF,eAAO,MAAM,oBAAoB,aACrB,MAAM,UACR,mBAAmB,eACd,oBAAoB,YACvB,GAAG,iBACE,GAAG;aAET,MAAM,EAAE;UACX,GAAG,EAAE;;;EAgFZ,CAAC;AAEF,eAAO,MAAM,eAAe,QACrB,cAAc,MAAM,UACjB,mBAAmB,eACd,oBAAoB,iBAClB,GAAG,aACP,OAAO,iBACH,OAAO;aAEb,cAAc,EAAE;UACnB,GAAG,EAAE;;;;EAyDZ,CAAC;AAEF,eAAO,MAAM,+CAA+C,0BACnC,oBAAoB;;CAU5C,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@quillsql/react",
3
- "version": "2.12.53",
3
+ "version": "2.13.1",
4
4
  "exports": {
5
5
  ".": {
6
6
  "import": "./dist/esm/index.js",